Skip to content

Steps

Start a flow

Start a conversation without the customer writing first: from a website form, a new Google Sheets row, a calendar event or a schedule.

What it does#

Most flows start when a customer writes. Start a flow is a trigger: it starts the flow by itself, then the steps after it message the customer on WhatsApp. Choose what starts it under What starts this flow:

TriggerStarts whenAvailable
Website form submittedYour website's form sends the details to the trigger's link.Today
Google Sheets new rowA new row appears at the bottom of a tab.Today
ScheduleEvery day, or on chosen days, at a time you pick.Today
Google Calendar eventSomeone adds (or changes) an event.Coming soon

To start a flow from your own server with an API call instead, use Catch Hook.

Start a flow (Trigger)

Message every website lead#

  1. 1

    Add the trigger

    Drag Start a flow from Webhook and API onto the canvas and connect it to the first step it should start.

  2. 2

    Choose the form trigger

    Under What starts this flow, choose Website form submitted.

  3. 3

    Copy the form link

    Under Form link, click Copy. Point your website's form at this link with method="post". Each submission starts the flow once.

  4. 4

    Say where the phone is

    Under Who it's for, keep Phone from the event and write the form field that holds the phone, usually phone.

  5. 5

    Start with a template

    On WhatsApp, a customer who hasn't written in the last 24 hours can only get an approved template first. If the step warns you, click Add a Template step and choose the template.

  6. 6

    Tell the team (optional)

    Under Also tell the team, click Add a phone and write a Message, for example New lead: {{#trigger.name}} {{#trigger.phone}}. Up to 5 phones.

  7. 7

    Publish

    The trigger works once the chatbot is published. Each run is listed under Recent runs.

Open HTML example in the step for a ready-made form. Keep the hidden _gotcha field: it stops spam bots. Each field name becomes {{#trigger.<name>}}:

Website form
<form method="post" action="YOUR_FORM_LINK">
  <input name="name" placeholder="Full name" required>
  <input name="phone" type="tel" placeholder="Phone" required>
  <input name="message" placeholder="How can we help?">
  <input name="_gotcha" type="text" style="display:none" tabindex="-1" autocomplete="off">
  <button type="submit">Send</button>
</form>

The link accepts a normal form post or JSON. A browser form gets a short "Thank you, we received your details." page; other callers get 202 with {"ok": true}. The same submission sent twice within a minute starts one run. To make retries safe from your own code, send an Idempotency-Key header.

Sheets rows and schedules#

  • Google Sheets new row: connect the Google account, choose the spreadsheet and tab, and pick the Phone column under Who it's for. Check every (minutes): 1 to 60, default 5. Rows that existed before you published don't start it.
  • Schedule: under Repeat, choose Every day or On days, then the Time and Time zone. Under Run, choose Once, or For each calendar event that day (coming soon) to send, say, a review request after each appointment.
  • Google Calendar event (coming soon): starts for New events or New or changed events, for the first phone number written in the event's description, location or title.

Who it's for can also be A fixed number (with country code, for example a team member's phone for a daily summary) or Nobody (background only): then the flow runs Google steps and notifications only and messages no customer.

Trigger data and testing#

Later steps use the trigger's data as {{#trigger.<field>}} (rename trigger in Event data > Save as):

TriggerFields
Website formEach form field by name, for example {{#trigger.name}}, plus submitted_at.
Google Sheets rowrowNumber and each column by its header, for example {{#trigger.Phone}}.
Scheduledate, time and run_at.
Calendar eventid, summary, description, location, start_text, date_text, time_text, link.

Try it shows the latest event, the phone it would message and the next scheduled runs. It starts nothing. Recent runs lists each run, newest first (Waiting, Running, Done, Failed, Skipped). Failures alert you too.

Common mistakes#

ProblemFix
Add a template first (24-hour rule) on the card.Add a Template step right after the trigger. Without it, runs fail for customers who haven't written in 24 hours.
"The trigger doesn't start anything yet."Connect the trigger to the first step.
"Write the phone with the country code, ..."Use the full number, for example 972501234567.
A run shows Skipped.No phone was found, for example the form had no phone field. Check Who it's for.
Old rows didn't start anything.That's by design: only rows added after you publish start the flow.