Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

WhatsApp + Google Calendar: bekräftelser sköts åt dig

Rickard Andersson Partner, Nodenordic.se

Bokningsbekräftelser låter enkelt tills receptionen drunknar i WhatsApp-trådar, påminnelser glöms bort och ”vi ses imorgon” blir till en utebliven patient.

Den här WhatsApp-kalenderautomationen slår först mot klinikchefer, men receptionsteam och upptagna klinikägare känner av det lika mycket. Du får bekräftelser som skickas i tid, svar som hamnar rätt och ett schema som håller sig korrekt utan att någon behöver vaka över det.

Nedan ser du exakt vilket flöde som används, vad det åtgärdar och hur det håller WhatsApp-meddelanden och Google Calendar-bokningar synkade dag efter dag.

Så fungerar den här automationen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: WhatsApp + Google Calendar: bekräftelser sköts åt dig

Problemet: bekräftelser faller mellan stolarna

De flesta kliniker tappar inte patienter för att vården är dålig. De tappar tid (och intäkter) för att kommunikationen är rörig. En receptionist bekräftar fem tider, blir avbruten av ett akut samtal och kommer sedan tillbaka till 30 olästa WhatsApp-meddelanden. Någonstans i den högen finns en patient som vill boka om, en annan som frågar ”vilken tid var det nu igen?”, och någon som aldrig svarar alls. Nu är din Google Calendar tekniskt sett ”korrekt”, men verkligheten är det inte. Personalen förbereder fel rum, fel behandlare – eller så dyker ingen upp. Ärligt talat är det dränerande.

Friktionen byggs på. Här är var det brukar brista i verkliga kliniker.

  • Bekräftelser skickas inkonsekvent, så patienter som hade svarat ”ja” får ingen tydlig prompt.
  • Förfrågningar om ombokning kommer in, men begravs i chatthistoriken och hanteras för sent för att tiden ska kunna återanvändas.
  • WhatsApp-röstmeddelanden och foton saktar ner allt eftersom någon måste lyssna, tolka och skriva ner det igen.
  • Kalenderändringar och chattuppdateringar glider isär, vilket skapar dubbelbokningar eller pinsamma ”vi ser dig inte inbokad”-ögonblick.

Lösningen: WhatsApp-bekräftelser som uppdaterar din kalender

Det här n8n-flödet fungerar som ett kommunikationslager för kliniken mellan WhatsApp, Telegram (för personal) och Google Calendar. Inkommande WhatsApp-meddelanden går först till en webhook och klassificeras sedan efter typ (text, bild, ljud, dokument). Om det är media hämtar flödet filen och använder AI för att göra den till användbar text (ljudtranskribering eller bildtolkning). Därefter hanterar en specialiserad WhatsApp-assistent vanliga patientärenden som att bekräfta, boka om och enklare frågor. Sedan ser en formateringsagent till att det utgående meddelandet följer en WhatsApp-vänlig struktur innan det skickas via Evolution API. Separat, varje vardagsmorgon, kontrollerar flödet morgondagens bokningar i Google Calendar och skickar proaktivt bekräftelsemeddelanden, så att ”vänligen bekräfta”-steget sker pålitligt även under stressiga dagar.

Flödet startar med två ingångar: patientmeddelanden i WhatsApp och personalförfrågningar i Telegram. Därefter routas dialogen via rätt AI-agent, bokningsdetaljer hämtas eller uppdateras via Google Calendar-verktyg och slutligen skickas en korrekt formaterad bekräftelse tillbaka till patienten (och ett tydligt svar tillbaka till personalen när de initierar ändringar).

Det här får du: automation vs. resultat

Exempel: så här ser det ut

Säg att din klinik har 25 bokningar imorgon. Manuell hantering – skicka en WhatsApp-påminnelse, vänta och sedan logga utfallet – tar ofta cirka 4 minuter per patient när man räknar in kontextbyten, alltså ungefär 100 minuter. Och det är på en ”smidig” dag. Med det här flödet går bekräftelserna ut automatiskt kl. 08:00 och svaren routas automatiskt till rätt agent. Du kanske lägger 10 minuter på att granska specialfall – inte nästan två timmar på att jaga folk.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Evolution API (WhatsApp) för att skicka och ta emot WhatsApp-meddelanden.
  • Google Calendar för att läsa och uppdatera bokningsdetaljer.
  • Telegram-bot för personalens kommandon och interna notifieringar.
  • OpenAI API-nyckel (hämta den i din OpenAI API-dashboard).
  • PostgreSQL-databas för beständiga sessioner med chatthistorik.

Svårighetsgrad: Medel. Du kopplar några autentiseringar, klistrar in API-nycklar och testar meddelandeflöden end-to-end.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (kostnadsfri 15-minuters konsultation).

