En ny lead kommer in. Du vill ringa snabbt. Sedan blir dagen stökig, anteckningarna hamnar på tre olika ställen och uppföljningsmejlet blir “jag gör det senare” (vilket oftast betyder aldrig). Så här börjar leadflöden läcka i det tysta.
Säljchefer märker det när säljare glömmer att logga utfallet. En person inom marketing ops ser det när “leadstatus” blir en gissningslek. Och om du driver ett mindre team är det du som jagar uppdateringar. Den här automatiseringen för Sheets Twilio calls håller samtal, sammanfattningar och nästa steg konsekventa utan extra administration.
Du får se hur arbetsflödet triggas från Google Sheets, använder Twilio och RetellAI för att hantera samtal, och sedan skickar Gmail-sammanfattningar och uppdaterar lead-posten så att inget faller mellan stolarna.
Så fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets + Twilio: leadsamtal loggade och summerade
flowchart LR
subgraph sg0["OpenAI Call Review Flow"]
direction LR
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/webhook.dark.svg' width='40' height='40' /></div><br/>Post-Call RetellAI Webhook"]
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Analyzed Call Events", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Verify Outbound Direction", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Modify Lead Sheet Record", pos: "b", h: 48 }
n11@{ icon: "mdi:message-outline", form: "rounded", label: "Email Call Summary", pos: "b", h: 48 }
n12@{ icon: "mdi:robot", form: "rounded", label: "OpenAI Call Review", pos: "b", h: 48 }
n13@{ icon: "mdi:message-outline", form: "rounded", label: "Send Appointment Confirmation", pos: "b", h: 48 }
n9 --> n10
n9 --> n12
n8 --> n9
n12 --> n13
n10 --> n11
n7 --> n8
end
subgraph sg1["Track New Sheet Lead Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Track New Sheet Lead", pos: "b", h: 48 }
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/twilio.svg' width='40' height='40' /></div><br/>Dispatch SMS Call Reminder"]
n2@{ icon: "mdi:cog", form: "rounded", label: "Delay Before Outbound Call", pos: "b", h: 48 }
n3["<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/>Initiate RetellAI Lead Call"]
n0 --> n1
n2 --> n3
n1 --> n2
end
subgraph sg2["Flow 3"]
direction LR
n4["<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/>Inbound RetellAI Webhook"]
n5@{ icon: "mdi:database", form: "rounded", label: "Lookup Number in Sheets", pos: "b", h: 48 }
n6["<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/>Return Inbound Webhook Reply"]
n4 --> n5
n5 --> n6
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 n0 trigger
class n12 ai
class n8,n9 decision
class n10,n5 database
class n7,n3,n4,n6 api
classDef customIcon fill:none,stroke:none
class n7,n1,n3,n4,n6 customIcon
Problemet: leadsamtal sker, men pipelinen uppdateras inte
Att ringa leads är sällan det svåra. Röran börjar efteråt. Någon ringer från en sparad lista, klottrar anteckningar i ett block eller ett Slack-DM till sig själv och försöker senare minnas vad som sades. Under tiden visar ditt Google-ark fortfarande “Ny”, så marknad fortsätter skicka nurture-mejl till någon som redan bokat ett samtal. Eller värre: ingen följer upp eftersom det inte finns en tydlig ansvarig. Multiplicera det med en vecka av inkommande samtal och utgående uppföljningar, så får du en pipeline som ser bra ut på papperet men är fel i verkligheten.
Det går fort att det blir mycket. Här är var det brukar brista i det dagliga arbetet.
- Säljare glömmer att logga samtalsutfall, så nästa kontaktpunkt bygger på minne i stället för data.
- Inkommande uppringare kan inte snabbt matchas mot rätt leadpost, vilket ger missad kontext och obekväma samtal.
- Uppföljningsmejl blir inkonsekventa, och “snabb recap” blir 20 minuter av omskrivning efter varje samtal.
- När arket är inaktuellt blir rapportering en veckovis städinsats i stället för en realtidsbild.
Lösningen: samtal triggade från Google Sheets med automatiska Gmail-sammanfattningar
Det här arbetsflödet gör ditt Google-ark till “single source of truth” och håller det uppdaterat automatiskt. När en ny lead läggs till i Google Sheets triggar n8n direkt och skickar en Twilio-SMS-påminnelse till säljaren så att första kontakten sker i tid. Efter en valfri kort fördröjning kan flödet starta ett automatiserat samtal via RetellAI, vilket är användbart för första kvalificering eller för att hantera vanliga frågor när teamet är överbelastat. När samtal sker (inkommande eller utgående) skickar RetellAI samtalshändelser tillbaka till n8n. Flödet filtrerar fram analyserad samtalsdata, uppdaterar lead-posten i Google Sheets, tar fram en tydlig samtalssammanfattning med OpenAI och mejlar den via Gmail till säljaren eller en gemensam inbox. Anteckningar fångas upp. Uppföljningar blir konsekventa. Arket hålls aktuellt.
Arbetsflödet startar med en ny rad i Google Sheets eller en webhook för inkommande samtal. Sedan hanterar RetellAI samtalsflödet och skickar efter-samtalsdata tillbaka. Till sist uppdateras Google Sheets och Gmail automatiskt, så att teamet kan gå vidare till nästa lead i stället för att göra administration.
Det här får du: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultaten du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du lägger in 15 nya leads per dag i Google Sheets. Manuellt kan en säljare lägga runt 5 minuter per lead på “extrajobb” (sätta en påminnelse, logga anteckningar, skriva en sammanfattning), vilket blir ungefär en timme per dag. Med det här flödet: SMS-påminnelsen går direkt, samtalet kan köras efter en fördröjning på 5 minuter, och sammanfattningsmejlet plus uppdateringen i arket sker automatiskt när RetellAI postar den analyserade samtalsdatan. Du granskar fortfarande utfallet, men du slipper det monotona jobbet.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för din leadlista och statusar
- Twilio för att skicka SMS-påminnelser till säljare
- RetellAI API-nyckel (hämtas från din RetellAI-dashboard)
- Gmail för att mejla sammanfattningar och bekräftelser
- OpenAI API-nyckel (hämtas från OpenAI API-inställningssidan)
Kunskapsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och mappar några fält som telefonnummer och e-post.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En ny lead dyker upp i Google Sheets. Google Sheets-triggern bevakar nya rader, så i samma ögonblick som en lead läggs in startar arbetsflödet.
Säljaren får en puff via Twilio. En SMS-påminnelse skickas direkt, och du kan låta den valfria väntan vara på så att samtalet sker efter en kort buffert (praktiskt när leads importeras i batch).
RetellAI hanterar händelser för utgående och inkommande samtal. Utgående samtal initieras via HTTP-förfrågan till RetellAI, medan inkommande samtal träffar en webhook. Arbetsflödet slår upp uppringarens nummer i Google Sheets och svarar tillbaka, så att din telefonagent kan fortsätta med rätt kontext (eller avsluta snyggt när numret inte hittas).
OpenAI skapar sammanfattningen, sedan skickar Gmail den. När analyserad efter-samtalsdata kommer in uppdaterar flödet lead-posten i Sheets, skapar en korrekt formaterad sammanfattning och mejlar den till rätt inbox. Bokningsbekräftelse kan också skickas.
Du kan enkelt justera SMS-texten så att den matchar ert tonalitet utifrån era behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera Google Sheets-triggern
Börja med att konfigurera triggern som bevakar nya leads i ert kalkylark. Detta startar sekvensen för utgående SMS och samtal.
- Lägg till och öppna Track New Sheet Lead.
- Ställ in Event på
rowAdded. - Välj mål-kalkylarket i Document och arbetsbladet i Sheet (nuvarande värden är platshållare
=och måste ställas in). - Credential Required: Anslut era googleSheetsTriggerOAuth2Api-inloggningsuppgifter.
- Valfritt: behåll Flowpast Branding som en visuell etikett; den påverkar inte körningen.
=. Uppdatera dem till ert faktiska kalkylark och flik, annars triggas inte flödet.Steg 2: Anslut RetellAI-flödet för inkommande webhook
Konfigurera svaret för inkommande webhook så att RetellAI kan hämta leaddetaljer och personalisera samtalet.
- Öppna Inbound RetellAI Webhook och bekräfta att HTTP Method är
POSTmed Path satt tillebd11c9b-129c-4b59-8c27-9a4b567305f7. - I Lookup Number in Sheets ställer ni in ett filter där Phone Number är lika med
{{ $json.body.call_inbound.from_number }}. - Credential Required: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Lookup Number in Sheets.
- I Return Inbound Webhook Reply behåller ni Respond With som
jsonoch ställer in Response Body till{ "call_inbound": { "dynamic_variables": { "name": "{{ $json.Name }}" } } }.
Steg 3: Sätt upp utgående SMS och initiering av samtal
Konfigurera den utgående sekvensen som skickar ett påminnelse-SMS, väntar kort och triggar RetellAI-samtalet.
- I Dispatch SMS Call Reminder ställer ni in To till
{{ $json['Phone Number'] }}, From till+1234567890och Message tillHello, thanks for your interest in our roofing services. We'll be calling you shortly to ask about your project!. - Credential Required: Anslut era twilioApi-inloggningsuppgifter i Dispatch SMS Call Reminder.
- I Delay Before Outbound Call ställer ni in Unit på
minutesoch Amount på1. - I Initiate RetellAI Lead Call ställer ni in URL till
https://api.retellai.com/v2/create-phone-calloch Method tillPOST. - Ställ in JSON Body till
{ "from_number": "+33600000000", "to_number": "{{ $json['Phone Number'] }}", "retell_llm_dynamic_variables": { "uuid": "{{ $('Track New Sheet Lead').item.json.UUID }}" } }. - I headers för Initiate RetellAI Lead Call ställer ni in Authorization till
Bearer [CONFIGURE_YOUR_TOKEN]och Content-Type tillapplication/json.
[CONFIGURE_YOUR_TOKEN] i Initiate RetellAI Lead Call med er faktiska RetellAI API-token, annars misslyckas samtalet.Steg 4: Konfigurera filtrering efter samtal och uppdateringar i Sheets
När samtalet är klart postar RetellAI samtalsanalysen. Den här delen filtrerar för analyserade samtal, validerar riktning, uppdaterar lead-posten och mejlar en sammanfattning.
- I Post-Call RetellAI Webhook bekräftar ni att HTTP Method är
POSToch att Path ärf8878b78-43ea-4caa-b16c-cde9aaf2e9b1. - I Filter Analyzed Call Events ställer ni in villkoret till Left Value
{{ $json.body.event }}är lika med Right Valuecall_analyzed. - I Verify Outbound Direction ställer ni in villkoret till Left Value
{{ $json.body.call.direction }}är lika med Right Valueoutbound. - Verify Outbound Direction skickar utdata parallellt till både Modify Lead Sheet Record och OpenAI Call Review.
- I Modify Lead Sheet Record ställer ni in Operation till
updateoch mappar UUID till{{ $json.body.call.retell_llm_dynamic_variables.uuid }}samt Qualification till{{ $json.body.call.call_analysis.custom_analysis_data.qualification }}. - Credential Required: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Modify Lead Sheet Record.
- I Email Call Summary ställer ni in Send To till
[YOUR_EMAIL], Subject tillNew Lead - Call Summaryoch behåller Message-mallen som använder fälten från samtalsanalysen. - Credential Required: Anslut era gmailOAuth2-inloggningsuppgifter i Email Call Summary.
[YOUR_EMAIL] i Email Call Summary, annars får ni ingen rapport.Steg 5: Sätt upp AI-granskning och bokningsbekräftelse
Analysera samtalstranskriptionen med OpenAI och skicka mejlet med bokningssammanfattning med både samtalsanalys och AI-feedback.
- I OpenAI Call Review ställer ni in Model till
gpt-4.1. - Ställ in meddelandeinnehållet till
Analyze this call transcript to identify how the call went and identify possible improvements to the voice prompt: {{ $json.body.call.transcript }}. - Credential Required: Anslut era openAiApi-inloggningsuppgifter i OpenAI Call Review.
- I Send Appointment Confirmation ställer ni in Send To till
[YOUR_EMAIL]och Subject tillRoofing Appointment Scheduled. - Behåll Message-mallen så att den hämtar data från Verify Outbound Direction och inkluderar
{{ $json.message.content }}från OpenAI Call Review. - Credential Required: Anslut era gmailOAuth2-inloggningsuppgifter i Send Appointment Confirmation.
[YOUR_EMAIL] i Send Appointment Confirmation till er faktiska mottagaradress.Steg 6: Testa och aktivera ert workflow
Verifiera varje flödesväg med ett test-lead och webhook-payloads, och aktivera sedan workflowet för produktion.
- Kör Track New Sheet Lead manuellt med en ny rad i ert ark för att verifiera att Dispatch SMS Call Reminder och Initiate RetellAI Lead Call körs utan fel.
- Skicka en test-POST-förfrågan till Inbound RetellAI Webhook och bekräfta att Lookup Number in Sheets returnerar ett namn och att Return Inbound Webhook Reply svarar med payloaden för dynamiska variabler.
- Skicka en test-POST-förfrågan till Post-Call RetellAI Webhook med
call_analyzed-data och bekräfta att flödet kör via Filter Analyzed Call Events, Verify Outbound Direction och vidare in i både Modify Lead Sheet Record och OpenAI Call Review. - Verifiera att Email Call Summary och Send Appointment Confirmation levererar mejl med ifyllda fält och AI-feedback.
- Sätt workflowet till Active när testerna passerar.
Vanliga fallgropar
- Twilio-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först meddelandeloggarna i Twilio Console.
- Om du använder Wait-noder eller extern rendering varierar processingtiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata i all evighet.
Vanliga frågor
Cirka en timme om dina API-nycklar och ditt Google-ark är redo.
Nej. Du kopplar främst konton och mappar fält som telefonnummer och e-post.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med OpenAI API-användning samt dina kostnader för samtal och meddelanden i Twilio/RetellAI.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en av de bästa justeringarna du kan göra. Uppdatera prompten i noden “OpenAI Call Review” för att ändra formatet (punktlista, MEDDICC, invändningar, nästa steg eller en kort CRM-anpassad notis). Du kan också göra Gmail-mottagare dynamiska genom att hämta säljarens e-post från leadraden i Google Sheets. Och om du hellre vill skicka sammanfattningar till Slack i stället för Gmail, byt ut noden “Email Call Summary” mot ditt meddelandeverktyg.
Oftast är det ett autentiseringsproblem eller meddelandebehörigheter. Kontrollera Twilio Console-loggarna för meddelandets SID och feldetaljer, och bekräfta sedan att dina Twilio-uppgifter i n8n fortfarande är giltiga och att avsändarnumret får skicka SMS till din destinationsregion.
Det beror på din n8n-plan och begränsningarna hos din samtalsleverantör, men de flesta små team kan utan problem köra dussintals samtal per dag.
Ofta, ja, eftersom det här flödet inte bara är ett tvåstegsflöde “ny rad → skicka meddelande”. Du hanterar webhooks, filtrering av analyserade samtalshändelser och uppdatering av poster efter asynkron samtalsbearbetning, vilket är där enklare byggare kan bli klumpiga eller dyra. n8n ger dig också möjlighet till egen hosting, vilket hjälper när volymen växer. Zapier eller Make kan fortfarande funka om du bara behöver en enkel SMS-varning och ett enda mejl. Om du är osäker, prata med en automationsexpert och mappa det mot ert faktiska samtalsflöde.
När det här väl rullar slutar arket vara “en plats dit leads går för att dö” och börjar fungera som en levande pipeline. Arbetsflödet tar hand om de repetitiva delarna så att teamet kan fokusera på samtalet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.