This n8n automation connects your Google Sheets to Vapi, enabling you to automatically call new contacts as soon as their information is added to your spreadsheet. Instantly reach out with a personalized voice call from a Vapi AI assistant, based on any event that adds a new row to your sheet.
🧾 Requirements
Google Sheets
- Google Sheets credentials enabled and tested in n8n.
- A table in your Google Sheet formatted as follows:
Required Columns & Data Types
Column Name |
Example Value |
Data Type |
Notes |
phone_number |
+11234567890 |
Text (String) |
Must include the + and country code, no spaces or dashes. Mandatory for workflow. |
(optional) |
first_name |
John |
Text (String) |
(optional) |
email |
[email protected] |
Text (String) |
(additional) |
Any extra info |
|
|
- Ensure all columns contain data in plain text format.
- Phone number field must never be empty and follow the E.164 international format:
+
+ country code + phone number.
Vapi
- A Vapi account with credit.
- A connected phone number (to originate calls).
- An assistant (AI voice agent) created and ready to make calls.
- Your Vapi API key.
🔗 Useful Link
🛠️ Comprehensive Setup Instructions
1. Prepare Your Google Sheet
- Create a Google Sheet with the required column names as listed above.
- Ensure your
phone_number
column is correctly formatted (international format, no spaces).
- Optionally, add columns such as
first_name
, email
, or any field your workflow should use.
2. Set Up Google Sheets Credentials in n8n
- In n8n, go to "Credentials" and create Google Sheets credentials.
- Authenticate with your Google account and test the connection.
3. Configure the n8n Workflow
- Add a Google Sheets Trigger node:
- Set trigger mode to "New Row".
- Select your Google Sheet and worksheet.
- Add a Wait node:
- Configure a wait time (e.g., 4 minutes) between trigger and next action.
4. Map & Set Vapi Fields
- Add a Set node:
- Create fields required by the Vapi API:
phone_number_id
: Copy from your Vapi dashboard.
assistant_id
: Use the ID of your AI assistant.
api_key
: Store securely (see n8n secret management).
to
: Set as the Google Sheet's phone_number
value.
Example: {{ $json["phone_number"] }}
- (Optional) Map extra fields from Sheet (e.g.,
first_name
, email
) for personalized calls.
5. Add the HTTP Request to Vapi
- Add an HTTP Request node:
- Method:
POST
- URL:
https://api.vapi.ai/call
- Body parameters: Use all mapped fields from previous step.
6. Test the Workflow
- Add a new row to your Google Sheet.
- Verify that, after the wait period, Vapi attempts the call and uses personalized information.
🎨 Customization Options
- Personalize Calls Further:
Add additional columns like first_name
, product
, or appointment_time
in Google Sheets. Map these into the API call so Vapi can use them for dynamic greetings or contextual responses.
- Conditional Flows:
Insert n8n logic nodes (IF, Switch) before making the Vapi call. For example, only call if a "Consent" column is TRUE, or select different assistants based on region or product interest.
- Multiple Assistants/Numbers:
Store different assistant IDs or phone number IDs in columns, and dynamically route calls based on sheet data (e.g., region-specific assistants).
- Advanced Field Mapping:
Pass any relevant sheet fields into the API payload and configure your Vapi assistant scripts to utilize these variables for high-touch, customized user interactions.
📇 Example Google Sheet Setup
- In n8n, map only those rows where
consent
=TRUE.
🙋♂️ Need Help?
Feel free to contact us at 1 Node
Get instant access to a library of free resources we created.