Din WhatsApp blir snabbt en bokningsinkorg. Folk frågar efter tider, ångrar sig, skickar ett röstmeddelande och följer sedan upp med ”någon uppdatering?”. Under tiden tappar din kalender synk.
Salongsägare märker det när receptionen går på knäna. Klinikchefer ser det när antalet uteblivna besök ökar. Och en konsult som jobbar solo tappar bara kvällar på administration. Den här WhatsApp-bokningsautomationen gör chattar till riktiga Google Calendar-bokningar, utan att du behöver passa varje meddelande.
Nedan ser du hur flödet styr meddelanden, kontrollerar tillgänglighet, bekräftar tiden och till och med skickar påminnelser. Målet är enkelt: färre luckor, färre krockar och mycket mindre fram och tillbaka.
Så fungerar automatiseringen
Hela n8n-workflowen, från trigger till slutresultat:
n8n Workflow Template: WhatsApp + Google Kalender: bokningar hanteras åt dig
flowchart LR
subgraph sg0["WhatsApp 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/whatsapp.svg' width='40' height='40' /></div><br/>WhatsApp Trigger"]
n1["<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/whatsapp.svg' width='40' height='40' /></div><br/>Not supported"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Input type", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Initial Data", 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/redis.svg' width='40' height='40' /></div><br/>Set Processing Lock"]
n5@{ icon: "mdi:cog", form: "rounded", label: "Wait", 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/redis.svg' width='40' height='40' /></div><br/>Get Current Processing Lock"]
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Am I the Processor?", 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/redis.svg' width='40' height='40' /></div><br/>Pop All Batched Messages"]
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/redis.svg' width='40' height='40' /></div><br/>Delete Message List"]
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/redis.svg' width='40' height='40' /></div><br/>Delete Processing Lock"]
n11["<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/redis.svg' width='40' height='40' /></div><br/>Push"]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is User Text Message?", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Audio Message?", 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/code.svg' width='40' height='40' /></div><br/>Combine Messages"]
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/>Rate Limiter"]
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/code.svg' width='40' height='40' /></div><br/>Check Limit"]
n17@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Rate Limited", 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/redis.svg' width='40' height='40' /></div><br/>Redis Hourly"]
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/redis.svg' width='40' height='40' /></div><br/>Increment Counter Hourly"]
n20@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Send Mesage?", pos: "b", h: 48 }
n21@{ icon: "mdi:message-outline", form: "rounded", label: "Send Rate Limit Email", pos: "b", h: 48 }
n22["<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/whatsapp.svg' width='40' height='40' /></div><br/>Send User Message"]
n23["<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/whatsapp.svg' width='40' height='40' /></div><br/>Send Owner Message"]
n24@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Owner?", pos: "b", h: 48 }
n25@{ icon: "mdi:cog", form: "rounded", label: "Execute Airtable Agent", pos: "b", h: 48 }
n26["<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/>Download Image"]
n27@{ icon: "mdi:robot", form: "rounded", label: "Analyze Image", pos: "b", h: 48 }
n28["<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/>Download Audio"]
n29@{ icon: "mdi:robot", form: "rounded", label: "Transcribe Audio", pos: "b", h: 48 }
n30["<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/>Download File"]
n31@{ icon: "mdi:cog", form: "rounded", label: "Extract from File", pos: "b", h: 48 }
n32["<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/whatsapp.svg' width='40' height='40' /></div><br/>Get File Url"]
n33@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Only PDF File", pos: "b", h: 48 }
n34["<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/whatsapp.svg' width='40' height='40' /></div><br/>Incorrect format"]
n35@{ icon: "mdi:swap-vertical", form: "rounded", label: "Text", pos: "b", h: 48 }
n36@{ icon: "mdi:swap-vertical", form: "rounded", label: "Audio", pos: "b", h: 48 }
n37@{ icon: "mdi:swap-vertical", form: "rounded", label: "File", pos: "b", h: 48 }
n38["<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/whatsapp.svg' width='40' height='40' /></div><br/>Get Image Url"]
n39["<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/whatsapp.svg' width='40' height='40' /></div><br/>Get Audio Url"]
n40@{ icon: "mdi:wrench", form: "rounded", label: "cancel_agent", pos: "b", h: 48 }
n41@{ icon: "mdi:swap-vertical", form: "rounded", label: "Image", pos: "b", h: 48 }
n42["<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/whatsapp.svg' width='40' height='40' /></div><br/>Send Message"]
n43["<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/>Limit Reached?"]
n44@{ icon: "mdi:location-exit", form: "rounded", label: "Get many events", pos: "b", h: 48 }
n45@{ icon: "mdi:robot", form: "rounded", label: "Booking Agent", pos: "b", h: 48 }
n46@{ icon: "mdi:memory", form: "rounded", label: "Redis Chat Memory", pos: "b", h: 48 }
n47@{ icon: "mdi:cog", form: "rounded", label: "send_acknowledgement", pos: "b", h: 48 }
n48@{ icon: "mdi:wrench", form: "rounded", label: "nail-salon-booking-mcp", pos: "b", h: 48 }
n54@{ icon: "mdi:brain", form: "rounded", label: "gpt-5-mini", pos: "b", h: 48 }
n55@{ icon: "mdi:brain", form: "rounded", label: "gemini-2.5-flash", pos: "b", h: 48 }
n37 --> n45
n11 --> n4
n35 --> n45
n5 --> n6
n36 --> n45
n41 --> n45
n24 --> n25
n24 --> n3
n2 --> n35
n2 --> n39
n2 --> n38
n2 --> n33
n2 --> n1
n54 -.-> n45
n54 -.-> n40
n16 --> n17
n32 --> n30
n15 --> n18
n18 --> n19
n20 --> n22
n40 -.-> n45
n27 --> n41
n45 --> n42
n30 --> n31
n39 --> n28
n38 --> n26
n33 --> n32
n33 --> n34
n28 --> n29
n26 --> n27
n43 --> n2
n44 --> n43
n14 --> n44
n3 --> n13
n29 --> n36
n0 --> n24
n55 -.-> n45
n31 --> n37
n13 --> n14
n13 --> n12
n46 -.-> n45
n46 -.-> n40
n22 --> n23
n17 --> n20
n17 --> n11
n23 --> n21
n7 --> n8
n9 --> n10
n4 --> n5
n47 -.-> n45
n12 --> n15
n10 --> n14
n48 -.-> n40
n48 -.-> n45
n19 --> n16
n8 --> n9
n6 --> n7
end
subgraph sg1["Schedule Flow"]
direction LR
n49@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n50["<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/>Calculate Tomorrow"]
n51@{ icon: "mdi:location-exit", form: "rounded", label: "Get Schedule Events", pos: "b", h: 48 }
n52["<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/>Format Reminder Data"]
n53["<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/whatsapp.svg' width='40' height='40' /></div><br/>Send Client Reminder"]
n49 --> n50
n50 --> n51
n51 --> n52
n52 --> n53
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 n0,n49 trigger
class n27,n29,n45 ai
class n54,n55 aiModel
class n40,n48 ai
class n46 ai
class n2,n7,n12,n13,n17,n20,n24,n33 decision
class n4,n6,n8,n9,n10,n11,n18,n19 database
class n26,n28,n30 api
class n14,n15,n16,n43,n50,n52 code
classDef customIcon fill:none,stroke:none
class n0,n1,n4,n6,n8,n9,n10,n11,n14,n15,n16,n18,n19,n22,n23,n26,n28,n30,n32,n34,n38,n39,n42,n43,n50,n52,n53 customIcon
Problemet: WhatsApp-bokningar skapar fel i kalendern
Att boka via chatt låter ”enkelt” tills det blir konstant kontextväxling. En kund frågar om torsdag, du kollar Google Calendar, du svarar, och sedan kommer ett nytt meddelande med en annan tjänstelängd. Nu scrollar du igen. Lägg till röstmeddelanden, skärmdumpar och ”kan jag boka åt min vän?”-förfrågningar så blir det en liten supportdesk som aldrig stänger. Det värsta är den smygande skadan: dubbelbokningar, missade tider du hade kunnat fylla och den där gnagande känslan av att du alltid ligger ett meddelande efter.
Det eskalerar snabbt. Här brukar det brista.
- Du kollar tillgänglighet manuellt dussintals gånger per dag, trots att kalendern redan har svaret.
- Folk skickar ljud och PDF:er, vilket gör att du måste tolka information innan du ens kan svara.
- Ett missat ”bekräfta”-meddelande kan slösa bort en attraktiv tid, särskilt för tjänster med hög efterfrågan.
- När volymen ökar svarar du antingen långsamt eller så skyndar du dig och gör fel.
Lösningen: WhatsApp-konversationer som skapar riktiga kalenderbokningar
Den här n8n-workflowen gör inkommande WhatsApp-meddelanden till en styrd bokningsdialog som slutar med en bekräftad Google Calendar-händelse. Den startar i samma ögonblick som en kund skriver till ditt WhatsApp Business-nummer och routar sedan input baserat på vad de skickade (text, röst, bild eller PDF). Skickar de ljud transkriberar flödet det. Skickar de en bild eller ett dokument med pris eller detaljer kan flödet extrahera texten så att ”bokningsintentionen” ändå fångas. Därefter kontrollerar en AI-bokningsagent tillgänglighet i Google Calendar, stämmer av tjänst och duration och föreslår alternativ som kunden faktiskt kan välja mellan. När kunden har bekräftat skickar flödet bokningssvaret tillbaka i WhatsApp och sparar kontext i Redis så att du inte behöver börja om varje gång.
Flödet körs också schemalagt för att skicka påminnelser dagen innan, vilket ger färre ”jag glömde”-meddelanden och färre tomma stolar. Och om någon spammar ditt nummer aktiveras rate limiting (standard är 100 meddelanden per timme), så att systemet förblir användbart under toppar.
Det här får du: automation jämfört med resultat
| Det här automatiserar workflowen | Resultatet du får |
|---|---|
|
|
Exempel: så kan det se ut
Säg att ditt företag bokar 10 tider per dag via WhatsApp. Manuellt kan du lägga cirka 6 minuter per bokning på att kontrollera Google Calendar, bekräfta tjänstens längd och skicka slutliga detaljer, alltså ungefär en timme per dag. Med den här workflowen låter du i princip bara den rulla: kunden skriver, boten bekräftar tillgänglighet och du kliver in bara vid specialfall, kanske 10 minuter totalt. Det är cirka 4 timmar tillbaka varje vecka, utan att ändra hur dina kunder redan föredrar att boka.
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)
- WhatsApp Business API för att ta emot och skicka bokningsmeddelanden.
- Google Calendar för tillgänglighetskontroller och skapande av händelser.
- Redis för rate limiting, lås och chattminne.
- OpenAI API-nyckel (skapa den i din OpenAI-dashboard).
Kunskapsnivå: Mellan. Du kopplar konton, lägger in autentiseringsuppgifter och gör några praktiska justeringar för att matcha dina tjänster och bokningsregler.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En kund skriver till ditt WhatsApp-nummer. Workflowen triggar på inkommande WhatsApp-meddelanden och kontrollerar snabbt om avsändaren är ägare/admin eller kund, eftersom flödena beter sig olika.
Meddelandet normaliseras till ”bokningsklart” textunderlag. Text går igenom direkt. Ljud hämtas och transkriberas (Whisper-liknande transkribering via en AI-modell). Bilder kan analyseras och PDF:er valideras och text-extraheras så att bokningsagenten kan förstå vad som skickats.
Tillgänglighet och regler tillämpas innan någon lovar en tid. Workflowen slår ihop meddelanden, kontrollerar rate limits och hämtar relevanta Google Calendar-händelser. Sedan hanterar bokningsagenten dialogen: matchning av tjänst, duration, föreslagna tider och bekräftelser. Den stödjer också förfrågningar som att boka åt en vän, vilket ärligt talat ofta skapar förvirring när man gör det manuellt.
Svar, bekräftelser och påminnelser skickas automatiskt. Kunden får ett WhatsApp-svar (med smarta ”en stund…”-kvittenser medan flödet bearbetar), och du kan även notifiera ägaren. Separat kör en schemalagd trigger dagligen för att skicka påminnelser dagen innan kl. 20.00 baserat på kommande kalenderhändelser.
Du kan enkelt ändra tidpunkten för påminnelser så att den matchar dina öppettider efter behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera WhatsApp-triggern
Starta arbetsflödet genom att aktivera inkommande WhatsApp-meddelanden så att de går in i automatiseringen.
- Lägg till och öppna WhatsApp Entry Trigger för att ta emot inkommande meddelanden.
- Credential Required: Anslut era WhatsApp-inloggningsuppgifter i WhatsApp Entry Trigger.
- Bekräfta att webhooken är registrerad så att inkommande WhatsApp-händelser når n8n.
Tips: Testa webhooken med ett enkelt WhatsApp-meddelande innan ni konfigurerar resten av arbetsflödet.
Steg 2: konfigurera ägarskap och initiering av payload
Det här steget routar ägarens meddelanden till ett delarbetsflöde och initierar inkommande payloads för bearbetning.
- Öppna Is Sender Owner? och definiera villkoret som identifierar ägaren.
- I ägargrenen, öppna Run Sub-Workflow (Configure Required) och välj mål-workflow som ska köras.
- I icke-ägargrenen, öppna Initialize Payload och mappa de inkommande WhatsApp-fälten som ni vill behålla.
- Säkerställ att Initialize Payload skickar vidare till Is Audio Input? som visas i körflödet.
⚠️ Vanlig fallgrop: Run Sub-Workflow (Configure Required) måste referera till ett befintligt workflow. Om det lämnas tomt kommer ägargrenen att misslyckas utan att ge någon tydlig indikation.
Steg 3: bygg input-routing och mediabearbetning
Routa meddelanden efter typ och bearbeta ljud, bilder och filer innan ni lämnar över till AI-agenten.
- Öppna Is Audio Input? och Is Text Message? för att säkerställa att kontrollerna av meddelandetyp är korrekta för er WhatsApp-payload.
- Konfigurera Route by Input Kind så att text skickas till Assign Text Data, ljud till Retrieve Audio Link, bilder till Retrieve Image Link och filer till Validate PDF Only.
- Konfigurera noderna för mediahämtning (Retrieve Audio Link, Retrieve Image Link, Retrieve File Link) med WhatsApp-inloggningsuppgifter.
- Credential Required: Anslut era WhatsApp-inloggningsuppgifter till alla WhatsApp-noder (9+ noder hanterar inkommande länkar, svar och utgående meddelanden).
- Anslut Fetch Audio File, Fetch Image File och Fetch Document File för att hämta binära filer via HTTP.
- Öppna Transcribe Recording och Analyze Picture för att förbereda OpenAI-bearbetning för ljud och bilder.
- Credential Required: Anslut era OpenAI-inloggningsuppgifter i Transcribe Recording och Analyze Picture.
- Använd Extract File Text för att tolka PDF:er efter Fetch Document File och skicka sedan vidare till Assign File Data.
⚠️ Vanlig fallgrop: Om Validate PDF Only är för strikt kommer användare som skickar dokument som inte är PDF alltid att routas till Notify Invalid Format.
Steg 4: konfigurera rate limiting och batchning av meddelanden
Styr genomströmningen med Redis-lås, batchning och timräknare innan meddelanden når agenten.
- Öppna Rate Limit Logic och Evaluate Limit för att validera tröskelvärdena som används för begränsning.
- Säkerställ att Hourly Redis Counter → Increment Hourly Count → Evaluate Limit är kopplat som visas i körflödet.
- Anslut Redis-inloggningsuppgifter till alla Redis-noder (Append to Queue, Apply Processing Lock, Retrieve Current Lock, Pop Batched Messages, Remove Message List, Clear Processing Lock, Hourly Redis Counter, Increment Hourly Count).
- Credential Required: Anslut era Redis-inloggningsuppgifter till alla Redis-noder (8 noder hanterar köläggning, lås och räknare).
- Bekräfta batchningsflödet: Append to Queue → Apply Processing Lock → Pause Execution → Retrieve Current Lock → Check Processor Role → Pop Batched Messages → Remove Message List → Clear Processing Lock → Merge Message Batch.
- Verifiera att Merge Message Batch skickar vidare till Retrieve Calendar Events som nästa steg i pipelinen.
Tips: Om meddelanden verkar fastna, granska Apply Processing Lock och Clear Processing Lock för att säkerställa att lås släpps.
Steg 5: anslut kalender och påminnelseautomatisering
Hämta kalenderhändelser, kontrollera begränsningar och förbered påminnelsemeddelanden till kunder.
- Credential Required: Anslut era Google Calendar-inloggningsuppgifter i Retrieve Calendar Events och Fetch Schedule Events.
- Bekräfta sekvensen Merge Message Batch → Retrieve Calendar Events → Limit Threshold Check → Route by Input Kind.
- Öppna Scheduled Automation Trigger för att definiera när dagliga påminnelser ska köras.
- Validera påminnelseflödet: Scheduled Automation Trigger → Compute Next Day → Fetch Schedule Events → Format Reminder Payload → Dispatch Client Reminder.
Steg 6: konfigurera Booking Assistant Agent och AI-verktyg
Konfigurera AI-agenten, dess språkmodeller, minneslagring och verktyg för WhatsApp-svar och bokningsåtgärder.
- Öppna Booking Assistant Agent och bekräfta att den tar emot input från Assign Text Data, Assign Audio Data, Assign Image Data och Assign File Data.
- Koppla OpenAI Chat Model och Gemini Chat Model som språkmodeller för Booking Assistant Agent.
- Credential Required: Anslut era OpenAI-inloggningsuppgifter i OpenAI Chat Model och Google Gemini-inloggningsuppgifter i Gemini Chat Model.
- Anslut minne och verktyg till Booking Assistant Agent: Redis Chat Memory Store, Send Acknowledgement, Booking MCP Tool och Cancel Agent Tool.
- Credential Required: Lägg till inloggningsuppgifter i de överordnade verktygs-/tjänstenoder som används av Booking Assistant Agent (WhatsApp för Send Acknowledgement, Redis för Redis Chat Memory Store och MCP-inloggningsuppgifter för Booking MCP Tool).
Tips: AI-undernoderna (Redis Chat Memory Store, Send Acknowledgement, Booking MCP Tool, Cancel Agent Tool) ärver inloggningsuppgifter från de tjänster de är kopplade till. Lägg till inloggningsuppgifter på de överordnade tjänsterna, inte på undernoderna.
Steg 7: konfigurera utgående meddelanden och notifieringar
Leverera svar till kunder och ägare, och notifiera via e-post om rate limits uppnås.
- Säkerställ att Booking Assistant Agent skickar vidare till Send WhatsApp Output för kundsvar.
- Bekräfta rate limit-grenen: Is Rate Limited? → Send Message? → Send Client WhatsApp → Notify Owner WhatsApp → Dispatch Rate Limit Email.
- Credential Required: Anslut era WhatsApp-inloggningsuppgifter till Send WhatsApp Output, Send Client WhatsApp, Notify Owner WhatsApp, Dispatch Client Reminder, Unsupported Input Reply och Notify Invalid Format.
- Credential Required: Anslut era Gmail-inloggningsuppgifter i Dispatch Rate Limit Email.
Steg 8: testa och aktivera ert arbetsflöde
Verifiera hela automationskedjan från start till mål innan ni aktiverar den för produktion.
- Klicka på Execute Workflow och skicka ett WhatsApp-meddelande med text, ljud, bild och PDF för att validera varje gren.
- Bekräfta att lyckade körningar ger output i Send WhatsApp Output och Dispatch Client Reminder utan fel.
- Testa rate limiting genom att skicka flera meddelanden snabbt och verifiera att Dispatch Rate Limit Email triggas när gränserna nås.
- När allt är bekräftat, slå på arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- Google Calendar-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera Google-anslutningen i n8n Credentials och bekräfta först att kalender-scope fortfarande är auktoriserat.
- Om du använder Wait-noder eller extern bearbetning (som transkribering eller bildanalys) varierar bearbetningstiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in ert tonläge tidigt, annars kommer du att redigera utdata för alltid.
Vanliga frågor
Cirka 60–90 minuter om din WhatsApp Business API och åtkomst till Google Calendar redan är på plats.
Nej. Du kommer mest att koppla konton och klistra in några autentiseringsuppgifter. ”Jobbet” är att testa riktiga meddelanden så att bokningsreglerna matchar hur din verksamhet faktiskt bokar.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med kostnader för OpenAI API, som vanligtvis landar på några dollar i månaden för små team (mer om du bearbetar många röstmeddelanden och bilder).
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 klarar n8n bra. Egen drift ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, men planera först. Du kan byta kalenderuppslaget så att det kontrollerar flera Google-kalendrar och sedan justera tillgänglighetslogiken innan bokningsassistent-agenten föreslår tider. Vanliga anpassningar är olika tjänstelängder per medarbetare, bufferttid mellan bokningar och att begränsa vissa tjänster till specifika dagar.
Oftast handlar det om en utgången eller felaktigt scope:ad WhatsApp Business API-token, eller att webhooken/triggern inte pekar på rätt n8n-URL. Kontrollera WhatsApp Business API-inställningarna först och bekräfta sedan att dina n8n-uppgifter för WhatsApp fortfarande är giltiga. Om problemen bara uppstår under rusningstid kan du också slå i leverantörens rate limits, vilket visar sig som intermittenta fel när meddelanden ska skickas.
Om du kör egen drift finns inget tak för antalet körningar (det beror främst på din server). På n8n Cloud beror gränsen på din plan, och de flesta småföretag klarar sig på Starter om volymen inte är hög. Den här workflowen har också en standard rate limit på 100 meddelanden per timme för att förhindra att spam tar resurser.
För just det här användningsfallet är n8n oftast ett bättre val eftersom du behöver förgrenad logik, meddelandeköer och minne för att hålla dialogen sammanhängande. Zapier och Make kan flytta data mellan WhatsApp-liknande kanaler och kalendrar, men flöden i flera steg med mycket dialog blir snabbt röriga, och du märker begränsningarna när du lägger till röstmeddelanden, PDF:er eller rate limiting. n8n ger dig också möjlighet till egen drift, vilket kan spela roll om meddelandevolymen växer. Om du bara vill ha en enkel koppling ”nytt meddelande → skapa händelse” kan de enklare verktygen räcka. Prata med en automationsexpert om du vill ha en snabb rekommendation baserat på din volym och dina bokningsregler.
När detta väl är igång slutar din kalender att vara beroende av hur snabbt du svarar. Workflowen tar hand om det repetitiva bokningssnacket så att du kan fokusera på själva besöken.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.