Dina leads blir inte kalla för att du är dålig på uppföljning. De blir kalla för att dagen fylls upp, kalkylarket växer och ”jag ringer dem efter det här” blir till nästa vecka.
Den här Vapi call automation träffar sales ops-team först, men grundare och marknadsförare som driver inbound-trattar känner av den också. Du får missade fönster för första kontakt, dubbla uppringningar och ingen felfri logg över vad som faktiskt hände.
Det här arbetsflödet gör Google Sheets till en enkel ringkö, triggar AI-utgående samtal i Vapi och loggar sedan resultatet så att varje lead fortsätter framåt utan att du behöver sitta och vakta pipelinen.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets till Vapi, AI-samtal köas och loggas
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", 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/code.svg' width='40' height='40' /></div><br/>Code"]
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/>HTTP Request"]
n4@{ icon: "mdi:database", form: "rounded", label: "Log call status ", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "Google Sheets", pos: "b", h: 48 }
n6@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
n8["<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/code.svg' width='40' height='40' /></div><br/>append call status"]
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n2 --> n9
n7 --> n8
n0 --> n1
n1 --> n2
n3 --> n7
n5 --> n0
n9 --> n3
n4 --> n9
n6 --> n5
n8 --> 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 n6 trigger
class n4,n5 database
class n3 api
class n2,n8 code
classDef customIcon fill:none,stroke:none
class n2,n3,n8 customIcon
Problemet: din ”ringlista” är ingen riktig kö
Google Sheets är ett bra ställe att samla leads. Det är ett betydligt sämre ställe att driva uppföljningsarbete. Någon måste skanna rader, avgöra vem som står på tur, kopiera ett telefonnummer, trigga samtalet och sedan komma ihåg att uppdatera arket. Multiplicera det med dussintals leads per dag och det blir en tyst tidstjuv. Värre är att misstagen är subtila: samma lead rings två gånger, en het lead hoppas över, eller så loggas aldrig utfallet — vilket gör att teamet fortsätter gissa.
Inget av det här är problemet i sig. Tillsammans är det det.
- Du slösar cirka 1–2 timmar per dag bara på att växla mellan arket, din dialer och dina anteckningar.
- Statusfält driver iväg eftersom folk uppdaterar dem sent, eller inte alls, så nästa person kan inte lita på kön.
- Dubbla uppföljningar händer när flera kollegor jobbar i samma ark och ”NO/YES” inte efterlevs konsekvent.
- Samtalsutfall hamnar på slumpmässiga ställen (DM:s, CRM:er, någons minne), vilket gör rapportering och överlämningar röriga.
Lösningen: Google Sheets → Vapi-samtal, automatiskt
Det här n8n-arbetsflödet gör en kolumn i Google Sheets till en pålitlig ringkö. På ett schema läser det ditt kalkylark och letar efter leads där ”AI call status” är markerad som ”NO”. Därefter behandlar det leads ett i taget (batchstorlek = 1), plockar ut telefonnumret och raddetaljerna och triggar ett utgående AI-samtal via en Vapi API-begäran. När samtalet initieras uppdaterar flödet samma rad så att leadet markeras ”YES”, vilket stoppar dupliceringar. Till sist skriver det tillbaka samtalsutfallet i Google Sheets och skapar ett snyggt revisionsspår som du kan sortera, filtrera och dela.
Flödet startar med en schemalagd körning, så det fungerar även när ingen är online. Sedan läser och mappar det lead-data, anropar Vapi via en HTTP-begäran, väntar kort för bearbetning och skriver tillbaka utfallet till rätt rad i kalkylarket. Enkel loop, strukturerad logg.
Det du får: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du samlar 40 kvalificerade leads per dag i ett Google Sheet. Manuellt tar även ett snabbt flöde (öppna rad, kopiera nummer, trigga samtalet, uppdatera status, lägga till anteckningar) kanske 3 minuter per lead, vilket blir cirka 2 timmar administrativt arbete dagligen. Med det här flödet lägger du ungefär 5 minuter på att sätta leads till ”NO” (eller importera dem så), och den schemalagda körningen sköter resten medan du gör riktigt arbete. Samtal köas, utfall landar tillbaka i arket och du slipper jaga uppdateringar.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för din lead-kö och loggning
- Vapi för att ringa AI-drivna utgående samtal
- Vapi API-nyckel (hämta den från din Vapi-dashboard)
Kunskapsnivå: Medel. Du kopplar in autentiseringsuppgifter och bekräftar rätt kolumner i kalkylarket, men du behöver inte skriva kod.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd körning kontrollerar ditt ark. En Cron-liknande trigger startar arbetsflödet med den frekvens du väljer (varje par minuter, varje timme, dagligen). n8n läser sedan ditt Google Sheet och letar specifikt efter leads som ska ringas härnäst.
Leads filtreras och förbereds. Flödet delar upp arket i items, mappar de viktiga fälten (som telefonnummer och radindex) och tillämpar lite anpassad logik så att rätt data når Vapi på ett korrekt formaterat sätt.
Vapi anropas via API:t. n8n skickar en autentiserad HTTP-begäran till Vapi för att initiera det utgående AI-samtalet. Bearbetningen sker avsiktligt en och en för att hålla kön ordnad och minska märkliga edge cases.
Resultaten går tillbaka till Google Sheets. Efter en kort väntan skriver flödet in samtalsutfallet och uppdaterar ”AI call status” till ”YES”, så att samma rad inte rings igen vid nästa körning.
Du kan enkelt ändra reglerna för ”AI call status” och använda andra etiketter (som ”Queued”, ”Called”, ”Needs human follow-up”) beroende på dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schedule-triggern
Det här arbetsflödet startar enligt ett schema med Scheduled Run Start och hämtar sedan data från ert kalkylark.
- Lägg till eller öppna Scheduled Run Start och ställ in önskat schema (t.ex. varje timme eller dagligen) i nodens schemafält.
- Bekräfta att Scheduled Run Start är ansluten till Read Spreadsheet Data enligt flödet.
Steg 2: anslut Google Sheets
Två Google Sheets-noder hanterar in- och utdata: Read Spreadsheet Data för att hämta poster och Record Call Result för att skriva resultat.
- Öppna Read Spreadsheet Data och välj ert kalkylark samt blad/intervall som innehåller samtalsposter.
- Öppna Record Call Result och välj mål-kalkylark samt blad/intervall där resultaten ska registreras.
- Credential Required: Anslut era Google Sheets-uppgifter i både Read Spreadsheet Data och Record Call Result.
Steg 3: sätt upp bearbetning och iteration
Poster distribueras och transformeras innan anpassad logik körs och batchar itereras.
- Verifiera att Distribute Items tar emot data från Read Spreadsheet Data och skickar vidare till Map Field Values.
- I Map Field Values, lägg till eller justera fält för att mappa kalkylarkets kolumner till den struktur som förväntas av Custom Logic.
- Öppna Custom Logic och implementera de affärsregler ni behöver för samtalsbearbetning innan batchning.
- Bekräfta att Custom Logic skickar vidare till Iterate Records för att bearbeta samtal i batchar.
Steg 4: konfigurera det externa anropet och insamling av resultat
Det här avsnittet triggar det externa anropet, lägger på en fördröjning och lägger till samtalsutfallet innan resultaten registreras.
- Öppna External API Call och konfigurera begärans detaljer (URL, metod, headers, body) som krävs av er samtalsleverantör.
- Granska Delay Step för att säkerställa att väntetiden matchar det förväntade svarsfönstret från den externa tjänsten.
- I Append Call Outcome, lägg till koden för att slå ihop API-resultat med den aktuella posten.
- Säkerställ att Append Call Outcome skickar vidare till Record Call Result så att resultaten skrivs tillbaka till Google Sheets.
Steg 5: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera hela loopen från indata i kalkylarket till registrering av samtalsutfall.
- Klicka på Execute Workflow och bekräfta att Scheduled Run Start triggar körningen.
- Kontrollera att Read Spreadsheet Data hämtar rader och att Record Call Result skriver tillbaka utfall till ert blad.
- Verifiera att External API Call svarar och att Append Call Outcome ger ut de förväntade fälten.
- När resultaten ser korrekta ut, växla arbetsflödet till Active för schemalagda produktionskörningar.
Vanliga fallgropar
- Google Sheets OAuth-uppgifter kan gå ut eller tappa åtkomst till ett kalkylark. Om det slutar fungera, kontrollera status för autentiseringsuppgifterna i n8n och bekräfta att arket fortfarande är delat med samma Google-konto.
- Om du använder Wait-noder eller extern bearbetning kan timingen driva iväg. Öka väntetiden om efterföljande noder misslyckas för att samtalsutfallet inte har hunnit komma ännu.
- Vapi API-anrop kan misslyckas tyst när headers eller behörigheter är fel. Kontrollera svaret i HTTP Request-noden och loggarna i din Vapi-dashboard innan du antar att flödeslogiken är fel.
Vanliga frågor
Cirka 30 minuter om dina Google Sheets- och Vapi-konton är redo.
Nej. Du kopplar in autentiseringsuppgifter och matchar kolumnerna i ditt ark mot fälten i arbetsflödet.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in Vapi-kostnader baserat på din samtalsvolym.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en av de bästa anledningarna att använda n8n. Du kan ändra fältmappningen så att flödet letar efter ”Ready” i stället för ”NO” och skriver tillbaka ”Called”, ”No answer” eller ”Needs human follow-up” som separata värden. De flesta anpassningar sker i steget Map Field Values (Set) och i logiken för Append Call Outcome, eftersom det är där kolumnerna i arket tolkas och uppdateras. Om du senare flyttar din kö till Airtable eller Notion kan du byta ut stegen för att läsa/skriva i Google Sheets utan att ändra Vapi-samtalssteget.
Oftast beror det på en ogiltig eller utgången API-nyckel i HTTP Header Auth-uppgifterna, så generera om Vapi-token och uppdatera den i n8n. Kontrollera också HTTP Request-nodens senaste svar för behörighetsfel eller en felaktigt formaterad payload, eftersom Vapi avvisar begäran som inte matchar förväntat format. Om du triggar många samtal på kort tid kan även rate limits dyka upp, vilket ser ut som slumpmässiga fel tills du tittar i loggarna.
I praktiken så många som din n8n-plan och ditt Vapi-konto klarar, men just det här arbetsflödet behandlar ett lead i taget för att hålla kön prydlig. På n8n Cloud hanterar högre nivåer fler körningar per månad; om du kör self-hosted är begränsningen främst serverresurser och hur ofta du kör schemat. Om du behöver högre genomströmning kan du höja batchstorleken, men testa noggrant så att du inte råkar trigga en burst av samtal.
Ofta, ja. Det här flödet använder batchning, väntetider och anpassad logik som är krånglig (eller dyr) i enklare automationsverktyg, och n8n:s self-hosting-alternativ spelar roll när du kör många leads. Zapier eller Make kan fortfarande fungera bra för ett enkelt ”ny rad → ring”-flöde, särskilt om du aldrig behöver förgreningar eller loggning av utfall. Den större frågan är driftsäkerhet: när du bryr dig om att undvika duplicering och skriva tillbaka resultat till exakt rätt rad brukar n8n kännas stabilare. Om du är osäker kan du prata med en automationsexpert och få en tydlig rekommendation för din setup.
När det här väl rullar blir ditt ark en riktig kö, inte en delad gissningslek. Sätt upp det en gång, så håller arbetsflödet uppföljningstrycket borta från ditt team.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.