{
  "name": "Automate WhatsApp lead follow-ups and nurturing with WATI, Airtable and OpenAI",
  "nodes": [
    {
      "id": "0c72eca1-6a9b-4160-953e-2db5fd3a68fd",
      "name": "📥 Pipeline A · Campaign Setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        640
      ],
      "parameters": {
        "width": 880,
        "height": 448,
        "content": " *(enroll path)*\n`Parse Enroll Command` *(code — extracts phone/name/company/campaignId, assigns A/B variant randomly)*.`Airtable – Create Contact` *(appends row to Contacts table)*.`WATI – Confirm En"
      }
    },
    {
      "id": "ccc5979b-edeb-4ffb-9eaa-409e714736e3",
      "name": "📊 Pipeline D · Analytics Dashboard",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        1168
      ],
      "parameters": {
        "width": 968,
        "height": 384,
        "content": "Analytics Dashboard\n**Flow:**\n*(routed from Command Router when sender types `report`)*.`Airtable – Read All FollowUps`*(lists all FollowUps records)*.`Airtable – Read All Engagement`*(lists all Engag"
      }
    },
    {
      "id": "c959b458-4f23-42a2-8cda-45002cce6fad",
      "name": "Wati Trigger",
      "type": "n8n-nodes-wati.watiTrigger",
      "position": [
        -480,
        1472
      ]
    },
    {
      "id": "37f201d3-163c-40c6-b8a5-0e669c853bb6",
      "name": "Command Router",
      "type": "n8n-nodes-base.switch",
      "position": [
        -64,
        1440
      ]
    },
    {
      "id": "a6823936-61cb-484f-9865-fe4030a02c0d",
      "name": "Parse Enroll Command",
      "type": "n8n-nodes-base.code",
      "position": [
        544,
        816
      ]
    },
    {
      "id": "d823f64e-d2a3-47df-85cd-9024a154f3e7",
      "name": "Airtable – Create Contact",
      "type": "n8n-nodes-base.airtable",
      "position": [
        800,
        816
      ]
    },
    {
      "id": "1ed3b49c-4e4e-48d2-af08-86c0f85516da",
      "name": "WATI – Confirm Enrollment",
      "type": "n8n-nodes-wati.wati",
      "position": [
        1040,
        736
      ]
    },
    {
      "id": "73444670-14cd-4e79-9c26-c8eb0770e60a",
      "name": "WATI – Send Welcome to Contact",
      "type": "n8n-nodes-wati.wati",
      "position": [
        1056,
        912
      ]
    },
    {
      "id": "3bb67842-3006-4c5d-a96c-8e1d18857696",
      "name": "Parse Pause Command",
      "type": "n8n-nodes-base.code",
      "position": [
        576,
        1712
      ]
    },
    {
      "id": "b71c7a1f-54d3-48c5-8a7f-eac1a84418c4",
      "name": "Airtable – Pause Contact",
      "type": "n8n-nodes-base.airtable",
      "position": [
        784,
        1712
      ]
    },
    {
      "id": "65c89e37-a59d-4090-91fa-69d0976c7698",
      "name": "WATI – Confirm Pause",
      "type": "n8n-nodes-wati.wati",
      "position": [
        992,
        1712
      ]
    },
    {
      "id": "ac02ba19-d670-4539-95ec-819fd9766525",
      "name": "Schedule Trigger – 9AM Daily",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        2576,
        1504
      ]
    },
    {
      "id": "d344cbf1-10db-4904-beb8-a7e71e7d3755",
      "name": "Airtable – Read Active Contacts",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2816,
        1504
      ]
    },
    {
      "id": "f9ec16ae-ba7e-45a6-a066-ed29e252a254",
      "name": "Filter Due Follow-ups",
      "type": "n8n-nodes-base.code",
      "position": [
        3056,
        1504
      ]
    },
    {
      "id": "fe514b6c-4747-48a3-a1c8-8d2c44461c87",
      "name": "Airtable – Read Campaign",
      "type": "n8n-nodes-base.airtable",
      "position": [
        3296,
        1504
      ]
    },
    {
      "id": "cf1115a6-1b14-4b9b-ae6f-829a48967cc5",
      "name": "OpenAI – Personalise Follow-up Message",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3536,
        1504
      ]
    },
    {
      "id": "d4108fc2-e81a-4203-a3f9-33974c08824e",
      "name": "Build Follow-up Row",
      "type": "n8n-nodes-base.code",
      "position": [
        3776,
        1504
      ]
    },
    {
      "id": "f04f5e61-95e0-4d93-a8e6-ff1342f89d77",
      "name": "Airtable – Log Follow-up Sent",
      "type": "n8n-nodes-base.airtable",
      "position": [
        4016,
        1504
      ]
    },
    {
      "id": "eb128198-faaa-4640-8cb1-872504057e8e",
      "name": "Airtable – Update Contact After Send",
      "type": "n8n-nodes-base.airtable",
      "position": [
        4256,
        1504
      ]
    },
    {
      "id": "94ca322c-8279-4335-9778-5b4562c85e75",
      "name": "WATI – Send Follow-up",
      "type": "n8n-nodes-wati.wati",
      "position": [
        4496,
        1504
      ]
    },
    {
      "id": "7d1ee1f8-0451-4a5a-9e6c-0532a9532650",
      "name": "Airtable – Find Contact by Phone",
      "type": "n8n-nodes-base.airtable",
      "position": [
        528,
        2384
      ]
    },
    {
      "id": "83d0dfdc-00aa-4d00-a94f-875ecb2d17cd",
      "name": "Find Contact Record",
      "type": "n8n-nodes-base.code",
      "position": [
        784,
        2384
      ]
    },
    {
      "id": "837581e7-94bf-4f5f-8c79-c76a82a11b51",
      "name": "OpenAI – Detect Reply Intent",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1024,
        2384
      ]
    },
    {
      "id": "e528ff43-3c9d-4964-a67c-8bdb81664558",
      "name": "Process Reply & Build Log",
      "type": "n8n-nodes-base.code",
      "position": [
        1280,
        2384
      ]
    },
    {
      "id": "9d4e616a-535e-4df7-9877-8717920c3b32",
      "name": "Airtable – Log Engagement",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1456,
        2384
      ]
    },
    {
      "id": "64560c52-0b22-4ac1-b8fa-2f45a5c2cf91",
      "name": "Airtable – Update Contact Status",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1680,
        2384
      ]
    },
    {
      "id": "aa55efda-bd57-4a62-b603-2900e8226366",
      "name": "WATI – Send Reply Acknowledgement",
      "type": "n8n-nodes-wati.wati",
      "position": [
        1904,
        2384
      ]
    },
    {
      "id": "9d83a298-23b8-4254-b6f6-db9a325ce5d7",
      "name": "Airtable – Read All Follow-ups",
      "type": "n8n-nodes-base.airtable",
      "position": [
        560,
        1328
      ]
    },
    {
      "id": "21cf8238-68c0-4c61-b099-d3a4edd91682",
      "name": "Airtable – Read All Engagement",
      "type": "n8n-nodes-base.airtable",
      "position": [
        736,
        1328
      ]
    },
    {
      "id": "f7cca15c-1900-4555-b489-9950fc335f41",
      "name": "Build Analytics Report",
      "type": "n8n-nodes-base.code",
      "position": [
        944,
        1328
      ]
    },
    {
      "id": "ffa4b9e0-0301-4d52-b919-23ba426106e9",
      "name": "WATI – Send Analytics Report",
      "type": "n8n-nodes-wati.wati",
      "position": [
        1200,
        1328
      ]
    },
    {
      "id": "ba01ef3f-db26-4af1-b0ad-754a96b5d4f6",
      "name": "Pipeline B Guide",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2544,
        1264
      ],
      "parameters": {
        "width": 2168,
        "height": 448,
        "content": "### ⏰ Pipeline B: Follow-up Scheduler\n**Nodes:** `9AM Trigger` → `Read Contacts` → `OpenAI Message` → `Update Contact`.\n\n**Function:**\n1. **Filtering:** Lists all Airtable contacts where `Status=Activ"
      }
    },
    {
      "id": "93b4c274-97a6-4c09-b68a-b5bbb0177023",
      "name": "Pipeline C Guide",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        2064
      ],
      "parameters": {
        "width": 1592,
        "height": 640,
        "content": "Engagement Tracker\n**Nodes:** `Reply Trigger` → `Find Record` → `OpenAI Intent` → `Log Engagement`.\n\n**Function:**\n1. **Identification:** Matches the sender's WhatsApp number to an existing lead in Ai"
      }
    },
    {
      "id": "f21df589-0287-4a0c-8dac-0d47b427e737",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        1600
      ],
      "parameters": {
        "width": 944,
        "height": 400,
        "content": "Branch: Pause Outreach\nHow it works:Command Parsing: Extracts the target phone number from the WhatsApp command and prepares the confirmation text.\nCRM Update: Updates the lead's status to 'Paused' in"
      }
    },
    {
      "id": "94279b21-975b-49dc-8391-dadd8c8dbc28",
      "name": "📌 Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1696,
        -32
      ],
      "parameters": {
        "width": 820,
        "height": 680,
        "content": "📣 WhatsApp Follow-up Campaign Manager\nWorkflow Purpose\nAutomates personalized outreach via WATI, lead management in Airtable, and AI-driven messaging with OpenAI. Supports A/B testing and real-time pe"
      }
    },
    {
      "id": "d3565254-6cb9-4c8a-b442-b5997c6f9c09",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        992
      ],
      "parameters": {
        "width": 880,
        "height": 1120,
        "content": "Branch: Command Routing\nNodes: Wati Trigger → Command Router\n\nHow it works:\n\nCentral Intake: The Wati Trigger listens for all incoming WhatsApp messages and passes the text to the router.\n\nIntent Dete"
      }
    }
  ],
  "connections": {
    "Wati Trigger": {
      "main": [
        [
          {
            "node": "Command Router",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Command Router": {
      "main": [
        [
          {
            "node": "Parse Enroll Command",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Airtable – Read All Follow-ups",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Parse Pause Command",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Airtable – Find Contact by Phone",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Follow-up Row": {
      "main": [
        [
          {
            "node": "Airtable – Log Follow-up Sent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Contact Record": {
      "main": [
        [
          {
            "node": "OpenAI – Detect Reply Intent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Pause Command": {
      "main": [
        [
          {
            "node": "Airtable – Pause Contact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Enroll Command": {
      "main": [
        [
          {
            "node": "Airtable – Create Contact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Due Follow-ups": {
      "main": [
        [
          {
            "node": "Airtable – Read Campaign",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Analytics Report": {
      "main": [
        [
          {
            "node": "WATI – Send Analytics Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Reply & Build Log": {
      "main": [
        [
          {
            "node": "Airtable – Log Engagement",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Pause Contact": {
      "main": [
        [
          {
            "node": "WATI – Confirm Pause",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Read Campaign": {
      "main": [
        [
          {
            "node": "OpenAI – Personalise Follow-up Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Create Contact": {
      "main": [
        [
          {
            "node": "WATI – Confirm Enrollment",
            "type": "main",
            "index": 0
          },
          {
            "node": "WATI – Send Welcome to Contact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Log Engagement": {
      "main": [
        [
          {
            "node": "Airtable – Update Contact Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI – Detect Reply Intent": {
      "main": [
        [
          {
            "node": "Process Reply & Build Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger – 9AM Daily": {
      "main": [
        [
          {
            "node": "Airtable – Read Active Contacts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Log Follow-up Sent": {
      "main": [
        [
          {
            "node": "Airtable – Update Contact After Send",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Read All Engagement": {
      "main": [
        [
          {
            "node": "Build Analytics Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Read All Follow-ups": {
      "main": [
        [
          {
            "node": "Airtable – Read All Engagement",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Read Active Contacts": {
      "main": [
        [
          {
            "node": "Filter Due Follow-ups",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Find Contact by Phone": {
      "main": [
        [
          {
            "node": "Find Contact Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Update Contact Status": {
      "main": [
        [
          {
            "node": "WATI – Send Reply Acknowledgement",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable – Update Contact After Send": {
      "main": [
        [
          {
            "node": "WATI – Send Follow-up",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI – Personalise Follow-up Message": {
      "main": [
        [
          {
            "node": "Build Follow-up Row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}