En ny lead kommer in. Du säger till dig själv att du ska ringa “om en minut”. Sen är du tillbaka i Slack, djupt nere i kundarbete, och leaden ligger kvar i Notion tills den blir kall.
Om du är marknadschef och försöker skydda speed-to-lead känner du redan smärtan. Byråägare som jagar inbound och grundare som kör sälj mellan möten springer in i samma vägg. Den här Notion–Vapi-automationen ringer nya leads snabbt och lägger tillbaka användbara anteckningar direkt i Notion.
Nedan ser du hur flödet beter sig end-to-end, vilka resultat du kan förvänta dig och vad du behöver för att få det live utan att göra det till ett två veckor långt “automationsprojekt”.
Problemet: nya leads blir kalla innan du hinner svara
Inbound leads är bara värdefulla så länge intentionen är het. Men den vanliga processen är trög: ett formulär hamnar någonstans, någon kopierar in detaljer i Notion, någon annan kollar posten, och sen blir samtalet försenat för att “vi tar outreach senare”. Senare blir till i morgon. I morgon blir till aldrig. Och även när du ringer är anteckningarna inkonsekventa, sammanfattningen är halvt borta och uppföljningar blir ett gissningsspel. Ärligt talat är den mentala belastningen nästan värre än tiden det tar.
Friktionen byggs på. Här är var det oftast fallerar.
- Du tappar de första 10–30 minuterna efter att leaden skickat in, vilket ofta är det enklaste fönstret för att boka ett möte.
- Samtalsanteckningar varierar kraftigt mellan personer, så överlämningar och uppföljningar känns röriga.
- Personalisering blir “Hej {FirstName}” eftersom ingen har tid att researcha varje leads webbplats.
- Utan en strukturerad logg i Notion ser du inte vem som kontaktats, vad som sas eller vad nästa steg är.
Så här fungerar den här automationen
Hela n8n-flödet, från trigger till slutoutput:
n8n Workflow Template: Notion + Vapi: samtal och noter för nya leads
flowchart LR
subgraph sg0["Notion Flow"]
direction LR
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Test Lead?2", pos: "b", h: 48 }
n10["<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/>Mock Website Content2"]
n11["<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/>Fetch Real Website2"]
n12["<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/>Clean HTML Content2"]
n13@{ icon: "mdi:brain", form: "rounded", label: "GPT-3.5 (Cheap Model)5", pos: "b", h: 48 }
n14["<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/>Make Real Vapi Call2"]
n15["<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/notion.dark.svg' width='40' height='40' /></div><br/>Get New Leads from Notion2"]
n16@{ icon: "mdi:robot", form: "rounded", label: "Generate Business Analysis3", pos: "b", h: 48 }
n17["<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/notion.dark.svg' width='40' height='40' /></div><br/>Update Notion with Analysis2"]
n18["<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/notion.dark.svg' width='40' height='40' /></div><br/>Notion Trigger2"]
n9 --> n10
n9 --> n11
n18 --> n15
n12 --> n16
n11 --> n12
n10 --> n12
n13 -.-> n16
n15 --> n9
n16 --> n17
n17 --> n14
end
subgraph sg1["Generate AI Summary2 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Call Results2"]
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/code.svg' width='40' height='40' /></div><br/>Extract Call Fields2"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Need AI Summary?2", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Generate AI Summary2", 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/code.svg' width='40' height='40' /></div><br/>Use Existing Summary2"]
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/code.svg' width='40' height='40' /></div><br/>Format Final Summary2"]
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/notion.dark.svg' width='40' height='40' /></div><br/>Update Call Results in Notion2"]
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/>Webhook2"]
n8@{ icon: "mdi:brain", form: "rounded", label: "GPT-3.5 (Cheap Model)4", pos: "b", h: 48 }
n7 --> n0
n2 --> n3
n2 --> n4
n0 --> n1
n1 --> n2
n3 --> n5
n5 --> n6
n4 --> n5
n8 -.-> n3
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 n18 trigger
class n16,n3 ai
class n13,n8 aiModel
class n9,n2 decision
class n15,n17,n6 database
class n11,n14,n0,n7 api
class n10,n12,n1,n4,n5 code
classDef customIcon fill:none,stroke:none
class n10,n11,n12,n14,n15,n17,n18,n0,n1,n4,n5,n6,n7 customIcon
Lösningen: omedelbara leadsamtal + strukturerade anteckningar i Notion
Det här flödet gör Notion till “single source of truth” för inbound leads, medan Vapi sköter omedelbar outreach. När en ny leadpost dyker upp i Notion med status “New” hämtar n8n leaddetaljerna och plockar innehåll från leadens webbplats. Den tar bort HTML-bruset och använder sedan en AI-agent för att skapa en snabb affärsanalys som du faktiskt kan använda. Analysen skrivs tillbaka till Notion så teamet får kontext utan att göra research. Därefter startar flödet ett Vapi-samtal med en anpassad öppningsreplik, så att de första 20 sekunderna inte låter som en robot som läser ett manus. När samtalet är klart triggar Vapi en webhook, n8n hämtar samtalsdetaljerna, genererar en strukturerad sammanfattning och uppdaterar den ursprungliga Notion-posten med utfall och anteckningar (och referens till inspelningen när den finns).
Flödet startar med en Notion-trigger som letar efter nya leads ungefär varje minut. AI sköter lagret “research och sammanfatta”, sedan ringer Vapi. Till sist gör en andra webhook-styrd väg om samtalet till snygga anteckningar tillbaka i Notion, vilket gör att nästa uppföljning blir självklar.
Vad du får: automation vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du får 10 inbound leads i veckan. Manuellt kanske du lägger cirka 10 minuter på att researcha varje bolag, 10 minuter på att ringa (plus uppringning och anteckningar) och ytterligare 5 minuter på att uppdatera Notion. Det är ungefär 4 timmar i veckan. Med den här automationen är den “manuella” delen i princip att granska Notion-posten: kanske 2 minuter per lead, medan flödet hanterar samtalet och sammanfattningen i bakgrunden. Du får tillbaka cirka 3 timmar och en mycket renare uppföljningskedja.
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)
- Notion för att lagra leads, statusar och sammanfattningar.
- Vapi för att lägga det utgående AI-samtalet.
- OpenRouter API-nyckel (hämta den från openrouter.ai).
Kunskapsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och mappar några Notion-fält, men du skriver ingen app.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En ny lead dyker upp i Notion. Flödet använder en Notion-trigger som kontrollerar ungefär varje minut och hämtar poster markerade som nya leads.
Leadens webbplats analyseras. n8n hämtar webbplatsen via en HTTP-förfrågan, tar bort HTML och skickar korrekt formaterad text till en AI-agent (med en OpenRouter-chatmodell) för att skapa en praktisk överblick av verksamheten.
Samtalet startar med en anpassad öppning. När analysen sparats tillbaka i Notion skickar flödet en begäran till Vapi för att initiera telefonsamtalet med din AI-assistent, ditt telefonnummer och leaddatan.
Samtalsresultat flödar tillbaka till Notion. När Vapi är klar pingar den en inkommande webhook i n8n, som hämtar samtalsdetaljer, genererar (eller återanvänder) en sammanfattning och uppdaterar den ursprungliga Notion-posten med utfall och anteckningar.
Du kan enkelt modifiera logiken för leadens “Status” så att den matchar din pipeline och routa olika utfall till olika uppföljningsuppgifter. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera Notion-triggern
Konfigurera arbetsflödets startpunkt så att nya leads från Notion upptäcks automatiskt.
- Lägg till och öppna Notion Lead Trigger.
- Ställ in Poll Times på
everyMinute. - Välj er Notion-databas i Database ID (listväljare).
- Credential Required: anslut era Notion-inloggningsuppgifter.
property_name, property_website_url, property_phone och property_business).Steg 2: anslut logik för hämtning av Notion-leads och filtrering
Hämta endast nya leads och dela upp testflöde vs liveflöde baserat på leadets namn.
- Öppna Retrieve New Notion Leads och ställ in Resource på
databasePageoch Operation pågetAll. - I Filters ställer ni in Key på
status|status, Condition påequalsoch Status Value påNew. - Välj samma Notion-databas i Database ID.
- Credential Required: anslut era Notion-inloggningsuppgifter.
- Öppna Verify Test Lead och ställ in Value 1 på
{{ $json.property_name }}, Operation påcontainsoch Value 2 påTEST. - Verify Test Lead skickar utdata parallellt till både Generate Mock Website Text och Fetch Live Website.
property_name fungerar inte test-lead-kontrollen och kan skicka alla leads till grenen för livewebbplatsen.Steg 3: förbered webbplatsinnehåll för analys
Generera eller hämta webbplatstext och normalisera den för AI-analys.
- I Generate Mock Website Text behåller ni standard-JavaScript-koden som sätter ihop en exempeltext för webbplatsen med hjälp av fält från
Retrieve New Notion Leads. - I Fetch Live Website ställer ni in URL på
{{ $json.property_website_url }}. - Öppna Strip HTML Content och behåll JavaScript-koden som tar bort script/stilar/HTML och trunkerar till 2000 tecken.
- Bekräfta att både Generate Mock Website Text och Fetch Live Website är kopplade till Strip HTML Content.
Steg 4: kör AI-bussinessanalys och uppdatera Notion
Använd en LLM för att skapa en koncis affärsanalys och skriv tillbaka den till Notion, och initiera sedan Vapi-samtalet.
- Öppna Produce Business Analysis och ställ in Text på
{{ $json.data }}. - Bekräfta att systemmeddelandet i Produce Business Analysis är den definierade prompten för affärsanalys.
- Säkerställ att OpenRouter Chat Model B är ansluten som språkmodell för Produce Business Analysis och ställ in Model på
openai/gpt-3.5-turbo. - Credential Required: anslut era OpenRouter-inloggningsuppgifter i OpenRouter Chat Model B (lägg till inloggningsuppgifter på modellen, inte på agentnoden).
- I Update Notion Analysis ställer ni in Page ID på
{{ $('Retrieve New Notion Leads').item.json.id }}och mappar Business Analysis|rich_text till{{ $json.output }}. - Credential Required: anslut era Notion-inloggningsuppgifter.
- I Initiate Vapi Call ställer ni in URL på
https://api.vapi.ai/call, Method påPOSToch behåller mallen för JSON Body. - Ställ in Authorization-headern till
Bearer [CONFIGURE_YOUR_TOKEN].
[YOUR_ID]-platshållare i Initiate Vapi Call eller glömmer att ersätta bearer-token.Steg 5: konfigurera inläsning av samtalsresultat och summeringslogik
Ta emot webhook-händelser från Vapi, tolka samtalsresultat och skapa eller återanvänd summeringen innan Notion uppdateras.
- Öppna Inbound Webhook Trigger och notera värdet för Path
575071e2-0f64-434e-b422-da797aec2f9a; konfigurera er Vapi-webhook att skicka händelser till denna URL. - I Retrieve Call Details ställer ni in URL på
=https://api.vapi.ai/calls/{{ $json.id }}och behåller Authorization-headern somBearer [CONFIGURE_YOUR_TOKEN]. - Behåll JavaScript-koden i Parse Call Fields som extraherar underlag för summering och identifierar utfall där ingen svarar.
- I Check Summary Requirement ställer ni in Value 1 på
{{ $json.skip_ai }}för att routa samtal som ska hoppa över AI. - Öppna Create AI Call Summary och ställ in Text på
{{ $json.summary_input }}. - Säkerställ att OpenRouter Chat Model A är ansluten som språkmodell för Create AI Call Summary och ställ in Model på
openai/gpt-3.5-turbo. - Credential Required: anslut era OpenRouter-inloggningsuppgifter i OpenRouter Chat Model A (lägg till inloggningsuppgifter på modellen, inte på agentnoden).
- Lämna Reuse Existing Summary som den är för att skicka vidare summeringar när
skip_aiär true. - I Assemble Final Summary behåller ni JavaScript-koden som sätter
reasonoch refererar till Parse Call Fields förrecordingochraw_reason. - Öppna Modify Call Results in Notion och verifiera att Resource är
databasePageoch att Operation ärupdate. - Credential Required: anslut era Notion-inloggningsuppgifter.
{{ $('Update Notion with Analysis1').item.json.id }}, men den noden finns inte. Uppdatera detta till ett giltigt uttryck för sid-ID, till exempel {{ $('Retrieve New Notion Leads').item.json.id }} eller korrekt utdata från rätt Notion-nod.Steg 6: testa och aktivera ert arbetsflöde
Verifiera både flödet för leadkvalificering och vägen för samtalssummering innan ni aktiverar arbetsflödet i produktion.
- Klicka på Test workflow och lägg manuellt till ett nytt lead i Notion med
status = New. - Bekräfta att Retrieve New Notion Leads returnerar posten och att Verify Test Lead routar korrekt baserat på
property_name. - Kontrollera att Update Notion Analysis skriver tillbaka AI-utdata till Notion-databasen.
- Trigga ett testsamtal och skicka en webhook-händelse till Inbound Webhook Trigger för att verifiera Retrieve Call Details och Parse Call Fields.
- Verifiera att Assemble Final Summary genererar en summering och att Modify Call Results in Notion uppdaterar rätt Notion-sida.
- När allt fungerar växlar ni arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- Notion-behörigheter ställer ofta till det. Om Notion Lead Trigger slutar hitta poster, kontrollera att integrationen har åtkomst till rätt databas och bekräfta att fältnamnet “Status” fortfarande matchar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder skapar fel på tomma svar.
- Vapi-webhooks måste vara nåbara från publika internet. Om samtalet avslutas men Notion aldrig uppdateras, kontrollera dina Vapi-webhookinställningar och bekräfta att n8n:s webhook-URL inte har ändrats.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt annars kommer du redigera output för alltid.
Vanliga frågor
Cirka 30–45 minuter om dina konton och din Notion-databas är redo.
Nej. Du kopplar mest konton och mappar fält i Notion. Flödet innehåller redan logik för att rensa webbplatsinnehåll och skapa sammanfattningar.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna in modellkostnader för OpenRouter och samtalskostnader i Vapi.
Två alternativ: n8n Cloud (managed, 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 bör du troligen. Du kan justera Notion-filtren i steget “Retrieve New Notion Leads” för att bevaka en annan Status (eller lägga till en andra status som “Request Demo”). Justera sedan prompten till AI-agenten som används för affärsanalysen och payloaden som skickas i “Initiate Vapi Call” så att öppningen matchar ditt erbjudande. Vanliga anpassningar är att fördröja samtal utanför kontorstid, routa vissa branscher till en annan assistent och skriva tillbaka nästa-steg-uppgiften i Notion.
Oftast beror det på en ogiltig eller roterad API-nyckel, eller att Assistant ID/Phone Number ID inte matchar det Vapi förväntar sig. Kolla först i Vapi-dashboarden och uppdatera sedan inloggningsuppgifterna i HTTP-stegen “Initiate Vapi Call” och “Retrieve Call Details”. Bekräfta också att din webhook-URL fortfarande är aktiv; en ändrad n8n-URL bryter callbacks.
Många, så länge din samtals- och AI-budget matchar volymen. n8n Cloud begränsar antal körningar per plan, medan egen hosting inte har något tak för körningar (det handlar främst om serverkapacitet). I praktiken börjar de flesta team med några dussin leads per dag och skalar därifrån, och lägger sedan in rate limits så att du inte triggar för många samtal samtidigt.
Ofta, ja, eftersom det här flödet har förgreningar, webhooks och flerstegs AI-bearbetning som blir dyr eller klumpig i enklare verktyg. n8n gör det också enklare att hålla “tvåflödesmönstret” (lead-trigger plus webhook när samtalet är klart) på ett ställe. Zapier eller Make kan fortfarande fungera om du bara behöver logga en lead och skicka en notis, men de är inte lika bekväma när du behöver hämta en webbplats, analysera den och sedan sammanfatta samtalsutfall tillbaka till Notion. Om du väljer mellan verktyg, tänk på vad som händer om sex månader när du vill ha regler för olika leadtyper, tidsfönster och flera assistenter. Prata med en automationsexpert om du är osäker på vad som passar.
När detta väl rullar slutar din “ny lead”-process att hänga på att någon råkar ha en lugn eftermiddag. Flödet sköter jagandet och anteckningarna så att du kan fokusera på affärerna som är värda att stänga.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.