{
  "name": "New Customer Onboarding Kickoff",
  "nodes": [
    {
      "parameters": {
        "content": "## Setup\n1. In HubSpot, create a workflow that fires a webhook when a deal moves to Closed Won, pointed at this workflow's Webhook URL.\n2. Paste your HubSpot private app token into \"Create Onboarding Task\".\n3. Paste a Slack incoming webhook URL into \"Notify CS\".\n\nFrom Chapter 7: put your first customer check-in date on the calendar the same day you close the deal, not sometime after onboarding starts.",
        "height": 300,
        "width": 400
      },
      "id": "f5a6b7c8-5555-4a2b-9c3a-000000000001",
      "name": "Setup Notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [-200, 60]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "onboarding-kickoff",
        "responseMode": "onReceived",
        "options": {}
      },
      "id": "f5a6b7c8-5555-4a2b-9c3a-000000000002",
      "name": "Deal Closed Won Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [-200, 400]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            { "name": "checkinDate", "value": "={{ $now.plus({ days: 7 }).toISODate() }}", "type": "string" },
            { "name": "dealName", "value": "={{ $json.dealname }}", "type": "string" }
          ]
        },
        "options": {}
      },
      "id": "f5a6b7c8-5555-4a2b-9c3a-000000000003",
      "name": "Set Check-in Date",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [40, 400]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.hubapi.com/crm/v3/objects/tasks",
        "sendHeaders": true,
        "headerParameters": { "parameters": [{ "name": "Content-Type", "value": "application/json" }, { "name": "Authorization", "value": "Bearer YOUR_HUBSPOT_PRIVATE_APP_TOKEN" }] },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            { "name": "properties.hs_task_subject", "value": "=First value check-in: {{ $json.dealName }}" },
            { "name": "properties.hs_task_body", "value": "Confirm the customer has reached first value, per the plan agreed at close. Not a generic check-in, a specific milestone check." },
            { "name": "properties.hs_timestamp", "value": "={{ $json.checkinDate }}" }
          ]
        },
        "options": {}
      },
      "id": "f5a6b7c8-5555-4a2b-9c3a-000000000004",
      "name": "Create Onboarding Task",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [280, 400]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "YOUR_SLACK_INCOMING_WEBHOOK_URL",
        "sendBody": true,
        "bodyParameters": { "parameters": [{ "name": "text", "value": "=New customer: {{ $json.dealName }}. First-value check-in scheduled for {{ $json.checkinDate }}." }] },
        "options": {}
      },
      "id": "f5a6b7c8-5555-4a2b-9c3a-000000000005",
      "name": "Notify CS",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [520, 400]
    }
  ],
  "connections": {
    "Deal Closed Won Webhook": { "main": [[{ "node": "Set Check-in Date", "type": "main", "index": 0 }]] },
    "Set Check-in Date": { "main": [[{ "node": "Create Onboarding Task", "type": "main", "index": 0 }]] },
    "Create Onboarding Task": { "main": [[{ "node": "Notify CS", "type": "main", "index": 0 }]] }
  },
  "active": false,
  "settings": { "executionOrder": "v1" },
  "pinData": {}
}
