Telefonen ringer. Det är ännu ett ”Var är min order?”-samtal, och du vet redan hur det brukar gå. Någon hittar inte sin bekräftelse via e-post, teamet letar febrilt i WooCommerce och sedan sitter du och väger hur mycket du kan säga utan att råka lämna ut kunddata. Automatisering av WooCommerce VAPI-samtal löser den röran.
Supportansvariga märker det först när samtalsvolymen skjuter i höjden. En butiksägare får hantera eskaleringar på kvällarna. Och en driftfokuserad byrå som sköter några butiker? De drunknar i samma repetitiva frågor hos flera kunder. Resultatet är enkelt: verifierade ordersvar i telefon, med betydligt färre avbrott som kräver mänsklig handpåläggning.
Det här flödet kopplar VAPI:s röst-webhooks till två ”hjärnor” i n8n: en säker after-sales-agent för orderdetaljer och ett RAG-system (kunskapsbas) för vanliga frågor. Du får se hur det fungerar, vad du behöver och vad du ska anpassa så att det matchar butikens policyer och tonalitet.
Så här fungerar automatiseringen
Hela n8n-flödet, från trigger till slutligt resultat:
n8n Workflow Template: WooCommerce + VAPI, besvara ordersamtal säkert
flowchart LR
subgraph sg0["Math Utility Flow"]
direction LR
n6@{ icon: "mdi:cog", form: "rounded", label: "Fetch Single Order", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Retrieve Order List", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Lookup Customer Profile", pos: "b", h: 48 }
n9@{ icon: "mdi:wrench", form: "rounded", label: "Math Utility", pos: "b", h: 48 }
n10@{ icon: "mdi:wrench", form: "rounded", label: "Tracking Workflow Tool", pos: "b", h: 48 }
n12@{ icon: "mdi:robot", form: "rounded", label: "After-Sales Support Agent", pos: "b", h: 48 }
n15@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Mini Chat Model", pos: "b", h: 48 }
n16["<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/>Incoming Support Webhook"]
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Compose Voice Reply", pos: "b", h: 48 }
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/webhook.dark.svg' width='40' height='40' /></div><br/>Return Voice Response"]
n16 --> n12
n8 -.-> n12
n6 -.-> n12
n9 -.-> n12
n7 -.-> n12
n15 -.-> n12
n17 --> n18
n10 -.-> n12
n12 --> n17
end
subgraph sg1["Retrieval QA Process Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Retrieval QA Processor", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "Gemini Chat Engine", pos: "b", h: 48 }
n2@{ icon: "mdi:cube-outline", form: "rounded", label: "Vector Index Retriever", pos: "b", h: 48 }
n3@{ icon: "mdi:cube-outline", form: "rounded", label: "Qdrant Vector Store A", pos: "b", h: 48 }
n4@{ icon: "mdi:vector-polygon", form: "rounded", label: "OpenAI Embedding Builder", 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/>RAG Intake Webhook"]
n19["<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 RAG Reply"]
n5 --> n0
n4 -.-> n3
n3 -.-> n2
n2 -.-> n0
n1 -.-> n0
n0 --> n19
end
subgraph sg2["Triggered by Parent Flow Flow"]
direction LR
n11@{ icon: "mdi:play-circle", form: "rounded", label: "Triggered by Parent Flow", pos: "b", h: 48 }
n13["<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 Tracking Data"]
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign Tracking Details", pos: "b", h: 48 }
n13 --> n14
n11 --> n13
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 n11 trigger
class n12,n0 ai
class n15,n1 aiModel
class n9,n10 ai
class n2,n3 ai
class n4 ai
class n16,n18,n5,n19,n13 api
classDef customIcon fill:none,stroke:none
class n16,n18,n5,n19,n13 customIcon
Problemet: telefonsupport blir en säkerhetsrisk
Röstsuppport låter ”personligt”, men orderfrågor är oftast copy-paste-arbete. Den verkliga smärtan är att telefonsamtal tvingar dig att göra snabba bedömningar kring identitet. Om den som ringer uppger ett ordernummer, räcker det? Om de kan leveransadressen, ska du läsa upp den? Under press delar team antingen för mycket (dåligt) eller vägrar hjälpa (också dåligt). Samtidigt avbryter varje ”enkelt” samtal plock/pack, marknadsföring och faktiskt arbete med kundupplevelsen.
Det eskalerar snabbt. Friktionen ökar när samma frågor dyker upp i chatt, e-post och telefon, och ingen av kanalerna delar kontext.
- Ett enda samtal om orderstatus kan lätt äta upp runt 10 minuter när du räknar in uppslag, verifiering och att tydligt upprepa detaljer.
- Handläggare hoppar ofta mellan WooCommerce, spårningsplugin och policydokument, vilket är där misstagen smyger sig in.
- Utan konsekvent verifiering läcker du antingen privata orderuppgifter eller skapar arga kunder som känner sig stoppade.
- FAQ-samtal kräver ingen människa, men de stjäl ändå fokus från dem som hanterar riktiga undantag.
Lösningen: verifierade röstsvar + smart FAQ-sök
Det här flödet gör din inkommande telefonlinje till en säker och konsekvent supportkanal. När VAPI tar emot ett samtal skickar det en JSON-request till n8n. Därifrån routar flödet förfrågan till rätt spår: orderspecifik hjälp går till en after-sales AI-agent som kan hämta WooCommerce-order och kundprofiler, medan allmänna frågor går via ett RAG-system som söker i dina egna dokument i en Qdrant-vektordatabas. Svaret formateras sedan till en korrekt formaterad payload och skickas tillbaka till VAPI, så att assistenten kan läsa upp det naturligt för den som ringer.
Orderdetaljer skyddas från grunden. After-sales-agenten kräver e-postmatchning mot ordern innan den delar något känsligt, och den kan även hämta leveransspårning via din spårningslösning (till exempel ett YITH WooCommerce Order Tracking-flöde) så att kunden direkt får nästa steg.
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 i praktiken
Säg att du får runt 8 orderrelaterade samtal per dag. Manuellt, om varje samtal tar ungefär 10 minuter (verifiera kunden, hitta ordern, läsa upp status och sedan repetera spårningsinfo), blir det cirka 80 minuter per dag. Med den här automatiseringen blir ”arbetet” i stället att den som ringer uppger sin e-post och sitt ordernummer, plus en kort väntan medan n8n hämtar detaljer och skickar tillbaka röstsvar. Du hanterar fortfarande undantag, men du slutar lägga över en timme per dag på samma uppslag.
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)
- WooCommerce för order- och kunduppslag
- VAPI för att ta emot samtal och köra röstverktyg
- Twilio för ett inkommande telefonnummer
- Qdrant för att lagra och söka kunskapsvektorer
- OpenAI API-nyckel (hämta den i din OpenAI API-dashboard)
- Google Gemini API-nyckel (hämta den i Google AI Studio)
Svårighetsgrad: Medel. Du kopplar API:er, lägger till inloggningsuppgifter och klistrar in webhook-URL:er i VAPI.
Vill du inte sätta upp detta själv? Prata med en automatiseringsexpert (gratis 15-minuterskonsultation).
Så fungerar det
VAPI triggar flödet via webhook. När någon som ringer ställer en fråga skickar VAPI en JSON-payload till n8n via en av två webhook-endpoints (after-sales eller RAG), beroende på vad assistenten väljer att göra.
Förfrågan routas till rätt ”hjärna”. Orderfrågor går till After-Sales Support Agent, som kan anropa WooCommerce-verktyg som att hämta en enskild order, hämta en kundprofil eller lista senaste ordrar. FAQ-frågor går till Retrieval QA Processor, som söker i din Qdrant-kunskapsbas med OpenAI-embeddings och svarar med en Gemini-driven Q&A-kedja.
Verifiering sker innan något lämnas ut. Om den som ringer vill ha orderstatus kontrollerar agenten att angiven e-post matchar ordern. Om den inte matchar svarar assistenten säkert (ingen läcka), och du kan välja att eskalera till en mänsklig process.
Ett röstklart svar skickas tillbaka. n8n skapar ett strukturerat svar och skickar tillbaka det till VAPI med steget ”respond to webhook”. VAPI läser upp det tydligt i telefon, inklusive spårningsdetaljer när de finns.
Du kan enkelt justera verifieringsreglerna och omfattningen för kunskapsbasen så att det matchar butikens policyer. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-implementeringsguide
Steg 1: Konfigurera webhook-triggern
Sätt upp inkommande webhook-endpoints som startar RAG-kunskapssökningen och röstsupportflödet för efterköp.
- Lägg till noden RAG Intake Webhook och ställ in HTTP Method på
POST. - Ställ in Path på
5ca93cd6-7f7b-4c91-acff-c324e594cca7och Response Mode påresponseNode. - Lägg till noden Incoming Support Webhook och ställ in HTTP Method på
POST. - Ställ in Path på
f265a558-2787-4f8c-96a1-7b1068e45d3coch Response Mode påresponseNode. - Koppla RAG Intake Webhook → Retrieval QA Processor och Incoming Support Webhook → After-Sales Support Agent.
Steg 2: Anslut WooCommerce och spårningsdatakällor
Konfigurera WooCommerce-verktygen och spårnings-API-anropet som agenten använder för att besvara frågor om order och leveranser.
- Öppna Fetch Single Order och ställ in Resource på
order, Operation pågetoch Order ID på={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Order_ID', `Order Details Retrieval Process:\n1. Request Order Number\n - Explicitly ask customer for the complete order number\n\n2. Identity Verification\n - Ask for the email address associated with the order\n - Strictly verify that the provided email matches the order record\n - If email does NOT match the order:\n * Immediately halt the process\n * Inform customer that the email is incorrect\n * Do NOT provide the correct email\n * Prevent access to order details\n\n3. Verification Criteria\n - Exact match of email to order record is mandatory\n - No exceptions or workarounds\n - Customer must provide the precise, correct email`, 'string') }}. - Inloggningsuppgifter krävs: Anslut era wooCommerceApi-inloggningsuppgifter i Fetch Single Order.
- Öppna Retrieve Order List och ställ in Operation på
getAll, Search på={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Search', ``, 'string') }}och Return All på={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}. - Inloggningsuppgifter krävs: Anslut era wooCommerceApi-inloggningsuppgifter i Retrieve Order List och Lookup Customer Profile.
- Öppna Lookup Customer Profile och ställ in Email Filter på
={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Email', ``, 'string') }}, med Resource inställd påcustomeroch Operation pågetAll. - Konfigurera Fetch Tracking Data med URL inställd på
=https://URL/wp-json/wc/v3/orders/{{ $json.order_number }}och Authentication pågenericCredentialTypemedhttpBasicAuth. - Inloggningsuppgifter krävs: Anslut era httpBasicAuth-inloggningsuppgifter i Fetch Tracking Data.
Steg 3: Sätt upp RAG Retrieval QA-pipelinen
Koppla ihop retriever, vector store, embeddings och Gemini-modellen för att skapa kunskapsbaserade svar från RAG-intake-endpointen.
- Konfigurera Retrieval QA Processor med Text inställd på
={{ $json.body.search }}och behåll Prompt Type somdefine. - I Retrieval QA Processor ställer ni in System Prompt Template till
=You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question. If you don't know the answer, just say that you don't know, don't try to make up an answer. Today is {{ $now }} ---------------- Context: {context}. - Anslut Gemini Chat Engine till Retrieval QA Processor som språkmodell och ställ in Model Name på
models/gemini-1.5-flash. - Inloggningsuppgifter krävs: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Chat Engine.
- Konfigurera Vector Index Retriever med Top K inställd på
5och anslut den till Retrieval QA Processor som retriever. - Sätt upp Qdrant Vector Store A med Qdrant Collection inställd på
[YOUR_ID]och anslut den till Vector Index Retriever. - Inloggningsuppgifter krävs: Anslut era qdrantApi-inloggningsuppgifter i Qdrant Vector Store A.
- Anslut OpenAI Embedding Builder till Qdrant Vector Store A som embedding-källa.
- Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Embedding Builder.
Steg 4: Sätt upp after-sales support-agenten och verktygen
Konfigurera AI-agenten som hanterar ordersupport, tillsammans med dess verktygskedja och språkmodell.
- Konfigurera After-Sales Support Agent med Text inställd på
=Order Information: Email: {{ $json.body.email }} Order number: {{ $json.body.n_order }}och behåll Prompt Type somdefine. - Säkerställ att OpenAI Mini Chat Model är ansluten till After-Sales Support Agent som språkmodell och ställ in Model på
gpt-4o-mini. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Mini Chat Model.
- Koppla verktygsnoderna Fetch Single Order, Retrieve Order List, Lookup Customer Profile, Math Utility och Tracking Workflow Tool till After-Sales Support Agent via deras AI-verktygsanslutningar.
- Öppna Tracking Workflow Tool och bekräfta att Name är
get_trackingoch att Description beskriver spårningsuppslagning; ställ in Workflow ID till ert spårnings-subworkflow.
Steg 5: Konfigurera extrahering av spårningsdata och utdata för röstsvar
Extrahera spårningsdetaljer från spårnings-API:t och formatera det utgående röstsvar, och svara sedan på webhooken.
- Koppla Triggered by Parent Flow → Fetch Tracking Data och Fetch Tracking Data → Assign Tracking Details.
- I Assign Tracking Details lägger ni till fält för tracking_code, carrier_url och pick_up med värden inställda på
={{ $json["meta_data"].find(item => item.key === "ywot_tracking_code").value }},={{ $json["meta_data"].find(item => item.key === "ywot_carrier_url").value }}och={{ $json["meta_data"].find(item => item.key === "ywot_pick_up_date").value }}. - Konfigurera Compose Voice Reply så att message mappas till
={{ $json.output }}. - Koppla After-Sales Support Agent → Compose Voice Reply → Return Voice Response.
- Koppla Retrieval QA Processor → Return RAG Reply för att returnera kunskapsbassvar direkt från RAG-flödet.
Steg 6: Testa och aktivera ert workflow
Validera båda webhook-vägarna och bekräfta att ni får rätt svar innan ni aktiverar workflowet.
- Klicka på Execute Workflow och skicka en POST-förfrågan till RAG Intake Webhook med ett
body.search-värde för att verifiera att Return RAG Reply svarar med ett svar. - Skicka en POST-förfrågan till Incoming Support Webhook med
body.emailochbody.n_orderför att verifiera att Return Voice Response returnerar ett formateratmessage. - För validering av spårning kör ni subworkflowet som triggas av Triggered by Parent Flow och bekräftar att Assign Tracking Details matar ut
tracking_code,carrier_urlochpick_up. - När resultaten stämmer växlar ni workflowet till Active för att aktivera användning i produktion.
Vanliga fallgropar
- WooCommerce API-nycklar kan vara skrivskyddade eller kopplade till en användarroll som saknar orderbehörigheter. Om anrop plötsligt börjar returnera ”hittades inte”, kontrollera behörigheterna för WooCommerce REST API-nyckeln och användaren den tillhör.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in varumärkets tonalitet tidigt, annars kommer du redigera utdata i all evighet.
Vanliga frågor
Vanligtvis cirka 1–2 timmar när dina API-nycklar är klara.
Nej. Du kopplar konton, klistrar in webhook-URL:er i VAPI och justerar några promter och fält i n8n.
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 volym. Du behöver också räkna in användning av OpenAI- och Gemini-API:er, samt hosting av Qdrant och telefonkostnader via Twilio/VAPI.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och klarar n8n bra. Egen hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, men det rekommenderas inte av integritetsskäl. Det säkrare upplägget är att behålla e-post-till-order-matchning i instruktionerna för after-sales-agenten och sedan anpassa vad som händer när verifieringen misslyckas (till exempel erbjuda att sms:a en verifieringslänk eller koppla samtalet till en människa). Du kan också skärpa vad agenten får säga högt, till exempel att aldrig läsa upp fullständiga adresser eller telefonnummer även efter verifiering.
Oftast är det ett API-nyckelproblem: nyckeln är återkallad, användarrollen har ändrats eller nyckeln saknar behörighet att läsa ordrar/kunder. Uppdatera inloggningsuppgifterna i n8n och testa sedan om WooCommerce-verktygsnoderna som hämtar ordrar och användare. Om det bara fallerar vid toppar kan du slå i rate limits eller så blockerar ett säkerhetsplugin förfrågningarna.
I en typisk setup är dussintals per dag inga problem, och högre volym beror på din n8n-plan/server samt API-begränsningar.
Ofta, ja. Det här flödet kombinerar webhook-routing, strikt verifieringslogik och en riktig RAG-setup med Qdrant, vilket lätt blir krångligt (och dyrt) i Zapier-liknande verktyg. n8n ger dig också mer kontroll över förgreningar och datamodellering, så att dina röstsvar blir konsekventa. Samtidigt: om du bara vill ha ”när samtal kommer, skicka Slack-meddelande” kan Zapier eller Make gå snabbare. Prata med en automatiseringsexpert om du vill ha en rimlighetskontroll innan du bygger.
Sätt upp detta en gång, så slutar de repetitiva samtalen kapa din dag. Kunderna får fortfarande svar, och du slipper chansa med integriteten varje gång telefonen ringer.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.