Så fungerar det

Patientmeddelanden triggar flödet. En inkommande WhatsApp-webhook tar emot varje meddelande och fält mappas så att flödet får ett konsekvent format att arbeta med.

Innehållet förstås, även när det är rörigt. En switch skickar text direkt till WhatsApp-assistenten, medan ljud och bilder hämtas och konverteras så att AI kan transkribera eller tolka vad patienten faktiskt skickade.

AI-agenter hanterar avsikt och nästa steg. Clinic WhatsApp Assistant och Appointment Confirmation Agent avgör om patienten bekräftar, vill boka om eller behöver eskaleras. När personalen initierar ändringar från Telegram hanterar Internal Clinic Assistant de förfrågningarna och svarar tillbaka i Telegram.

Bekräftelser skickas ut i korrekt form. En Message Formatting Agent förbereder det slutliga WhatsApp-svaret och sedan skickar Evolution API-sändnoderna det. På vardagar kl. 08:00 körs den schemalagda triggern en batch med påminnelser för nästa dag så att bekräftelser sker konsekvent.

Du kan enkelt ändra tidpunkten för bekräftelser så att den matchar klinikens öppettider utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera triggrarna

Sätt upp inkommande WhatsApp-, Telegram- och schemalagda triggers som startar arbetsflödets tre kärnflöden.

  1. Öppna Incoming WhatsApp Webhook och ställ in HTTP Method till POST och Path till evolutionAPIKORE.
  2. Öppna Telegram Message Intake och bekräfta att den lyssnar efter updates av message. Credential Required: anslut era telegramApi-inloggningsuppgifter.
  3. Öppna Weekday Schedule Trigger och ställ in cron-uttrycket till 0 8 * * 1-5 (vardag 08:00).
Om ni ändrar webhook-sökvägen måste ni uppdatera Evolution API-webhook-URL:en så att den matchar evolutionAPIKORE.

Steg 2: mappa och routa inkommande WhatsApp-data

Normalisera inkommande WhatsApp-payload och routa den efter innehållstyp (text, bild, ljud eller dokument).

  1. I Map Incoming Fields, lägg till tilldelningar för nyckelfält som number med {{$json.body.data.key.remoteJid}} och text med {{$json.body.data.message.conversation}}.
  2. I Map Incoming Fields, inkludera mediafält som image.url med {{$json.body.data.message.imageMessage.url}} och audio.url med {{$json.body.data.message.audioMessage.url}}.
  3. I Route by Content Type, verifiera att reglerna kontrollerar {{$json.text}}, {{$json.image.url}}, {{$json.audio.url}} och {{$json.document.url}} för notEmpty.
⚠️ Vanlig fallgrop: om media-URL:er saknas i den inkommande payloaden kommer switch-reglerna inte att matcha, och meddelandet når inte nedströmsprocessorerna.

Steg 3: konfigurera mediabearbetning för ljud och bilder

Sätt upp spåren för ljudtranskribering och bildanalys innan svar genereras.

  1. I Evolution Media Fetch, ställ in Operation till get-media-base64, Message ID till {{$json.key_id}} och Instance Name till {{$('Incoming WhatsApp Webhook').item.json.body.instance}}. Credential Required: anslut era evolutionApi-inloggningsuppgifter.
  2. I Binary File Converter, ställ in Operation till toBinary och Source Property till data.base64.
  3. I OpenAI Audio Transcriber, ställ in Resource till audio, Operation till transcribe och Binary Property Name till =data. Credential Required: anslut era openAiApi-inloggningsuppgifter.
  4. I OpenAI Vision Analyzer, ställ in Resource till image, Operation till analyze, Text till TRANSCRIBE OS TEXTOS e describe a imagem och Image URLs till {{$json.image}}. Credential Required: anslut era openAiApi-inloggningsuppgifter.
  5. I Image Insight Agent, ställ in Text till {{$json.output}} och säkerställ att den använder OpenRouter Chat Engine B som språkmodell. Credential Required: anslut era openRouterApi-inloggningsuppgifter till OpenRouter Chat Engine B.

Steg 4: konfigurera WhatsApp-kedjan för AI-svar

