What this builds
A keyword-triggered chatbot where customers type a message ("hi", "menu", etc.) and instantly get a structured WhatsApp List with tappable options. Each option triggers another workflow that sends the right answer.
A WA List chatbot fires when a customer sends a keyword. The list message shows tappable options. Each option triggers another GHL workflow with its own response.
Perfect for:
- Lead qualification with quick question paths
- FAQ menus where customers self-serve
- Booking flows with appointment-type options
- Support tier routing (sales, technical, billing)
What you'll need
- A working WAGHL setup with a connected WhatsApp number
- Familiarity with GHL Workflow Automation (triggers, actions, conditions)
- Pre-built WA Lists with keywords (see how to build a WA List)
Setup walkthrough
Open Workflow Automation
In your GHL sub-account, go to Automation → Workflows. Create a new workflow.
Set the trigger
Add a Customer Replied trigger. Set the reply channel to SMS (which routes to WhatsApp via WAGHL).
Add an If/Else condition
Add a condition to check the incoming message. For example: If Last Inbound Message contains "hi" → fire the next branch.
Add the WA List webhook
In the matching branch, add a Webhook action:
- Method: POST
- URL: use the table below to find yours
- Custom data: add a
keywordkey with the value matching your existing WA List's keyword (e.g.menu)
Save & publish
Save the workflow, name it (e.g. "Chatbot Main Menu"), and publish. Without publishing, the changes won't take effect.
Test it
Send "hi" (or whatever trigger you set) to your connected WhatsApp number. The chatbot should reply with the list menu within seconds.
Webhook URLs
The list-send endpoint differs by gateway. Check yours in Settings → Phone Numbers → Advanced Settings.
| Provider Name | Webhook URL |
|---|---|
| WhatsApp Gateway 1 |
https://trigger1.apimerger.com/list-send
|
| WA1 Connector |
https://wa1.apimerger.com/list-send
|
| WA2 Connector |
https://wa2.apimerger.com/list-send
|
Expanding the bot
Once the main menu fires, you'll want responses for each option. The pattern repeats:
Add more conditions to the same workflow
Add another If/Else branch: If Last Inbound Message contains "free trial" → send a specific response.
Customise per branch
Each branch can do anything: send a plain text message, fire another WA List, tag the contact, or even hand off to a human team member via internal notification.
Tips & gotchas
Spelling matters. If your trigger keyword is "menu" but the customer types "Menu" with a capital M, the condition might not match (depends on your "contains" rule). Use lowercase + a permissive condition.
Always publish. A common mistake is saving the workflow but forgetting to publish — changes won't fire until published.
Copy URLs and keywords directly — don't retype them (avoids typos). Test the bot end-to-end with multiple trigger phrases. Monitor real conversations for a week and adjust based on what customers actually say.
What's next?
- ChatGPT integration — for free-form AI replies instead of menu-driven bots
- Internal notifications — alert your team when bots can't handle a request
- Multi-Number setup — run bots on multiple WhatsApp numbers