Skip to content

Flow steps ​

Click + on any card in the flow builder to add a step. Steps are grouped in the menu as Send, Ask, Logic, Contact and Finish. This page explains each one.

How do I put the customer's details in a message? ​

Under every text box there's a row of small buttons: Name, Phone and your contact fields. Click one to insert a value where your cursor is:

ValueBecomes
{{name}}The contact's name
{{phone}}Their phone number
{{attr.city}}Their City contact field (any field works: {{attr.order_id}}, {{attr.appointment_date}}…)

Answers saved by Ask steps become contact fields, so you can use them in later messages. For example, a question that saves to order_id can be followed by "Thanks! Checking order {{attr.order_id}}…". Your team sees these answers in the inbox, in the contact panel on the right.

If a value is empty for a contact, it's simply left out of the message.

Which steps send something? ​

Text message ​

Sends a normal text message, up to 4,096 characters. You can use WhatsApp formatting like *bold* and _italic_, emojis and values like {{name}}.

Image or file ​

Sends a picture, video, audio file or document.

  • Type: Image, Video, Audio or Document (PDF etc.).
  • File address: a public web link that opens the file directly, starting with https://.
  • Caption (optional): text under the file (not for audio).

TIP

If you don't have a link for the file, a reply-buttons step can carry an uploaded picture, video or PDF instead (see Reply buttons). Or send it with a quick reply from the inbox.

A message with one button that opens a website, like "Open catalogue".

  • Message: the text.
  • Button text: up to 20 characters.
  • Opens this web address: must start with https://. You can add {{phone}} or a field to the address, for example https://your-site.com/pay?ref={{attr.order_id}}.

WhatsApp allows one link button per message, and it can't be mixed with reply buttons. For choices, use Reply buttons.

Template ​

Sends an approved template. Use it when the customer may not have written in the last 24 hours, for example after a long Wait step.

  • Approved template: choose from your approved templates.
  • Value for {{1}} and so on: what fills each variable. Use text or values like {{name}}.

Use simple templates in flows for now

The Template step only fills in the message's {{1}}, {{2}} values. Templates with a media or location header, a changing website link, a copy-code button, a limited-time offer or a carousel may fail to send from a flow. Send those from a sequence or broadcast instead.

If the chosen template is no longer approved, the flow stops at this step and counts as Failed.

Which steps ask the customer something? ​

All Ask steps pause the flow and wait for the customer. If the reply doesn't fit (for example, text when you asked for a photo), the customer is asked again. After 3 wrong answers in a row, the bot stops and leaves the chat to your team. If the customer doesn't answer at all for 24 hours, the flow is dropped.

Reply buttons ​

A message with up to 3 tappable buttons. Each button has its own path on the canvas.

  • Message: up to 1,024 characters.
  • Picture or file above the message (optional): choose Image, Video or Document and click Upload.
  • Buttons: up to 3, each up to 20 characters. Click Add for another one.
  • Footer (optional): small grey text under the message, up to 60 characters.
  • Save the chosen button to a field (optional): for example, save to interest, then use {{attr.interest}} later.

The customer can tap a button or type its exact text. If a button's path isn't connected to anything, the flow ends after they tap it.

List menu ​

A message with a button that opens a menu of up to 10 choices. Use it when you have more than 3 options.

  • Message: up to 1,024 characters.
  • Menu button text: the button the customer taps to open the list, up to 20 characters.
  • Choices: up to 10, each up to 24 characters. Each has its own path.
  • Footer (optional) and Save the choice to a field (optional), as for buttons.

Ask a question ​

Asks something and saves the typed answer.

  • Question: what to ask.
  • Save the answer to field: the field name, like email or order_id. Letters, numbers and _ only.
  • Expect: Any text, An email address or A number.
  • If the answer isn't right, reply: what to say when the answer doesn't fit. If left empty: "Sorry, I didn't understand that. Please try again."

Ask for location ​

Sends a message with WhatsApp's Send location button. The customer taps it to share where they are.

  • Message: what to ask.
  • Save the place to field: for example location. KiliChat also saves location_lat, location_lng and location_map (a Google Maps link your team can open).

If they type instead of sharing, they're asked: "Please tap the button to share your location, or use 📎 → Location."

Ask for address ​

