🀝 Analyze sales calls with Whisper transcription, GPT-4o, Airtable and Slack

⚑ 129 views · 🀝 CRM & Sales Operations

Description

Submit a call recording and get a full AI-powered analysis delivered automatically. Your recording is transcribed with OpenAI Whisper, then GPT-4o breaks down sentiment, objections, buying signals, deal risk, next steps, and a ready-to-send follow-up email. Results are saved to Airtable, posted to your Slack channel, and shown to the rep as a rich summary page the moment the form is submitted. This workflow is built for sales teams, revenue operations managers, and sales coaches who want consistent call intelligence without manual review.


What This Workflow Does


Setup Requirements

Tools you’ll need

Estimated Setup Time: 15–20 minutes


Step-by-Step Setup

  1. Get your OpenAI API key Go to https://platform.openai.com/api-keys and create a new secret key. In n8n, open the 4. OpenAI β€” Transcribe with Whisper1 node β†’ find the Authorization header β†’ replace YOUR_OPENAI_API_KEY with your key. > ⚠️ This key appears in 1 node (Whisper). The AI Agent uses a separate n8n credential β€” see step 2.

  2. Connect your OpenAI credential for the AI Agent In n8n: go to Credentials β†’ Add credential β†’ OpenAI API β†’ paste your API key. Open the 7. OpenAI β€” Chat Model (GPT-4o) node β†’ select your new credential from the dropdown.

  3. Connect your Airtable credential In n8n: go to Credentials β†’ Add credential β†’ Airtable Personal Access Token β†’ paste your token (get it at https://airtable.com/create/tokens). Open the 9. Airtable β€” Save Full Analysis node β†’ select your credential, then choose your base and table from the dropdowns. Your Airtable table should have columns matching these names exactly: Submission ID, Rep Name, Rep Email, Company, Contact Name, Contact Email, Deal Stage (Before), Deal Stage (AI Recommended), Deal Value, Call Duration (min), Word Count, Sentiment, Sentiment Score, Primary Intent, Deal Risk, Deal Momentum, Objection Count, Buying Signal Count, Competitors Mentioned, Summary, CRM Note, Coaching Tip, Rep Talk Ratio, Follow-up Email Draft, Submitted At, Processed At.

  4. Connect your Slack webhook In Slack, go to https://api.slack.com/apps β†’ create an app β†’ enable Incoming Webhooks β†’ copy the webhook URL. In n8n, go to Credentials β†’ Add credential β†’ Slack β†’ Webhook β†’ paste the URL. Open the 10. Slack β€” Post Analysis to Channel node β†’ select your Slack credential.

  5. Activate the workflow Click the toggle at the top of the workflow editor to set it to Active. Copy the form URL from the 1. Form β€” Sales Rep Submits Call1 node and share it with your sales team.


How It Works (Step by Step)

Step 1 β€” Form (n8n Form Trigger) The sales rep fills out a web form with their name, email, the prospect’s details, current deal stage, estimated deal value, and a direct link to the audio recording. They can also add optional notes before the analysis runs β€” for example, flagging that a competitor was mentioned. When they submit, the workflow starts automatically.

Step 2 β€” Code: Clean & Validate Form Data The workflow reads and cleans every field from the form submission. It strips extra whitespace, normalises email addresses to lowercase, and checks that required fields β€” rep name, email, company, contact name, and audio link β€” are all present. If anything is missing, the workflow stops and returns an error immediately. A unique submission ID is generated (formatted as CALL- followed by a timestamp) so every call record is trackable.

Step 3 β€” HTTP: Download Audio File The workflow makes an HTTP request to the audio URL the rep provided and downloads the file. It supports any direct-download link to an mp3, wav, or m4a file. A 60-second timeout is set in case the file is slow to download.

Step 4 β€” OpenAI: Transcribe with Whisper The downloaded audio is sent to OpenAI’s Whisper API. Whisper converts the spoken audio into a full text transcript with timestamps. The response format is set to verbose_json so the workflow receives structured output. This step has a 3-minute timeout for long calls.

Step 5 β€” Code: Merge Transcript with Call Data The transcript text is pulled from the Whisper response and checked β€” if it comes back empty, the workflow throws an error explaining the audio may be silent or corrupted. The word count is calculated, then the transcript is merged together with all the original form data so the next step has everything it needs in one place.

Step 6 β€” AI Agent: GPT-4o Sales Analysis The full transcript and all call metadata are passed to a GPT-4o AI agent with a detailed system prompt. The agent is instructed to return a single valid JSON object containing: a 3–5 sentence summary, overall sentiment with a score out of 100, primary prospect intent, deal risk level, deal momentum, a recommended deal stage, estimated rep talk ratio, a list of objections with direct quotes, buying signals, competitor names, next steps with owners and deadlines, a coaching tip, a CRM note, and a personalised follow-up email draft. The agent is told never to hallucinate β€” if something isn’t in the transcript, it returns an empty array or null.

Step 7 β€” Code: Parse & Combine AI Analysis The raw text output from the AI agent is cleaned of any accidental markdown formatting, then parsed as JSON. The parsed analysis is merged with the original call data into one complete record, and a processedAt timestamp is added.

Step 8, 9, 10 β€” Fan-out: Airtable, Slack, and HTML Page The complete record is sent to three places simultaneously. The 9. Airtable β€” Save Full Analysis node creates a new row with all 26 fields. The 10. Slack β€” Post Analysis to Channel node sends a notification to your sales channel. The 11. Code β€” Build HTML Confirmation Page node builds a formatted HTML results page β€” including summary, sentiment score, objections, next steps, coaching tip, and the full follow-up email draft β€” which is returned directly to the rep via the 12. Webhook β€” Show Results Page to Rep node as their form confirmation.


Key Features

βœ… Audio format flexibility β€” works with mp3, wav, and m4a files from any direct-download URL βœ… Quote-backed objection detection β€” every objection includes a direct quote from the transcript, not a paraphrase βœ… Deal stage intelligence β€” compares the rep’s reported stage with the AI’s recommended stage after the call βœ… Rep talk ratio β€” estimates how much the rep vs. the prospect spoke, enabling targeted coaching βœ… Zero-hallucination rules β€” the AI is instructed to return empty arrays rather than guess when data isn’t present βœ… Instant rep results page β€” the rep sees their full analysis the moment they submit, no waiting for an email βœ… Parallel delivery β€” Airtable, Slack, and the results page are all updated in the same execution, not sequentially βœ… Submission IDs β€” every call gets a unique ID for tracking, filtering, and referencing in follow-up conversations


Customisation Options

Switch to a cheaper model for high-volume teams Open the 7. OpenAI β€” Chat Model (GPT-4o) node and change the model from gpt-4o to gpt-4o-mini. This reduces cost by roughly 15Γ— with minimal quality loss for standard sales calls.

Add a CRM update step after Airtable After the 9. Airtable β€” Save Full Analysis node, add a HubSpot or Salesforce node to automatically update the deal stage, log the CRM note, and create a follow-up task using the next steps from the analysis.

Tag the rep in Slack by email In the 10. Slack β€” Post Analysis to Channel node, extend the message template to look up the rep’s Slack user ID by their email address using the Slack users.lookupByEmail API, then @mention them directly in the notification.

Add a language detection step Before the AI agent, add a Code node that checks transcript.length and language β€” then pass the detected language to the Whisper node’s language parameter and adjust the GPT-4o prompt to respond in the same language as the transcript.

Send the follow-up email automatically After the HTML page step, add a Gmail or Outlook node that sends the analysis.follow_up_email directly to the prospect’s email address (contactEmail), so reps can approve and send in one click rather than copy-pasting.


Troubleshooting

Whisper transcription returns an error:

GPT-4o returns an empty or unparseable response:

Airtable row not being created:

Slack notification not arriving:

The form submits but the rep never sees the results page:


Support

Need help setting this up or want a custom version built for your team or agency?

πŸ“§ Email:info@isawow.com 🌐 Website:https://isawow.com/

πŸ”— Nodes Used

Airtable, HTTP Request, Slack, AI Agent, OpenAI Chat Model, n8n Form Trigger

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup