# Trigger AI Voice Calls From Google Sheets (n8n Template, 2026)

> A ready n8n template to trigger AI voice calls from Google Sheets — read contacts, place calls via the voice agent API, and write outcomes back to the sheet. Step by step.

Source: https://edesy.in/blog/trigger-ai-voice-calls-from-google-sheets-n8n-2026

A Google Sheet is the simplest "CRM" most teams already have — a list of names and numbers. With **n8n** and a voice agent API, that sheet becomes an outbound calling campaign: read the contacts, place AI voice calls, and write the outcome back to the sheet automatically. No code.

Here's the ready **n8n template** and how to set it up.

## What the template does

The **Google Sheets Campaign** template wires up this flow in n8n:

1. **Schedule trigger** — runs the workflow on an interval (e.g. hourly during calling hours).
2. **Read contacts** — pulls rows from your Google Sheet.
3. **Filter** — selects only the rows that still need a call (e.g. status is blank).
4. **Batch** — processes contacts in controlled batches so you don't dial everyone at once.
5. **Initiate call** — calls the voice agent API for each contact.
6. **Update the sheet** — writes the call result back to the row.

## Before you start

You'll need:

- An **n8n** instance (cloud or self-hosted)
- A Google account connected to n8n
- A voice agent and an **API key** from your dashboard (**Settings → API Keys**, format `vp_live_...`)

## Setup

### 1. Add your API key as an n8n credential
In n8n: **Settings → Credentials → Add Credential → Header Auth**. Set the header name to `Authorization` and the value to `Bearer vp_live_your_api_key`.

### 2. Connect Google Sheets
Add your Google Sheets credential in n8n and point the **Read** node at your campaign spreadsheet and sheet (e.g. a `Contacts` tab with `name`, `phone`, and a `status` column).

### 3. Place the call
The call is a single **HTTP Request** to the platform API:

```
POST https://voice-agent.edesy.in/api/initiate-call
Authorization: Bearer vp_live_your_api_key
Content-Type: application/json

{
  "phone_number": "+919876543210",
  "agent_id": 123,
  "variables": { "customer_name": "Asha", "order_id": "ORD-12345" }
}
```

The `variables` are passed into your agent's prompt, so each call is personalized from the sheet row.

### 4. Write the result back
The final Google Sheets node updates the contact's row so the next run skips it — that's what makes the campaign idempotent.

## Why this is useful

- **No CRM required** — your sheet is the source of truth.
- **Personalized at scale** — every call uses that row's variables.
- **Self-managing** — the status write-back means you can leave it running on a schedule.

For triggering calls from a real CRM instead, see [auto-call new HubSpot leads with a voice agent](https://edesy.in/blog/trigger-ai-voice-calls-from-hubspot-n8n-2026), and the broader [voice AI + CRM integration guide](https://edesy.in/blog/how-to-integrate-voice-ai-crm). For the underlying API and webhooks, see the [voice AI API & webhooks guide](https://edesy.in/blog/voice-ai-api-webhooks-integration-guide).

## Get the template

Grab an API key and the n8n template on the [voice agent API](https://edesy.in/voice-agent-api) page, or build the whole campaign on the [Edesy voice AI platform](https://edesy.in/voice-ai-platform).

**[Start calling from Google Sheets →](https://edesy.in/voice-agent-api)**

## Related reading

- [Speed to lead: call new leads within a minute](https://edesy.in/blog/speed-to-lead-ai-callback-new-leads-2026)
- [Pipedrive voice bot: auto-call new leads](https://edesy.in/blog/pipedrive-ai-voice-agent-integration-2026)
- [Send AI call results to Google Sheets](https://edesy.in/blog/send-ai-call-results-to-google-sheets-2026)
- [Blank sheet columns after AI calls? Fix it](https://edesy.in/blog/ai-call-data-blank-google-sheets-columns-fix-2026)
