> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waply.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Automate conversations using Waply Flow Builder

> Use Waply's no-code drag-and-drop Flow Builder to automate conversations using triggers, actions, branches, delays, and keyword-based responses.

The Waply Flow Builder lets you automate entire conversation sequences without writing a single line of code. You design a flow on a visual canvas by connecting triggers, actions, and logic branches — and Waply executes that flow automatically whenever the trigger conditions are met. Flows run across all connected channels and work alongside your team and AI Agent.

## What flows can do

Flows handle the repetitive, rule-based parts of your customer communication so your team focuses on conversations that need a human touch.

<CardGroup cols={2}>
  <Card title="Respond to keywords" icon="message">
    Send instant replies when a contact sends a specific word or phrase, such as "pricing", "hours", or "cancel".
  </Card>

  <Card title="Route conversations" icon="diagram-project">
    Assign conversations to the right agent or team based on the channel, contact data, or message content.
  </Card>

  <Card title="Qualify and tag leads" icon="tag">
    Update contact fields and lifecycle stages automatically based on how contacts respond to your messages.
  </Card>

  <Card title="Send scheduled messages" icon="calendar">
    Trigger a message sequence based on a time delay or a scheduled date — useful for follow-ups and reminders.
  </Card>
</CardGroup>

## Create a flow

