Keyword auto responses
Keyword auto-responses automatically reply when customers text specific words like "STOP," "JOIN," or "HELP." This guide shows you how to set up each type of response in Bloomreach Engagement.
Why use keyword auto-responses
Auto-responses help you:
- Stay compliant: Meet US regulations by letting customers text "STOP" to unsubscribe. This protects you from TCPA violations that cost USD 500-1,500 per message.
- Grow your subscriber list: Let new customers join by texting "JOIN."
- Provide instant support: Reply to "HELP" right away with useful info or contact details. This can help reduce support tickets for common questions.
- Improve customer experience: Give customers instant confirmation. Quick replies improve their experience.
Example: Set up "DEALS" as a keyword. When customers text "DEALS" to your number, they join your weekly promotions and get a welcome discount code.
How keyword auto-responses work
Here's what happens:
- Customer texts the keyword: They send "STOP," "JOIN," or "HELP" to your dedicated number.
- System sends auto-reply: Your pre-written response goes out instantly to any number (does not have to be an existing customer profile).
- System updates consent: Customer gets opted in, opted out, or no change happens.
- System tracks events: Both the incoming message and your reply get recorded.
Important
You need two-way messaging set up for auto-responses to work.
Supported channels
- SMS, MMS, RCS: Keywords are configured together and apply to all senders within these channels.
- WhatsApp: Separate keyword configuration.
Keyword auto-response actions
Choose the right action for your goal. There are 3 types.
Revoke consent (opt-out/unsubscribe)
Best for: STOP, QUIT, UNSUBSCRIBE, CANCEL, END, ARRET, BASTA
What it does:
- Blocks the phone number from future messages right away.
- Tracks consent rejection for selected consent categories to customer profiles.
- Sends your auto-reply confirming the unsubscribe.
How it finds customer profiles: The system checks every few minutes to find all customer profiles matching the phone number. It tracks consent rejection to up to 10 customer profiles with the matching phone number. If there are more than 10 profiles, message blocking still works, but consent events won't track to those extra profiles.
New customers: If no existing customer profiles match the phone number, the system discards the opt-out request. It doesn't create new profiles for opt-out requests.
Example: Set up "STOP for quick unsubscription. When customers text "STOP," they get confirmation and get removed from all selected consent categories and therefore from future messages.

Grant consent (opt-in/subscribe)
Best for: JOIN, START, SUBSCRIBE, YES, OUI, SI
What happens:
- Tracks consent acceptance for selected consent categories to customer profiles.
- Creates new customer profiles for unknown phone numbers (if you set this up).
- Sends your welcome auto-reply message.
How it finds customers: For existing customers, the system finds all matching profiles (up to 10) and tracks consent acceptance. If the phone number belongs to an existing profile that has received at least one mobile message from that channel, consent events are tracked in real time.
Create profiles for new customers: When you enable Map new subscribers ID, the system creates new profiles automatically for unknown phone numbers. The phone number in international format with leading zeros (like 0044123456789) becomes both the customer ID and the phone attribute value. Both consent and campaign events get tracked to the new profile right away.
Text-to-join feature: If customers text "JOIN" from a phone number that doesn't match any profile, the system creates a new profile. The phone number becomes both the ID and the phone attribute.
Example: New customers who text "JOIN" get added to your weekly specials list. They get a 10% off code for their next purchase.

No action (give information only)
Best for: HELP, INFO, SUPPORT, HOURS, LOCATION
This gives information without changing subscription status.
Example: Set up "HOURS" as a keyword. When customers text "HOURS," they get store hours and holiday schedules.
Configure keyword auto-responses
Basic setup
- Go to Project settings > Channels > SMS / MMS / RCS (or Mobile messaging for WhatsApp).
- Under Two-way mobile messaging, find Keyword auto-responses.
- Click Add keyword configuration.
- Enter your keywords (up to 100 per configuration).
- Choose consent action (revoke, grant, or no action).
- Select relevant consent categories.
- For Grant consent, select the new subscriber ID (commonly a phone soft ID)
- Write your auto-reply message.
- Save the setup.

