Demoförfrågningar borde kännas spännande. I stället blir de en rörig mix av att kopiera och klistra in detaljer, gissa vem som menar allvar och jaga uppföljningar som faller mellan stolarna.
Den här automatiseringen för demo lead routing träffar SDR:er först, eftersom det är de som bränner tid på triage. Men growth marketers som försöker rapportera felfria funnel-siffror och grundare som sköter sin egen försäljning känner också av friktionen. Resultatet är enkelt: bättre kvalificerade möten, korrekt loggade, med uppföljningar som faktiskt blir av.
Nedan ser du hur flödet fångar en Calendly ”Request a Demo”, poängsätter den med OpenAI, routar den till rätt Saleshandy-sekvens och loggar allt i Google Sheets så att du äntligen kan lita på din pipeline-vy.
Så fungerar automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Calendly + Google Sheets, smartare demolead-routing
flowchart LR
subgraph sg0["AI Agent4 Flow"]
direction LR
n0@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "AI Agent4", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model3", 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/webhook.dark.svg' width='40' height='40' /></div><br/>Get data from calendly"]
n5@{ icon: "mdi:cog", form: "rounded", label: "Wait for meeting booked", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>get status, if meeting booked"]
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "switch meeting booked", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Add to sequence for qualified"]
n9["<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/>Add to sequence for unqualif.."]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Add to sequence for semi-qua.."]
n11@{ icon: "mdi:database", form: "rounded", label: "Append row for meeting booked", pos: "b", h: 48 }
n12@{ icon: "mdi:database", form: "rounded", label: "Append row for qualified", pos: "b", h: 48 }
n13@{ icon: "mdi:database", form: "rounded", label: "Append row for unqualified", pos: "b", h: 48 }
n14@{ icon: "mdi:database", form: "rounded", label: "Append row for semi-qualified", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Map Data"]
n0 --> n8
n0 --> n9
n0 --> n10
n15 --> n2
n2 --> n1
n1 --> n5
n3 -.-> n2
n7 --> n0
n7 --> n11
n4 --> n15
n5 --> n6
n8 --> n12
n6 --> n7
n9 --> n13
n10 --> n14
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 n2 ai
class n3 aiModel
class n0,n7 decision
class n11,n12,n13,n14 database
class n4,n6,n8,n9,n10 api
class n15 code
classDef customIcon fill:none,stroke:none
class n4,n6,n8,n9,n10,n15 customIcon
Utmaningen: demoförfrågningar som inte kvalificerar sig själva
Du får en Calendly-bokning och plötsligt spelar du detektiv. Är företaget på riktigt? Är jobbtiteln relevant? Bokade de faktiskt ett möte, eller avbröt de mitt i flödet och du sitter med skräpdata? Samtidigt finns svaren i din ”Request a Demo”-blankett på ett ställe, ditt uppföljningsverktyg på ett annat och din rapporteringssheet är alltid inaktuell. Det värsta är alla kontextbyten. Du slutar jobba med intäkter och börjar med administration, en lead i taget.
Det växer snabbt. Här är var det oftast faller isär.
- Någon måste manuellt läsa varje formulärsvar och avgöra om det är värt en säljares tid.
- Uppföljningar blir inkonsekventa eftersom folk skriver dem olika (eller glömmer helt under stressiga dagar).
- Din spreadsheet och ditt outbound-verktyg glider isär, vilket gör att rapportering blir ett veckovis städprojekt.
- Team slösar kalenderluckor på låg-matchande demos eftersom inget filtrerar förfrågningar i realtid.
Lösningen: kvalificera, verifiera, routa och logga varje demoförfrågan
Det här flödet startar i samma ögonblick som någon skickar in ditt routingformulär ”Request a Demo” i Calendly. n8n fångar payloaden, städar upp svaren och skickar den viktigaste kontexten (jobbtitel, företagsstorlek, domänkvalitet och dina egna frågor) till en AI-agent för poängsättning som drivs av OpenAI. Agenten returnerar ett enkelt resultat du kan agera på: ett betyg 1–10 och en etikett som Kvalificerad, Delvis kvalificerad eller Okvalificerad. Innan något routas kontrollerar flödet även i Calendly att en mötestid faktiskt bokades, så att du inte startar sekvenser för övergivna förfrågningar. Därefter routas leaden till rätt Saleshandy-sekvens och hela posten skrivs in i Google Sheets-flikar som matchar utfallet.
Flödet börjar med ett Calendly-webhook-intag. OpenAI poängsätter och etiketterar leaden, och sedan bekräftar en snabb bokningsverifiering att den är på riktigt. Efter det får Saleshandy leaden i rätt sekvens och Google Sheets blir din källa till sanning.
Vad som förändras: före vs. efter
| Det här tar bort | Effekten du kommer att se |
|---|---|
|
|
Effekt i verkligheten
Säg att du får 10 demoförfrågningar om dagen. Manuell hantering gör det lätt att lägga cirka 10 minuter per lead på att kontrollera detaljer, bestämma vem som ska ha den, lägga till dem i en sekvens och sedan logga i en sheet, alltså runt 100 minuter per dag. Med det här flödet blir ”människotiden” snarare runt 5 minuter totalt för att stickprovskolla fliken Kvalificerad och hantera specialfall. AI-poängsättning och bokningsverifiering kör fortfarande, men du är inte den som gör grovjobbet, och din uppföljning startar direkt.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Calendly för att fånga inskick av ”Request a Demo”
- Google Sheets för att logga leads i tre flikar
- Saleshandy för att köra sekvenserna Kvalificerad/Vårda/Diskvalificera
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard)
Svårighetsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och justerar en prompt och några routingregler.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet steg för steg
En Calendly-webhook fångar förfrågan. När någon skickar in ditt routingformulär tar flödet direkt emot svaren och identifierar bokningskontexten.
Formulärdatan städas upp och normaliseras. Ett transformationssteg formar om svaren till konsekventa fält, så att senare steg inte påverkas av rörig frågeformatering.
OpenAI poängsätter leaden och returnerar ett beslut du kan använda. AI-agenten utvärderar de indata du bryr dig om (jobbtitel, företagsstorlek, domänkvalitet och dina egna frågor) och producerar en poäng 1–10 plus en etikett som du kan routa på.
Flödet verifierar att mötet är på riktigt och routar sedan uppföljningen. Det väntar kort, kontrollerar Calendly via API för att bekräfta att en tid faktiskt bokades, väljer en Saleshandy-sekvens (Kvalificerad, Vårda eller Diskvalificera) och lägger till prospektet.
Google Sheets registrerar utfallet. Flödet skriver leaden, poängen, routingvägen och tidsstämpeln i rätt flik så att rapporteringen förblir korrekt formaterad utan extra arbete.
Du kan enkelt ändra poängtrösklarna så att de matchar din ICP och sedan routa till andra sekvenser eller till och med ett CRM baserat på samma poäng och etikett. Se den fullständiga implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera webhook-triggern
Det här arbetsflödet startar när Calendly skickar en webhook-payload till n8n.
- Lägg till och öppna Calendly Webhook Intake.
- Ställ in Path till
calendly-webhookoch HTTP Method tillPOST. - Kopiera den genererade webhook-URL:en och klistra in den i er webhook-konfiguration i Calendly.
questions_and_answers.Steg 2: anslut Google Sheets
Flera ark lagrar bokade, kvalificerade, okvalificerade och mellanpoäng-leads.
- Öppna Log Booked Meeting Row och välj mål-Document och Sheet (t.ex.
n8n calendly meetings→Meeting Booked). - Credentials krävs: anslut era googleSheetsOAuth2Api-credentials i Log Booked Meeting Row.
- Upprepa valet av credentials för Record Qualified Lead, Record Unqualified Lead och Record Midscore Lead.
- Bekräfta att kolumnmappningarna använder befintliga uttryck, som
{{ $('Calendly Webhook Intake').item.json.body.payload.questions_and_answers[0].answer }}för Name.
Steg 3: konfigurera AI-poängsättning och datapreparering
Arbetsflödet konverterar formulärsvar till ett JSON-objekt och poängsätter leaden med AI-agenten.
- Öppna Transform Form Answers och behåll den JavaScript-kod som normaliserar
questions_and_answerstill nyckel–värde-par. - I AI Scoring Agent bekräftar ni att Text är satt till
{{JSON.stringify($json)}}och att poängsättningsinstruktionerna ligger kvar i System Message. - Öppna OpenAI Chat Engine och ställ in Model till
gpt-4.1-mini. - Credentials krävs: anslut era openAiApi-credentials i OpenAI Chat Engine. Den här noden är språkmodellen för AI Scoring Agent, så credentials måste ligga på OpenAI Chat Engine (inte på agent-noden).
- I Assign Score Fields behåller ni Mode som
rawoch ställer in JSON Output till{ "score": {{ $json.output }} }.
Steg 4: konfigurera bokningskontroll och routningslogik
Den här delen väntar, kontrollerar om leaden har bokat ett möte och routar sedan utifrån poäng.
- Öppna Delay for Booking Check och välj Unit som
minutes(ställ in väntetiden i UI:t). - I Fetch Meeting Status ställer ni URL till
https://api.calendly.com/scheduled_eventsoch behåller Send Body och Send Headers aktiverade. - Ställ in body-parametrar så att de använder uttryck som
{{ $('Calendly Webhook Intake').item.json.body.payload.questions_and_answers[2].answer }}för invitee_email och{{ $('Assign Score Fields').item.json.score }}för Score. - Uppdatera authorization-headern i Fetch Meeting Status så att den använder er Calendly-token i
[CONFIGURE_YOUR_TOKEN]. - I Meeting Status Router behåller ni regeln som utvärderar att
{{ $json.pagination.count }}är lika med0för Not Booked och använder fallback till Booked. - I Route by Score bekräftar ni tröskelvärden:
>= 7för Qualified,<= 4för Unqualified, och fallback till Semiqualified.
Meeting Status Router skickar vidare till både Route by Score (Not Booked) och Log Booked Meeting Row (Booked) baserat på bokningskontrollen.
Steg 5: konfigurera outreach-sekvenser och lead-registrering
Kvalificerade, okvalificerade och mellanpoäng-leads skickas till Saleshandy och loggas i dedikerade ark.
- I Queue Qualified Sequence, Queue Unqualified Sequence och Queue Midscore Sequence ställer ni in URL till
https://open-api.saleshandy.com/v1/sequences/prospects/import-with-field-nameoch Method tillPOST. - Behåll JSON Body med uttrycken för First Name och Email, och ersätt
[YOUR_ID]i stepId med era faktiska step-ID:n för sekvensen. - Ersätt värdet i headern x-api-key
[CONFIGURE_YOUR_API_KEY]i varje queue-nod med er Saleshandy-nyckel. - Verifiera flödet: Route by Score → Queue Qualified Sequence → Record Qualified Lead, Queue Unqualified Sequence → Record Unqualified Lead, och Queue Midscore Sequence → Record Midscore Lead.
stepId-värden för varje queue-nod för att routa leads till rätt Saleshandy-sekvens.Steg 6: testa och aktivera ert arbetsflöde
Validera lead-poängsättning och routning end-to-end innan ni går live.
- Klicka på Test workflow och skicka en exempel-webhook från Calendly till Calendly Webhook Intake.
- Bekräfta att AI Scoring Agent returnerar en numerisk poäng och att Assign Score Fields skickar ut
{"score": ...}. - Kontrollera routningen i Meeting Status Router och verifiera att rätt Saleshandy-queue körs baserat på poängen.
- Bekräfta att rader läggs till i rätt Google Sheets-flikar via Log Booked Meeting Row eller respektive lead-registrering.
- När ni är nöjda, växla arbetsflödet till Active för produktionsbruk.
Se upp för
- Calendly-inloggningar kan löpa ut eller sakna behörigheter på organisationsnivå. Om något slutar fungera, kontrollera först din Personal Access Token och organisationsåtkomst i Calendly.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på grund av tomma svar.
- Saleshandy-sekvens-ID:n ändras när sekvenser dupliceras eller byggs om. Om leads slutar komma in i kampanjer, bekräfta att ID:n i din nod ”Set: Sequence IDs” matchar det som finns i Saleshandy.
Vanliga frågor
Cirka en timme när dina konton och API-nycklar är redo.
Ja. Ingen kodning krävs, men du behöver koppla in behörigheter och redigera några fält, som poängtrösklar och sekvens-ID:n.
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 även räkna in OpenAI API-användning (det här flödet ligger på cirka 1 200 tokens per lead).
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 klarar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverdrift.
Börja med att redigera prompten i AI-agenten för poängsättning så att den speglar din ICP (ARR, bransch, antal anställda, regioner och varningsflaggor). Justera sedan switch-reglerna i Route by Score så att de matchar dina trösklar, till exempel genom att göra ”Kvalificerad” striktare. Om Saleshandy inte är ditt outbound-verktyg kan du byta ut HTTP Request-stegen ”Queue Qualified/Midscore/Unqualified Sequence” mot HubSpot, Salesforce, Gmail eller det du använder. Du kan också byta loggningen i Google Sheets till Airtable eller BigQuery om du hanterar högre volym.
Oftast beror det på en utgången eller felaktig Personal Access Token.
Calendlys API-rate limit är 180 anrop per minut, så väldigt spikig volym kan behöva batchning. Skrivningar till Google Sheets är i praktiken enkeltrådade och kan bli flaskhalsen om du loggar många rader snabbt. I n8n Cloud beror kapaciteten på planens antal körningar per månad; self-hosting har ingen körningsgräns, men serverresurserna spelar fortfarande roll. I praktiken kan de flesta små team köra detta hela dagen utan att tänka på det, och du behöver bara optimera när volymen börjar bli stökig.
Ofta, ja, särskilt när du bryr dig om grenlogik (Kvalificerad vs. Vårda vs. Diskvalificera), bokningsverifiering och strukturerad loggning. n8n hanterar mer komplex routing utan att tvinga in dig i dyr ”task math”, och self-hosting kan hålla kostnaderna förutsägbara när volymen växer. Zapier eller Make kan fortfarande vara helt okej för en enkel ”Calendly till sheet”-synk. Det här flödet är inte enkelt. Om du är osäker, prata med en automationsexpert och mappa det mot din leadvolym och säljprocess.
När det här väl rullar blir demo lead routing tråkigt på bästa möjliga sätt. Teamet får bättre möten, mer korrekt formaterad data och ett uppföljningssystem som inte hänger på att någon råkar ha en ”bra admin-dag”.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.