Asks for a delivery or visit address.

  • Between Indian numbers (your number and the customer's both start with +91), WhatsApp shows its address form with name, house, area, city and PIN code.
  • Otherwise the customer types the address, or shares a location.

Save the address to field: for example address. A typed address must be at least 10 characters; otherwise they're asked: "Please send your full address, with the area and PIN code."

Ask for a file ​

Waits for the customer to send a photo or file, and saves a link to it.

  • Wait for: A photo, A document (PDF etc.), A video, A voice note or audio, or Any photo or file.
  • Save a link to the file in field: for example photo. KiliChat also saves the kind of file in photo_type.
  • If they send something else, reply (optional).

WARNING

Anyone who has the saved link can open the file, so share it carefully.

Pick date & time ​

Offers the next few days as a menu, then time slots for the chosen day. Great for bookings.

  • Question for the day: like "Which day suits you?". The customer gets a Choose a day menu.
  • Days to offer: 1 to 10.
  • Skip days we're closed: leaves out days marked closed in Settings → Working hours.
  • Question for the time: like "And what time?". The customer gets a Choose a time menu.
  • Times to offer: one per line, in 24-hour format like 09:30 or 16:00. Up to 10. Times less than 30 minutes away are left out on the day.
  • Save the day to and Save the time to: fields like appointment_date and appointment_time.

The day is saved in words, like "Monday, 9 November 2026", plus appointment_date_iso as 2026-11-09. The time is saved like "4:30 PM", plus appointment_time_24h as 16:30. Days and times use the number's time zone from Settings → Working hours (India time if none is set).

INFO

This step doesn't check a calendar or stop double bookings. It collects the customer's preferred slot; your team confirms it.

Which steps control the flow? ​

Condition ​

Sends the customer down a Yes or No path.

  • Check: A field is filled in, A field equals, A field contains, or The contact has a tag.
  • Field: Name, Phone or one of your contact fields.
  • Value (for equals and contains): not case-sensitive.
  • Tag (for has a tag): the tag's name.

Example: "Is city equal to Chennai?" → Yes: send the Chennai store address; No: ask which city.

Wait ​

Pauses before the next step: a number of minutes, hours or days.

While a flow waits, new messages from that customer don't start other flows or automatic replies. If your team replies in the inbox during the wait, the flow stops.

WARNING

If the customer hasn't written for 24 hours by the time the wait ends, only a Template step can reach them. A text or buttons step after a long wait will fail.

API call ​

Fetches or sends data to another system, like your online store or CRM. Ask your developer to help with this one.

  • Method: GET or POST.
  • URL: must start with https://. You can put values in it, like https://your-store.com/api/orders/{{attr.order_id}}.
  • Headers: up to 10, for example Authorization and Bearer …. Admins of this number can see header values, such as API keys.
  • Body (JSON) (POST only): for example {"phone": "{{phone}}", "name": "{{name}}"}.
  • Save from the reply: pick values from the JSON reply and save them as fields. Paths look like status, order.total or items.0.name. Saved values become fields like {{attr.order_status}}.

The step goes down Worked when the reply has a 2xx status, and Failed otherwise, including no answer within 10 seconds, a redirect, a reply that isn't JSON when you asked to save values, or a private or local address.

Go to flow ​

Continues in another flow, from its Start step. The other flow's trigger is skipped, and it doesn't need to be turned on. Use it to share one "main menu" or "talk to us" flow between several flows.

Continue in: choose the flow. Nothing comes after this step in the current flow.

Which steps change the contact? ​

Tags ​

  • Add tags and Remove tags: tag names separated by commas. New tag names are created automatically.

Adding a tag can start a sequence that's set to start on that tag.

Set a field ​

Saves a value on the contact.

  • Field: a contact field, or name to change the contact's name.
  • Value: text, or values like {{attr.full_name}}.

For example, the "Lead capture" starter asks for the customer's name, saves it to full_name, then uses Set a field to copy it into the contact's name.

Opt in or out ​

Changes the contact's consent: Opt out or Opt back in. Opted-out contacts don't get broadcasts or sequences, and flows stop talking to them from their next message. The current flow carries on after this step, so you can send a short confirmation.

Hand to a person ​

Assigns the chat to your team.

  • Assign the chat to: The next person (round-robin), or a specific team member.

The flow doesn't stop by itself here. To make sure the bot goes quiet, don't connect anything after this step, or end with an End step. If the chat already has someone assigned, round-robin leaves it with them.

How does a flow end? ​

End ​

Stops the flow. "The flow stops here. The chat stays open for your team."

A flow also ends when it reaches a step with nothing connected after it.

Are there any limits? ​

  • A flow can run up to 100 steps in a row without waiting for the customer. More than that (usually a loop) stops it with an error.
  • Reply buttons: 3. List choices: 10. Times: 10. Days: 10.
  • Field names: letters, numbers and _, up to 40 characters.