AutomationFlowsSlack & Telegram › Ai-powered Cold Calling Automation with Vapi.ai, Gpt-4o & Google Sheets

Ai-powered Cold Calling Automation with Vapi.ai, Gpt-4o & Google Sheets

ByAmit Mehta @amitswba on n8n.io

Transform your lead list into an AI-powered calling machine. This workflow automates your entire cold calling process using Vapi's conversational AI to initiate calls, qualify leads, capture detailed insights, and manage intelligent follow-ups - achieving 10x more calls than…

Event trigger★★★★★ complexity38 nodesGoogle SheetsHTTP RequestSlack
Slack & Telegram Trigger: Event Nodes: 38 Complexity: ★★★★★ Added:

This workflow corresponds to n8n.io template #5008 — we link there as the canonical source.

This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "w8kzaOLDAa5IlK5X",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Cold calling loop",
  "tags": [
    {
      "id": "BNIuz01albAGQ6Q7",
      "name": "no-webhook",
      "createdAt": "2025-06-05T10:07:49.327Z",
      "updatedAt": "2025-06-05T10:07:49.327Z"
    },
    {
      "id": "Mf7YWG1wbOwM8v1P",
      "name": "vapi",
      "createdAt": "2025-06-04T10:12:06.322Z",
      "updatedAt": "2025-06-04T10:12:06.322Z"
    },
    {
      "id": "VrzKqoq2nlpPmWs2",
      "name": "webhook",
      "createdAt": "2025-06-05T10:40:41.083Z",
      "updatedAt": "2025-06-05T10:40:41.083Z"
    },
    {
      "id": "kfm3hRQJIOK29QrK",
      "name": "cold-calling",
      "createdAt": "2025-06-04T10:12:06.289Z",
      "updatedAt": "2025-06-04T10:12:06.289Z"
    }
  ],
  "nodes": [
    {
      "id": "sticky-note-1",
      "name": "Sticky Note - Start",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1660,
        1775
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-note-2",
      "name": "Sticky Note - Lead Retrieval",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1490,
        2075
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-note-3",
      "name": "Sticky Note - Retry Logic",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1220,
        1675
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-note-4",
      "name": "Sticky Note - Call Process",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -600,
        1075
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-note-5",
      "name": "Sticky Note - Scheduled Check",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1660,
        2810
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-note-6",
      "name": "Sticky Note - Results Processing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -600,
        2435
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-note-7",
      "name": "Sticky Note - Notifications",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -830,
        1575
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-note-8",
      "name": "Sticky Note - Workflow Features",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        1475
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "c1f5453a-fb9e-473d-ac37-80c7777364c2",
      "name": "Get Leads from Sheet1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1140,
        1875
      ],
      "parameters": {},
      "typeVersion": 4.4
    },
    {
      "id": "aca0ff2c-b362-47c3-817e-fe42c6cc0b85",
      "name": "Update Status - Calling1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        400,
        1775
      ],
      "parameters": {},
      "typeVersion": 4.4
    },
    {
      "id": "ea8964c4-802e-4fe8-9ae9-f52c97d4dfac",
      "name": "When clicking 'Test workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1360,
        1875
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "81648e86-b214-461a-a15e-b9c50c52c932",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        -920,
        1875
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "d0daea30-3077-418a-be6b-e3bf13aed389",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        180,
        1675
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "4db18eeb-911f-4376-8b0a-0be54abcabd2",
      "name": "Get Call Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -480,
        2735
      ],
      "parameters": {},
      "typeVersion": 4
    },
    {
      "id": "3ee501a8-7067-47fd-b090-82311e62a980",
      "name": "Get Leads from Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1140,
        2910
      ],
      "parameters": {},
      "typeVersion": 4.4
    },
    {
      "id": "0498ef4c-874d-4a55-bab9-3776f3718018",
      "name": "Update Status - Calling",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        180,
        2635
      ],
      "parameters": {},
      "typeVersion": 4.4
    },
    {
      "id": "e359ca54-8a46-4046-b4aa-014b96f1fa6e",
      "name": "Pending",
      "type": "n8n-nodes-base.if",
      "position": [
        -700,
        1475
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "c4cdbd85-0144-4d51-9ab3-44beb10bdc93",
      "name": "Retry",
      "type": "n8n-nodes-base.if",
      "position": [
        -480,
        1775
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "6d71e12f-8177-4771-b1e5-e943de2255e9",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -260,
        1775
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "0458820e-61c1-4617-bc4c-48a7ca62bf69",
      "name": "Update Status - Calling2",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        180,
        1375
      ],
      "parameters": {},
      "typeVersion": 4.4
    },
    {
      "id": "f2c8bc74-ea7f-47de-b340-5568a630d1bd",
      "name": "HTTP Request1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -40,
        1300
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "577a6e93-a867-4b2c-ada2-04016c1ef7a5",
      "name": "Loop Over Items1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -480,
        1375
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "21e246fd-8171-4b8a-b66f-81c6614de380",
      "name": "Update Status - Calling3",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -480,
        2375
      ],
      "parameters": {},
      "typeVersion": 4.4
    },
    {
      "id": "4bece131-551d-4e27-a80d-f36e644e9dae",
      "name": "Loop Over Items2",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -700,
        2325
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "c45f0732-ffec-47f5-9153-a7544916e49d",
      "name": "Loop Over Items3",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -700,
        2810
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "6e9c15e9-d2d8-439f-b5c2-6986c3290b18",
      "name": "If2",
      "type": "n8n-nodes-base.if",
      "position": [
        -260,
        2735
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "15a70bb7-ae86-4607-9be3-dc696938bbda",
      "name": "Edit Fields2",
      "type": "n8n-nodes-base.set",
      "position": [
        -40,
        2635
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "fd452dba-cfba-4041-b0cc-64d2a46fe960",
      "name": "Update Status - for Missed call",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        180,
        2835
      ],
      "parameters": {},
      "typeVersion": 4.4
    },
    {
      "id": "7d391405-0284-4320-9993-c798eac651a2",
      "name": "If4",
      "type": "n8n-nodes-base.if",
      "position": [
        -700,
        1875
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "671fe24d-dc5f-4c40-a417-54e2cc0ad407",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        400,
        2810
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "886b3685-041d-499a-b9f3-56904f11bd27",
      "name": "If5",
      "type": "n8n-nodes-base.if",
      "position": [
        -920,
        2910
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "7b34b530-4f4f-4d84-8033-d8b02d51df0a",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1360,
        2910
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "68be2965-c14c-43c1-bde3-0b8dd588ab19",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        -480,
        1975
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "823bc807-cdcd-4e39-95de-ce6fe429e5d4",
      "name": "Slack1",
      "type": "n8n-nodes-base.slack",
      "position": [
        -480,
        1575
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "51e38bec-66da-4b97-b03c-044e6521e162",
      "name": "Slack2",
      "type": "n8n-nodes-base.slack",
      "position": [
        -480,
        2175
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "2e7df5a3-2596-478f-a083-b1b14bf66ff8",
      "name": "Slack3",
      "type": "n8n-nodes-base.slack",
      "position": [
        -700,
        3010
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "24532380-147f-4e6e-8d7f-bb97498c78fd",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        -40,
        1675
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "a9dc0fb3-2697-477a-b97d-ba09a297bda0",
      "name": "Wait1",
      "type": "n8n-nodes-base.wait",
      "position": [
        -260,
        1300
      ],
      "parameters": {},
      "typeVersion": 1.1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "aa19a603-1f5a-4438-ac20-c273bf478fec",
  "connections": {
    "If1": {
      "main": [
        [
          {
            "node": "Pending",
            "type": "main",
            "index": 0
          },
          {
            "node": "If4",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Over Items2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If2": {
      "main": [
        [
          {
            "node": "Edit Fields2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Status - for Missed call",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If4": {
      "main": [
        [
          {
            "node": "Retry",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If5": {
      "main": [
        [
          {
            "node": "Loop Over Items3",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Slack3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Loop Over Items3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retry": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait1": {
      "main": [
        [
          {
            "node": "HTTP Request1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pending": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Slack1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields2": {
      "main": [
        [
          {
            "node": "Update Status - Calling",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Update Status - Calling1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Call Data": {
      "main": [
        [
          {
            "node": "If2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request1": {
      "main": [
        [
          {
            "node": "Update Status - Calling2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [],
        [
          {
            "node": "Wait1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items2": {
      "main": [
        [
          {
            "node": "Slack2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Status - Calling3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items3": {
      "main": [
        [],
        [
          {
            "node": "Get Call Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get Leads from Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Leads from Sheet": {
      "main": [
        [
          {
            "node": "If5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Leads from Sheet1": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Status - Calling": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Status - Calling1": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Status - Calling2": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Status - Calling3": {
      "main": [
        [
          {
            "node": "Loop Over Items2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking 'Test workflow'": {
      "main": [
        [
          {
            "node": "Get Leads from Sheet1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Status - for Missed call": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Transform your lead list into an AI-powered calling machine. This workflow automates your entire cold calling process using Vapi's conversational AI to initiate calls, qualify leads, capture detailed insights, and manage intelligent follow-ups - achieving 10x more calls than…

Source: https://n8n.io/workflows/5008/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

This workflow collects a blog brief via an n8n form, uses Anthropic Claude to generate an outline and write each section, saves both outline and article as formatted Google Docs in Google Drive, then

Form Trigger, Google Sheets, HTTP Request +2
Slack & Telegram

This workflow runs a SEEK.com.au job search via Apify on a daily schedule or on-demand form submission, deduplicates new listings, and routes results to Google Sheets, Airtable, a webhook endpoint, an

HTTP Request, Google Sheets, Airtable +5
Slack & Telegram

Type in Slack. Walk away. Get a professional PDF report and a structured Excel fix sheet delivered to Google Drive and posted back in your Slack thread — fully automated, zero manual work.

Compression, HTTP Request, Google Drive +3
Slack & Telegram

This workflow is essential for dropshippers, e-commerce store owners, and anyone looking to quickly import product catalogs from specific websites into their Shopify store.

Shopify, Slack, HTTP Request +2
Slack & Telegram

Expenses Tracker (video). Uses httpRequest, splitInBatches, googleSheets, googleDrive. Event-driven trigger; 21 nodes.

HTTP Request, Google Sheets, Google Drive +2