<Steps>
  <Step title="Open Flow Builder">
    Navigate to **Automation** in the sidebar and click **New Flow**. Give the flow a name that describes its purpose — for example, *"Lead qualification — WhatsApp"*.
  </Step>

  <Step title="Choose a trigger">
    Every flow starts with a trigger. Click the trigger node on the canvas and select the event that starts the flow. See [Triggers](#triggers) below for the full list.
  </Step>

  <Step title="Add actions">
    Click the **+** button below the trigger node to add the first action. Drag nodes to reposition them on the canvas. Connect nodes by drawing edges between the output of one node and the input of the next. See [Actions](#actions) below for what each action does.
  </Step>

  <Step title="Add branches (optional)">
    Insert a **Branch** node to split the flow based on a condition — for example, send one message if the contact's lifecycle stage is **Lead** and a different one if it is **Customer**. Each branch path continues independently.
  </Step>

  <Step title="Test the flow">
    Use the **Test** button to simulate the flow with a test contact before activating it. Waply shows you each step the flow would execute and flags any misconfigured nodes.
  </Step>

  <Step title="Activate the flow">
    Toggle the flow to **Active**. Waply begins monitoring for the trigger condition immediately. You can deactivate a flow at any time without deleting it.
  </Step>
</Steps>

<Tip>
  Duplicate an existing flow to build a variation quickly. Click the three-dot menu on any flow in the Automation list and select **Duplicate**.
</Tip>

## Triggers

A trigger is the event that starts a flow. Each flow has exactly one trigger.

<AccordionGroup>
  <Accordion title="Incoming message">
    The flow starts when a contact sends any message to any of your connected channels, or to a specific channel you select. Use this trigger for welcome sequences, onboarding flows, and general-purpose auto-responses.
  </Accordion>

  <Accordion title="Keyword match">
    The flow starts when a contact's message contains a specific keyword or phrase. You define the keywords and choose whether to match exactly, match any word in a list, or use a contains rule. This is useful for menu-driven bots and FAQ responses.

    **Keyword matching is case-insensitive.** A contact typing "PRICING" or "pricing" will both match a keyword set to `pricing`.
  </Accordion>

  <Accordion title="Contact field change">
    The flow starts when a specific contact field is created or updated — for example, when the **Lifecycle stage** field changes to `Qualified`. Use this trigger to send follow-up messages after a contact is tagged or after a CRM sync updates their data.
  </Accordion>

  <Accordion title="Webhook">
    The flow starts when Waply receives a webhook payload from an external system. The trigger generates a unique webhook URL you provide to your CRM, e-commerce platform, or other tool. Incoming webhook data can be mapped to contact fields and used in branches.
  </Accordion>

  <Accordion title="Schedule">
    The flow starts at a fixed time — daily, weekly, or on a specific date. Use this trigger for broadcast-style sequences where you want to send a message to a segment of contacts at a set time, such as a weekly newsletter or a cart-abandonment reminder sent 24 hours after the trigger condition is met.
  </Accordion>
</AccordionGroup>

## Actions

Actions are the steps the flow executes after the trigger fires. You can chain as many actions as needed.

| Action              | What it does                                                                                                       |
| ------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Send message        | Send a text, image, document, or template message to the contact.                                                  |
| Assign conversation | Assign the current conversation to a specific agent or team.                                                       |
| Update contact      | Set or update a standard or custom contact field value.                                                            |
| Add tag             | Apply one or more tags to the contact.                                                                             |
| Remove tag          | Remove a tag from the contact.                                                                                     |
| Wait / delay        | Pause the flow for a set duration (minutes, hours, or days) before continuing.                                     |
| Branch (if/else)    | Split the flow into two paths based on a condition — for example, check if a custom field equals a specific value. |
| Call webhook        | Send an HTTP POST request to an external URL with contact and conversation data.                                   |
| Send broadcast      | Enroll the contact in a broadcast campaign immediately or at a scheduled time.                                     |

<Note>
  The **Wait / delay** action is useful for building follow-up sequences. For example: send a message, wait 24 hours, check if the contact replied, then send a follow-up only if they did not.
</Note>

## Keyword triggers

Keyword triggers are a simplified version of the full Flow Builder designed specifically for instant, single-step auto-responses. You define a keyword (or list of keywords) and the message Waply sends back when a contact uses that keyword.

<Steps>
  <Step title="Open Keyword Triggers">
    Go to **Automation** → **Keyword Triggers** and click **New Keyword Trigger**.
  </Step>

  <Step title="Define the keywords">
    Enter one or more keywords or phrases. You can use comma-separated values to match multiple terms with the same response — for example: `price, pricing, how much, cost`.
  </Step>

  <Step title="Set match conditions">
    Choose a match type:

    * **Exact match** — the entire message must equal the keyword.
    * **Contains** — the message only needs to include the keyword anywhere in the text.
  </Step>

  <Step title="Write the response">
    Enter the message Waply will send. You can use contact variables like `{{contact.first_name}}` to personalize the reply.
  </Step>

  <Step title="Activate">
    Toggle the keyword trigger to **Active**. It applies to all channels unless you restrict it to a specific one.
  </Step>
</Steps>

<Tip>
  Use Keyword Triggers for fast FAQ-style responses. Use the full Flow Builder when you need branching logic, contact updates, delays, or multi-step sequences.
</Tip>

## Best-practice examples

<AccordionGroup>
  <Accordion title="Welcome new contacts">
    **Trigger:** Incoming message (first message from a new contact)

    **Actions:** Send a welcome message → Add tag `new-contact` → Assign to the **Sales** team

    Keep the welcome message short and include a clear prompt for what the contact should do next, such as a numbered menu or a direct question.
  </Accordion>

  <Accordion title="Qualify leads with a multi-step form">
    **Trigger:** Keyword match — `get started`

    **Actions:** Send message asking for company name → Wait for reply → Update contact field `Company` → Send message asking for team size → Wait for reply → Update `Team size` → Branch: if `Team size` > 50 → Assign to **Enterprise Sales** team; else → Send pricing link

    Use the **Wait** action with a timeout so the flow doesn't block indefinitely if a contact stops responding.
  </Accordion>

  <Accordion title="Re-engage inactive contacts">
    **Trigger:** Schedule — daily at 9 AM

    **Actions:** Filter contacts with tag `inactive-30d` → Send a re-engagement message → Add tag `re-engagement-sent`

    Combine a scheduled trigger with a contact filter to reach only the right segment each day.
  </Accordion>

  <Accordion title="Post-purchase follow-up">
    **Trigger:** Webhook (order completed event from your e-commerce platform)

    **Actions:** Wait 1 day → Send a thank-you message with the order summary → Wait 7 days → Send a review request → Add tag `review-requested`

    Map the order data from the webhook payload to contact fields so you can reference the order number and product names in your messages.
  </Accordion>
</AccordionGroup>
