Din röstassistent börjar starkt. Sedan ställer uppringaren en följdfråga, och plötsligt glömmer den vad den nyss sa. Du hör samma frågor upprepas, samma förtydliganden, och till slut samma ”kan jag prata med en människa?”
Supportansvariga märker det i ärendemängden. Marknadsteam ser det i tappade leads efter kontorstid. Och om du driver en liten byrå blir du till slut barnvakt åt ”AI-samtal” som skulle ha rullat av sig själva. Den här konfigurationen för VAPI OpenAI memory löser kontextproblemet så att samtalen håller kurs och låter konsekventa.
Det här flödet skickar VAPI-röstförfrågningar in i n8n, använder OpenAI för att skapa korta affärsmässiga svar och behåller sessionsminne så att varje uppringare får en sammanhängande konversation. Du får se vad det automatiserar, vad det förändrar i vardagen och hur du anpassar det till din tonalitet.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutlig output:
n8n Workflow Template: VAPI + OpenAI: röstsvar som minns sammanhang
flowchart LR
subgraph sg0["Simple Memory1 Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model4", pos: "b", h: 48 }
n1@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory1", 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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook for vapi"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Keep Session id & Query", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Resume Agent", pos: "b", h: 48 }
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/>Respond to Vapi"]
n4 --> n5
n1 -.-> n4
n2 --> n3
n0 -.-> n4
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 n4 ai
class n0 aiModel
class n1 ai
class n2,n5 api
classDef customIcon fill:none,stroke:none
class n2,n5 customIcon
Problemet: röst-AI som tappar tråden
Röst är obarmhärtigt. I chatten accepterar en användare ett lite fel svar och skriver bara om frågan. I ett samtal: i samma ögonblick som assistenten ber dem upprepa sig sjunker förtroendet. Snabbt. Den verkliga kostnaden är inte bara en ”dålig upplevelse”. Det blir längre samtal, fler eskaleringar och den tysta skadan av att låta oförberedd. Du slutar också med att skriva om prompts om och om igen och försöker tvångsmata fram ”minne” med instruktioner, vilket ärligt talat aldrig fungerar för riktig fram-och-tillbaka-dialog.
Friktionen byggs på. Här är var det faller isär.
- Uppringare ställer en följdfråga och assistenten svarar som om det vore dagens första meddelande.
- Agenter eller administratörer måste granska transkript för att förstå vad som gick fel, vilket lägger på cirka en timmes meningslöst arbete varje vecka.
- Dina ”affärssäkra” svar driver iväg eftersom assistenten saknar en stabil kontext att förankra i, så tonalitet och detaljer svajar.
- Eskaleringar ökar helt enkelt för att det går snabbare för en person att hantera ett förvirrande samtal än att rädda det mitt i.
Lösningen: VAPI-samtal via n8n med sessionsminne
Det här flödet ger din VAPI-assistent ett pålitligt ”arbetsminne” per samtalssession och routar sedan varje röstförfrågan via n8n så att du kan styra logik, promptkontext och åtgärder nedströms. Ett VAPI Function Tool skickar en POST-förfrågan in i n8n med två nyckeluppgifter: session ID och uppringarens fråga. n8n fångar dessa fält, skickar dem till en OpenAI-baserad agent och använder ett minnesbuffertfönster för att behålla den senaste konversationshistoriken kopplad till samma session. Flödet svarar sedan till VAPI i exakt det JSON-format som krävs, så att assistenten kan säga svaret direkt. Korta svar. Affärsfokuserat. Och konsekvent genom hela konversationen.
Flödet startar när VAPI träffar din n8n-webhook. OpenAI genererar svaret utifrån dina instruktioner och sessionens senaste historik. Till sist skickar n8n svaret tillbaka till VAPI så att uppringaren får ett sammanhängande svar utan att du behöver göra något.
Det här får du: automatisering vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att din assistent hanterar cirka 20 samtal per dag, och att runt 5 av dem stöter på problemet med ”följdfrågor”. Om varje sådant blir en 5-minuters omväg (upprepa detaljer, reda ut kontext, sedan eskalera), är det ungefär 25 minuter bortkastad tid dagligen, plus att en människa tar över. Med det här flödet behåller uppringarens andra och tredje fråga samma sessionskontext. Du lägger fortfarande tid på svåra ärenden, men rutinärendena slutar svälla.
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)
- VAPI för att ta emot samtal och trigga function tool.
- OpenAI för att generera svaren i dialogen.
- OpenAI API-nyckel (hämta den i OpenAI API-dashboarden).
Svårighetsnivå: Medel. Du kommer att klistra in webhook-URL:er, koppla autentiseringsuppgifter och justera en prompt på ett säkert sätt.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
VAPI triggar flödet. När en uppringare pratar använder din VAPI-assistent ett Function Tool för att skicka en POST-förfrågan till en n8n-webhook med session-ID och uppringarens fråga.
n8n fångar de viktiga fälten. Ett enkelt steg för att ”sätta fält” extraherar session_id och user_query så att resten av flödet blir förutsägbart (och så att du senare kan återanvända samma struktur för routning, loggning eller CRM-uppdateringar).
OpenAI svarar med minne kopplat. Agenten använder din systemprompt plus ett minnesbuffertfönster, vilket innebär att den kan ”komma ihåg” de senaste vändorna i samma session och svara som i en riktig konversation.
VAPI får ett korrekt JSON-svar. n8n formaterar svaret på det sätt VAPI förväntar sig och skickar tillbaka det direkt, så att assistenten kan säga svaret utan besvärliga fördröjningar.
Du kan enkelt justera systemprompten så att den matchar din tonalitet, eller byta modell för att styra kostnad och utförlighet utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera webhook-triggern
Konfigurera webhook-endpointen som Vapi anropar för att starta arbetsflödet och returnera ett svar via en response-nod.
- Lägg till eller öppna noden Incoming Vapi Hook.
- Ställ in HTTP Method på
POST. - Ställ in Path på
28ac7c53-7476-4e78-a97a-daef3c842c20. - Ställ in Response Mode på
responseNodeså att svaret skickas av Return Vapi Reply.
Steg 2: fånga och normalisera sessionsdata
Extrahera tool call-ID och användarfrågan från webhook-payloaden för att driva agentkonversationen.
- Öppna Capture Session Details och behåll läget Set med två tilldelningar.
- Ställ in fältet id till
{{ $json.body.message.toolCalls[0].id }}. - Ställ in fältet question till
{{ $json.body.message.toolCalls[0].function.arguments.user_query }}. - Säkerställ att kopplingen går från Incoming Vapi Hook till Capture Session Details, och sedan till Conversation Agent Runner.
Steg 3: sätt upp AI-konversationslagret
Konfigurera OpenAI-språkmodellen och sessionsminnet för att driva konversationsagenten.
- Öppna OpenAI Chat Engine och bekräfta att modellen är inställd på
gpt-4.1-mini. - Autentiseringsuppgifter krävs: Anslut era
openAiApi-autentiseringsuppgifter i OpenAI Chat Engine. - Öppna Session Memory Buffer och ställ in Session Key till
{{ $json.id }}med Session ID Type inställt påcustomKey. - I Conversation Agent Runner, ställ in Text till
{{ $json.question }}och behåll Prompt Type somdefine. - Bekräfta att OpenAI Chat Engine är ansluten till Conversation Agent Runner som språkmodell och att Session Memory Buffer är ansluten som minne.
Steg 4: konfigurera webhook-svarets payload
Returnera ett Vapi-kompatibelt JSON-svar med hjälp av tool call-ID:t och agentens output.
- Öppna Return Vapi Reply och ställ in Respond With på
json. - Ställ in Response Body till
{ "results": [ { "toolCallId": "{{ $('Capture Session Details').item.json.id }}", "result": "{{ $json.output }}" } ] }. - Verifiera kopplingen från Conversation Agent Runner till Return Vapi Reply så att agentens output returneras.
Steg 5: testa och aktivera ert arbetsflöde
Kör ett testanrop till webhooken för att bekräfta konversationen och svarsformatet, och aktivera sedan arbetsflödet för användning i produktion.
- Klicka på Test Workflow i n8n och skicka ett exempel på en POST-begäran till Incoming Vapi Hook-URL:en.
- Bekräfta att Capture Session Details skickar ut fälten
idochquestionoch att Conversation Agent Runner returnerar enoutput. - Kontrollera att webhook-svaret från Return Vapi Reply innehåller en
results-array med korrekttoolCallIdochresult. - Växla arbetsflödet till Active för att börja hantera Vapi-förfrågningar i drift.
Vanliga fallgropar
- OpenAI-autentiseringsuppgifter kan löpa ut eller få fel behörighetsomfång. Om det slutar fungera: kontrollera först din sida för Credentials i n8n och bekräfta att API-nyckeln fortfarande fungerar.
- Payloads i VAPI Function Tool är känsliga. Om webhooken körs men uppringaren inte hör något: bekräfta att svaret matchar det JSON-schema som VAPI förväntar sig i steget ”Return Vapi Reply”.
- Minnesbuffertar är bara så bra som din prompt. Standardinstruktioner för AI är generiska, så lägg in tonalitet och regler för ”vad vi får/inte får säga” tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 30 minuter om ditt VAPI-verktyg och din OpenAI-nyckel är redo.
Nej. Du kommer främst att kopiera webhook-URL:en till VAPI och klistra in en API-nyckel i n8n-credentials.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-kostnader, som vanligtvis är några cent per samtal beroende på användning.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, men gör det med avsikt. Du kan lägga till en enkel ”switch”-regel efter agentsvaret (till exempel detektera ”pris”, ”boka” eller ”överlämning”) och sedan skicka de strukturerade detaljerna till Pipedrive eller Google Sheets. Många team justerar också agentens systemprompt för att ställa en kvalificerande fråga och sparar sedan svaret under samma session_id så att du inte tappar det senare. Om du behöver kan du även byta modell i OpenAI chat-noden utan att ändra resten av flödet.
Oftast är det en av tre saker: webhook-URL:en är fel, VAPI Function Tool skickar inte de fält som flödet förväntar sig (session_id och user_query), eller så matchar inte ditt svarsformat det som VAPI kan läsa. Kontrollera också att din n8n-instans är nåbar från det publika internet och att webhooken är aktiv. Om du testar lokalt är det en vanlig stoppkloss.
På n8n Cloud Starter kan du normalt hantera några tusen körningar per månad; högre planer hanterar mer. Om du self-hostar finns ingen körningsgräns (det beror på din server). I praktiken hanterar det här flödet samtal lika snabbt som OpenAI svarar, så volymplanering handlar främst om API-genomströmning och hur långa dina prompts är.
Ofta, ja. n8n är bättre när du behöver ett riktigt konversationstillstånd, tajtare kontroll över payloads och möjligheten att self-hosta för skala. Zapier och Make kan fungera för enkla ”skicka webhook, få svar”-mönster, men de blir klumpiga när du vill ha sessionsminne och egen logik runt det. Den största skillnaden är förutsägbara kostnader när volymen växer. Prata med en automationsexpert om du vill ha en snabb rekommendation för din setup.
När din assistent kommer ihåg vad som nyss sades slutar samtalen kännas som en scriptad demo och börjar kännas som riktig support. Sätt upp det en gång, och lägg sedan energin på att förbättra upplevelsen i stället för att reda ut den.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.