RemarkableCloud

Build a WhatsApp Business Assistant with n8n and Zabio

Set up an n8n workflow that answers WhatsApp customers in text or voice, reads screenshots, remembers each conversation and hands chats to a person, with Zabio for every AI step.

Updated November 2026

This template turns a WhatsApp Business number into an assistant for one business: a clinic, a shop, an agency, a restaurant. It answers questions about your hours, prices, services and policies, and nothing else. Customers who write get a text reply. Customers who send a voice note get a voice note back. Customers who send a photo or screenshot get an answer about what’s in it. When someone needs a person, you get an alert on Telegram and the bot steps aside.

Every AI step runs through one Zabio key: the answers, the transcription of voice notes, the image reading and the spoken replies. Zabio picks the lowest-cost model that can do each job and moves to a stronger one only when a question needs it.

How it works

The customer sendsThe assistant doesThe customer gets
A text messageAnswers with model: autoA text reply
A voice noteTranscribes it, answers, turns the answer into speechA voice note
A photo or screenshotReads the image and any caption, answersA text reply
A sticker, document or locationExplains what it can handleA text reply
“I want to talk to a person”Replies, alerts you, stays quiet with that customer for 12 hoursA text or voice reply, then a human

Each customer’s conversation is stored on Zabio, not in n8n. The workflow keeps one row per phone number in an n8n data table with the conversation ID, the last model used, the cost of each turn and the running total.

What you need

ItemWhereNotes
n8nYour own n8n, or n8n on a RemarkableCloud AI serverMust be reachable over HTTPS so Meta can deliver messages. The template uses built-in nodes only.
A Meta developer accountdevelopers.facebook.comFree. Gives you a test WhatsApp number to start with.
A Zabio API keyzabio.aiNew keys include the scopes the template needs.
A Telegram bot (optional)@BotFather in TelegramFor handoff alerts. You can swap these nodes for email or Slack.

Tip: A RemarkableCloud AI server comes with n8n installed and managed, plus Zabio credits to get you started.

Step 1: Import the template

Download the workflow file from the template page. In n8n, open Workflows, choose Import from File and select it. It arrives inactive, with empty credentials.

Step 2: Create the data table

In n8n, go to Data tables and create a table named whatsapp_conversations with these columns:

ColumnType
phoneString
contact_nameString
conversation_idString
handoff_untilDate
last_modelString
last_cost_microsNumber
total_cost_microsNumber
escalationsNumber
turnsNumber
voice_disclosedBoolean

Use exactly that name: the Find Conversation and Save Conversation nodes look the table up by name.

Step 3: Set up a Meta app and the test number

You don’t need a WhatsApp Business account or a new SIM to test. Your personal WhatsApp acts as the customer.

  1. On developers.facebook.com, create an app of type Business and add the WhatsApp product. Meta gives the app a free test number.
  2. Open WhatsApp > API Setup. In the To field, add your personal number and confirm the code WhatsApp sends you.
  3. Copy the Temporary access token and the WhatsApp Business Account ID from the same page.
  4. Open App settings > Basic and copy the App ID and App Secret.

Note: The test number can only message up to 5 verified numbers, and the temporary token expires after about 24 hours. Both are fine for testing. See Going live with your own number for production.

Step 4: Add the credentials

n8n credentialUsed byWhat to enter
WhatsApp OAuth (trigger)New WhatsApp MessageClient ID: your App ID. Client Secret: your App Secret.
WhatsApp BusinessAll WhatsApp send and media nodesAccess Token and Business Account ID from Step 3.
Zabio API key (Header Auth)Ask Zabio, Transcribe With Zabio, Generate Voice ReplyName Authorization, Value Bearer YOUR_ZABIO_KEY.
Telegram accountForward to Staff, Alert StaffYour bot token from @BotFather.

You don’t set a webhook URL or verify token in Meta. When you activate the workflow, n8n registers the webhook with Meta itself.

Step 5: Edit Business Settings

Open the Business Settings node. This is the only node you need to edit.

FieldWhat it does
business_nameHow the assistant introduces itself.
business_profileEverything the assistant is allowed to say: hours, address, services, prices, booking rules, payment, policies. Plain text. The assistant won’t invent anything that isn’t here.
owner_telegram_chat_idWhere handoff alerts go. Message @userinfobot on Telegram to get your ID.
handoff_hoursHow long the bot stays quiet after handing a customer to a person. Default 12.
retention_daysHow long Zabio keeps each conversation after the last message. Default 30.
voice_repliesAnswer voice notes with voice notes. Set to false to always answer in text.
voicesThe voice for each reply language, for example es and en. See Voice replies.
default_voiceThe voice used for any language not in the list.

