{
  "nodes": [
    {
      "id": "b7f942fa-c386-496b-8e4e-0cde64fc6e21",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -352,
        672
      ],
      "parameters": {
        "path": "booking",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 1
    },
    {
      "id": "e579b87f-9343-4cdb-9118-69ba16dc2cf4",
      "name": "Validate Booking Data",
      "type": "n8n-nodes-base.if",
      "position": [
        -176,
        672
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.email}}",
              "operation": "isNotEmpty"
            },
            {
              "value1": "={{$json.calendlyEventId}}",
              "operation": "isNotEmpty"
            },
            {
              "value1": "={{$json.scheduledAt}}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0fe3314f-b4ac-46d1-9773-c4ff78989b35",
      "name": "Update Airtable Lead Record",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        16,
        576
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "table": "tblLeads",
        "columns": {
          "value": {
            "Status": "Booked",
            "Timezone": "={{$json.timezone}}",
            "Booking Date": "={{$json.scheduledAt}}",
            "Last Updated": "={{$now.toISO()}}",
            "Calendly Event ID": "={{$json.calendlyEventId}}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "update"
      },
      "retryOnFail": true,
      "typeVersion": 2,
      "continueOnFail": true,
      "waitBetweenTries": 1000
    },
    {
      "id": "d82ed76b-6c44-47b5-a42f-08d407c657d7",
      "name": "Update Notion Page",
      "type": "n8n-nodes-base.notion",
      "maxTries": 3,
      "position": [
        208,
        576
      ],
      "parameters": {
        "operation": "update"
      },
      "retryOnFail": true,
      "typeVersion": 2,
      "continueOnFail": true,
      "waitBetweenTries": 1000
    },
    {
      "id": "23e035b5-6187-442b-b861-b1a37ca33968",
      "name": "Create Google Calendar Event",
      "type": "n8n-nodes-base.googleCalendar",
      "maxTries": 3,
      "position": [
        400,
        576
      ],
      "parameters": {
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "resource": "calendar",
        "operation": "createEvent"
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 1000
    },
    {
      "id": "e2dc2241-dabe-4877-97bd-39f8a2177d50",
      "name": "Schedule Daily Check",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1680,
        80
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * *"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "799b7d31-9706-4876-83ed-dc1f12460e75",
      "name": "Get Upcoming Calls (24h)",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1904,
        80
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "table": "tblLeads",
        "operation": "getAllRecords"
      },
      "typeVersion": 2
    },
    {
      "id": "b5eeea64-a4e5-4d8e-a598-9a0099f53b89",
      "name": "Mark Reminder Sent",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2352,
        80
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "table": "tblLeads",
        "columns": {
          "value": {
            "Reminder Sent": true,
            "Reminder Sent At": "={{$now.toISO()}}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "update"
      },
      "typeVersion": 2
    },
    {
      "id": "8c154308-aaf5-4873-8955-4983b1905b89",
      "name": "Notify Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        752,
        576
      ],
      "parameters": {
        "text": "=\ud83d\udcc5 **New Call Scheduled!**\n\n*Client:* {{$json.name}}\n*Email:* {{$json.email}}\n*Date:* {{DateTime.fromISO($json.scheduledAt).toFormat('EEEE, MMMM d, yyyy')}}\n*Time:* {{DateTime.fromISO($json.scheduledAt).toFormat('h:mm a ZZZZ')}}\n*Timezone:* {{$json.timezone}}\n\n<{{$('Create Google Calendar Event').item.json.htmlLink}}|View in Calendar>",
        "otherOptions": {}
      },
      "typeVersion": 2.1
    },
    {
      "id": "168d2edc-e58c-4d8c-ae24-725e992b9a89",
      "name": "Respond Error",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        16,
        768
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={{ { \"success\": false, \"error\": \"Invalid booking data\" } }}"
      },
      "typeVersion": 1
    },
    {
      "id": "34de95b5-a14d-4cd9-9021-0abe9fdb55a9",
      "name": "Validate Data",
      "type": "n8n-nodes-base.if",
      "position": [
        -96,
        112
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.email}}",
              "operation": "isNotEmpty"
            },
            {
              "value1": "={{$json.name}}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f2eda407-f187-4318-ac96-c6617de7575b",
      "name": "Enrich with Clearbit (Optional)",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Optional: Enrich lead data with Clearbit. Requires Clearbit API key.",
      "position": [
        128,
        16
      ],
      "parameters": {
        "url": "https://api.clearbit.com/v2/people/find",
        "options": {
          "timeout": 5000
        },
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "email",
              "value": "={{$json.email}}"
            }
          ]
        }
      },
      "typeVersion": 3,
      "continueOnFail": true
    },
    {
      "id": "9334be5f-22b6-4dc0-92cc-e77875ca9b9c",
      "name": "Create Airtable Record",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        352,
        16
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "table": "tblLeads",
        "operation": "append"
      },
      "retryOnFail": true,
      "typeVersion": 2,
      "waitBetweenTries": 1000
    },
    {
      "id": "73e6e988-7be0-4193-ac66-c65d189f23fc",
      "name": "Create Notion Project Page",
      "type": "n8n-nodes-base.notion",
      "maxTries": 3,
      "position": [
        576,
        16
      ],
      "parameters": {
        "title": "={{$json.name}} - {{$json.company || 'Lead'}}",
        "pageId": {
          "__rl": true,
          "mode": "id",
          "value": "notion-database-id"
        },
        "blockUi": {
          "blockValues": [
            {
              "richText": true
            },
            {
              "type": "heading_2",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            }
          ]
        },
        "options": {}
      },
      "retryOnFail": true,
      "typeVersion": 2,
      "waitBetweenTries": 1000
    },
    {
      "id": "d615acd3-73b8-4104-aa0c-2a15c9e7b7d6",
      "name": "Send Slack Notification",
      "type": "n8n-nodes-base.slack",
      "maxTries": 3,
      "position": [
        800,
        16
      ],
      "parameters": {
        "text": "=\ud83c\udfaf **New Lead Received!**\n\n*Name:* {{$json.name}}\n*Email:* {{$json.email}}\n*Company:* {{$json.company || 'Not provided'}}\n*Budget Range:* {{$json.budgetRange || 'Not specified'}}\n*Source:* {{$json.source}}\n\n*Description:*\n{{$json.description || 'No description'}}\n\n<{{$('Create Notion Project Page').item.json.url}}|View in Notion>",
        "otherOptions": {
          "includeLinkToWorkflow": false
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.1,
      "waitBetweenTries": 2000
    },
    {
      "id": "bc7c297d-beec-4076-bf15-a907a25bb5e7",
      "name": "Log Error to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        352,
        208
      ],
      "parameters": {
        "text": "=\u26a0\ufe0f **Lead Intake Workflow Error**\n\n*Error:* {{$json.error?.message || 'Unknown error'}}\n*Lead Email:* {{$('Webhook Trigger1').item.json.email}}\n*Timestamp:* {{$now.toISO()}}",
        "otherOptions": {}
      },
      "typeVersion": 2.1,
      "continueOnFail": true
    },
    {
      "id": "e58d40ec-71af-4166-9317-48d4a139bb98",
      "name": "Webhook Trigger1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -320,
        112
      ],
      "parameters": {
        "path": "lead-intake",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 1
    },
    {
      "id": "f18a2666-9f69-43c7-9604-434efda28345",
      "name": "Respond Success1",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1248,
        16
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={{ { \"success\": true, \"message\": \"Lead processed successfully\" } }}"
      },
      "typeVersion": 1
    },
    {
      "id": "73908ad8-0225-4a5a-846c-50d614d9d321",
      "name": "Respond Error1",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        128,
        208
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={{ { \"success\": false, \"error\": \"Invalid lead data\" } }}"
      },
      "typeVersion": 1
    },
    {
      "id": "8717397b-add7-4d1c-86df-52ad68ccb0f8",
      "name": "Validate Payment Data",
      "type": "n8n-nodes-base.if",
      "position": [
        1312,
        768
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.leadEmail}}",
              "operation": "isNotEmpty"
            },
            {
              "value1": "={{$json.amount}}",
              "operation": "isNotEmpty"
            },
            {
              "value1": "={{$json.stripePaymentIntent}}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "986e0f43-6a4e-4b9c-9fa7-429b372a331e",
      "name": "Mark Lead as Paid in Airtable",
      "type": "n8n-nodes-base.airtable",
      "maxTries": 3,
      "position": [
        1520,
        640
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "table": "tblLeads",
        "columns": {
          "value": {
            "Status": "Paid",
            "Payment Date": "={{$now.toISO()}}",
            "Payment Amount": "={{$json.amount / 100}}",
            "Payment Status": "Completed",
            "Priority Client": true,
            "Stripe Payment Intent": "={{$json.stripePaymentIntent}}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "update"
      },
      "retryOnFail": true,
      "typeVersion": 2,
      "waitBetweenTries": 1000
    },
    {
      "id": "d0af2821-7a24-4e76-8cb0-d1919251b915",
      "name": "Create Onboarding Checklist in Notion",
      "type": "n8n-nodes-base.notion",
      "maxTries": 3,
      "position": [
        1712,
        640
      ],
      "parameters": {
        "title": "=Onboarding - {{$('Mark Lead as Paid in Airtable').item.json.fields.Name}}",
        "pageId": {
          "__rl": true,
          "mode": "id",
          "value": "notion-onboarding-database-id"
        },
        "blockUi": {
          "blockValues": [
            {
              "type": "heading_1",
              "richText": true
            },
            {
              "richText": true
            },
            {
              "type": "heading_2",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "to_do",
              "richText": true
            },
            {
              "type": "heading_2",
              "richText": true
            },
            {
              "richText": true
            }
          ]
        },
        "options": {}
      },
      "retryOnFail": true,
      "typeVersion": 2,
      "waitBetweenTries": 1000
    },
    {
      "id": "d89eb2d7-28c0-4f3d-a2d1-67558f1813ef",
      "name": "Send WhatsApp Welcome (Optional)",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Optional: Requires Twilio WhatsApp Business API setup and phone number in lead data",
      "position": [
        2128,
        512
      ],
      "parameters": {
        "url": "https://api.twilio.com/2010-04-01/Accounts/{{$env.TWILIO_ACCOUNT_SID}}/Messages.json",
        "options": {},
        "sendBody": true,
        "authentication": "headerAuth",
        "bodyParameters": {
          "parameters": [
            {
              "name": "To",
              "value": "=whatsapp:{{$('Mark Lead as Paid in Airtable').item.json.fields.Phone}}"
            },
            {
              "name": "From",
              "value": "=whatsapp:{{$env.TWILIO_WHATSAPP_NUMBER}}"
            },
            {
              "name": "Body",
              "value": "=Hi {{$('Mark Lead as Paid in Airtable').item.json.fields.Name.split(' ')[0]}}! \ud83c\udf89\n\nYour payment has been confirmed. Welcome to your automation journey!\n\nI've sent you a detailed email with next steps. Check your inbox for \"Welcome! Your automation journey starts now\"\n\nI'll reach out within 24 hours to schedule our kickoff call.\n\nExcited to work with you!\n\n- Dhruv"
            }
          ]
        }
      },
      "typeVersion": 4.1,
      "continueOnFail": true
    },
    {
      "id": "d2bd3f37-720e-4327-bba5-6fa6c181bec6",
      "name": "Notify Slack - Payment",
      "type": "n8n-nodes-base.slack",
      "position": [
        2336,
        640
      ],
      "parameters": {
        "text": "=\ud83d\udcb0 **Payment Received!**\n\n*Client:* {{$('Mark Lead as Paid in Airtable').item.json.fields.Name}}\n*Email:* {{$json.leadEmail}}\n*Amount:* ${{$json.amount / 100}} USD\n*Payment ID:* {{$json.stripePaymentIntent}}\n\n\u2705 Onboarding checklist created\n\u2705 Welcome email sent\n{{$('Send WhatsApp Welcome (Optional)').item.json.success ? '\u2705 WhatsApp message sent' : ''}}\n\n<{{$('Create Onboarding Checklist in Notion').item.json.url}}|View Onboarding Checklist>",
        "otherOptions": {}
      },
      "typeVersion": 2.1
    },
    {
      "id": "88285d08-6f50-4717-81ab-0afaa38a8854",
      "name": "Update Financial Tracking",
      "type": "n8n-nodes-base.airtable",
      "notes": "Optional: Track payments in separate financial table",
      "position": [
        2112,
        784
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "table": "tblFinancials",
        "operation": "append"
      },
      "typeVersion": 2,
      "continueOnFail": true
    },
    {
      "id": "abcf0d32-7238-427d-a3a7-587b92aefd30",
      "name": "Webhook Trigger2",
      "type": "n8n-nodes-base.webhook",
      "position": [
        1104,
        768
      ],
      "parameters": {
        "path": "payment-success",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 1
    },
    {
      "id": "da8b5dcf-b4c1-4bf1-a734-87e81ebcb6cd",
      "name": "Respond Success2",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2544,
        640
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={{ { \"success\": true, \"message\": \"Payment processed successfully\" } }}"
      },
      "typeVersion": 1
    },
    {
      "id": "fa6d34e9-c062-480b-a3a0-d1b73392ee9d",
      "name": "Respond Error2",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1520,
        848
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={{ { \"success\": false, \"error\": \"Invalid payment data\" } }}"
      },
      "typeVersion": 1
    },
    {
      "id": "d82471a0-b77d-4760-a9fe-c6b9959bfe5e",
      "name": "Send Pre-Call Survey Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        592,
        576
      ],
      "parameters": {
        "sendTo": "={{$json.email}}",
        "message": "=Hi {{$json.name}},\n\nThanks for scheduling a time with us! To make the most of our call on {{DateTime.fromISO($json.scheduledAt).toFormat('EEEE, MMMM d')}}, could you please answer 3 quick questions?\n\n[ Link to your Survey/Typeform ]\n\nLooking forward to speaking soon,\nDhruv",
        "options": {},
        "subject": "Your call is confirmed! Quick pre-call survey",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "6286bb4f-b91f-4584-a555-10b0e0aa3b6b",
      "name": "Send 24h Reminder",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2128,
        80
      ],
      "parameters": {
        "sendTo": "={{$json.email}}",
        "message": "=Hi {{$json.Name}},\n\nJust a quick reminder that we have a call scheduled for tomorrow.\n\nTime: {{DateTime.fromISO($json['Booking Date']).toFormat('h:mm a')}} ({{$json.Timezone}})\n\nIf you need to reschedule, please let me know asap.\n\nTalk soon,\nDhruv",
        "options": {},
        "subject": "Reminder: Your call is tomorrow!",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c9ae4090-65fb-4aaf-bbf1-3fa85d1c8b54",
      "name": "Send Auto-Reply Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1024,
        16
      ],
      "parameters": {
        "sendTo": "={{$json.email}}",
        "message": "=Hi {{$json.name}},\n\nThanks for your interest in working with us! I've received your details regarding {{$json.company || 'your project'}}.\n\nI'd love to chat about how we can help. Please pick a time that works for you here:\n[ Link to your Calendly/Booking Page ]\n\nBest,\nDhruv",
        "options": {},
        "subject": "Thanks for reaching out! Let's schedule a call",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "67c7a441-e403-4152-9033-5fc292aa02da",
      "name": "Send Welcome Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1920,
        640
      ],
      "parameters": {
        "sendTo": "={{$json.email}}",
        "message": "=Hi {{$json.leadEmail}},\n\nWe have received your payment of ${{$json.amount / 100}}. Thank you for trusting us!\n\nWe have automatically created your onboarding checklist. Please access your client portal here:\n{{$('Create Onboarding Checklist in Notion').item.json.url}}\n\nLet's get started!\nDhruv",
        "options": {},
        "subject": "\ud83c\udf89 Welcome! Your automation journey starts now",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "655cf8c4-9aea-4ecb-b937-1cded256d057",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        464
      ],
      "parameters": {
        "color": 5,
        "width": 1376,
        "height": 448,
        "content": "## 2. Booking Automation\nListens for calendar events (e.g., Calendly). It validates the data, updates the Airtable lead status to \"Booked,\" creates a Google Calendar event, and emails a pre-call survey to the client."
      },
      "typeVersion": 1
    },
    {
      "id": "86898741-daa5-4dd1-bef0-53856caf1a9e",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1584,
        -32
      ],
      "parameters": {
        "color": 5,
        "width": 1008,
        "height": 336,
        "content": "## 3. Daily Reminders (Cron Job)\nRuns automatically every day at 9:00 AM. It checks Airtable for calls scheduled in the next 24 hours and sends a reminder email to prevent no-shows."
      },
      "typeVersion": 1
    },
    {
      "id": "5ed63b23-652a-4797-9405-57e1c91f0307",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -432,
        -112
      ],
      "parameters": {
        "color": 5,
        "width": 1888,
        "height": 464,
        "content": "## 1. Lead Capture & Enrichment\nCatches new leads from your website form. It enriches data via Clearbit (optional), creates the initial project page in Notion, and notifies the team via Slack."
      },
      "typeVersion": 1
    },
    {
      "id": "bf534c40-df88-414d-b1c9-3b4253cc448c",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        400
      ],
      "parameters": {
        "color": 5,
        "width": 1712,
        "height": 608,
        "content": "## 4. Payment & Onboarding\nTriggered by a successful Stripe payment. It reconciles the finance table, generates a personalized Notion Onboarding Checklist, and sends the client a welcome email and WhatsApp message."
      },
      "typeVersion": 1
    },
    {
      "id": "3075981c-6963-4878-b78f-8caba419fc68",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1200,
        32
      ],
      "parameters": {
        "width": 592,
        "height": 576,
        "content": "# \ud83d\ude80 Automate Lead Intake, Bookings & Onboarding\n\nThis workflow handles the complete agency client lifecycle without manual intervention.\n\n## How it works\n1. **Lead Intake:** Captures web form data, creates records in Airtable & Notion, and sends an auto-reply.\n2. **Booking:** Syncs Calendly events, updates status, and emails a pre-call survey.\n3. **Daily Ops:** Runs every morning to check for upcoming calls and sends 24h reminders.\n4. **Onboarding:** Triggered by payment. It marks the lead as 'Paid', generates a Notion onboarding checklist, and sends a Welcome Kit (Email + WhatsApp).\n\n## Setup Steps\n* **Credentials:** Connect Airtable, Notion, Gmail, Slack, and Stripe.\n* **Airtable:** Create a base with `tblLeads` and `tblFinancials`.\n* **Notion:** Create a Projects DB and Onboarding DB. Copy IDs into the Notion nodes.\n* **Webhooks:** Replace the 3 webhook URLs in your external tools (Form, Calendar, Payment Processor)."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Notify Slack": {
      "main": [
        []
      ]
    },
    "Validate Data": {
      "main": [
        [
          {
            "node": "Enrich with Clearbit (Optional)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond Error1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Respond Error1": {
      "main": [
        [
          {
            "node": "Log Error to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Trigger": {
      "main": [
        [
          {
            "node": "Validate Booking Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Trigger1": {
      "main": [
        [
          {
            "node": "Validate Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Trigger2": {
      "main": [
        [
          {
            "node": "Validate Payment Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send 24h Reminder": {
      "main": [
        [
          {
            "node": "Mark Reminder Sent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Welcome Email": {
      "main": [
        [
          {
            "node": "Send WhatsApp Welcome (Optional)",
            "type": "main",
            "index": 0
          },
          {
            "node": "Notify Slack - Payment",
            "type": "main",
            "index": 0
          },
          {
            "node": "Update Financial Tracking",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Notion Page": {
      "main": [
        [
          {
            "node": "Create Google Calendar Event",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Daily Check": {
      "main": [
        [
          {
            "node": "Get Upcoming Calls (24h)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Auto-Reply Email": {
      "main": [
        [
          {
            "node": "Respond Success1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Booking Data": {
      "main": [
        [
          {
            "node": "Update Airtable Lead Record",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Payment Data": {
      "main": [
        [
          {
            "node": "Mark Lead as Paid in Airtable",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond Error2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Airtable Record": {
      "main": [
        [
          {
            "node": "Create Notion Project Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Slack - Payment": {
      "main": [
        [
          {
            "node": "Respond Success2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Slack Notification": {
      "main": [
        [
          {
            "node": "Send Auto-Reply Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Upcoming Calls (24h)": {
      "main": [
        [
          {
            "node": "Send 24h Reminder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Financial Tracking": {
      "main": [
        [
          {
            "node": "Notify Slack - Payment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Notion Project Page": {
      "main": [
        [
          {
            "node": "Send Slack Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Pre-Call Survey Email": {
      "main": [
        [
          {
            "node": "Notify Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Airtable Lead Record": {
      "main": [
        [
          {
            "node": "Update Notion Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Google Calendar Event": {
      "main": [
        [
          {
            "node": "Send Pre-Call Survey Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mark Lead as Paid in Airtable": {
      "main": [
        [
          {
            "node": "Create Onboarding Checklist in Notion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enrich with Clearbit (Optional)": {
      "main": [
        [
          {
            "node": "Create Airtable Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send WhatsApp Welcome (Optional)": {
      "main": [
        [
          {
            "node": "Notify Slack - Payment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Onboarding Checklist in Notion": {
      "main": [
        [
          {
            "node": "Send Welcome Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}