Bygg assistenten som tolkar meddelanden, använder minne, formaterar svaret och skickar det till WhatsApp.

  1. I Clinic WhatsApp Assistant, ställ in Text till {{$json.text}}{{$json.output}} och granska systemmeddelandet för klinikens policy.
  2. Koppla Postgres Memory Session som minne med Session Key satt till {{ $('Incoming WhatsApp Webhook').item.json.body.data.key.id }} och Context Window Length till 50. Credential Required: anslut era postgres-inloggningsuppgifter på Clinic WhatsApp Assistant (minnesnoden är en undernod).
  3. Ställ in språkmodellen för Clinic WhatsApp Assistant till OpenAI Chat Engine. Credential Required: anslut era openAiApi-inloggningsuppgifter till OpenAI Chat Engine.
  4. För verktyg som används av Clinic WhatsApp Assistant, säkerställ att Send Cancellation Alert är tillgängligt med Text {{$fromAI('Text', ``, 'string')}} och Chat ID {{$fromAI('Chat_ID', ``, 'string')}}. Credential Required: anslut era telegramApi-inloggningsuppgifter på Clinic WhatsApp Assistant (verktygens inloggningsuppgifter tillhör den överordnade agenten).
  5. Öppna Run Sub-Workflow (Configure Required) och ställ in Workflow ID till ert eskaleringsarbetsflöde. Behåll indata mappade till {{$fromAI('nome', ``, 'string')}}, {{$fromAI('telefone', ``, 'string')}} och {{$fromAI('ultima_mensagem', ``, 'string')}}.
  6. I Message Formatting Agent, ställ in Text till {{$json.output}} och använd OpenRouter Chat Engine A som språkmodell. Credential Required: anslut era openRouterApi-inloggningsuppgifter till OpenRouter Chat Engine A.
  7. I WhatsApp Message Dispatch, ställ in Remote JID till {{$('Incoming WhatsApp Webhook').item.json.body.data.key.remoteJid}}, Message Text till {{$json.output}} och Instance Name till {{$('Incoming WhatsApp Webhook').item.json.body.instance}}. Credential Required: anslut era evolutionApi-inloggningsuppgifter.
⚠️ Vanlig fallgrop: Run Sub-Workflow (Configure Required) levereras med ett tomt Workflow ID. Eskaleringsverktyget kommer att fallera tills ni väljer ett verkligt arbetsflöde.

Steg 5: konfigurera flödet för intern assistent i Telegram

Sätt upp den interna Telegram-drivna assistenten för ombokningar som drivs av personal och påminnelser om uppgifter.

  1. I Internal Clinic Assistant, ställ in Text till {{$json.message.text}} och verifiera systeminstruktionerna för interna ombokningar och uppgifter för inköpslista.
  2. Tilldela OpenAI Chat Engine A som språkmodell. Credential Required: anslut era openAiApi-inloggningsuppgifter till OpenAI Chat Engine A.
  3. Anslut Postgres Conversation Memory med Session Key satt till 100 och Context Window Length till 10. Credential Required: anslut era postgres-inloggningsuppgifter på Internal Clinic Assistant (minnesinloggningsuppgifter tillhör den överordnade agenten).
  4. Säkerställ att verktygsnoder för denna agent är kopplade: MCP Calendar Access och Add Task Reminder. Credential Required: anslut era googleTasksOAuth2Api-inloggningsuppgifter på Internal Clinic Assistant (verktyget Add Task Reminder är en undernod).
  5. I Telegram Reply Sender, ställ in Text till {{$json.output}} och Chat ID till {{$('Telegram Message Intake').item.json.message.chat.id}}. Credential Required: anslut era telegramApi-inloggningsuppgifter.

Steg 6: konfigurera automatisering för bokningsbekräftelse

Automatisera dagliga meddelanden för bokningsbekräftelse baserat på kalendern.

  1. Öppna Appointment Confirmation Agent och bekräfta att prompten instruerar den att lista händelser för nästa dag och skicka påminnelser.
  2. Tilldela OpenAI Chat Engine B som språkmodell. Credential Required: anslut era openAiApi-inloggningsuppgifter till OpenAI Chat Engine B.
  3. Koppla MCP-verktygen MCP Calendar Tool och MCP Gmail Connector till Appointment Confirmation Agent så att den kan läsa schemat och relaterad kommunikation.
  4. I Appointment Reminder Sender, ställ in Remote JID till [YOUR_EMAIL], Message Text till {{$fromAI("reminder")}} och Instance Name till instance name. Credential Required: anslut era evolutionApi-inloggningsuppgifter.
⚠️ Vanlig fallgrop: ersätt [YOUR_EMAIL] och instance name i Appointment Reminder Sender annars kommer påminnelser inte att nå riktiga mottagare.

Steg 7: granska kopplingarna i exekveringsflödet

