Demoförfrågningar ska vara ett bra problem att ha. Sedan fylls inkorgen med ”studenter”, konkurrenter och personer som inte ens finns i din marknad, medan de riktiga köparna får vänta för länge.
Den här Cal.com Slack-automationen träffar säljleads och marketing ops först, men grundare känner av den också. Du får snabbare kvalificering, mer träffsäker routning och uppföljningar som inte låter som copy-paste-mallar.
Nedan ser du hur arbetsflödet hanterar intake, berikning, AI-kvalificering, bokningsverifiering i Cal.com samt överlämningen till Slack och din nurture-kampanj.
Så här fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutlig output:
n8n Workflow Template: Cal.com + Slack: kvalificera demoleads snabbt
flowchart LR
subgraph sg0["Structured Output Pa 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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields2", pos: "b", h: 48 }
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/>Route to Clay"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields3", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If1", 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/>Route to Clay2"]
n7@{ icon: "mdi:brain", form: "rounded", label: "Anthropic Chat Model", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "AI Qulification", 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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Check Cal.com For Booking"]
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If3", 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/>Add to Instantly"]
n15@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "Anthropic Chat Model1", pos: "b", h: 48 }
n17@{ icon: "mdi:wrench", form: "rounded", label: "Search Web", pos: "b", h: 48 }
n18@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Route to Clay1"]
n20["<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/>Trigify Enrichment"]
n1 --> n3
n1 --> n19
n5 --> n6
n5 --> n20
n13 --> n15
n11 --> n12
n0 --> n5
n15 --> n14
n17 -.-> n15
n2 --> n10
n3 --> n2
n19 --> n4
n9 --> n1
n10 --> n11
n20 --> n9
n7 -.-> n9
n16 -.-> n15
n8 -.-> n9
n12 --> n13
n18 -.-> n15
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 n8,n9,n15,n18 ai
class n7,n16 aiModel
class n17 ai
class n1,n5,n13 decision
class n0,n3,n6,n10,n12,n14,n19,n20 api
classDef customIcon fill:none,stroke:none
class n0,n3,n6,n10,n12,n14,n19,n20 customIcon
Problemet: demoförfrågningar staplas på hög, men fel personer får uppmärksamhet
Inkommande demoformulär ser enkla ut tills du lever med dem. Någon skickar in en förfrågan med en LinkedIn-URL, ett diffust ”use case” och en e-post som kan vara privat, kan vara företagsadress. Du kollar profilen, skummar företagets webbplats, avgör om de ligger i din målregion och försöker sedan lista ut om de faktiskt bokade en tid i Cal.com. Under tiden vinner den som svarar snabbast, vilket gör att du tvingas behandla varje lead som hett även när det uppenbart inte är det. Det är utmattande. Och ärligt talat: det är en tyst konverteringsdödare.
Det blir mycket snabbt. Här brukar friktionen dyka upp i riktiga team.
- Du tappar 10–15 minuter per lead bara på att verifiera vem de är och vad de gör.
- Lågkvalitativa källor smyger igenom, så sälj jagar leads som aldrig konverterar.
- Bokade och obokade förfrågningar blandas ihop, vilket gör att uppföljningar hamnar fel i tiden och blir awkward.
- ”Personlig outreach” blir en stressad brandkårsutryckning, så kvaliteten på budskapet sjunker precis när det spelar roll.
Lösningen: AI-kvalificera demoförfrågningar, verifiera bokningar och routa uppföljningar automatiskt
Det här n8n-arbetsflödet gör varje demoförfrågan till en strukturerad, kvalificerad post med rätt nästa åtgärd kopplad. Det startar i samma ögonblick som webbformuläret träffar en inkommande webhook och filtrerar sedan snabbt bort kända lågkvalitativa källor så att de inte stjäl uppmärksamhet. För leads som går igenom berikar flödet person- och företagsdata via Trigify API (baserat på LinkedIn-URL:en och andra formulärfält). Därefter granskar en AI-kvalificeringsagent den berikade kontexten och poängsätter leadet mot regler som annars brukar finnas i någons huvud: B2B-fit, målgeografier, senioritetssignaler och nuvarande anställning. Till sist kontrollerar den Cal.com för att se om leadet faktiskt bokade. Om inte genererar flödet research-baserad uppföljningscopy och lägger leadet i en Instantly.ai-kampanj, samtidigt som dina system hålls uppdaterade via HTTP-requests (till exempel Clay-tabeller) och interna flaggor.
Arbetsflödet börjar med en webhook-submission i realtid. Därefter berikar och kvalificerar det leadet med AI, så att du inte behöver gå på magkänsla. Efter en kort fördröjning verifierar det bokningsstatus i Cal.com och routar kvalificerade men obokade leads till en personlig uppföljningssekvens.
Vad du får: automation vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du får 20 demoförfrågningar i veckan. Manuellt är det lätt att lägga runt 10 minuter på att kolla LinkedIn, 5 minuter på att verifiera företaget och ytterligare 5 minuter på att bekräfta bokningsstatus i Cal.com, alltså ungefär 20 minuter per lead (cirka 6–7 timmar i veckan). Med det här flödet lägger du kanske 2 minuter på att skanna Slack-notisen och kliver bara in när leadet faktiskt är redo för sälj eller behöver mänsklig handpåläggning. Resten rullar i bakgrunden, inklusive berikning och en personlig uppföljning för kvalificerade personer som inte bokade.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Cal.com för att verifiera bokningsstatus via API.
- Slack för direktaviseringar till din säljkanal.
- Trigify API-nyckel (hämtas i din Trigify-dashboard).
Svårighetsnivå: medel. Du kopplar några API:er, mappar fält och justerar kvalificeringsreglerna så att de matchar din ICP.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En demoförfrågan träffar din webhook. Formulärinlämningen landar i n8n i realtid, inklusive e-post, LinkedIn-URL, use case och hänvisningskälla.
Lågkvalitativa källor stoppas. En ”If”-kontroll tittar på källan (till exempel ”lead_capture_box”) och routar uppenbart skräp bort från dyra steg som berikning och AI-analys.
Berikning + AI-kvalificering händer därefter. n8n anropar Trigify för att hämta rikare LinkedIn- och företagsdata, och sedan utvärderar en AI-agent fit (B2B-validering, geografi, senioritetssignaler och anställning). Resultatet parsas till strukturerade fält så att det faktiskt går att använda, inte bara blir en textklump.
Bokningsstatus i Cal.com verifieras efter en kort fördröjning. Flödet väntar, kontrollerar Cal.com API och grenar baserat på bokad vs. inte bokad. Kvalificerade men obokade leads får personlig uppföljningsresearch (inklusive webbresearch) och läggs till i Instantly.ai för nurturing, samtidigt som dina system uppdateras via HTTP-requests.
Du kan enkelt ändra kvalificeringskriterierna så att de matchar din ICP, eller ändra vart ”kvalificerade” leads skickas (Slack, Clay, Sheets, CRM) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera webhook-triggern
Börja med att sätta upp den inkommande webhooken så att webbplatsens insamlade data kan komma in i arbetsflödet och få ett svar.
- Lägg till noden Incoming Webhook Trigger och ställ in HTTP Method på
POST. - Ställ in Path till
[REDACTED_WEBHOOK_PATH](ersätt med sökvägen till er skarpa endpoint). - Ställ in Response Mode på
responseNodeså att arbetsflödet använder Return Webhook Reply för HTTP-svaret. - Koppla Incoming Webhook Trigger till Source Gate Check för att börja routa efter att datan tagits emot.
⚠️ Vanlig fallgrop: Säkerställ att ert webbplatsformulär skickar JSON med body.source, body.email och body.linkedinUrl så att efterföljande uttryck tolkas korrekt.
Steg 2: koppla på Clay- och Trigify-berikning
Det här steget filtrerar inkommande trafik och skickar ej bokade leads till Clay, samtidigt som kvalificerade källor berikas via Trigify.
- I Source Gate Check ställer ni in villkoret Left Value till
{{ $json.body.source }}och kontrollerar att det containslead_capture_box. - För “true”-grenen konfigurerar ni Send to Clay Unbooked med URL
https://api.clay.com/v3/sources/webhook/pull-in-data-from-a-webhook-[REDACTED_CLAY_WEBHOOK_ID]och MethodPOST. - I Send to Clay Unbooked → Body Parameters ställer ni in: Data of Demo Booked till
{{ $('Incoming Webhook Trigger').item.json.body.timestamp }}, Qualified tillNOT BOOKEDoch Email till{{ $json.body.email }}. - För “false”-grenen konfigurerar ni Fetch Trigify Enrichment med URL
/v1/profile/trackoch ställer in query-parametern url till{{ $json.body.linkedinUrl }}.
⚠️ Vanlig fallgrop: Ersätt [REDACTED_CLAY_WEBHOOK_ID] med ert Clay webhook-ID och säkerställ att bas-URL:en för er Trigify-endpoint är satt på nodnivå eller i miljövariabler.
Steg 3: sätt upp AI-logik för kvalificering
Använd AI för att avgöra kvalificering, routa sedan leads till kvalificerade eller okvalificerade Clay-pipelines och returnera webhook-svaret.
- Konfigurera AI Qualification Logic med Text satt till
=Analyse this person, ensure their current company the work for is a B2B company Based on this company descrption give me a True or false if this company is a B2B company - industry - {{ $json.position[0].companyIndustry }} company name - {{ $json.position[0].companyName }} company size - {{ $json.position[0].companyStaffCountRange }} I also only want to speak to countries that are in the US, UK, Europe or Australia Location - {{ $json.geo.country }} {{ $json.geo.countryCode }} Their job title needs to also be a senior job title so anything that countains, Head of, Director, VP, C-level. OR It contains the following keywords - Influencer, Strategy OR it contains GTM or Growth regardless of the seniorty wich is TRUE regardless of seniorty. Job title - {{ $json.position[0].title }} Employment Status - {{ $json.position[0].employmentType }} Start Date - {{ $json.position[0].start.year }} End Date - {{ $json.position[0].end.year }} IF all true mark as true is 1 thing is false mark as false. IF one of these is false and the rest are true mark as true. Unless the location contains India, Pakistan, Banglisdesh etc. If their job title contains Advisor, Contractor, Creator, Investor, Host etc (essentually any job title that suggests they could be wokring thier part time just their second job experience) industry - {{ $json.position[1].companyIndustry }} company name - {{ $json.position[1].companyName }} company size - {{ $json.position[1].companyStaffCountRange }} Start Date - {{ $json.position[1].start.year }} End Date - {{ $json.position[1].end.year }} {{ $json.position[1].end.month }} {{ $json.position[1].end.day }} If their end data in their second job has older than todays date you know they no longer work their.. - Koppla Anthropic Chat Engine som språkmodell för AI Qualification Logic.
Credential Required: Anslut era anthropicApi-credentials. - Koppla Parse AI Result som output parser för AI Qualification Logic och ställ in JSON Schema Example till
{ "result": true }. (Parsern är en sub-nod; behåll credentials på Anthropic Chat Engine.) - I Qualification Branch ställer ni in villkoret så att Left Value
{{ $json.output.result }}utvärderas med boolean-operationen true. - Konfigurera Send to Clay Qualified och Send to Clay Unqualified med respektive Clay webhook-URL:er och body-parametrar som Email
{{ $('Incoming Webhook Trigger').item.json.body.email }}och Company Name{{ $('Fetch Trigify Enrichment').item.json.position[0].companyName }}. - Sätt flaggor med Set Qualified Flag (output =
true) och Set Unqualified Flag (output =false), och koppla sedan Set Qualified Flag till Return Webhook Reply.
Tips: Ha Return Webhook Reply direkt efter Set Qualified Flag för att svara snabbt på webhooken medan uppföljande uppgifter fortsätter senare.
Steg 4: konfigurera bokningskontroll och fördröjning
Efter att ha svarat på webhooken väntar arbetsflödet, kontrollerar om det finns en bokning i Cal.com och triggar först därefter AI-uppföljningen.
- I Delay Timer ställer ni in Unit till
minutesoch anger er väntetid. - Konfigurera Check Cal Booking med URL
https://api.cal.com/v2/bookingsoch query-parametern attendeeEmail satt till{{ $('Incoming Webhook Trigger').item.json.body.email }}. - I Check Cal Booking → Header Parameters ställer ni in Authorization till
Bearer [CONFIGURE_YOUR_API_KEY]och cal-api-version till2024-08-13. - I Booking Status Check ställer ni in villkoret så att Left Value
{{ $json.data[0].start }}är notEmpty.
⚠️ Vanlig fallgrop: Ersätt [CONFIGURE_YOUR_API_KEY] med er Cal.com API-nyckel, annars kommer bokningskontrollen alltid misslyckas.
Steg 5: konfigurera AI-uppföljning och leverans till Instantly
Om ingen bokning hittas skapas en AI-genererad uppföljningsmening med webbresearch och leadet läggs till i Instantly.
- Konfigurera AI Followup Composer med Text satt till
Run task.och System Message satt till den angivna prompten som börjar med=Prospect Follow-Up Email Generatoroch slutar medNow, please research the prospect's company and provide your improved sentence.. - Koppla Anthropic Chat Engine 2 som språkmodell för AI Followup Composer.
Credential Required: Anslut era anthropicApi-credentials. - Koppla Parse Followup Output som output parser och ställ in JSON Schema Example till
{ "Sentence": "I'd love to show you exactly how you can leverage our Social Intelligence tool to help you research emerging telecom trends and customer sentiment patterns, giving HLR Lookup a competitive edge in identifying new market opportunities before other mobile validation providers even know they exist." }. (Parsern är en sub-nod; behåll credentials på Anthropic Chat Engine 2.) - Konfigurera Web Research Tool med URL
https://api.openai.com/v1/responses, MethodPOSToch JSON Body{ "model": "gpt-4o", "tools": [{"type": "web_search_preview"}], "input": "{placeholder}" }. Lägg till headern AuthorizationBearer [CONFIGURE_YOUR_API_KEY]. Det här verktyget är kopplat till AI Followup Composer, så hantera modell-credentials på föräldranoden. - Konfigurera Add Lead to Instantly med URL
https://api.instantly.ai/api/v2/leadsoch sätt JSON Body till{ "campaign": "[YOUR_ID]", "email": "{{ $('Incoming Webhook Trigger').item.json.body.email }}", "first_name": "{{ $node['Fetch Trigify Enrichment'].json.firstName }}", "last_name": "{{ $node['Fetch Trigify Enrichment'].json.lastName }}", "company_name": "{{ $node['Fetch Trigify Enrichment'].json.position[0].companyName }}", "custom_variables": { "research": "{{ $json.output.Sentence }}" } }. - I Add Lead to Instantly → Header Parameters ställer ni in Authorization till
Bearer [CONFIGURE_YOUR_API_KEY]och Content-Type tillapplication/json.
⚠️ Vanlig fallgrop: Ersätt [YOUR_ID] och [CONFIGURE_YOUR_API_KEY] med skarpa Instantly-uppgifter, annars kommer skapandet av leads misslyckas.
Steg 6: testa och aktivera ert arbetsflöde
Verifiera att data flödar genom kvalificering, bokningskontroller och leverans av uppföljning innan ni aktiverar arbetsflödet i produktion.
- Klicka på Execute Workflow och skicka en test-POST-förfrågan till Incoming Webhook Trigger-URL:en med exempel på
body.source,body.emailochbody.linkedinUrl. - Bekräfta att Source Gate Check routar korrekt till Send to Clay Unbooked eller Fetch Trigify Enrichment.
- Verifiera att Qualification Branch routar till Send to Clay Qualified eller Send to Clay Unqualified, och att Return Webhook Reply returnerar ett svar.
- Efter fördröjningen validerar ni beteendet för Check Cal Booking och Booking Status Check, och säkerställer att Add Lead to Instantly tar emot den AI-genererade
Sentence. - När testkörningen är lyckad växlar ni arbetsflödet till Active för att aktivera produktionstrafik.
Vanliga fallgropar
- Cal.com-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först din Cal.com API-token och endpoint-svaret i n8n:s körningsloggar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera output för alltid.
Vanliga frågor
Räkna med ungefär en timme om dina API-nycklar och formulärfält är redo.
Nej. Du kopplar mest konton, klistrar in API-nycklar och mappar ett fåtal fält i n8n.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för AI och berikning (Trigify och Anthropic/OpenAI), vilket vanligtvis landar på några dollar i månaden vid låg volym.
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änsade körningar men kräver grundläggande serverdrift.
Ja, och det bör du. Den snabbaste vinsten är att justera prompten i AI qualification logic och ”If”-reglerna i qualification branch så att de matchar din ICP. Många team justerar också geofilter (USA/UK/Europa/Australien), ändrar vad som räknas som ”seniora” titlar och lägger till en hård regel för typ av e-postdomän (privat vs. företag).
Oftast beror det på en utgången eller felaktig Cal.com API-token. Kontrollera HTTP request-noden som anropar Cal.com och titta sedan på senaste körningens output i n8n för statuskod och felmeddelande. Om tokenen är okej kan det också vara endpoint-sökvägen (vissa Cal.com-uppsättningar varierar) eller en saknad behörighet för den bokningsresurs du försöker läsa.
I en typisk liten setup är hundratals per månad realistiskt, och self-hosting tar bort exekveringsbegränsningar helt.
Ofta, ja, eftersom det här flödet kräver grenlogik, fördröjda kontroller, strukturerade AI-outputs och flera HTTP-anrop som kan bli dyra eller klumpiga i andra verktyg. n8n hanterar den typen av ”funnel-logik” utan att göra varje villkor till ett betalt tillägg. Zapier eller Make kan fortfarande vara bra om du bara vill ha en enkel Slack-ping när ett formulär skickas in: ingen berikning, ingen kvalificering, ingen bokningsverifiering. När du bryr dig om fit, timing och konsekventa uppföljningar vill du ha den extra kontrollen. Om du tvekar, prata med en automationsexpert så kvalitetssäkrar vi ditt use case.
När det här väl rullar slutar demoförfrågningar vara en daglig brandövning. Arbetsflödet tar hand om den repetitiva sorteringen och uppföljningsupplägget så att teamet kan fokusera på samtalen som faktiskt konverterar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.