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

# How to Create a Keyword-Based WhatsApp Chatbot in ChatSyncs

> The beginner's path to building a keyword-triggered WhatsApp chatbot in ChatSyncs, using the Keyword Replies flow builder.

A **keyword-based chatbot** replies automatically when a customer types a specific word —
that's exactly what **Keyword Replies**, ChatSyncs' flow builder, is built for.

* Instead of one canned reply, you design a full customer journey on a visual canvas.
* A **keyword** (a word or phrase the customer types) starts the flow.
* Connected blocks then send messages, collect answers, save them, and route the conversation —
  all without writing code.

**Example:** A customer types `menu`. That single word triggers a flow: the bot greets them,
shows your product categories as buttons, and routes them to the right next step —
automatically, every time, with no typing required from your side.

## Open the builder

<Frame>
  <img src="https://mintcdn.com/chatsyncs/KBWIuAfBOnKg9V2U/images/learn/whatsapp-keyword-replies/step-00-navigate-to-keyword-replies.png?fit=max&auto=format&n=KBWIuAfBOnKg9V2U&q=85&s=f6def999e7c703e616f5ec2dfa1760a7" alt="ChatSyncs left navigation with Chatbot Manager selected, the Automation tab highlighted, and the Keyword Replies sub-tab highlighted, showing a list of existing flows" width="1259" height="536" data-path="images/learn/whatsapp-keyword-replies/step-00-navigate-to-keyword-replies.png" />
</Frame>

**Chatbot Manager → Automation → Keyword Replies** opens the list of existing flows. Click
**Create** on the Keyword Replies list to open a blank canvas.

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-02-bot-reply-canvas.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=b0a664c9e4192d5748a06dff5c93984f" alt="Keyword Replies canvas showing the Start Bot Flow block and the flow blocks sidebar" width="1280" height="547" data-path="images/learn/whatsapp-keyword-replies/step-02-bot-reply-canvas.png" />
</Frame>

The canvas opens with a **Start Bot Flow** block already on it, and a **Flow blocks** panel on
the left for dragging on messages, data-collection blocks, and interactive components.

## Configure the trigger

Double-click **Start Bot Flow** to open its configuration panel, then:

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-03-configure-reference.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=18c1369301ab1d3243047fa247192e93" alt="Configure Reference panel with Trigger Keywords, Keyword matching type, and Title fields" width="437" height="531" data-path="images/learn/whatsapp-keyword-replies/step-03-configure-reference.png" />
</Frame>

<Steps>
  <Step title="Set Trigger Keywords">
    Enter the words or phrases that should start this flow, e.g. `menu, options, help`.
    To pause the flow later without deleting it, just remove its trigger keywords here and save —
    with nothing to match, it stops firing but stays in your Keyword Replies list.
  </Step>

  <Step title="Choose a keyword matching type">
    **Exact keyword match** fires only on an exact word; **String match** also fires on
    similar/partial keywords.
  </Step>

  <Step title="Give the flow a Title">
    Use a clear, descriptive title such as `welcome_bot`, `support_bot`, or `lead_capture_bot` —
    this is how you'll find it later in the Keyword Replies list.
  </Step>

  <Step title="Save">
    Click **Save Changes** to apply the configuration.
  </Step>
</Steps>

<Tip>
  Pick keywords your customers actually type. A flow titled `welcome_bot` triggered on
  `hi, hello, hey, start, help` will catch most incoming first messages.
</Tip>

## Automation Actions

The same configuration panel has an **Automation Actions** section for managing the contact
without sending a visible message:

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-04-automation-actions.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=882c3815f69a9963763e843af4796ffa" alt="Automation Actions panel with Add Label, Remove Label, Unsubscribe from Sequence, and conversation assignment fields" width="413" height="520" data-path="images/learn/whatsapp-keyword-replies/step-04-automation-actions.png" />
</Frame>

* **Add / Remove Label(s)** — tag contacts by demographic, interest, lead status, or purchase
  history so you can target them later with segmented campaigns. Labels themselves are created
  in [Subscriber Manager](/learn/chatsyncs-subscriber-manager/manage-custom-fields-and-labels-with-chatsyncs#create-a-label) — this just
  applies an existing one automatically when the flow runs.
* **Unsubscribe from Sequence** — stop an automated message sequence (onboarding, lead
  nurturing, promotions, re-engagement) for this contact.
* **Assign Conversation to a group** — hand the conversation to a team (e.g. Sales, Support,
  Executive) so any member of that team can pick it up.
* **Assign conversation to a user** — hand the conversation to one specific team member.

## Data & Integrations

The **Data & Integrations** section collects what the bot learns from the conversation and
sends it where you need it:

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-05-data-integrations.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=3f046aabaf002f4a78ca7a7aafac0248" alt="Data & Integrations panel with Save to Custom Field, Forward Data to Webhook, and Sync Data to Google Sheets fields" width="405" height="346" data-path="images/learn/whatsapp-keyword-replies/step-05-data-integrations.png" />
</Frame>

* **Save to Custom Field** — store a user's reply (name, email, phone, etc.) in a custom field
  you've created under Custom Fields.
* **Forward Data to Webhook** — POST the collected fields to an external URL (a CRM, database,
  or custom app) as JSON, e.g. `{"name": "{{user_name}}", "email": "{{user_email}}"}`.
* **Sync Data to Google Sheets** — connect a Google account, pick a spreadsheet and worksheet,
  and map each custom field to a column; every new submission adds a row automatically.

**Example — a lead-capture flow:**

<Steps>
  <Step title="User sends 'Hi'">The trigger keyword starts the flow.</Step>
  <Step title="Bot asks for Name, Email, and Phone">Each answer is captured as it arrives.</Step>
  <Step title="Responses save to custom fields">e.g. `user_name`, `user_email`, `user_phone`.</Step>
  <Step title="Data forwards to a webhook">For CRM processing.</Step>
  <Step title="Data syncs to Google Sheets">For reporting and tracking — no manual entry.</Step>
</Steps>

## Add flow components

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-06-flow-blocks-panel.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=87c811aa4ae75bf4f0ccb9b89634f337" alt="Flow blocks panel listing Messages, Data Collection, and Interactive components connected to Start Bot Flow" width="1270" height="544" data-path="images/learn/whatsapp-keyword-replies/step-06-flow-blocks-panel.png" />
</Frame>

After saving Start Bot Flow, hover the block and drag its connector dot onto the canvas to open
the list of components you can chain after it.

Click each component below to see what it does and how to configure it.

<AccordionGroup>
  <Accordion title="Text Message" icon="message">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-28-configure-text-message.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=e11137966ba3eb01f3c18897425376d5" alt="Configure Text Message panel with a Reply message textarea, Custom/Name toolbar for variables, and Delivery Options" width="1906" height="811" data-path="images/learn/whatsapp-keyword-replies/step-28-configure-text-message.png" />
    </Frame>

    Plain text — welcomes, instructions, FAQs, notifications. Type the **Reply message**
    directly, or click **Name** (or type `#`) to drop in a variable — this is the block used in
    the screenshot above.
  </Accordion>

  <Accordion title="Image Message" icon="image">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-29-configure-image-message.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=c39c76ded04d5d110995c5f002b09647" alt="Configure Image panel with How to send media options (Use Custom Field or Upload New Media), an Upload image dropzone, and an Image URL field" width="1879" height="796" data-path="images/learn/whatsapp-keyword-replies/step-29-configure-image-message.png" />
    </Frame>

    PNG/JPG — product images, banners, promos. Either **Upload image** a file directly, or paste
    an **Image URL** (see Media upload options below).
  </Accordion>

  <Accordion title="Video Message" icon="video">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-30-configure-video-message.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=8153788ec2a3217103525cda4e61b3c0" alt="Configure Video panel with an Upload video dropzone and a Video URL field" width="1846" height="773" data-path="images/learn/whatsapp-keyword-replies/step-30-configure-video-message.png" />
    </Frame>

    MP4/FLV/WMV — demos, tutorials, marketing.
  </Accordion>

  <Accordion title="Audio Message" icon="volume-high">
    AAC/MP3/AMR/OGG, up to 16 MB — voice greetings, announcements.
  </Accordion>

  <Accordion title="File / Document Message" icon="file">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-31-configure-file-message.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=ac4156a18cfd646995e8750691390efc" alt="Configure File panel with an Upload file dropzone, a File URL field, and Delivery Options" width="1909" height="814" data-path="images/learn/whatsapp-keyword-replies/step-31-configure-file-message.png" />
    </Frame>

    DOC/DOCX/PDF/TXT/PPT/PPTX/XLS/XLSX — brochures, invoices, manuals.
  </Accordion>

  <Accordion title="Media upload options (Image, Video, File)" icon="upload">
    All three media blocks share the same **How to Send Media** choice: **Upload New Media** (a
    file from your device, sent with the message) or **Use Custom Field** (a URL already stored
    in a custom field — useful for dynamic or previously uploaded content).
  </Accordion>

  <Accordion title="Interactive Message: Buttons, Lists & E-commerce" icon="list-check">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-13-configure-interactive-buttons.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=d0c3575c450b7bd99c76cbe05bab80cb" alt="Configure Interactive Message panel with an optional Media header and the Message Body, next to the canvas node showing Reply, Buttons, List Messages, and E-commerce connectors" width="1911" height="807" data-path="images/learn/whatsapp-keyword-replies/step-13-configure-interactive-buttons.png" />
    </Frame>

    An Interactive Message has an optional **Header** (text or media), a required **Message
    Body**, and then branches into one of three reply types wired from its **Reply** connector:

    * **Buttons** — up to 3 tappable buttons, each wired to its own next step.
    * **List Messages** — a **Section** of up to 10 **Rows**; each row's **Row setup** sets a
      **Row Generation Method** (**Static** text you write, or **Dynamic**, generated from
      data), a **Title**, and a **Description**.
    * **E-commerce** — attaches your product catalog to the message.

    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-14-interactive-buttons-canvas.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=2bd71ea365e1a878c2313fd6e3a9bd56" alt="Interactive Message node on the canvas with three Buttons wired to it — Admissions, Courses, Support — each its own reply node" width="548" height="690" data-path="images/learn/whatsapp-keyword-replies/step-14-interactive-buttons-canvas.png" />
    </Frame>

    Each **Button** (and each list **Row**) has its own **Button action** — what happens when
    the customer taps it: **Send Message** (continue the flow), **Start a Flow** (jump into a
    different Keyword Replies flow), or **System Default Action Button**.

    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-32-button-action-dropdown.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=06c3c83ab5afab5f26e961a9ae199558" alt="Button action dropdown open, showing Send Message highlighted alongside Select, Start a Flow, and System Default Action Button" width="1892" height="796" data-path="images/learn/whatsapp-keyword-replies/step-32-button-action-dropdown.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-15-list-messages-row-setup.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=626dff815f97288c76bae22f030fbeb8" alt="Configure Row panel for a List Message with Row Generation Method set to Static, Title and Description fields, Save selection to a custom field, and an optional Automation section" width="1002" height="683" data-path="images/learn/whatsapp-keyword-replies/step-15-list-messages-row-setup.png" />
    </Frame>

    Every button or row also has its own **Automation** panel — the same kind of background
    actions available on Start Bot Flow, scoped to just that one option:

    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-16-button-automation-actions.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=c13f4fb17ded600fe7c4204166d601a1" alt="Button Automation panel with Save to custom field, Add/Remove Label(s), Add/Remove from List(s), Subscribe/Unsubscribe Sequence, Assign Conversation to a group or user, Send data to Webhook URL, Send data to Google Sheets, Send data to Google Calendar, and Generate Google Meet Link" width="579" height="735" data-path="images/learn/whatsapp-keyword-replies/step-16-button-automation-actions.png" />
    </Frame>

    * **Save to custom field**, **Add/Remove Label(s)**, **Add/Remove from List(s)**
    * **Subscribe to Sequence** / **Unsubscribe from Sequence**
    * **Assign Conversation to a group** / **Assign conversation to a user**
    * **Send data to Webhook URL**, **Send data to Google Sheets**, **Send data to Google
      Calendar** (with an option to **Generate Google Meet Link**)

    <Tip>
      This means a single button tap can save the customer's choice, tag them, hand the
      conversation to Sales, and log a row in a spreadsheet — all before the next message sends.
    </Tip>
  </Accordion>

  <Accordion title="CTA URL Button" icon="arrow-up-right-from-square">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-33-configure-cta-url-button.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=df801c6427de47641fbc5774fbc26db6" alt="Configure CTA URL Button panel with Header Message, Body Message, and Footer Message fields, next to the canvas node showing the button text and Open Website link" width="1900" height="802" data-path="images/learn/whatsapp-keyword-replies/step-33-configure-cta-url-button.png" />
    </Frame>

    A button that opens a website — landing, payment, or booking pages — instead of sending text
    back to the bot. Set an optional **Header Message**, a required **Body Message**, an
    optional **Footer Message**, and the **Call to Action Button**'s text and destination URL.
    See [How to Add Clickable CTA Buttons](/learn/chatsyncs-automation/add-clickable-cta-buttons-in-chatsyncs) for the full
    field-by-field walkthrough.
  </Accordion>

  <Accordion title="Location Message" icon="location-dot">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-18-location-message.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=2b048bd660be4f26742968c769948fe9" alt="Configure Location Template panel with a Body text field for the location quick-reply request" width="1826" height="794" data-path="images/learn/whatsapp-keyword-replies/step-18-location-message.png" />
    </Frame>

    Sends a quick-reply button that asks the customer to share their **live location** — useful
    for delivery address collection or finding the nearest store/branch. Just write the **Body
    text** shown alongside the request button.
  </Accordion>

  <Accordion title="HTTP API" icon="plug">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-34-configure-http-api.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=cc25aef34e2b45e81952ad542a3e0801" alt="Configure HTTP API panel with an HTTP API List dropdown to choose which API runs at this step, and Create/Refresh buttons under Manage APIs" width="1908" height="790" data-path="images/learn/whatsapp-keyword-replies/step-34-configure-http-api.png" />
    </Frame>

    Calls an external service (your CRM, backend, or any API) at this step in the flow. Pick a
    previously-configured API from **HTTP API List**, or click **Create** under **Manage APIs**
    to set up a new one without leaving the flow. See [How to Connect a Bot Flow to External
    Systems](/learn/chatsyncs-automation/connect-a-bot-flow-to-external-systems-in-chatsyncs) for the full setup.
  </Accordion>

  <Accordion title="Google Sheet Data Fetch" icon="table">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-35-configure-google-sheet-data-fetch.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=a27a9d2c76b6334b945a32f1c5e3ab18" alt="Configure Google Sheet Data Fetch panel with a Campaign dropdown to choose which data fetch campaign runs at this step, and Create/Refresh buttons under Manage campaigns" width="1880" height="784" data-path="images/learn/whatsapp-keyword-replies/step-35-configure-google-sheet-data-fetch.png" />
    </Frame>

    Pulls data from a connected Google Sheet campaign into the conversation. Pick a campaign
    from **Google Sheet Data Fetch Campaign List**, or click **Create** under **Manage
    campaigns** to set up a new one. See [Google Sheet
    Fetch](/learn/chatsyncs-integrations/google-sheet-fetch-in-chatsyncs) for how to connect and configure it.
  </Accordion>

  <Accordion title="Random Number Generator" icon="dice">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-20-random-number-generator.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=30800cf5422d0b9531bc35c80a3f34c1" alt="Configure Random Number Generator panel with Character set checkboxes (numbers, upper/lower case, special characters), a Value length field, and Save to custom field" width="1437" height="821" data-path="images/learn/whatsapp-keyword-replies/step-20-random-number-generator.png" />
    </Frame>

    Generates a random value and stores it in a custom field:

    * **Character set** — mix of numbers, upper-case letters, lower-case letters, and special
      characters.
    * **Value length** — minimum 5 characters.
    * **Save to custom field** — where the generated value is stored, ready to reference later
      (e.g. in a confirmation message as a token or ticket number).
  </Accordion>

  <Accordion title="Label Assign" icon="tag">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-21-label-assign.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=dc152eefbc0f620257054051e2e48fa8" alt="Label Assign panel with a multi-select Labels field showing existing labels like today, batch1, batch2, batch3" width="1874" height="804" data-path="images/learn/whatsapp-keyword-replies/step-21-label-assign.png" />
    </Frame>

    Assigns one or more existing
    [labels](/learn/chatsyncs-subscriber-manager/manage-custom-fields-and-labels-with-chatsyncs#create-a-label) to the
    subscriber the moment the flow reaches this step — no visible message is sent. Useful for
    segmenting contacts by which path they took through a flow (e.g. everyone who picked
    "Admissions" gets tagged `batch1`).
  </Accordion>

  <Accordion title="WhatsApp Flow" icon="bars-progress">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-36-whatsapp-flows-message-body-footer.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=fcc8334d1c560196ed76ac57989ab2cc" alt="Configure Whatsapp Flows panel with Message Body, Message Footer, and Footer Button Text fields" width="1564" height="775" data-path="images/learn/whatsapp-keyword-replies/step-36-whatsapp-flows-message-body-footer.png" />
    </Frame>

    Launches a Meta WhatsApp Flow — lead forms, bookings, surveys, registration. Pick the flow
    to send, then write the **Message Body** shown above the flow button, an optional **Message
    Footer**, and the **Footer Button Text** that opens it. See [WhatsApp Flow
    Forms](/learn/chatsyncs-automation/whatsapp-flow-forms-in-chatsyncs) for the full builder walkthrough.
  </Accordion>

  <Accordion title="User Input Flow" icon="keyboard">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-37-configure-user-input-flow.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=ba8789c2f96467b64e1df981efa0fe9a" alt="Configure User-Input-Flow panel with a User input flow campaign dropdown, and Labels and Integrations sections for the flow's Automation" width="1881" height="814" data-path="images/learn/whatsapp-keyword-replies/step-37-configure-user-input-flow.png" />
    </Frame>

    Runs a multi-question campaign and saves each answer to a custom field — good for surveys,
    order collection, reservations, and appointments. Pick an existing campaign from **User
    input flow**, or create a new one; the same panel lets you add/remove labels and wire up
    webhook or Google Sheets integrations for the whole campaign. See [User Input
    Flow](/learn/chatsyncs-automation/user-input-flow-in-chatsyncs) for how to build one.
  </Accordion>

  <Accordion title="AI Reply" icon="robot">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-25-ai-reply-block.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=e6d8e277cefed611c3d1d77510bd2697" alt="Configure AI Reply Message panel with a Message to learn text box, an OR divider, and a Training campaign dropdown to select a saved Open AI training campaign" width="1823" height="828" data-path="images/learn/whatsapp-keyword-replies/step-25-ai-reply-block.png" />
    </Frame>

    Lets this step of the flow answer with AI instead of a fixed message, taught one of two
    ways:

    * **Message to learn** — paste a sample message inline for the AI to learn from.
    * **Training campaign** — pick an existing [AI
      Knowledgebase](/learn/chatsyncs-ai-agents/train-your-ai-chatbot-in-chatsyncs) campaign instead of retyping its
      training data.
  </Accordion>

  <Accordion title="Condition" icon="code-branch">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-26-condition-block.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=63e8d98e4dd226afbe05db1856311fc2" alt="Configure Condition panel with Match type (All Match / Any Match), a System Field rule row, and a Custom Field rule row, each with Variable, Operator, and Value" width="1889" height="800" data-path="images/learn/whatsapp-keyword-replies/step-26-condition-block.png" />
    </Frame>

    Branches the flow into **True** and **False** paths based on rules you define:

    * **Match type** — **All Match** (every rule must pass) or **Any Match** (at least one rule
      must pass).
    * **System Field** rules — based on subscriber profile data (variable, operator, value).
    * **Custom Field** rules — based on values saved in your own custom fields.

    Wire the **True** connector to one path and **False** to another — e.g. `If User Interest =
            Sales → Sales Flow`, otherwise fall through to a generic reply.

    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-38-condition-true-false-canvas.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=f7ecd444404a6588ce683836c89beee4" alt="Condition node on the canvas with its True connector wired to an Interactive Message and its False connector wired to a Text message" width="1245" height="765" data-path="images/learn/whatsapp-keyword-replies/step-38-condition-true-false-canvas.png" />
    </Frame>
  </Accordion>

  <Accordion title="Template Messages" icon="rectangle-list">
    <Frame>
      <img src="https://mintcdn.com/chatsyncs/803VE9tsGNQK-iS-/images/learn/whatsapp-keyword-replies/step-27-template-message-block.png?fit=max&auto=format&n=803VE9tsGNQK-iS-&q=85&s=72d5d6ddfd13a0626952fa34827707c3" alt="Configure Template Message panel with a Select template dropdown and a Create button for approved WhatsApp templates" width="1301" height="763" data-path="images/learn/whatsapp-keyword-replies/step-27-template-message-block.png" />
    </Frame>

    Sends an approved WhatsApp template from this step — pick one from **Select template**, or
    click **Create** to start a new one without leaving the flow.

    <Warning>
      Template Messages must be **approved by Meta** before a flow can send them — see [Creating a
      WhatsApp Message Template](/learn/chatsyncs-message-templates/creating-a-whatsapp-message-template-in-chatsyncs).
    </Warning>
  </Accordion>
</AccordionGroup>

A typical flow chains several of these:

```
Start Bot Flow
→ Welcome Text
→ Interactive Buttons
→ User Input Collection
→ Save to Custom Fields
→ AI Reply or Condition Routing
→ Webhook / Google Sheet Sync
→ Template Message Follow-Up
```

## Personalize messages

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-07-personalize-message.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=14966320a03bcc7019b7919c8e16f3ff" alt="Message Body with custom-field variables and an optional Message Footer field" width="376" height="350" data-path="images/learn/whatsapp-keyword-replies/step-07-personalize-message.png" />
</Frame>

Inside a Text Message block, click **Name** to insert the user's name, or type `#` to insert any
custom field as a variable — e.g. `Hey #LEAD_USER_FIRST_NAME#, welcome back!`. You can also add
optional **Message Footer** text, commonly used for branding or disclaimers (e.g.
`Powered by ChatSyncs`).

## Delivery options

Each message block has **Delivery Options** for a more natural pacing:

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-08-delivery-options.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=3fad994d4f93e327699460271f08f300" alt="Configure Text Message panel showing Smart Delay in Reply and Typing on display options" width="417" height="531" data-path="images/learn/whatsapp-keyword-replies/step-08-delivery-options.png" />
</Frame>

* **Smart Delay in Reply** — wait a set number of hours/minutes/seconds before sending.
* **Typing on display** — show WhatsApp's typing indicator before the reply lands.

<Tip>
  A 1–3 second typing delay before a reply makes the bot feel more human without slowing the
  conversation down.
</Tip>

## Clone or delete a component

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-09-clone-delete-icons.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=4ea8a54f5f9c27fc8820e26ebf2aee81" alt="A flow block with clone and delete icons visible on hover" width="1279" height="537" data-path="images/learn/whatsapp-keyword-replies/step-09-clone-delete-icons.png" />
</Frame>

Hover any block on the canvas to reveal two small icons above it: the first **clones** the
block (handy for reusing a configured component without rebuilding it), the second **deletes**
it permanently.

<Tip>
  Clone a block before making a major change to it — that keeps a backup copy on the canvas in
  case you want to revert.
</Tip>

## Save & validation

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-10-validation-warning.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=ffbab31a2e6fe73c31d0f4d903d36bfe" alt="Warning dialog: Some component(s) have no data" width="1264" height="536" data-path="images/learn/whatsapp-keyword-replies/step-10-validation-warning.png" />
</Frame>

Before saving, every required field on every connected component must be filled in — a missing
**button text** on an Interactive Message, or empty content on a Text Message, blocks the save
and shows a validation warning.

<Frame>
  <img src="https://mintcdn.com/chatsyncs/ouLOR-saCHwHFKKf/images/learn/whatsapp-keyword-replies/step-11-save-flow-success.png?fit=max&auto=format&n=ouLOR-saCHwHFKKf&q=85&s=68acb3d78aea92bc2e1a3445e1e935c5" alt="Start Bot Flow connected to a Text reply with a Data has been saved successfully toast" width="1259" height="546" data-path="images/learn/whatsapp-keyword-replies/step-11-save-flow-success.png" />
</Frame>

Once every component is complete, click **Save** — a success confirmation appears and the flow
is live.

## Manage your flows

Back on the Keyword Replies list, each flow has its own row of action icons:

<Frame>
  <img src="https://mintcdn.com/chatsyncs/KBWIuAfBOnKg9V2U/images/learn/whatsapp-keyword-replies/step-12-list-action-icons.png?fit=max&auto=format&n=KBWIuAfBOnKg9V2U&q=85&s=86b1e3bc1d4608f5db2ded1732e9727b" alt="Keyword Replies list row with six action icons highlighted: duplicate, copy to other bot, export flow data, edit, delete, and move to folder" width="1275" height="532" data-path="images/learn/whatsapp-keyword-replies/step-12-list-action-icons.png" />
</Frame>

| Action                | What it does                                                                       |
| --------------------- | ---------------------------------------------------------------------------------- |
| **Duplicate**         | Creates a copy of the flow — useful for reusing it with minor modifications.       |
| **Copy to Other Bot** | Copies the flow to another bot in your account, instead of rebuilding it manually. |
| **Export Flow Data**  | Exports the complete flow configuration for backup, migration, or sharing.         |
| **Edit**              | Opens the flow editor to modify the existing flow and its components.              |
| **Delete**            | Permanently removes the flow.                                                      |
| **Move to Folder**    | Moves the flow into a folder to help organize multiple flows.                      |

## Frequently asked

<AccordionGroup>
  <Accordion title="What's the very first thing I need to build a keyword chatbot?">
    A trigger keyword — the word or phrase that starts the flow, set on the **Start Bot Flow**
    block. Connect a Text Message or Interactive Message block after it, save, and it fires
    whenever a customer's message matches.
  </Accordion>

  <Accordion title="Can one bot respond to more than one keyword?">
    Yes — build a separate flow per keyword (or group of keywords), each with its own trigger
    and its own reply.
  </Accordion>

  <Accordion title="Can I collect a customer's name, email, and phone number through the bot?">
    Yes — use **User Input Flow** blocks to ask for each value, and map each answer to a
    Custom Field under Data & Integrations. You can then forward the data to a webhook or sync
    it to Google Sheets automatically.
  </Accordion>

  <Accordion title="Why won't my flow save?">
    A connected component is missing required data — e.g. an Interactive Message with no
    button text, or an empty Text Message. ChatSyncs shows a validation warning naming the
    incomplete component; fill it in and save again.
  </Accordion>

  <Accordion title="What's the difference between Exact keyword match and String match?">
    **Exact keyword match** fires only when the customer's message is exactly one of your
    trigger keywords. **String match** also fires if a trigger keyword appears anywhere inside
    a longer message. If your bot isn't firing on messages you expected, check which matching
    type the Start Bot Flow block is set to — Exact match is stricter and will miss typos or
    extra words.
  </Accordion>

  <Accordion title="What if I want to pause a Keyword Replies flow but not delete it?">
    Open **Start Bot Flow → Configure Reference**, remove its Trigger Keywords, and save. With
    no keywords left to match, the flow stops firing for any customer message, but it stays in
    your Keyword Replies list — add the keywords back any time to turn it on again.
  </Accordion>
</AccordionGroup>

## Learn From a Use Case

* [Gym Membership Plan Selector Automation](/learn/gym-membership-plan-selector-with-chatsyncs-business-problem) — runs the
  whole plan-selection conversation.
* [Travel Assistant](/learn/travel-agency-ai-assistant-with-chatsyncs-business-problem) — runs the structured Human Support
  handoff flow.
* [Clinic Appointment Booking Automation](/learn/clinic-appointment-booking-automation-with-chatsyncs-business-problem) —
  runs the welcome menu and the whole booking flow.
* [Availability-Based Conversation Assignment](/learn/availability-based-conversation-assignment-with-chatsyncs-business-problem) —
  hands the conversation to a team at the right point in the flow.
