{
  "id": "yrsiXUj10Llg1LFV",
  "name": "AI Client Onboarding Agent for GoHighLevel: Tasks, Email, Drive and Slack with Claude",
  "tags": [],
  "nodes": [
    {
      "id": "0e72a3e3-bdd3-49cf-880e-f5bb8b057bb8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        -176
      ],
      "parameters": {
        "color": 0,
        "width": 500,
        "height": 1380,
        "content": "## AI Client Onboarding Agent for GoHighLevel using Claude\n\nThe moment a deal is marked Won in GoHighLevel, this workflow kicks off the entire onboarding process automatically. Claude AI reads the service type and deal notes, writes a personalised welcome email, generates a custom 6-task onboarding plan for that specific client, and creates every task directly in GHL -- so your team opens GHL and the work is already laid out.\n\nNo static task templates. No manual emails. No copy-pasting client details. Every client gets a tailored onboarding in under 60 seconds.\n\n### How it works\n\n1. GoHighLevel fires a webhook the moment an opportunity stage changes to Won.\n2. The Settings node extracts all deal and contact data from the GHL payload and holds your agency configuration.\n3. Claude Sonnet reads the service purchased, deal value, and opportunity notes, then generates a personalised welcome email, a custom 6-task onboarding plan specific to that service, and a short internal client summary.\n4. The workflow creates each of the 6 tasks directly in GHL via API, assigned to your account manager with due dates spaced across the first 30 days.\n5. A new client folder is created in Google Drive named with the client and service.\n6. The Claude-written welcome email is sent via Gmail with the Drive folder link included.\n7. A kickoff call is scheduled in Google Calendar 2 business days from today.\n8. Your team gets a Slack alert with the client name, service, deal value, first 3 tasks, and a Drive link.\n9. The GHL contact is tagged as Onboarding Started and Active Client via API.\n10. Everything is logged to Google Sheets with timestamp, client details, task count, drive link, and status.\n\n### Setup steps\n\n- [ ] **GHL webhook** -- In GHL go to Settings, Integrations, Webhooks and create a new webhook. Set the trigger to Opportunity Stage Changed and paste the URL from the Receive GHL Won Deal node. Activate this workflow first.\n- [ ] **Settings node** -- Open Configure Settings and fill in your agency name, GHL API key, GHL Location ID, account manager name and user ID, Slack channel ID, Google Calendar ID, Google Drive parent folder ID, booking link, and log sheet ID.\n- [ ] **Claude AI** -- Click the Claude Sonnet sub-node under Generate Onboarding Plan, add a new Anthropic credential from console.anthropic.com.\n- [ ] **Gmail** -- Connect your Gmail account in Send Welcome Email.\n- [ ] **Google Drive** -- Connect your Google account in Create Client Folder.\n- [ ] **Google Calendar** -- Connect your Google account in Schedule Kickoff Call.\n- [ ] **Slack** -- Connect your Slack account in Notify Team - New Client. Right-click and Disable if unused.\n- [ ] **Google Sheets** -- Create a sheet called Onboarding Log with columns: Timestamp, Client Name, Client Email, Company, Service, Deal Value, Tasks Created, Drive Link, Kickoff Date, Status. Connect your Google account in Log Onboarding.\n- [ ] Activate and mark a test deal as Won in GHL to verify the full pipeline runs.\n\n### Customization\n\nEdit the Claude prompt in Generate Onboarding Plan to list your specific service offerings so Claude generates the right tasks for each one. Add a second Claude call for high-value deals to also generate a 30-60-90 day success plan."
      },
      "typeVersion": 1
    },
    {
      "id": "8e8df23b-1e1a-4db3-a100-0a6b0d4105fb",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 460,
        "height": 540,
        "content": "## Receive Won deal and configure\n\nGHL fires a webhook when an opportunity is marked Won. The Settings node extracts all contact and deal data from the payload and holds your agency config -- edit only this node to personalise the entire workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "ecfc6427-bb4b-4c4c-a30c-ac36e0add5bb",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 456,
        "height": 652,
        "content": "## Generate onboarding plan with Claude AI\n\nClaude Sonnet reads the service type, deal value, and opportunity notes and returns three outputs in one API call: a personalised welcome email, a custom 6-task onboarding plan for this specific service, and a short internal client summary for Slack.\n\nEdit the prompt in this node to list your actual service offerings so Claude generates the right tasks for each service type."
      },
      "typeVersion": 1
    },
    {
      "id": "f0eed9ea-8395-48ec-92c8-32b1fd376124",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1632,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 432,
        "height": 476,
        "content": "## Create 6 tasks in GoHighLevel\n\nParses Claude's task list and creates each of the 6 tasks in GHL via API, assigned to your account manager with staggered due dates across the first 30 days. No manual task creation ever again."
      },
      "typeVersion": 1
    },
    {
      "id": "78ae5b8c-a69e-44be-b0a7-c659b5f88fdc",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2096,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 648,
        "height": 444,
        "content": "## Drive folder, welcome email and kickoff call\n\nCreates a named client folder in Google Drive, sends the Claude-written welcome email via Gmail with the Drive link, and schedules a kickoff call in Google Calendar 2 business days from today."
      },
      "typeVersion": 1
    },
    {
      "id": "dc5c58dd-20f4-4681-94e5-44374f076d5d",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2800,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 496,
        "height": 512,
        "content": "## Alert team, tag GHL contact and log\n\nSends a Slack alert with client summary and first 3 tasks. Tags the GHL contact as Onboarding Started via API. Logs the full onboarding record to Google Sheets.\n\nSlack is optional -- right-click Notify Team - New Client and Disable if unused."
      },
      "typeVersion": 1
    },
    {
      "id": "18148c78-33a1-40d9-9434-e00498ba5501",
      "name": "Receive GHL Won Deal",
      "type": "n8n-nodes-base.webhook",
      "position": [
        608,
        304
      ],
      "parameters": {
        "path": "ghl-deal-won",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2
    },
    {
      "id": "05f5df09-f231-4aa4-b29c-577f0f93c443",
      "name": "Configure Settings",
      "type": "n8n-nodes-base.code",
      "position": [
        848,
        304
      ],
      "parameters": {
        "jsCode": "// ================================================\n//  EDIT THIS NODE -- all your settings live here\n// ================================================\n\nvar AGENCY_NAME         = 'Your Agency Name';\nvar GHL_API_KEY         = 'YOUR_GHL_API_KEY';\nvar GHL_LOCATION_ID     = 'YOUR_GHL_LOCATION_ID';\nvar ACCOUNT_MANAGER     = 'Your Account Manager Name';\nvar ACCOUNT_MANAGER_ID  = 'YOUR_GHL_USER_ID';\nvar SLACK_CHANNEL       = 'YOUR_SLACK_CHANNEL_ID';\nvar CALENDAR_ID         = 'YOUR_GOOGLE_CALENDAR_ID';\nvar DRIVE_PARENT_FOLDER = 'YOUR_GOOGLE_DRIVE_PARENT_FOLDER_ID';\nvar LOG_SHEET_ID        = 'YOUR_LOG_SHEET_ID';\nvar LOG_SHEET_NAME      = 'Onboarding Log';\nvar BOOKING_LINK        = 'YOUR_BOOKING_LINK';\n\n// ================================================\n//  DO NOT EDIT BELOW THIS LINE\n// ================================================\n\nvar body = $input.first().json.body || $input.first().json;\nvar contact     = body.contact || body.Contact || {};\nvar opportunity = body.opportunity || body.Opportunity || body;\n\nvar clientName    = contact.name || contact.fullName || opportunity.contactName || '';\nvar clientEmail   = contact.email || opportunity.contactEmail || '';\nvar clientPhone   = contact.phone || contact.phoneRaw || '';\nvar clientCompany = contact.companyName || contact.company || '';\nvar contactId     = contact.id || opportunity.contactId || '';\nvar opportunityId = opportunity.id || opportunity.opportunityId || '';\nvar dealValue     = opportunity.monetaryValue || opportunity.value || 0;\nvar serviceName   = opportunity.name || opportunity.opportunityName || 'Service Package';\nvar dealNotes     = opportunity.notes || opportunity.description || 'none';\n\n// Calculate kickoff -- 2 business days from now\nvar now = new Date();\nvar kickoff = new Date(now);\nvar daysAdded = 0;\nwhile (daysAdded < 2) {\n  kickoff.setDate(kickoff.getDate() + 1);\n  var day = kickoff.getDay();\n  if (day !== 0 && day !== 6) daysAdded++;\n}\nkickoff.setHours(10, 0, 0, 0);\nvar kickoffEnd = new Date(kickoff);\nkickoffEnd.setHours(11, 0, 0, 0);\n\nreturn [{\n  json: {\n    agency_name:          AGENCY_NAME,\n    ghl_api_key:          GHL_API_KEY,\n    ghl_location_id:      GHL_LOCATION_ID,\n    account_manager:      ACCOUNT_MANAGER,\n    account_manager_id:   ACCOUNT_MANAGER_ID,\n    slack_channel:        SLACK_CHANNEL,\n    calendar_id:          CALENDAR_ID,\n    drive_parent_folder:  DRIVE_PARENT_FOLDER,\n    log_sheet_id:         LOG_SHEET_ID,\n    log_sheet_name:       LOG_SHEET_NAME,\n    booking_link:         BOOKING_LINK,\n    client_name:          clientName,\n    client_email:         clientEmail,\n    client_phone:         clientPhone,\n    client_company:       clientCompany,\n    contact_id:           contactId,\n    opportunity_id:       opportunityId,\n    deal_value:           dealValue,\n    service_name:         serviceName,\n    deal_notes:           dealNotes,\n    kickoff_start:        kickoff.toISOString(),\n    kickoff_end:          kickoffEnd.toISOString(),\n    timestamp:            now.toISOString(),\n    folder_name:          clientName + ' - ' + serviceName + ' - ' + now.toISOString().split('T')[0]\n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "cbf4d863-018e-4ad6-90de-e04ebdb6526f",
      "name": "Generate Onboarding Plan",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1120,
        304
      ],
      "parameters": {
        "text": "=You are an expert client onboarding specialist for a digital agency called {{ $json.agency_name }}.\n\nA new client just signed. Generate their complete onboarding plan. Return ONLY a valid JSON object -- no markdown, no explanation, no extra text.\n\nCLIENT DETAILS:\nName: {{ $json.client_name }}\nCompany: {{ $json.client_company }}\nService purchased: {{ $json.service_name }}\nDeal value: {{ $json.deal_value }}\nDeal notes: {{ $json.deal_notes }}\nAccount manager: {{ $json.account_manager }}\nBooking link: {{ $json.booking_link }}\n\nGenerate this exact JSON structure:\n\n{\"welcome_subject\":\"Short plain-text email subject line, no emojis\",\"welcome_email\":\"Full plain-text welcome email body. Warm, professional, excited. Mention the service they purchased. Include the booking link naturally. Sign off from the account manager. No HTML. No emojis. 150-200 words.\",\"client_summary\":\"2-sentence internal summary of who this client is and what they need -- for the Slack team alert\",\"tasks\":[{\"title\":\"Task title -- short and action-oriented\",\"description\":\"One sentence explaining what needs to be done and why\",\"due_days\":1}]}\n\nTASK RULES:\n- Generate exactly 6 tasks specific to the service purchased\n- due_days is how many days from today (use 1, 3, 5, 7, 14, 30)\n- Tasks should cover: internal setup, client access provisioning, first deliverable, check-in call, mid-point review, 30-day debrief\n- Make tasks specific to the service -- not generic placeholders\n- All task titles and descriptions must be plain text, no emojis, no special characters",
        "promptType": "define"
      },
      "typeVersion": 1.4
    },
    {
      "id": "66947e93-228b-4f3b-be93-a8bbf3efb9a3",
      "name": "Claude Sonnet",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        1216,
        496
      ],
      "parameters": {
        "model": "claude-sonnet-4-6",
        "options": {
          "temperature": 0.4
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "dde84515-4157-4d05-b601-a4cdb95f998b",
      "name": "Parse Onboarding Plan",
      "type": "n8n-nodes-base.code",
      "position": [
        1392,
        304
      ],
      "parameters": {
        "jsCode": "var text = $input.first().json.text || '';\nvar cfg  = $('Configure Settings').first().json;\n\nvar defaultTasks = [\n  { title: 'Send onboarding questionnaire', description: 'Send the standard onboarding questionnaire to gather assets and access details', due_days: 1 },\n  { title: 'Set up client workspace', description: 'Create all internal tools, folders, and access for the new client', due_days: 3 },\n  { title: 'Kickoff call preparation', description: 'Prepare kickoff agenda and share with client', due_days: 5 },\n  { title: 'Deliver first milestone', description: 'Complete and deliver the first agreed deliverable', due_days: 7 },\n  { title: 'Mid-point check-in', description: 'Run a 2-week check-in call to review progress', due_days: 14 },\n  { title: '30-day results review', description: 'Run a 30-day review to assess results and plan next steps', due_days: 30 }\n];\n\nvar parsed = {\n  welcome_subject: 'Welcome to ' + cfg.agency_name,\n  welcome_email: 'Hi ' + cfg.client_name + ', welcome aboard! We are so excited to work with you. Your account manager ' + cfg.account_manager + ' will be in touch shortly. You can also book time here: ' + cfg.booking_link,\n  client_summary: cfg.client_name + ' signed for ' + cfg.service_name + '. Deal value: ' + cfg.deal_value + '.',\n  tasks: defaultTasks\n};\n\ntry {\n  var match = text.match(/\\{[\\s\\S]*\\}/);\n  if (match) {\n    var attempt = JSON.parse(match[0]);\n    if (attempt.tasks && attempt.tasks.length > 0) parsed = attempt;\n  }\n} catch (e) {}\n\nif (!parsed.tasks || parsed.tasks.length === 0) parsed.tasks = defaultTasks;\n\nvar now = new Date();\n\nreturn parsed.tasks.map(function(task, i) {\n  var dueDate = new Date(now);\n  dueDate.setDate(dueDate.getDate() + (task.due_days || (i + 1) * 5));\n  return {\n    json: Object.assign({}, cfg, {\n      welcome_subject:  parsed.welcome_subject,\n      welcome_email:    parsed.welcome_email,\n      client_summary:   parsed.client_summary,\n      all_tasks:        parsed.tasks,\n      task_title:       task.title,\n      task_description: task.description,\n      task_due_date:    dueDate.toISOString().split('T')[0],\n      task_index:       i,\n      total_tasks:      parsed.tasks.length\n    })\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "a15d1b1a-34af-463d-903e-61a644beb556",
      "name": "Create Task in GHL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1664,
        304
      ],
      "parameters": {
        "url": "={{ 'https://services.leadconnectorhq.com/contacts/' + $json.contact_id + '/tasks' }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {}
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $json.ghl_api_key }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Version",
              "value": "2021-07-28"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1517e576-18a3-4f4c-8455-084f399cb20a",
      "name": "Collect All Tasks",
      "type": "n8n-nodes-base.code",
      "position": [
        1904,
        304
      ],
      "parameters": {
        "jsCode": "var items = $input.all();\nvar first = items[0].json;\n\nvar taskLines = first.all_tasks ? first.all_tasks.slice(0, 3).map(function(t, i) {\n  return (i + 1) + '. ' + t.title + ' (day ' + t.due_days + ')';\n}).join('\\n') : 'Tasks created in GHL';\n\nreturn [{ json: Object.assign({}, first, {\n  tasks_created: items.length,\n  task_summary:  taskLines\n}) }];"
      },
      "typeVersion": 2
    },
    {
      "id": "eff887e3-3ccf-4660-ac76-d5ac28139699",
      "name": "Create Client Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2144,
        208
      ],
      "parameters": {
        "operation": "createFolder"
      },
      "typeVersion": 3
    },
    {
      "id": "6359675d-fb80-46cf-a683-654c17183ec5",
      "name": "Send Welcome Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2384,
        208
      ],
      "parameters": {
        "sendTo": "={{ $('Collect All Tasks').item.json.client_email }}",
        "message": "={{ $('Collect All Tasks').item.json.welcome_email + '\\n\\nYour dedicated workspace: ' + $json.webViewLink }}",
        "options": {},
        "subject": "={{ $('Collect All Tasks').item.json.welcome_subject }}",
        "emailType": "text"
      },
      "typeVersion": 2.1
    },
    {
      "id": "3b3f9dd2-d369-47c5-a8e2-617c6b576b7f",
      "name": "Schedule Kickoff Call",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        2624,
        208
      ],
      "parameters": {
        "end": "={{ $('Collect All Tasks').item.json.kickoff_end }}",
        "start": "={{ $('Collect All Tasks').item.json.kickoff_start }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "additionalFields": {
          "summary": "={{ 'Kickoff: ' + $('Collect All Tasks').item.json.client_name + ' - ' + $('Collect All Tasks').item.json.service_name }}",
          "attendees": "={{ $('Collect All Tasks').item.json.client_email }}",
          "description": "={{ 'Kickoff call with ' + $('Collect All Tasks').item.json.client_name + ' from ' + $('Collect All Tasks').item.json.client_company + '. Service: ' + $('Collect All Tasks').item.json.service_name }}"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "d87a20d9-c550-4877-a698-bc9e144f1fed",
      "name": "Notify Team - New Client",
      "type": "n8n-nodes-base.slack",
      "position": [
        2864,
        112
      ],
      "parameters": {
        "text": "={{ 'New client onboarded!\\n\\nClient: ' + $(\"Collect All Tasks\").item.json.client_name + '\\nCompany: ' + $(\"Collect All Tasks\").item.json.client_company + '\\nService: ' + $(\"Collect All Tasks\").item.json.service_name + '\\nDeal value: ' + $(\"Collect All Tasks\").item.json.deal_value + '\\nManager: ' + $(\"Collect All Tasks\").item.json.account_manager + '\\n\\nSummary: ' + $(\"Collect All Tasks\").item.json.client_summary + '\\n\\nFirst 3 tasks in GHL:\\n' + $(\"Collect All Tasks\").item.json.task_summary + '\\n\\nKickoff scheduled. Drive folder created.' }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Collect All Tasks').item.json.slack_channel }}"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.2
    },
    {
      "id": "5a2382f6-4171-486c-8511-1321f9c624c3",
      "name": "Tag Contact - Onboarding Started",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2864,
        304
      ],
      "parameters": {
        "url": "={{ 'https://services.leadconnectorhq.com/contacts/' + $('Collect All Tasks').item.json.contact_id }}",
        "method": "PUT",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {}
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ 'Bearer ' + $('Collect All Tasks').item.json.ghl_api_key }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Version",
              "value": "2021-07-28"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "eebf1edc-f870-418f-9075-7d7c8625374c",
      "name": "Log Onboarding",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3104,
        208
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Onboarding Started",
            "Company": "={{ $('Collect All Tasks').item.json.client_company }}",
            "Service": "={{ $('Collect All Tasks').item.json.service_name }}",
            "Timestamp": "={{ $('Collect All Tasks').item.json.timestamp }}",
            "Deal Value": "={{ $('Collect All Tasks').item.json.deal_value }}",
            "Drive Link": "={{ $('Create Client Folder').item.json.webViewLink }}",
            "Client Name": "={{ $('Collect All Tasks').item.json.client_name }}",
            "Client Email": "={{ $('Collect All Tasks').item.json.client_email }}",
            "Kickoff Date": "={{ $('Collect All Tasks').item.json.kickoff_start }}",
            "Tasks Created": "={{ $('Collect All Tasks').item.json.tasks_created }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "={{ $('Collect All Tasks').item.json.log_sheet_name }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Collect All Tasks').item.json.log_sheet_id }}"
        }
      },
      "typeVersion": 4.5
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "13c563fc-a9da-435f-8597-5c48818a8cf3",
  "connections": {
    "Claude Sonnet": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Onboarding Plan",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Collect All Tasks": {
      "main": [
        [
          {
            "node": "Create Client Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configure Settings": {
      "main": [
        [
          {
            "node": "Generate Onboarding Plan",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Task in GHL": {
      "main": [
        [
          {
            "node": "Collect All Tasks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Welcome Email": {
      "main": [
        [
          {
            "node": "Schedule Kickoff Call",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Client Folder": {
      "main": [
        [
          {
            "node": "Send Welcome Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive GHL Won Deal": {
      "main": [
        [
          {
            "node": "Configure Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Onboarding Plan": {
      "main": [
        [
          {
            "node": "Create Task in GHL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Kickoff Call": {
      "main": [
        [
          {
            "node": "Notify Team - New Client",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Onboarding Plan": {
      "main": [
        [
          {
            "node": "Parse Onboarding Plan",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Team - New Client": {
      "main": [
        [
          {
            "node": "Log Onboarding",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tag Contact - Onboarding Started": {
      "main": [
        [
          {
            "node": "Log Onboarding",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}