Inkommande samtal är toppen. Det röriga börjar efteråt: försöka komma ihåg vad personen ville, klottra ner anteckningar och sedan jaga uppföljningen senare (när tillfället redan är förbi).
Marknadschefer märker det när leads från betalda samtal inte spåras. En receptionsansvarig får samtal på samtal och har ingen tid att logga dem. Och om du driver ett litet tjänsteföretag ser den här Twilio Sheets logging-automationen till att bokningar och samtalsanteckningar inte försvinner i kaoset.
Det här arbetsflödet svarar på samtal via Twilio, använder AI för att hantera konversationen på flera språk och loggar de viktigaste detaljerna i Google Sheets. Du får se hur det fungerar, vad du behöver och var team oftast går bet.
så här fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Twilio + Google Sheets: samtal bokas och loggas
flowchart LR
subgraph sg0["Flow 1"]
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/>Twilio Voice Webhook"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Speech Input", pos: "b", h: 48 }
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/openAi.dark.svg' width='40' height='40' /></div><br/>OpenAI GPT-4o Response"]
n3@{ icon: "mdi:cog", form: "rounded", label: "ElevenLabs Text-to-Speech", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Audio to Storage"]
n5["<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/>Twilio TwiML Response"]
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/>Initial Greeting"]
n7@{ icon: "mdi:database", form: "rounded", label: "Log Conversation", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check for Appointment", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Save Appointment Request", pos: "b", h: 48 }
n7 --> n8
n1 --> n2
n1 --> n6
n0 --> n1
n8 --> n9
n2 --> n3
n2 --> n7
n4 --> n5
n3 --> n4
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 n1,n8 decision
class n7,n9 database
class n0,n4,n5,n6 api
classDef customIcon fill:none,stroke:none
class n0,n2,n4,n5,n6 customIcon
varför detta är viktigt: inkommande samtal skapar ”osynligt” arbete
De flesta intäkter som missas är inte dramatiska. De är små. Någon ringer och ber om en tid, du svarar på frågor, du lovar att återkomma … och sedan ligger detaljerna i någons minne (eller ännu värre, på en post-it). När du till slut öppnar ditt CRM eller kalkylark är allt redan otydligt: stavning på namn, önskat datum, typ av tjänst, språk, vad de fick för pris, vad de lät oroliga över. Multiplicera det med några samtal per dag så får du ett tyst operativt läckage: inkonsekventa anteckningar, ojämn uppföljning och en pipeline du inte kan lita på.
Det växer snabbt. Här brukar friktionen synas i verkliga team.
- Samtal besvaras, men bokningsdetaljerna hamnar inte i ett system du kan söka i senare.
- Teammedlemmar skriver anteckningar på olika sätt, så du kan inte jämföra utfall eller ens läsa dem snabbt.
- Språkbarriärer saktar ner samtalet, vilket betyder mer väntetid och fler som lägger på.
- Uppföljningar bygger på minnet, och ärligt talat är minnet ett uselt arbetsflöde.
vad du bygger: AI-samtalshantering som loggar varje bokning
Det här n8n-arbetsflödet gör ett inkommande Twilio-samtal till en strukturerad post i Google Sheets, där AI gör grovjobbet. När någon ringer träffar Twilio din n8n-webhook och skickar inringarinfo plus eventuellt talunderlag som finns tillgängligt. Arbetsflödet kontrollerar om det faktiskt fick in användbart tal; om inte skickar det en vänlig välkomstprompt så att inringaren vet vad som ska göras härnäst. Om tal finns genererar OpenAI ett naturligt svar (på inringarens språk), och sedan konverterar ElevenLabs texten till realistiskt ljud. Ljudet lagras via en HTTP-begäran och n8n skickar tillbaka TwiML till Twilio så att inringaren hör svaret direkt. I bakgrunden loggas varje samtal till Google Sheets, och om AI:t upptäcker bokningsintention lägger det även till en bokningsrad.
Så samtalet hanteras i realtid, och adminarbetet sker tyst i bakgrunden. Du får ett ark för fullständiga samtalsloggar och ett annat för bokningar, klart för uppföljning eller rapportering.
det du bygger
| det som automatiseras | det du uppnår |
|---|---|
|
|
förväntade resultat
Säg att du får runt 15 inkommande samtal per dag och försöker logga varje samtal manuellt. Om det tar ungefär 10 minuter att sammanfatta ärendet, fånga kontaktuppgifter och skriva en användbar uppföljningsanteckning blir det cirka 2,5 timmar per dag. Med det här arbetsflödet sker interaktionen med inringaren automatiskt och loggningen sker direkt; du lägger mest cirka en minut på att skumma arket och agera på de heta leadsen. Det är ungefär 2 timmar tillbaka per dag, plus färre ”vad sa de nu igen?”-ögonblick.
innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Twilio för att ta emot samtal och köra webhooks
- Google Sheets för att lagra samtalsloggar och bokningar
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard)
svårighetsnivå: Medel. Du kopplar några konton, klistrar in en webhook-URL i Twilio och mappar kolumner i arket.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
steg för steg
Ett inkommande samtal träffar din webhook. Twilio skickar samtalshändelsen till n8n:s ”Incoming Voice Webhook”, som blir triggern för resten av automatiseringen.
Arbetsflödet kontrollerar om det finns användbart tal. Om talinmatning saknas eller är tom styrs samtalet till ett enkelt välkomstsvar så att inringaren kan försöka igen utan att du behöver göra något manuellt.
AI skriver svaret och konverterar det till ljud. OpenAI genererar svarstexten, ElevenLabs gör om den till röst och ett steg med HTTP Request lagrar ljudfilen så att Twilio kan spela upp den utan strul.
Allt loggas och bokningar identifieras. Ett Google Sheets-steg registrerar samtalet (tidsstämpel, caller ID, talinmatning, AI-svar, språk, call SID), och en kontroll av ”intention” lägger till en bokningsrad när inringaren faktiskt försöker boka.
Du kan enkelt justera reglerna för bokningsidentifiering så att de passar din verksamhet (till exempel bara tolka ”boka” plus ett datum som en bokning). Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera webhook-triggern
Sätt upp den inkommande voice-webhooken och validera talinmatningen innan ni routar vidare till AI eller välkomstmeddelandet.
- Lägg till noden Incoming Voice Webhook och ställ in HTTP Method på
POST, Path påvoice-webhookoch Response Mode påresponseNode. - I Validate Speech Input, ställ in villkoret till Exists med Left Value
{{$json.SpeechResult}}. - Koppla Incoming Voice Webhook → Validate Speech Input för att routa flödet för inkommande samtal.
Steg 2: Anslut Google Sheets
Logga samtalsdetaljer och fånga bokningsförfrågningar med två append-åtgärder i Google Sheets.
- Öppna Record Call Log och ställ in Operation på
append, Sheet Name påCall_Logsoch Document ID på[YOUR_ID]. - I Record Call Log → Columns, mappa värden: call_sid
{{$json.CallSid}}, caller_id{{$json.From}}, timestamp{{$now}}, ai_response{{$json.choices[0].message.content}}, speech_input{{$json.SpeechResult}}. - Autentisering krävs: Anslut era googleSheetsOAuth2Api-credentials i Record Call Log.
- Öppna Append Appointment Entry och ställ in Operation på
append, Sheet Name påAppointmentsoch Document ID på[YOUR_ID]. - I Append Appointment Entry → Columns, mappa värden: status
pending, call_sid{{$json.CallSid}}, caller_id{{$json.From}}, timestamp{{$now}}, request_details{{$json.SpeechResult}}. - Autentisering krävs: Anslut era googleSheetsOAuth2Api-credentials i Append Appointment Entry.
[YOUR_ID] oförändrat kommer append att misslyckas. Ersätt det med ert faktiska Google Sheet-ID.Steg 3: Sätt upp Generate AI Reply
Konfigurera genereringen av OpenAI-svar som driver voice assistant-svaret.
- Öppna Generate AI Reply och ställ in Model på
gpt-4o. - I Messages, behåll system-prompten och ställ in user-innehållet till
{{$json.SpeechResult || 'Hello, how can I help you today?' }}. - Autentisering krävs: Anslut era openAiApi-credentials i Generate AI Reply.
Steg 4: Konfigurera utdata- och routningsnoder
Gör om AI-text till ljud, lagra MP3:an, skicka TwiML och detektera bokningsintention.
- I Convert Text to Voice, ställ in Text på
{{$json.choices[0].message.content}}, Model ID påeleven_monolingual_v1och Voice ID på21m00Tcm4TlvDq8ikWAM. - Autentisering krävs: Anslut era elevenLabsApi-credentials i Convert Text to Voice.
- I Store Audio File, ställ in Operation på
upload, Binary Property Name pådataoch ytterligare fält File Nameresponse.mp3samt Content Typeaudio/mpeg. - I Send TwiML Reply, behåll TwiML-XML:en och säkerställ att
{{$json.audio_url}}används ioch att action använder{{$node.webhook.getWebhookUrl()}}. - I Send Welcome Message, behåll hälsnings-XML:en och ställ in gather-action till
{{$node['Incoming Voice Webhook'].getWebhookUrl()}}. - I Detect Appointment Intent, ställ in villkoret Contains med Left Value
{{$json.choices[0].message.content.toLowerCase()}}och Right Valueappointment. - Koppla Detect Appointment Intent → Append Appointment Entry för att spara förfrågningar som innehåller bokningsintention.
Generate AI Reply skickar utdata till både Convert Text to Voice och Record Call Log parallellt.
audio/mpeg för att undvika uppspelningsproblem i TwiML.Steg 5: Testa och aktivera ert workflow
Validera end-to-end-flödet från samtalsmottagning till TwiML-svar och loggning.
- Använd Execute Workflow i n8n och skicka en test-POST till Incoming Voice Webhook-URL:en med en
SpeechResult-payload. - Bekräfta att Generate AI Reply returnerar ett svar och att Convert Text to Voice producerar ljuddata.
- Verifiera att Store Audio File returnerar en
audio_urloch att Send TwiML Reply spelar upp ljudet och samlar in tal. - Kontrollera Google Sheets för nya rader i Call_Logs och, när intention matchar, Appointments.
- Aktivera workflowet för att börja hantera livesamtal i produktion.
tips för felsökning
- Twilio-uppgifter och webhook-inställningar är petiga. Om samtal plötsligt slutar nå n8n, kontrollera först telefonnumrets Voice webhook-URL och request-loggar i Twilio-konsolen.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in ert tonalitet och varumärkesspråk tidigt, annars kommer du redigera output för alltid.
snabba svar
Cirka 45 minuter om ditt Twilio-nummer och ditt Google-ark är redo.
Nej. Du kopplar främst konton och klistrar in rätt webhook- och sheet-ID:n.
Ja. n8n har ett gratis alternativ för egen drift 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 in OpenAI API-kostnader samt ElevenLabs-användning för röstgenerering.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar, men kräver grundläggande serverhantering.
Ja, och det bör du förmodligen. De flesta ändringar sker i steget ”Generate AI Reply” (din systemprompt) och kontrollen ”Detect Appointment Intent” (vad som räknas som en bokning). Vanliga justeringar är att lägga till regler för öppettider, fånga extra fält som tjänstetyp eller adress, och routa ”brådskande” intentioner till e-post via noden Send Email.
Oftast är webhook-URL:en i Twilio fel eller så är n8n-arbetsflödet inte aktivt. Kontrollera Twilios request-loggar för att se om den får ett icke-200-svar, och bekräfta sedan att din n8n-webhook-sökväg matchar exakt. Om webhooken når n8n men ljuduppspelningen misslyckas kan det bero på att den lagrade ljud-URL:en inte är publikt åtkomlig. Rate limits kan också dyka upp när du testar upprepade gånger under ett kort tidsfönster.
I en typisk n8n Cloud-setup hanterar de flesta team dussintals samtal per dag utan att ens tänka på det. Om du kör egen drift är den praktiska gränsen din server och hur snabbt du kan generera ljud med ElevenLabs. Det säkraste sättet är att lasttesta under en lugn timme och sedan skala upp resurser om du ser timeouts.
Ofta, ja. Du hanterar webhooks, förgreningar (saknat tal vs tal finns), AI-generering och en överlämning av röstfil, vilket är mer än en enkel Zap i två steg. n8n låter dig också köra egen drift för obegränsade körningar, och du kan ha hela logiken på ett ställe i stället för att kedja flera scenarier. Zapier eller Make kan fortfarande fungera om du bara vill ”logga samtalet” med minimal AI. Om du vill ha hjälp att välja, prata med en automationsexpert.
När detta väl rullar slutar samtal att vara ”någon borde skriva ner det här”. Du får ett strukturerat ark, tillförlitliga uppföljningar och betydligt mer andrum under rusningstimmar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.