{
  "name": "LinkedIn Timing-Signal to CRM Task",
  "nodes": [
    {
      "parameters": {
        "content": "## Setup\n1. Paste your Apollo API key into \"Enrich the Signal\".\n2. Paste your HubSpot private app token into \"Create Task in HubSpot\".\n3. Paste a Slack incoming webhook URL into \"Notify Rep\".\n4. Trigger this from a LinkedIn Sales Navigator saved-search alert (via Zapier/Make relay, or manually) whenever someone at a target account changes jobs.\n\nFrom Chapter 2: a job change is a timing signal, not a reason to pitch on its own. This workflow only creates a task to research and connect the signal to a real problem hypothesis before anyone reaches out.",
        "height": 320,
        "width": 400
      },
      "id": "b1c2d3e4-1111-4a2b-9c3a-000000000001",
      "name": "Setup Notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [-200, 60]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "linkedin-timing-signal",
        "responseMode": "onReceived",
        "options": {}
      },
      "id": "b1c2d3e4-1111-4a2b-9c3a-000000000002",
      "name": "Timing Signal Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [-200, 400]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.apollo.io/v1/people/match",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            { "name": "Content-Type", "value": "application/json" },
            { "name": "X-Api-Key", "value": "YOUR_APOLLO_API_KEY" }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            { "name": "name", "value": "={{ $json.name }}" },
            { "name": "linkedin_url", "value": "={{ $json.linkedin_url }}" }
          ]
        },
        "options": {}
      },
      "id": "b1c2d3e4-1111-4a2b-9c3a-000000000003",
      "name": "Enrich the Signal",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "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": "=Timing signal: {{ $json.person.first_name }} {{ $json.person.last_name }} changed roles at {{ $json.person.organization?.name }}" },
            { "name": "properties.hs_task_body", "value": "Research the new role before reaching out. Connect this to a specific problem hypothesis, don't lead with congratulations alone." },
            { "name": "properties.hs_task_status", "value": "NOT_STARTED" }
          ]
        },
        "options": {}
      },
      "id": "b1c2d3e4-1111-4a2b-9c3a-000000000004",
      "name": "Create Task in HubSpot",
      "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 timing signal logged as a task: {{ $json.properties?.hs_task_subject }}" }
          ]
        },
        "options": {}
      },
      "id": "b1c2d3e4-1111-4a2b-9c3a-000000000005",
      "name": "Notify Rep",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [520, 400]
    }
  ],
  "connections": {
    "Timing Signal Webhook": { "main": [[{ "node": "Enrich the Signal", "type": "main", "index": 0 }]] },
    "Enrich the Signal": { "main": [[{ "node": "Create Task in HubSpot", "type": "main", "index": 0 }]] },
    "Create Task in HubSpot": { "main": [[{ "node": "Notify Rep", "type": "main", "index": 0 }]] }
  },
  "active": false,
  "settings": { "executionOrder": "v1" },
  "pinData": {}
}
