Opening Problem Statement
Meet Mike, a busy hotel manager at Avelian Paradise Hotel, who recently started using Retell AI to handle voice calls for reservations. While the AI efficiently transcribes and analyzes conversations, Mike faces a challenge: after every call ends, he spends hours copying call details like transcripts, summaries, and sentiment scores manually into Google Sheets, Airtable, and Notion. This tedious process not only wastes 3-4 hours weekly but also risks errors and inconsistent records, making it harder for Mike to track call performance and customer insights.
This is precisely the kind of problem our n8n workflow solves—automating the journey from a Retell analyzed call webhook to seamlessly logging rich call data into structured platforms, ready for review or further action.
What This Automation Does
When triggered by a Retell AI webhook signaling that a call analysis has finished, this workflow performs the following tasks:
- 1. Captures comprehensive call details such as call ID, timestamps, duration, transcript text, call summary, user sentiment, phone number, and total call cost converted to dollars.
- 2. Filters only the relevant “call_analyzed” webhook events to avoid storing incomplete or irrelevant data.
- 3. Transforms timestamp information into localized ISO date-time formats for readability.
- 4. Sends the processed call data simultaneously to Airtable, Google Sheets, and Notion, maintaining synchronized, accessible records across diverse platforms.
- 5. Enables Retell voice agent builders like Mike to maintain a unified, error-free history of calls without manual entry.
- 6. Supports quick modifications to include extended post-call analyses or custom Retell fields.
Thanks to this workflow, Mike saves over 3 hours weekly and avoids inconsistencies, enhancing decision making and customer support responsiveness.
Prerequisites ⚙️
- 📧 A Retell AI account configured with webhook support for “call_analyzed” events.
- 🔐 Airtable account with a base and table ready to store transcripts.
- 📊 Google Sheets document with a “Transcripts” tab.
- 📁 Notion workspace with a database prepared for call data entries.
- ⏱️ An n8n automation platform account, either cloud-hosted or self-hosted.
- Credentials for Airtable, Google Sheets, and Notion integrated in n8n.
Step-by-Step Guide
1. Set Up the Retell Webhook in n8n
Navigate to your n8n dashboard → click New Workflow → Add a Webhook node.
Configure the webhook with:
– Path: poc-retell-analysis
– HTTP Method: POST
Copy the webhook URL generated (e.g., https://your-instance.app.n8n.cloud/webhook/poc-retell-analysis) and paste it into your Retell agent’s webhook settings under “Agent Level Webhook URL.”
Expected outcome: n8n is ready to receive call analysis data from Retell.
Common mistake: Not copying the full URL or forgetting to set POST as the method.
2. Filter Only “call_analyzed” Events
Add a Filter node after the Webhook node named Filter – only call ended.
Set the Filter condition:
– {{$json.body.event}} equals call_analyzed
This step ensures the workflow ignores other webhook events like “call_started” or “call_ended.”
Expected outcome: Only complete analyzed call events proceed downstream.
Common mistake: Skipping this filter can cause partial data or errors downstream.
3. Map and Format the Call Data Fields
Insert a Set node named Set fields to export right after the filter.
Assign fields extracted from the webhook JSON, for instance:
– Call ID: {{$node['Webhook'].json.body.call.call_id}}
– Start Datetime: Convert milliseconds timestamp to local ISO string.
– End Datetime: Similarly converted.
– Duration, transcript, summary, user sentiment, phone number (chosen based on call direction), and total cost (converted from cents to dollars).
Expected outcome: Data is formatted and ready for external storage.
Common mistake: Formatting timestamps incorrectly or missing conditional phone number assignment.
4. Save Data to Airtable
Add an Airtable node named Save to Airtable.
Configure it with your Airtable Base and Table. Map all the fields from the Set node to your Airtable columns exactly as named.
Expected outcome: Each call record is appended as a new entry in your Airtable base.
Common mistake: Mismatched column names or missing API credentials.
5. Save Data to Google Sheets
Add a Google Sheets node named Save to Excel.
Select your spreadsheet and sheet by ID. Use append mode to add new rows for each call record. Map all fields similarly.
Expected outcome: Call data appends as a new row on your Transcripts sheet.
Common mistake: Not appending and overwriting existing data or incorrect sheet selection.
6. Save Data to Notion
Add a Notion node named Save to Notion.
Select your database and map the call fields to respective Notion properties, such as Text, Number, and Date types as per your database schema.
Expected outcome: A new Notion page created per call with summarized details and transcript.
Common mistake: Misconfigured database properties or missing API access.
Customizations ✏️
- Add More Post-Call Analytics: In the Set fields to export node, add assignments pulling from
call.call_analysis.custom_analysis_dataif you have custom Retell analytics configured. This inserts more granular data into your databases. - Remove Unwanted Outputs: Simply delete or disable the Airtable, Google Sheets, or Notion nodes if you prefer to store data in fewer places.
- Change Timestamp Format: Modify the date/time formatting expressions in the Set node to match your preferred display (e.g., UNIX timestamps, locale-specific strings).
- Filter By Call Success: Add an extra filter node before the Set node to allow only calls marked as successful (
call_successful: true) to be logged.
Troubleshooting 🔧
Problem: “No data saved to Airtable.”
Cause: API token missing or wrong base/table selected.
Solution: In the Airtable node, double-check the API credentials. Confirm the base ID and table name correctly match your Airtable setup. Re-test the connection.
Problem: “Webhook triggered but no data flows further.”
Cause: Filter node condition not matching event.
Solution: Verify webhook payload events. Ensure the Filter node checks body.event equals call_analyzed exactly, respecting case and spelling.
Problem: “Google Sheets data overwriting existing rows.”
Cause: Append mode not enabled.
Solution: In the Google Sheets node, enable “Use Append” so every new call adds a row instead of replacing the sheet content.
Pre-Production Checklist ✅
- Test webhook reception with a sample Retell call_analyzed payload or simulate with a REST client.
- Confirm each destination tool (Airtable, Google Sheets, Notion) receives properly formatted data without truncation or errors.
- Ensure all API credentials are active and permissions allow data modification.
- Verify the date/time formats adhere to your locale/timezone preferences.
- Have a rollback plan to disable the workflow in n8n if unintended data duplication occurs.
Deployment Guide
Once tested, activate your workflow in n8n by switching from “draft” to live mode. Monitor the first few call events to confirm logs in Airtable, Google Sheets, and Notion appear as expected. Use n8n’s execution logs to troubleshoot any errors.
For sustained use, consider setting alerts within Airtable or Google Sheets for anomalies in call duration or sentiment trends. This enhances proactive customer support.
FAQs
Can I use a different spreadsheet tool instead of Google Sheets?
Yes, but you’d need to swap the Google Sheets node with another app node supported by n8n (e.g., Excel Online). You must also adjust the field mapping accordingly.
Does this workflow consume a lot of API calls?
It depends on call volume. Each webhook triggers three external service calls (Airtable, Google Sheets, Notion). For high volume, monitor API rate limits for each service.
Is sensitive call transcript data secure?
Data security depends on your n8n hosting environment and credentials management. Ensure HTTPS for webhooks and secure API keys storage. Avoid public workflows exposing sensitive data.
Conclusion
By setting up this n8n workflow, you automate the entire process of capturing and storing rich Retell AI call analysis data into Airtable, Google Sheets, and Notion. Users like Mike can now focus on growing their hotel business with confidence that call data is accurately, instantly, and securely backed up. This saves over 3 hours per week, eliminates manual errors, and provides a single source of truth for voice call insights.
Next up, you could explore adding notification alerts based on user sentiment drops, integrating with CRM tools for follow-up tasks, or visualizing call trends with dashboards.
Let’s keep building smarter automations that empower both AI-powered voice agents and the humans behind them! You’re well on your way with n8n and Retell.