Incoming WhatsApp Messages
Incoming WhatsApp Messages runs every time a contact sends you a message on WhatsApp. It is the starting point for WhatsApp chatbots, keyword auto-replies, AI replies and bot-to-human handover.
Conditions
Conditions are optional. Click Add Condition, then pick a Field, an Operator and a value. Choose All (AND) or Any (OR) under Condition Type to decide whether every condition or just one must match.
| Condition | Operators | Values |
|---|---|---|
| Incoming Message | includes any, does not include all, is a valid date, is not a valid date, matches regex pattern, does not match regex pattern, equals, not equals | Keywords, a regex pattern or exact text |
| Message Type | is part of all, is part of any, is not part of all | Text, Template, Document, Image, Video, Audio, Order, Interactive, Sticker |
| Message received time | is between, is on, is before, is after, is less than X period ago (past), is more than X period ago (past) | A time of day, weekdays or a period |
| Last Contact activity time | is between, is on, is before, is after, is less than X period ago (past), is more than X period ago (past) | A time of day, weekdays or a period |
| Contact Group | is part of all, is part of any, is not part of all | Your contact groups |
| Phone Number | includes any, does not include all, matches regex pattern, does not match regex pattern, equals, not equals, exists, does not exist | Phone numbers or a regex pattern |
| Selected Option | is a valid staff, is not a valid staff, is a valid category, is not a valid category, is a valid service, is not a valid service, is a valid appointment, is not a valid appointment, is a valid client, is not a valid client, is a valid time slot, is not a valid time slot, is create new client, is not create new client, is load more, is not load more, is a valid gender, is not a valid gender, is a valid order, is not a valid order, is a valid subscription, is not a valid subscription, is a valid credit, is not a valid credit, is a valid plan, is not a valid plan, is a valid class, is not a valid class, is a valid class participant, is not a valid class participant | No value needed |
| Contact | is an existing client, is not an existing client | No value needed |
| Client Tags | includes any, does not include all, is part of all, is part of any, is not part of all | Your client tags |
| Contact Tags | includes any, does not include all, is part of all, is part of any, is not part of all | Your contact tags |
| Contact Stage | equals, not equals | Subscriber, Lead, Engaged, Marketing qualified lead (MQL), Sales qualified lead (SQL), Opportunity, Follow-up Required, Customer, Evangelist, Other, Lost, Inactive |
Incoming Message with includes any matches if the message contains any of your keywords anywhere, ignoring upper and lower case. Use equals for an exact reply or matches regex pattern for precise matching, for example /^stop$/i.
Message received time is checked in your location's time zone. is between takes a Time and an End Time and works across midnight (for example 19:00 to 09:00). is on takes one or more weekdays.
Phone Number does not exist is true for people who message from a WhatsApp username without sharing their number; pair it with request WhatsApp Phone Number. Selected Option and Contact are used by the built-in chatbot templates to check what the person picked in a list.
Actions
Click Add Action and choose from Select Action. Actions run in order; use the arrows to reorder them. To delay an action, click Add wait time (or Add wait & Schedule time on template and email actions). Wait times count from the trigger event, not from the previous action.
| Action | What it does | Wait time |
|---|---|---|
| send WhatsApp message | Sends a WhatsApp text reply. Only delivered while the 24-hour WhatsApp session is open. | Up to 1 day |
| send WhatsApp interactive message - Buttons | Sends a WhatsApp message with reply buttons. | Up to 1 day |
| send WhatsApp interactive message - List options | Sends a WhatsApp message with a list of options to choose from. | Up to 1 day |
| send WhatsApp interactive message - CTA URL | Sends a WhatsApp message with a button that opens a link. | Up to 1 day |
| send WhatsApp interactive message - Flow | Sends a WhatsApp Flow, a form that opens inside WhatsApp. | Up to 1 day |
| send WhatsApp media | Sends an image, video or document. | Up to 1 day |
| send WhatsApp audio | Sends an audio file or voice note. | Up to 1 day |
| send WhatsApp location Message | Sends a map location, such as your address. | Up to 1 day |
| request WhatsApp location Message | Asks the contact to share their location. | Up to 1 day |
| request WhatsApp Phone Number | Asks the contact to share their phone number. Useful when someone writes from a WhatsApp username and their number is not known yet. | Up to 1 day |
| request permission to call on WhatsApp | Asks the contact for permission to call them on WhatsApp. Skipped when permission is already in place. WhatsApp allows one request every 24 hours and two every 7 days. | Up to 1 day |
| send a WhatsApp template message | Sends an approved WhatsApp template. Works outside the 24-hour session, so use it for reminders, follow-ups and anything sent later. | Minutes to months |
| send Customer Satisfaction Survey (CSAT) | Sends a customer satisfaction (CSAT) survey. | Minutes to months |
| send a WhatsApp catalog message | Sends your WhatsApp catalogue so the contact can browse products. | Up to 1 day |
| Webhooks by Whautomate | Sends the event data to your own URL (webhook). | Minutes to months |
| Add the Contact to Group | Adds the contact to a contact group, which you can check in later conditions. | Minutes to months |
| Remove the Contact from Group | Removes the contact from a contact group, for example so a rule does not run twice. | Minutes to months |
| Add Client Tags | Adds tags to the client record. Needs CRM Suite. | Minutes to months |
| Remove Client Tags | Removes tags from the client record. Needs CRM Suite. | Minutes to months |
| Add Contact Tags | Adds tags to the contact. | Minutes to months |
| Remove Contact Tags | Removes tags from the contact. | Minutes to months |
| Update Contact Stage | Moves the contact to a stage, such as Lead or Customer. | Minutes to months |
| Send Email | Sends an email to the client, team members or a custom list. Marketing emails need CRM Suite; Transactional emails do not. | Minutes to months |
| Assign chat to unassigned queue | Moves the chat to the unassigned queue so a team member can pick it up (bot-to-human handover). | Up to 1 day |
| Assign chat to Staff | Assigns the chat to the team member you choose. | Up to 1 day |
| Auto-Assign Chat to Staff - Round Robin | Assigns the chat to team members in turn (round robin). | Up to 1 day |
| Auto Close Conversation | Closes the conversation, so automations answer again the next time the person writes. | Minutes to months |
| Send Single Product Message | Sends one product from your connected catalogue. Needs Sales. | Up to 1 day |
| Send Product List Message | Sends up to 30 products from your connected catalogue. Needs Sales. | Up to 1 day |
| Notify Staffs via WhatsApp | Sends a WhatsApp template message to the team members you choose. | Minutes to months |
| Smart Follow-up | Sends a follow-up if the contact has not replied within the wait time. Cancelled automatically when they reply. | Up to 1 day |
| AI Conversation | Replies with AI using your chosen provider, knowledge base and tools. See AI Conversation. | Up to 1 day |
| Smart AI Follow-up | Writes and sends a follow-up with AI, based on the conversation, if the contact has not replied within the wait time. Cancelled automatically when they reply. | Up to 1 day |
| Clear AI Conversation History | Clears the AI conversation history, so the next AI reply starts without earlier context. | Up to 1 day |
| Save the message response | Saves the contact's reply into their name, notes or a custom field (use variables.fieldname for a custom field). | Up to 1 day |
| Add Text Client Notes | Adds a text note to the client record. Needs CRM Suite. | Minutes to months |
| Add Document Client Notes | Attaches a document to the client record as a note. Needs CRM Suite. | Minutes to months |
| Add or Update Client Custom Attributes | Adds or updates custom fields on the client record. Needs CRM Suite. | Minutes to months |
| Add Contact to Suppression List | Adds the contact to the suppression list so they stop receiving messages from you. | Up to 1 day |
| Remove Contact from Suppression List | Removes the contact from the suppression list so they can receive messages again. | Up to 1 day |
| Add Contact Notes | Adds a note to the contact. | Minutes to months |

Example
Reply to opening-hours questions
- Go to Engage > Automations, click Add Rule, then Create rule from scratch.
- Name the rule "Opening hours reply" and choose Incoming WhatsApp Messages as the Trigger.
- Click Add Condition: Incoming Message, includes any, keywords
hoursandopen. - Under Actions, choose send WhatsApp message and type your hours, for example "We are open Monday to Saturday, 9am to 7pm."
- Turn on Publish Rule and click Save.
To answer only outside business hours, add a second condition Message received time is between 19:00 and 09:00.
Good to know
- While a team member has the conversation Open, message rules do not run, so the bot does not talk over a person. Turn on Override Human Agent in the trigger section to run this rule anyway (for example for an opt-out keyword).
- Text, media and interactive replies only reach the contact inside the messaging window (24 hours after their last message on WhatsApp, Instagram and Messenger), so their wait time is limited to 1 day. Use a template message for anything later.
- Only one WhatsApp chatbot template can be active at a time. See Rule templates.