Set up consent categories
Create consent categories for each channel you plan to use. You can pick up to 5 categories per keyword setup. Define which ones apply to SMS, MMS, RCS, and WhatsApp.
Pro tip: You can use the SMS consent also for granting consent for WhatsApp. But we recommend separate categories. This lets customers unsubscribe from each channel individually.
Important
Use consents, not legitimate interest, as the consent category for SMS campaigns. When you use legitimate interest, phone number blocking also works for new customers.
Follow compliance rules
US compliance (TCPA/CTIA)
- Always include “STOP”: Give clear opt-out instructions in every marketing message. Example: "Reply STOP to opt out."
- Honor right away: Process "STOP" requests within seconds, not hours. Slow responses can lead to violations.
- Confirm unsubscribe: Always confirm when someone gets unsubscribed. This shows you got and processed their request.
- Document consent: Keep records of when and how customers opted in. This protects you if complaints come up.
International considerations
- Research local keywords: Different countries use different opt-out terms. In Germany, "STOPP" is more common than "STOP."
- Handle language variants: Account for accents and regional spelling differences. French customers might use "arrêt" or "arret."
- Check carrier requirements: Some mobile carriers have specific keyword requirements you must follow.
Set up keyword matching
Keywords must follow specific rules to trigger responses.
Matching rules
- Start the message: "STOP now" works, but "Please STOP" doesn't.
- Form complete words: Followed by space, comma, or end of message.
- Match any case: "STOP," "Stop," and "stop" all work.
- Ignore accents: "stop" matches "stôp" or "štop."
- Allow extra spaces: " STOP " (with spaces) still works.
Test your keywords
Let's say you set up "STOP" (English) and "ARRET" (French) as opt-out keywords.
Text message | Matches? | Why |
---|---|---|
STOP | Yes | Keyword at start, exact match |
Stop please | Yes | Keyword at start, followed by space |
stop | Yes | Keyword at start, extra spaces are ignored |
ARRET maintenant | Yes | French keyword at start |
arrêt | Yes | Accents are ignored |
Please stop | No | Keyword not at start of the message |
Unsubscribe me | No | Different word entirely |
Garrett | No | Keyword not complete word |
Advanced matching rules
For more complex needs, we offer:
- Multiple keywords: Set up to 100 keywords for each response.
- Regular expressions (regex): Use regex for complex patterns.
- MMS support: All message parts get checked for keywords.
Compare keyword auto-responses and scenario triggering
Keywords
- Trigger immediately.
- Work for any number (doesn't have to be an existing profile).
- Can create a new profile for "text to join" use cases.
Scenarios
- Only trigger for existing customers.
- Might trigger with a delay (1 minute or more).
Test keyword auto-responses
Testing checklist
- Send a keyword (like "STOP") to your dedicated number.
- Check that you get the auto-reply right away.
- Check Data & Assets > Customers for these events:
- Consent event: Action =
reject
(for STOP) oraccept
(for JOIN) - Campaign event: Status =
incoming_message
- Auto-reply event: Status =
enqueued" or "enqueue_failed
- Consent event: Action =

What to check
- Response speed: Your auto-replies should arrive within seconds. If they don't, check your provider settings.
- Message content: Make sure your auto-reply text appears correctly and isn't cut off.
- Consent changes: Confirm the customer's subscription status updated properly in their profile.
- Event tracking: All expected events should show up on customer profiles within a few minutes.
Use keyword data for automation
Once you're tracking keyword events, create scenarios that respond to customer actions.
Re-engage customers who opted out
- Trigger: Customers text "STOP"
- Wait: 30 days
- Action: Send one-time re-engagement email (if they have email consent).
- Content: "We miss you! Here's 20% off to come back" with SMS opt-in link.
Give VIP treatment to engaged customers
- Trigger: Customers text "HELP" or "INFO"
- Condition: Check if they've made recent purchases
- Action: Add to VIP segment
- Follow-up: Send exclusive early access to sales.
Optimize across channels
- Trigger: Customers opt out of SMS
- Condition: Check if they have email consent
- Action: Increase email frequency to maintain engagement
- Measure: Track if revenue stays stable across channels
Handle blocked phone numbers
When customers text "STOP," their phone number goes on a blocklist.
How blocklisting works
- Immediate blocking: The phone number gets blocked as soon as the keyword processes.
- Override options: You can still send messages using "General consent" for important updates.
- Permanent blocking: Numbers stay blocked forever unless the customer opts back in. Phone numbers remain on the blocklist indefinitely, preventing message sending for all profiles, including profiles created in the future.
- Multiple profiles: If multiple profiles share the same phone number, all get blocked (up to 10 profiles get consent events).
Timing considerations
There's a small delay between when a number gets blocked and when consent events get tracked. If you send a campaign during this time to a blocked number, it fails with status enqueue_failed
.
Understand event tracking
When customers use keywords, the system tracks detailed events. Campaign events for incoming messages and auto-replies are tracked to one customer profile, either in real time or through periodic processing.
The system uses the correct provider and sender based on the incoming message. The receiving sender number becomes the auto-reply sender, and the receiving provider sends the auto-reply.
Consent events (for opt-in/opt-out actions)
Property | Value | Description |
---|---|---|
timestamp | message.received_at or postback.timestamp | When the system got the message |
action | accept or reject | Whether the customer opted in or out |
source | sms_reply , mms_reply , rcs_reply , whatsapp_reply | Which channel they used |
category | Your consent category | Which permissions changed |
identification | Phone number (00421905123456) | Customer's phone number |
identification_type | phone | How we identified them |
imported_timestamp | 2025-07-24T15:33:21Z | The time of consent is tracked. |
message | Customer's text ("stop") | What they actually sent |
Campaign events (for all actions)
Property | Value | Description |
---|---|---|
status | incoming_message | Identifies customer reply |
action_type | sms , mms , rcs , whatsapp | Channel used |
timestamp | message.received_at or postback.timestamp | When the system got the message |
message | Customer's text | What they sent |
sender | Customer's phone number | Who sent it |
recipient | Your dedicated number | Where they sent it |
Note
For MMS messages, the system builds the received message from all MMS message parts received, and media gets attached as a URL.
Auto-reply events
An auto-reply action tracks a campaign event or a custom event configured in mapping.
Property | Value | Description |
---|---|---|
status | enqueued or enqueue_failed | Whether the reply was sent |
action_type | sms , mms , rcs , whatsapp | Channel used |
campaign_name | Auto-reply keywords | System-generated name |
action_name | Your configuration name | Which keyword config triggered |
sender | Your dedicated number | Who sent the reply |
recipient | Customer's phone number | Who received the reply |
message | Your auto-reply text | What you sent back |
Important limitations
System limits
- 20 keyword configurations maximum per account.
- 100 keywords per configuration (each up to 20 characters).
- 5 consent categories maximum per configuration.
- 10 customer profiles maximum processed per phone number for consent actions.
Requirements
- You must have a dedicated phone number (short or long number) for incoming messages.
- Customers can't reply to alphanumeric senders (like "Bloomreach").
- Customer phone attributes must use international format (starting with "00" or "+").
- Phone numbers stay on the blocklist forever, preventing message sending for all profiles.
Consent behavior
- Blocklist override: Opt-out actions block all message sending except under "General consent." SMS and mobile messages to blocklisted numbers can only be sent under general consent.
- Category scope: Keyword consent actions apply to the categories you select in auto-response settings, not the consent category used in your original campaign (SMS or Mobile messaging action node in scenarios).
- Cross-channel impact: SMS consent actions can affect other channels if you use the same consent categories.
- Event tracking dependency: If SMS campaign events are disabled, incoming messages aren't tracked.
Profile handling
- New customers: For grant consent actions, new profiles are only created if you configure "Map new subscribers ID."
- Unknown numbers: Revoke consent from unknown numbers is processed but no profile is created.
- Multiple profiles: Up to 10 profiles with the same phone number can receive consent events.
Updated about 23 hours ago