Verifiera att nodordningen matchar avsedda exekveringsvägar för WhatsApp, Telegram och schemalagda påminnelser.

  1. Bekräfta WhatsApp-kedjan: Incoming WhatsApp WebhookMap Incoming FieldsRoute by Content TypeClinic WhatsApp AssistantMessage Formatting AgentWhatsApp Message Dispatch.
  2. Bekräfta ljudgrenen: Route by Content TypeEvolution Media FetchBinary File ConverterOpenAI Audio TranscriberClinic WhatsApp Assistant.
  3. Bekräfta bildgrenen: Route by Content TypeOpenAI Vision AnalyzerImage Insight AgentClinic WhatsApp Assistant.
  4. Bekräfta Telegram-kedjan: Telegram Message IntakeInternal Clinic AssistantTelegram Reply Sender.
  5. Bekräfta de schemalagda påminnelserna: Weekday Schedule TriggerAppointment Confirmation AgentAppointment Reminder Sender.

Steg 8: testa och aktivera ert arbetsflöde

Validera varje trigger och bekräfta svaren innan ni slår på arbetsflödet i produktion.

  1. Använd Execute Workflow för att skicka ett testmeddelande till Incoming WhatsApp Webhook och bekräfta att svaret skickas av WhatsApp Message Dispatch.
  2. Skicka ett Telegram-meddelande för att verifiera att Telegram Message Intake triggar Internal Clinic Assistant och returnerar ett svar via Telegram Reply Sender.
  3. Kör Weekday Schedule Trigger manuellt för att bekräfta att Appointment Reminder Sender skickar en påminnelse med {{$fromAI("reminder")}}.
  4. När testerna lyckas, växla arbetsflödet till Active för att aktivera körning i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Calendar OAuth-uppgifter kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först din OAuth-medgivandeskärm i Google Cloud och tokenstatus.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
  • Evolution API (WhatsApp)-instanser fallerar ofta på grund av fel instansnamn eller återkallad API-nyckel. Verifiera instansen och nyckeln i din Evolution-dashboard och testa sedan ett enstaka utgående meddelande igen.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här WhatsApp-kalenderautomationen?

Räkna med cirka 60 minuter om dina inloggningsuppgifter är redo.

Behöver jag kunna koda för att automatisera WhatsApp-kalenderautomation?

Nej. Du kopplar mest konton och klistrar in API-nycklar. Logiken är redan inbyggd i flödet.

Är n8n gratis att använda för det här WhatsApp-kalenderautomationsflödet?

Ja. n8n har ett gratis alternativ för egen drift och en kostnadsfri 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 kostnader för OpenAI API-användning, som vanligtvis är några cent per konversation beroende på meddelandelängd och media.

Var kan jag hosta n8n för att köra den här automationen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här WhatsApp-kalenderautomationsflödet för ett annat bekräftelseschema och en annan meddelandestil?

Ja, och det bör du. Du kan ändra vardagstiden i noden ”Weekday Schedule Trigger” och sedan justera formuleringarna i ”Appointment Confirmation Agent” och ”Message Formatting Agent” så att det matchar klinikens tonalitet. Vanliga justeringar är att lägga till en rad om avbokningspolicy, stöd för flera språk och att skicka en Telegram-notis till personalen när en patient vill boka om.

Varför fungerar inte min WhatsApp-anslutning i det här flödet?

Oftast är det ett Evolution API-autentiseringsproblem: fel instansnamn, utgången nyckel eller att WhatsApp-sessionen kopplats ner. Uppdatera Evolution-uppgifterna i n8n och skicka sedan ett enkelt utgående testmeddelande för att bekräfta leverans. Om inkommande meddelanden inte kommer fram, dubbelkolla webhook-URL:en som är konfigurerad i Evolution. Håll också koll på rate limits om du skickar många påminnelser samtidigt.

Hur många bokningar kan den här WhatsApp-kalenderautomationen hantera?

För en typisk liten klinik är ett par dussin upp till några hundra bekräftelser per dag realistiskt.

Är den här WhatsApp-kalenderautomationen bättre än att använda Zapier eller Make?

Ofta, ja – om du bryr dig om driftsäkerhet och flexibilitet. Det här flödet är inte bara ”skicka en påminnelse”; det routar meddelanden efter innehållstyp, bearbetar ljud och bilder och använder minne så att patientkonversationer inte återställs varje gång. n8n ger dig också förgreningar utan att du betalar per gren, och egen drift undviker körningsbegränsningar när volymen växer. Zapier eller Make kan gå snabbare för mycket enkla tvåstegspåminnelser, men blir snabbt klumpiga när du lägger till mediabearbetning och eskaleringsregler. Om du vill ha hjälp att välja, prata med en automationsexpert och matcha det mot din faktiska patientvolym.

När bekräftelserna går på autopilot slutar schemat vara en daglig gissningslek. Flödet tar hand om de repetitiva uppföljningarna så att personalen kan fokusera på patienterna.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal