Skip to content

[Workflow] Client Handoff Settings + Change Log Template #115

@austendvds-boop

Description

@austendvds-boop

Workflow name

Client Handoff Settings + Change Log Template

Category

Productivity

Description

A small n8n starter workflow for client handoff documentation. It helps builders document which values are safe for a client to edit, who owns credentials, what changed after delivery, and what proof was run before handoff.

Why this is useful

Client-facing workflows often break after delivery because the handoff is informal. This template creates a repeatable settings block, change log entry, and handoff checklist that can be copied into real client workflows before delivery.

Included nodes

  • Manual Trigger
  • Sticky Note explaining use
  • Set node for client-safe settings
  • Set node for change-log metadata
  • Set node for handoff checklist fields

Example output

{
  "client_name": "Replace with client or internal owner",
  "workflow_owner": "Replace with accountable person",
  "safe_notification_email": "owner@example.com",
  "safe_edit_threshold": "Only edit notification copy, recipients, wait times, and labels without testing.",
  "last_tested_at": "YYYY-MM-DD HH:MM timezone",
  "change_date": "YYYY-MM-DD",
  "modified_by": "Name of person making the change",
  "reason": "[CLIENT] Explain why this change was made",
  "risk_level": "none | low | breaking",
  "test_evidence": "Known-good input produced expected output at timestamp",
  "trigger_confirmed": "What starts this workflow?",
  "required_inputs_confirmed": "Which fields are required and what happens when one is missing?",
  "credentials_confirmed": "Which account owns each credential?",
  "failure_test_confirmed": "What deliberate failure test was run?",
  "owner_safe_edits_confirmed": "Which fields can the client edit without touching logic?"
}

Public reference

https://n8n-handoff-kit.vercel.app/free-n8n-handoff-template.html

Workflow JSON

{
  "name": "Client Handoff Settings + Change Log Template",
  "nodes": [
    {
      "parameters": {},
      "id": "manual-trigger",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -620,
        40
      ]
    },
    {
      "parameters": {
        "content": "## Client handoff settings\n\nUse this starter structure before handing a workflow to a client.\n\n1. Put safe editable values in the Client Settings node.\n2. Keep a change log entry whenever the workflow is modified.\n3. Run the handoff checklist before delivery.\n4. Copy these values into your client handoff doc.",
        "height": 260,
        "width": 380
      },
      "id": "handoff-note",
      "name": "How To Use This Template",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -820,
        -280
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "client-name",
              "name": "client_name",
              "value": "Replace with client or internal owner",
              "type": "string"
            },
            {
              "id": "workflow-owner",
              "name": "workflow_owner",
              "value": "Replace with accountable person",
              "type": "string"
            },
            {
              "id": "safe-email",
              "name": "safe_notification_email",
              "value": "owner@example.com",
              "type": "string"
            },
            {
              "id": "safe-threshold",
              "name": "safe_edit_threshold",
              "value": "Only edit notification copy, recipients, wait times, and labels without testing.",
              "type": "string"
            },
            {
              "id": "last-tested",
              "name": "last_tested_at",
              "value": "YYYY-MM-DD HH:MM timezone",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "id": "client-settings",
      "name": "Client Settings - Safe To Edit",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -360,
        40
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "change-date",
              "name": "change_date",
              "value": "YYYY-MM-DD",
              "type": "string"
            },
            {
              "id": "modified-by",
              "name": "modified_by",
              "value": "Name of person making the change",
              "type": "string"
            },
            {
              "id": "change-reason",
              "name": "reason",
              "value": "[CLIENT] Explain why this change was made",
              "type": "string"
            },
            {
              "id": "risk-level",
              "name": "risk_level",
              "value": "none | low | breaking",
              "type": "string"
            },
            {
              "id": "test-evidence",
              "name": "test_evidence",
              "value": "Known-good input produced expected output at timestamp",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "id": "change-log-entry",
      "name": "Change Log Entry",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -80,
        40
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "trigger-check",
              "name": "trigger_confirmed",
              "value": "What starts this workflow?",
              "type": "string"
            },
            {
              "id": "input-check",
              "name": "required_inputs_confirmed",
              "value": "Which fields are required and what happens when one is missing?",
              "type": "string"
            },
            {
              "id": "credentials-check",
              "name": "credentials_confirmed",
              "value": "Which account owns each credential?",
              "type": "string"
            },
            {
              "id": "failure-check",
              "name": "failure_test_confirmed",
              "value": "What deliberate failure test was run?",
              "type": "string"
            },
            {
              "id": "owner-check",
              "name": "owner_safe_edits_confirmed",
              "value": "Which fields can the client edit without touching logic?",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "id": "handoff-checklist",
      "name": "Handoff Checklist",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        200,
        40
      ]
    }
  ],
  "connections": {
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Client Settings - Safe To Edit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Client Settings - Safe To Edit": {
      "main": [
        [
          {
            "node": "Change Log Entry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Change Log Entry": {
      "main": [
        [
          {
            "node": "Handoff Checklist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    {
      "name": "handoff"
    },
    {
      "name": "documentation"
    },
    {
      "name": "client-delivery"
    }
  ],
  "triggerCount": 0,
  "updatedAt": "2026-05-10T17:20:00.000Z",
  "versionId": "n8n-client-handoff-template-v1"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions