Salesforce + Retell AI: qualify leads, log tasks
New leads show up in Salesforce, and then… they sit. Not because your team doesn’t care, but because calling fast, taking notes, and creating the right follow-up task is a surprisingly fragile manual process.
This is the kind of mess that hits sales managers first. But agency owners running lead gen for clients feel it too, and so do marketing ops folks trying to keep “speed to lead” from turning into a monthly fire drill. With Retell AI Salesforce automation, every new lead gets contacted and summarized without someone babysitting the CRM.
Below, you’ll see how the workflow works end-to-end, what outcomes to expect, and what you need to set it up in n8n.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Salesforce + Retell AI: qualify leads, log tasks
flowchart LR
subgraph sg0["🎯 Analyze Call Trans Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>🔗 Receive Salesforce Lead"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>📞 Start Retell AI Call"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>🔍 Check Call Status"]
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "❓ Is Call Complete?", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "⏱️ Wait 10 Seconds", pos: "b", h: 48 }
n5@{ icon: "mdi:brain", form: "rounded", label: "🤖 OpenAI Chat Model", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "🎯 Analyze Call Transcript", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/salesforce.svg' width='40' height='40' /></div><br/>📝 Create Salesforce Task"]
n3 --> n6
n3 --> n4
n4 --> n2
n2 --> n3
n5 -.-> n6
n1 --> n2
n6 --> n7
n0 --> n1
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n6 ai
class n5 aiModel
class n3 decision
class n0,n1,n2 api
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n7 customIcon
The Problem: Lead follow-up is inconsistent (and your CRM shows it)
Manual lead qualification sounds simple until you’re doing it all day. A lead comes in, someone needs to call quickly, ask the right questions, capture notes, and turn that into a next step that actually moves the deal forward. Miss one detail and the rep is guessing later. Miss the call window and the lead goes cold. And if notes end up in someone’s inbox or a random doc, Salesforce becomes a graveyard of “New” leads with no real context. Honestly, the worst part is the mental load of remembering what to do next for every single lead.
It adds up fast. Here’s where things usually break down in the real world.
- A rep has to notice the new lead, then carve out time to call, which often turns “right now” into “later today.”
- Call notes get rushed, incomplete, or logged after the fact, so key details (budget, timeline, fit) don’t make it into the CRM.
- Follow-up tasks aren’t created consistently, which means leads bounce between team members without a clear owner.
- Managers can’t trust pipeline hygiene because half the story lives in transcripts, inbox threads, or someone’s memory.
The Solution: New Salesforce leads trigger an AI call and a logged follow-up
This workflow turns lead qualification into a repeatable system. When a new lead is created in Salesforce, n8n receives that lead’s details through a webhook and immediately kicks off an outbound phone call through Retell AI. While the call is in progress, the workflow checks the call status in a short loop, waiting briefly between checks so you’re not hammering an API. Once the call is complete, the transcript is handed to OpenAI for analysis and summarization. Finally, the workflow writes the outcome back into Salesforce by creating a follow-up task with clear, usable notes, so the next human touch is fast and informed.
The workflow starts with a Salesforce-to-n8n webhook that carries the lead payload. Retell AI handles the call, then n8n polls until completion and sends the transcript to an AI Agent powered by the OpenAI Chat Model. Salesforce gets a clean task created at the end, which means nothing falls through the cracks.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you get 15 new inbound leads a week. Manually, a first call plus basic notes and a Salesforce task is often about 20 minutes per lead, which is roughly 5 hours weekly. With this workflow, the “human time” is closer to 2 minutes per lead (mostly reviewing the summary and deciding the next action), while the call and transcript processing happens in the background. That’s about 4 hours back each week, and your CRM notes are more consistent than rushed copy-paste.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Salesforce for lead creation and task logging.
- Retell AI to place and manage AI phone calls.
- OpenAI API key (get it from your OpenAI dashboard).
Skill level: Intermediate. You’ll connect accounts, paste API keys, and confirm a webhook/lead trigger in Salesforce.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new lead hits Salesforce. Salesforce sends the lead data to n8n through the “Incoming Lead Webhook,” so the workflow starts the moment the record is created.
The workflow places the call. An HTTP request triggers Retell AI to call the lead using your configured agent, so the questions and tone are consistent even when your team is slammed.
Status gets checked until the call ends. n8n queries the call status, waits 10 seconds, then checks again. Once the “Verify Call Completion” condition says it’s done, the workflow moves on.
AI turns the transcript into actionable notes. The OpenAI Chat Model powers an AI Agent that summarizes the transcript into the bits you actually need in a CRM: qualification signals, objections, fit, and a recommended next step.
Salesforce gets a follow-up task. The workflow logs a Salesforce task with the summary so the next person touching the lead doesn’t need to dig through raw transcripts.
You can easily modify the call questions and the summary format to match how your team qualifies leads. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound webhook that receives new lead data and starts the automation.
- Add the 🔗 Incoming Lead Webhook node and set Path to
salesforce-lead. - Set HTTP Method to
POSTso your lead source can send payloads. - Send a test payload that includes
body.Phoneto match the call initiation field used later.
Step 2: Connect Retell and Initiate the Call
Configure the Retell API call initiation and the call status polling loop.
- Open 📞 Initiate Retell Call and set URL to
https://api.retellai.com/v2/create-phone-calland Method toPOST. - In Body Parameters, set from_number to
[YOUR_ID], to_number to{{$json.body.Phone}}, and agent_id to[YOUR_ID]. - In Header Parameters, set Authorization to
Bearer {{$credentials.retellAI.apiKey}}and Content-Type toapplication/json. - Credential Required: Connect your httpHeaderAuth credentials in 📞 Initiate Retell Call.
- Open 🔍 Query Call Status and set URL to
{{`https://api.retellai.com/v2/get-call/${$node['📞 Initiate Retell Call'].json.call_id}`}}. - Enable Send Headers and set Authorization to
Bearer {{$credentials.retellAI.apiKey}}in 🔍 Query Call Status. - In ❓ Verify Call Completion, set the condition to
{{$json.body.call_status}}equalsended. - In ⏱️ Pause 10 Seconds, set Unit to
secondsand Amount to10to create the polling delay.
Step 3: Set Up AI Call Summarization
Configure the LLM connection and the summarization agent that processes call transcripts.
- Open 🤖 OpenAI Chat Engine and set the Model to
gpt-3.5-turbo. - Credential Required: Connect your OpenAI credentials in 🤖 OpenAI Chat Engine.
- In 🎯 Summarize Call Transcript, set Prompt Type to
define. - Set the Text field to the full prompt template and keep the embedded expressions:
{{$json["body"]["call_id"]}}and{{$json["body"]["transcript"]}}. - Ensure 🤖 OpenAI Chat Engine is connected as the language model for 🎯 Summarize Call Transcript (credentials should be added to 🤖 OpenAI Chat Engine, not the agent).
$json.body.transcript, the summarizer will return empty output. Confirm the Retell API response includes the transcript before summarizing.Step 4: Configure Salesforce Follow-up Logging
Log the AI-generated summary into Salesforce as a follow-up task.
- Open 📝 Log Salesforce Follow-up and set Resource to
taskand Status toNot Started. - Under Additional Fields, set Type to
Call. - Set Subject to
Lead Qualification Call Analysis - {{ $now.toFormat('yyyy-MM-dd HH:mm') }}. - Set Description to
{{ $json.output }}so the summary JSON is captured. - Credential Required: Connect your Salesforce credentials in 📝 Log Salesforce Follow-up.
Step 5: Test and Activate Your Workflow
Validate the end-to-end automation and enable it for production use.
- Use 🔗 Incoming Lead Webhook to trigger a test by sending a sample payload with
body.Phone. - Confirm that 📞 Initiate Retell Call returns a
call_idand 🔍 Query Call Status retrieves the call status. - Wait for the loop to resolve with ❓ Verify Call Completion matching
ended, then verify that 🎯 Summarize Call Transcript outputs structured JSON. - Check Salesforce to ensure 📝 Log Salesforce Follow-up created a task with the summary in the description.
- When satisfied, toggle the workflow to Active to begin processing live leads.
Common Gotchas
- Salesforce credentials can expire or need specific permissions. If things break, check the connected app/OAuth session and the n8n Salesforce credential settings first.
- If you’re using Wait nodes or external call processing, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 15 minutes if your Salesforce, Retell AI, and OpenAI accounts are ready.
No coding required. You will connect accounts, add credentials, and adjust a few fields.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs (often a few cents per summarized call) and any Retell AI usage fees.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. Update your Retell AI agent script for the questions, then adjust the “Summarize Call Transcript” AI Agent instructions to output the exact fields your team uses (budget, timeline, use case, objections, next step). If your Salesforce task needs different text, edit the “Log Salesforce Follow-up” mapping so the summary lands in the right fields.
Usually it’s an expired or wrong API key in the HTTP Request nodes (“Initiate Retell Call” or “Query Call Status”). It can also be an agent configuration issue on the Retell AI side (missing phone number, outbound permissions, or the agent not published). If failures happen only when volume spikes, you may be hitting rate limits, so slow down polling or add a longer wait between status checks.
On n8n Cloud, it depends on your plan’s monthly executions. If you self-host, there’s no fixed execution cap, but your server and the Retell AI/OpenAI rate limits become the practical ceiling.
Often, yes, because this flow needs looping, conditional checks, and an AI Agent step that’s easier to control in n8n. You also get the option to self-host, which is a big deal if you’re doing a lot of calls. Zapier or Make can still work, but multi-step polling flows tend to get awkward (and pricey) as volume grows. If your process is just “new lead → send email,” you probably don’t need this. Talk to an automation expert if you want help choosing.
You set this up once, and every new lead gets a call outcome and a clear next step inside Salesforce. The workflow handles the repetitive stuff so your team can focus on the deals that are actually worth attention.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.