Skip to content
LarkFlow.io home
Start 7-Day Free Trial

Build WhatsApp automation flows

Automation flows run fixed, step-by-step conversations — welcome messages, menus, collecting details, routing to a teammate — exactly the same way every time.

Flows or AI agents?

  • Use a flow when every customer should go through the same steps: greet, show a menu, ask for their email, create a lead.
  • Use AI agents for open questions that need understanding: “Do you deliver to Sharjah?”, “Which glove is best for food handling?”.
Note: Flows run before AI agents. If an active flow’s trigger matches a message, the flow handles it and the AI agents don’t reply to that message. Keep triggers specific so flows don’t catch messages you meant for the AI.

Create a flow

Open Automations. You have three ways to start:

  1. Step 1: Create with AI (fastest)

    Click Create with AI and describe what you want in plain words, e.g. “When someone says hi, send a welcome message, ask what they need with a menu of Products, Pricing and Support, and create a lead if they pick Pricing.” Press Enter — LarkFlow builds a complete flow and opens it for you to edit.

  2. Step 2: Use a template

    Click Use template to start from a ready-made flow and adjust it.

  3. Step 3: Start blank

    Click New Flow, enter a Flow name (e.g. “Welcome Message Flow”), an optional Description, and pick a Trigger. You’ll see Flow created! Opening editor….

Choose the trigger

The trigger decides which messages start the flow. It sits on the START node:

  • Message received — any incoming message. Use carefully: it can catch everything, including messages meant for AI agents.
  • Keyword matched — only when the message contains one of your keywords. Add them with + keyword (e.g. menu, price, hi). Recommended for most flows.
  • New contact — the first message from someone who isn’t in your contacts yet.
  • New conversation — the first message of a new conversation.

Add steps

In the editor, click a step in Flow Nodes to add it to the canvas. Connect steps by dragging from the coloured dots on the side of one node to the next. Click any node to edit it in Node Properties.

Messages

Send Message
Sends a text. You can insert variables, e.g. “Thanks! We received: {{message}}”.
Ask Question
Asks something and waits for the reply, saves it to a variable, and can validate it (e.g. as an email address — a bad format is asked again).
Template
Sends one of your Meta-approved templates. Needed to message customers outside the 24-hour window.
List Msg
A tappable menu: header, body, button label and options (one per line).
Media
Sends an image, video, document or audio from a URL, with an optional caption.
Location
Sends a map pin: name, address, latitude and longitude.

Logic & flow

Condition
Branches yes/no: message contains, message equals, variable equals (var=val), or always yes.
Delay
Waits before the next step (maximum 10 seconds while the flow is running live).
Variable
Stores a value, e.g. {{message}} or fixed text, for later steps.

Actions

Assign
Assigns the conversation to a teammate by email, or “unassigned”. Assigned conversations are handled by people, not AI agents.
Webhook
Sends data to another system’s URL (e.g. your CRM or Zapier-style tool).
Read
Marks the conversation as read in your LarkFlow inbox (clears the unread count).
End
Stops the flow.

Contacts

Add Group
Tags the contact with a group name (created if it doesn’t exist), e.g. to target them in campaigns.
Update
Updates a contact field — name, email or notes — from a variable or fixed text.
Create Lead
Saves a lead in the CRM for this contact with a title, stage (New lead, Contacted, Qualified) and notes.

Variables

Wrap a variable in double curly braces to insert it into any text field:

  • {{message}} — the customer’s latest message. Always available.
  • {{phone}} — the customer’s WhatsApp number. Always available.
  • Any name you set in Save reply to variable on an Ask Question node (e.g. {{name}}, {{email}}) or in a Variable node.
Important: Only {{message}} and {{phone}} are filled in automatically. Use any other variable, such as {{name}}, only after an Ask Question or Variable step has saved it — otherwise the customer sees the text {{name}} as written.

Test the flow

Use Simulate incoming message in the editor: type a message such as “I want pricing info” and step through how the flow would respond — which trigger fired, which branch each Condition took, and where the flow ended. Nothing is sent to WhatsApp.

Tip: Then send the trigger keyword from your own phone to your business number to check it end to end.

Save and activate

  1. Step 1: Save

    Click Save — you’ll see Flow saved. Saving doesn’t switch the flow on.

  2. Step 2: Activate

    Turn on the switch at the top of the editor (or in the Automations list). Only active flows respond to customers. Turn it off to pause the flow without deleting it.

Note: Your plan sets how many flows can be active at once (5 on Starter, 15 on Growth, 30 on Professional, 100 on Business).

Example: menu that captures leads

Trigger: Keyword matched → hi, hello, menu

  1. Step 1: Send Message

    “Hi! Welcome to Acme Supplies 👋”

  2. Step 2: List Msg

    Body “What can we help with?”, button “View options”, options: Products, Get a quote, Talk to sales.

  3. Step 3: Condition

    Message contains “quote” → yes branch; otherwise the no branch.

  4. Step 4: Ask Question (yes branch)

    “What products and quantities do you need?” → save to enquiry.

  5. Step 5: Create Lead

    Title {{enquiry}}, stage New lead.

  6. Step 6: Assign + Send Message

    Assign to sales@yourcompany.com, then “Thanks! Our sales team will reply shortly.” → End.

Troubleshooting

The flow never starts
Check the switch is on, the WhatsApp channel is active, and your test message really contains a trigger keyword. Run the simulator to see which step stops.
The AI stopped answering
A flow with a broad trigger (e.g. Message received) is probably catching every message first. Switch it to Keyword matched.
“No approved templates” in a Template node
Create a template under Templates and wait for Meta to approve it.
“Could not update status” when activating
You may have reached your plan’s active-flow limit — deactivate another flow or upgrade.
The flow stops after an Ask Question
That’s expected — it waits for the customer’s reply, then continues from that step.

Stuck? Email hello@bytelark.net or book a setup call.