Dina WhatsApp-beställningar ser förmodligen ut så här: en rörig chatttråd, några röstmeddelanden, någon glömmer adressen och leveransavgiften “gissas” beroende på vem som jobbar.
Restaurangägare märker det när köket börjar förbereda fel rätt. En marknadschef ser det som dåliga recensioner. Och en leveranskoordinator vill bara ha ett korrekt, strukturerat ställe att följa beställningarna på. Den här automatiseringen för WhatsApp-beställningsloggning gör chattar till strukturerade beställningar du kan lita på.
Du får lära dig vad arbetsflödet gör, vad du behöver för att köra det och hur delarna hänger ihop så att du slipper slösa tid på “Vänta, vad beställde de?”
Så här fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: WhatsApp + Google Sheets: rensade beställningar
flowchart LR
subgraph sg0["Embeddings OpenAI Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Config", pos: "b", h: 48 }
n2@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n22@{ icon: "mdi:cog", form: "rounded", label: "Execute Workflow", pos: "b", h: 48 }
n23@{ icon: "mdi:swap-vertical", form: "rounded", label: "SetData", pos: "b", h: 48 }
n24@{ icon: "mdi:cube-outline", form: "rounded", label: "Supabase Vector Store", pos: "b", h: 48 }
n26@{ icon: "mdi:robot", form: "rounded", label: "Delivery AI", pos: "b", h: 48 }
n32@{ icon: "mdi:memory", form: "rounded", label: "Postgres Chat Memory", pos: "b", h: 48 }
n33@{ icon: "mdi:brain", form: "rounded", label: "OpenAI3", pos: "b", h: 48 }
n34@{ icon: "mdi:swap-vertical", form: "rounded", label: "Segmentos1", pos: "b", h: 48 }
n35@{ icon: "mdi:cog", form: "rounded", label: "1,2s1", pos: "b", h: 48 }
n36@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items3", pos: "b", h: 48 }
n37@{ icon: "mdi:cog", form: "rounded", label: "no.op", pos: "b", h: 48 }
n38@{ icon: "mdi:robot", form: "rounded", label: "OutputParser1", pos: "b", h: 48 }
n39@{ icon: "mdi:robot", form: "rounded", label: "Parser Chain", pos: "b", h: 48 }
n40@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch3", pos: "b", h: 48 }
n41@{ icon: "mdi:cog", form: "rounded", label: "Audio-Base64-Extract from File", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>ElevenLabsGenerateVoice"]
n43@{ icon: "mdi:web", form: "rounded", label: "Evolution API3", pos: "b", h: 48 }
n44["<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/>Code2"]
n45@{ icon: "mdi:web", form: "rounded", label: "Evolution API2", pos: "b", h: 48 }
n46["<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"]
n47@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n48["<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/>Redis1"]
n49@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n50@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n51@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields1", 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/redis.svg' width='40' height='40' /></div><br/>Redis2"]
n53@{ icon: "mdi:cog", form: "rounded", label: "Convert to File", pos: "b", h: 48 }
n54@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n55@{ icon: "mdi:cog", form: "rounded", label: "Convert to File1", pos: "b", h: 48 }
n56@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields3", pos: "b", h: 48 }
n57["<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/>Redis3"]
n58["<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/>Redis4"]
n59["<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/>Redis5"]
n60@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields4", pos: "b", h: 48 }
n61@{ icon: "mdi:robot", form: "rounded", label: "OpenAI", pos: "b", h: 48 }
n62@{ icon: "mdi:robot", form: "rounded", label: "OpenAI1", pos: "b", h: 48 }
n63@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch1", pos: "b", h: 48 }
n64@{ icon: "mdi:swap-vertical", form: "rounded", label: "Variáveis", pos: "b", h: 48 }
n65@{ icon: "mdi:cog", form: "rounded", label: "Date & Time1", pos: "b", h: 48 }
n66@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch Block1", pos: "b", h: 48 }
n67@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch5", pos: "b", h: 48 }
n68@{ icon: "mdi:swap-vertical", form: "rounded", label: "dados_para_atendimento_humano", pos: "b", h: 48 }
n69["<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/>PARAR ISIS"]
n70["<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/>Verifica Atendimento Humano"]
n71@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If4", pos: "b", h: 48 }
n72["<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/supabase.svg' width='40' height='40' /></div><br/>Supabase4"]
n73@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If5", pos: "b", h: 48 }
n74@{ icon: "mdi:cog", form: "rounded", label: "Gerar sessionID1", pos: "b", h: 48 }
n75["<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/supabase.svg' width='40' height='40' /></div><br/>Supabase5"]
n76["<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/>Code3"]
n77["<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/supabase.svg' width='40' height='40' /></div><br/>N8N Labz YT1"]
n78@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Auth", pos: "b", h: 48 }
n79@{ icon: "mdi:wrench", form: "rounded", label: "busca_documentos", pos: "b", h: 48 }
n97@{ icon: "mdi:wrench", form: "rounded", label: "busca_cliente", pos: "b", h: 48 }
n98@{ icon: "mdi:wrench", form: "rounded", label: "Calculadora", pos: "b", h: 48 }
n99@{ icon: "mdi:wrench", form: "rounded", label: "busca_endereco", pos: "b", h: 48 }
n100@{ icon: "mdi:wrench", form: "rounded", label: "envia_comanda", pos: "b", h: 48 }
n101@{ icon: "mdi:wrench", form: "rounded", label: "salvar_cliente", pos: "b", h: 48 }
n104["<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/>input evolution"]
n105@{ icon: "mdi:web", form: "rounded", label: "Evolution API", pos: "b", h: 48 }
n106@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If1", pos: "b", h: 48 }
n49 --> n51
n49 --> n50
n106 --> n105
n106 --> n39
n71 --> n59
n71 --> n58
n73 --> n77
n73 --> n74
n78 --> n68
n47 --> n48
n35 --> n37
n44 --> n42
n76 --> n63
n46 --> n47
n37 --> n36
n1 --> n26
n61 --> n57
n48 --> n49
n52 --> n23
n57 --> n46
n58 --> n46
n59 --> n46
n62 --> n71
n33 -.-> n39
n23 --> n22
n63 --> n60
n63 --> n54
n63 --> n56
n40 --> n106
n40 --> n44
n67 --> n69
n67 --> n70
n72 --> n73
n75 --> n76
n34 --> n36
n64 --> n65
n98 -.-> n26
n26 --> n40
n54 --> n53
n65 --> n72
n51 --> n52
n56 --> n55
n60 --> n46
n77 --> n76
n38 -.-> n39
n39 --> n34
n66 --> n64
n97 -.-> n26
n100 -.-> n26
n45 --> n35
n99 -.-> n26
n101 -.-> n26
n53 --> n61
n104 --> n78
n55 --> n62
n22 --> n1
n74 --> n75
n36 --> n45
n79 -.-> n26
n2 -.-> n24
n0 -.-> n26
n3 -.-> n79
n32 -.-> n26
n24 -.-> n79
n42 --> n41
n70 --> n66
n68 --> n67
n41 --> n43
end
subgraph sg1["File Created Flow"]
direction LR
n80@{ icon: "mdi:cog", form: "rounded", label: "Download File", pos: "b", h: 48 }
n81@{ icon: "mdi:play-circle", form: "rounded", label: "File Created", pos: "b", h: 48 }
n82@{ icon: "mdi:play-circle", form: "rounded", label: "File Updated", pos: "b", h: 48 }
n83@{ icon: "mdi:cog", form: "rounded", label: "Extract Document Text", pos: "b", h: 48 }
n84["<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/supabase.svg' width='40' height='40' /></div><br/>Delete Old Doc Rows"]
n85@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set File ID", pos: "b", h: 48 }
n86@{ icon: "mdi:cog", form: "rounded", label: "Extract PDF Text", pos: "b", h: 48 }
n87@{ icon: "mdi:robot", form: "rounded", label: "Character Text Splitter", pos: "b", h: 48 }
n88@{ icon: "mdi:cog", form: "rounded", label: "Summarize", pos: "b", h: 48 }
n89@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n90@{ icon: "mdi:cube-outline", form: "rounded", label: "Insert into Supabase Vectors..", pos: "b", h: 48 }
n91@{ icon: "mdi:cog", form: "rounded", label: "Extract from Excel", pos: "b", h: 48 }
n92@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n93@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader1", pos: "b", h: 48 }
n94@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI2", pos: "b", h: 48 }
n95@{ icon: "mdi:cog", form: "rounded", label: "Aggregate1", pos: "b", h: 48 }
n96["<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/>Code"]
n96 --> n92
n89 --> n86
n89 --> n91
n89 --> n83
n88 --> n90
n95 --> n88
n85 --> n84
n81 --> n85
n82 --> n85
n80 --> n89
n92 --> n80
n86 --> n90
n94 -.-> n90
n91 --> n95
n84 --> n96
n93 -.-> n90
n83 --> n90
n87 -.-> n93
n90 --> n92
end
subgraph sg2["Schedule Flow"]
direction LR
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/supabase.svg' width='40' height='40' /></div><br/>ListChats-Supabase"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", 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/supabase.svg' width='40' height='40' /></div><br/>ListMessages-Supabase"]
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/code.svg' width='40' height='40' /></div><br/>Code1"]
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/supabase.svg' width='40' height='40' /></div><br/>Supabase"]
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items1", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n17@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model3", pos: "b", h: 48 }
n18@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
n19@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
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/supabase.svg' width='40' height='40' /></div><br/>DisableMessage-Supabase"]
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "SetConfig", pos: "b", h: 48 }
n25@{ icon: "mdi:robot", form: "rounded", label: "Basic LLM Chain", pos: "b", h: 48 }
n27@{ icon: "mdi:robot", form: "rounded", label: "Text Classifier", pos: "b", h: 48 }
n107@{ icon: "mdi:web", form: "rounded", label: "Evolution API1", pos: "b", h: 48 }
n13 --> n27
n18 --> n20
n14 --> n18
n11 --> n13
n21 --> n107
n25 --> n14
n25 --> n21
n27 --> n25
n27 --> n18
n15 --> n12
n19 --> n10
n10 --> n15
n16 -.-> n25
n17 -.-> n27
n12 --> n11
n20 --> n15
end
subgraph sg3["Flow 4"]
direction LR
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/supabase.svg' width='40' height='40' /></div><br/>FindPhone"]
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/supabase.svg' width='40' height='40' /></div><br/>AddChat-Supabase"]
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/supabase.svg' width='40' height='40' /></div><br/>UpdateChat-Supabase"]
n7["<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/merge.svg' width='40' height='40' /></div><br/>Merge1"]
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/supabase.svg' width='40' height='40' /></div><br/>CreateMessage-Supabase"]
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If3", pos: "b", h: 48 }
n9 --> n5
n9 --> n6
n7 --> n8
n4 --> n9
n5 --> n7
n6 --> n7
end
subgraph sg4["Flow 5"]
direction LR
n103["<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/postgres.svg' width='40' height='40' /></div><br/>Ativa Vector + Função Busca .."]
end
subgraph sg5["Flow 6"]
direction LR
n102["<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/postgres.svg' width='40' height='40' /></div><br/>Ativa Vector + Função Busca .."]
end
subgraph sg6["Flow 7"]
direction LR
n31["<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/postgres.svg' width='40' height='40' /></div><br/>Cria tabela Cliente"]
end
subgraph sg7["Flow 8"]
direction LR
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/postgres.svg' width='40' height='40' /></div><br/>Cria Costumers"]
end
subgraph sg8["Flow 9"]
direction LR
n29["<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/postgres.svg' width='40' height='40' /></div><br/>Cria Chats"]
end
subgraph sg9["Flow 10"]
direction LR
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/postgres.svg' width='40' height='40' /></div><br/>Cria Chat Messages"]
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 n81,n82,n19 trigger
class n26,n38,n39,n61,n62,n87,n93,n25,n27 ai
class n0,n3,n33,n16,n17 aiModel
class n79,n97,n98,n99,n100,n101 ai
class n32 ai
class n24,n90 ai
class n2,n94 ai
class n40,n49,n63,n66,n67,n71,n73,n78,n106,n89,n9 decision
class n46,n48,n52,n57,n58,n59,n69,n70,n103,n102,n31,n28,n29,n30 database
class n42,n43,n45,n104,n105,n107 api
class n44,n76,n96,n13 code
class n47 disabled
classDef customIcon fill:none,stroke:none
class n42,n44,n46,n48,n52,n57,n58,n59,n69,n70,n72,n75,n76,n77,n104,n84,n96,n10,n12,n13,n14,n20,n4,n5,n6,n7,n8,n103,n102,n31,n28,n29,n30 customIcon
Varför det här spelar roll: WhatsApp-beställningar blir snabbt röriga
WhatsApp är toppen för enkelhet och katastrof för konsekvens. Kunder beställer i fragment. De ändrar sig mitt i chatten. De skickar en adress utan nummer och försvinner sedan i tio minuter. Under tiden försöker ditt team räkna ut leveransavgifter ur minnet, förmedla beställningen till köket och hålla koll på vad som är betalt, vad som väntar och vad som redan är på väg ut. Ett missat meddelande kan bli en omkörning, en återbetalning eller en arg recension. Ärligt talat är det värsta den mentala belastningen: någon måste “hålla hela beställningen” i huvudet tills den är klar.
Det blir snabbt mycket. Här är var det faller isär i verkligheten.
- Någon kopierar manuellt en beställning från WhatsApp till en anteckningsapp eller ett kalkylark, och små detaljer försvinner på vägen.
- Leveransavgifter varierar beroende på vem som räknar, vilket betyder att ni antingen tar för lite betalt eller hamnar i obekväma diskussioner med kunder.
- Beställningshistoriken blir kvar i chatttrådar, så återkommande kunder får aldrig den “du igen”-upplevelse de borde få.
- När det blir stressigt hör köket en halvfärdig beställning och börjar laga innan kunden faktiskt har bekräftat.
Vad du bygger: en WhatsApp-assistent som bekräftar och loggar beställningar
Det här arbetsflödet omvandlar WhatsApp-konversationer till bekräftade, strukturerade beställningar och loggar dem i Google Sheets för strukturerad spårning. Det startar när en kund skriver till ditt WhatsApp-nummer (via en WhatsApp-webhook-koppling). Därifrån hanterar en AI-agent som kör på en OpenAI-chattmodell konversationen: den samlar in beställningen, kontrollerar saknade uppgifter som namn och adress och bekräftar den slutliga varukorgen innan något skickas vidare. Därefter beräknar arbetsflödet leveransavstånd via HTTP-förfrågningar (vanligtvis mot en kart- eller distanstjänst), tillämpar dina prisregler och returnerar en tydlig leveransavgift så att ni slipper fram och tillbaka. Till sist sparar det orderdetaljerna i ett kalkylark och kan vidarebefordra den strukturerade beställningen till de system ditt team faktiskt använder (CRM/POS/databas), samtidigt som det behåller minne så att återkommande kunder inte behöver upprepa sig.
Arbetsflödet börjar med en WhatsApp-meddelandetrigger och använder sedan AI för att standardisera beställningen och fylla i luckor. Efter det beräknar det leveransavgifter baserat på avstånd och skriver allt till Google Sheets. Resultatet är en prydlig orderpost som teamet kan lita på.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du hanterar 30 leveransbeställningar per dag via WhatsApp. Om varje beställning tar kanske 5 minuter av fram och tillbaka (bekräfta varor, jaga adressen, räkna ut en avgift och sedan skriva in den i ett ark) blir det cirka 2,5 timmar manuellt arbete dagligen. Med det här arbetsflödet blir “mänsklig tid” snabb översyn: du låter assistenten samla in och bekräfta detaljer, och sedan tittar du snabbt i Google Sheet eller din POS-feed. Chatten sker fortfarande, men teamet slutar göra de repetitiva delarna.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för självhostning om du föredrar det (Hostinger fungerar bra)
- WhatsApp Business API-leverantör för att ta emot meddelanden via webhook.
- Google Sheets för att lagra strukturerade orderrader.
- OpenAI API-nyckel (hämta den från din OpenAI-dashboard).
Kunskapsnivå: Medel. Du kopplar upp inloggningar, sätter webhook-URL:er och justerar några affärsregler som leveransprissättning.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett kundmeddelande triggar arbetsflödet. WhatsApp skickar inkommande meddelande till n8n via en webhook-liknande setup (ofta implementerad med HTTP-förfrågningar och en leverantörskoppling). Om du också kör flera inkorgar eller varumärken kan routningslogik dela upp trafiken tidigt.
Assistenten gör chatten till orderdata. AI-agenten använder en OpenAI-chattmodell plus ett enkelt minne för att behålla kontext, fråga efter saknade uppgifter och sammanfatta beställningen i ett konsekvent format som driften kan använda.
Leveransavgifter beräknas automatiskt. När en adress har fångats anropar arbetsflödet ett distans-API via HTTP Request och tillämpar sedan din grundavgift och pris per kilometer. Switch/If-noder hanterar specialfall, som “utanför leveranszon” eller “hämtning i stället”.
Allt loggas och vidarebefordras. Den slutliga, bekräftade beställningen skrivs in i Google Sheets och kan även skickas till interna system (CRM/POS/databas) så att köket och leveransteamet ser samma sanning.
Du kan enkelt ändra reglerna för leveransprissättning för att matcha olika områden, krav på minsta ordervärde eller rusningstidsavgifter utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Felsökningstips
- WhatsApp API/webhook-inloggningar kan gå ut eller kräva godkända callback-URL:er. Om meddelanden slutar komma, kontrollera leverantörens webhook-loggar och verifiera först endpoint-URL:en i n8n.
- Om du använder Wait-noder eller externa distansuppslag varierar svarstiderna. Öka väntetiden om efterföljande noder misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utskrifter för alltid.
Snabba svar
Cirka 1–2 timmar om din WhatsApp-leverantör och ditt Google Sheet är redo.
Nej, ingen kodning krävs. Du kommer främst att koppla konton, klistra in API-nycklar och justera prompter och avgiftsregler.
Ja. n8n har ett gratis alternativ för självhostning 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 OpenAI API-kostnader (ofta bara några dollar i månaden vid små volymer) samt eventuella avgifter från din WhatsApp-leverantör.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhostning på en VPS. För självhostning är Hostinger VPS prisvärd och hanterar n8n bra. Självhostning ger dig obegränsat antal körningar men kräver grundläggande serveradministration.
Ja, och det borde du förmodligen. Du kan byta OpenAI Chat Model mot en annan modell genom att ändra chattmodell-noden och sedan justera instruktionerna till AI-agenten så att de matchar din meny och dina policys. Vanliga anpassningar är olika leveranszoner och prissättning, att samla in betalningsmetod direkt och att skriva till en databas i stället för Google Sheets. Du kan också lägga till en överlämningsregel så att VIP-kunder går direkt till en människa.
Oftast är det webhook-setupen, inte n8n. Kontrollera att din WhatsApp-leverantör skickar events till rätt URL, att endpointen går att nå från internet och att du inte misslyckas med en signatur-/verifieringskontroll som leverantören kräver. Om det fungerade i går men inte i dag, generera om leverantörstoken och uppdatera inloggningen i n8n. Håll också koll på rate limits när du får en burst av meddelanden vid lunchtid.
På n8n Cloud Starter kan du räkna med att det bekvämt hanterar en normal meddelandemängd för ett småföretag, och du kan uppgradera planer när volymen växer. Om du självhostar finns ingen körningsgräns (det beror mest på din serverstorlek och dina WhatsApp/OpenAI-rate limits). I praktiken kör de flesta restauranger allt från tiotals till några hundra chattar per dag utan att ändra något och optimerar sedan när de börjar hantera flera enheter.
Ofta, ja. Det här arbetsflödet bygger på logik i flera steg (Switch/If), minne för pågående konversationer och HTTP-förfrågningar för distansberäkning, vilket är där enklare verktyg kan bli klumpiga eller dyra. n8n ger dig också mer kontroll över hur data formas innan den hamnar i Google Sheets, så att ditt kalkylark håller sig strukturerat i stället för “typ användbart”. Zapier eller Make kan fortfarande vara helt okej om du bara vill logga inkommande meddelanden utan AI och utan avgiftsberäkning. Om du är osäker, prata med en automationsexpert så pekar vi dig i rätt riktning.
När det här väl rullar slutar WhatsApp-chatten vara ditt “ordersystem” och blir bara ytterdörren. Arbetsflödet sköter struktureringen så att teamet kan fokusera på att få ut maten snabbt.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.