Automate Retell Call Transcript Storage with n8n

This workflow automates storing detailed Retell AI call transcripts and analytics directly into Airtable, Google Sheets, and Notion via webhook. It eliminates manual logging of call data, saving time and improving accuracy for Retell voice agent builders.
webhook
airtable
googleSheets
+3
Learn how to Build this Workflow with AI:
Workflow Identifier: 2109
NODES in Use: Webhook, Filter, Set, Airtable, Google Sheets, Notion

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

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_data if 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.

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free