Keep business_profile specific. “Cleaning $60, Saturday 9am to 1pm” gives better answers than “affordable prices, flexible hours”.

Step 6: Activate and test

  1. Activate the workflow.
  2. On your phone, save the test number as a contact and send it a text: “What time do you open on Saturday?”
  3. Send a voice note asking about a price.
  4. Send a screenshot with a caption.
  5. Write “I want to talk to a person” and check that the Telegram alert arrives.

Each message appears under Executions in n8n, so you can see exactly which node did what. After a few messages, open the whatsapp_conversations table to see the model used and the cost of each turn.

Voice replies

Voice notes are transcribed with Zabio’s transcription endpoint. The answer is spoken back with Zabio’s speech endpoint as an mp3, using the voice set for the reply’s language in voices. The template ships with these:

LanguageVoice
Spanish (es)ef_dora
English (en)af_heart
Portuguese (pt)pf_dora
French (fr)ff_siwis
Italian (it)if_sara

You can use any voice Zabio lists for its speech models. If a voice isn’t available, the customer still gets the answer, as text.

The first voice reply to each customer opens by saying it comes from an AI assistant. The voice providers require you to tell people their voices are AI-generated, and the template handles it once per customer.

Conversation memory

The assistant doesn’t use an n8n memory node. Each customer’s history lives in a Zabio conversation, so it survives n8n restarts, model changes and workflow edits.

A conversation is kept for retention_days after the customer’s last message, and the clock restarts on every message. A customer who writes at least once a month keeps the same conversation indefinitely. When a conversation expires, the workflow starts a new one on the customer’s next message instead of failing.

Very long conversations are summarized automatically by Zabio when they no longer fit a model’s context window, so you don’t need to trim them.

What it costs

Each turn’s cost is written to the data table in micro-dollars (last_cost_micros, total_cost_micros): 1,000,000 micros is one US dollar. It includes the answer and, for voice notes, the transcription.

A few things move the number:

  • Text questions usually run on a fast, low-cost model. Zabio moves to a stronger model only when the question needs it, and the escalations column counts how often that happened.
  • Voice notes add a transcription and a speech call, both priced by length. Short replies keep them low.
  • Images cost more than text, and they stay in the conversation, so later turns in the same chat send them again. A long chat with several photos costs more than one with none.

Zabio’s models page lists the current price of every model.

Going live with your own number

When testing works, move to a real number:

  1. In WhatsApp > API Setup, add your business phone number and verify it. A number registered this way stops working in the regular WhatsApp app, so use one that isn’t your personal number.
  2. Replace the temporary token with a permanent one: in Meta Business Suite, create a System User, give it the whatsapp_business_messaging and whatsapp_business_management permissions, and generate a token that doesn’t expire.
  3. Update the WhatsApp Business credential with the new token.

WhatsApp only allows free-form replies within 24 hours of the customer’s last message. The assistant always replies inside that window. If a person on your team picks up a handed-off chat more than 24 hours later, they need an approved message template to restart it.

Missed calls and voicemail

n8n can’t take live calls. If you enable WhatsApp calling on your number, turn on voicemail as well: recorded voicemails reach the workflow as voice notes, so the assistant answers them with a voice reply.

Troubleshooting

SymptomLikely causeFix
Nothing shows under ExecutionsThe workflow isn’t active, or n8n isn’t reachable over HTTPSActivate it and check that your n8n URL opens from outside your network.
Replies fail with error #131030The recipient isn’t one of the test number’s verified numbersAdd the number in WhatsApp > API Setup.
Replies stop after a dayThe temporary access token expiredGenerate a new one, or switch to a System User token.
The customer gets “I am having trouble answering right now”The Zabio call failedOpen the Ask Zabio node in the execution. 401 means the key is wrong. 402 insufficient_credits means the balance is empty.
Voice notes get a text replyThe voice for that language isn’t availableCheck the Generate Voice Reply node for unsupported_value and change the voice in voices.
Voice notes get “I could not process that message”Transcription failedOpen Transcribe With Zabio in the execution for the error.
No Telegram alertsEmpty or wrong owner_telegram_chat_idStart a chat with your bot first, then use the ID from @userinfobot.

Still stuck? Open a ticket. If your n8n runs on a RemarkableCloud server, an engineer can look at the workflow with you.

Next steps

Still stuck? Ask a human, we answer in minutes.