Reference
Rules and recipes
In this article, you'll learn how to use rules, recipes, and custom regex patterns to manage customer replies in the Conversation Node and Inbound SMS Trigger node. These tools help you set up conditions for accepted replies, such as emails, mobile numbers, or specific keywords.
Key concepts
Rules are specific conditions that a message must meet to trigger a response. These conditions can be based on the content of the message, such as keywords, phrases, or patterns.
Recipes are predefined sets of rules designed to match common patterns such as email addresses, phone numbers and more. They simplify the process of setting up common reply scenarios.
Within Pendula, you can use Preview & test to send test messages and verify if the message matches the rule set.
Rules
- Go to the node where you want to add a rule.
- Provide a label for the path to clearly identify the purpose of this rule set.
- Click on Add Rule to begin the rule creation process.
- From the dropdown menu, select the type of rule you want to create. For example, you can choose "Contains word".
- Input the specific value that the rule will match in the Value field. For example, enter "promo" to match any message containing the substring "promo".
- To create more complex matching criteria, click Add rule or Add recipe to include additional rules. This allows you to build comprehensive conditions for matching inbound messages.
- Use the Preview & test to send test messages and verify if the message matches the rule set. If the message matches, it turns green.
Rule Type | Description | Example |
---|---|---|
Includes text | The received message can include the given text anywhere within. The match is case in-sensitive, and even with additional characters attached, the word will still be matched. | Rule: Includes text "promo" |
Matches: "Get the promo now!" | ||
Matches: "Promotions are here!" | ||
Contains word | The received message must contain the specified entire word or phrase. The match is case in-sensitive, and cannot contain additional characters attached to the word (must be enclosed by spaces). | Rule: Contains word "yes" |
Matches: "Yes, please!" | ||
Does Not Match: "yesss" | ||
Is exactly | The received message must match the case-insensitive value letter-for-letter without additional characters such as exclamation marks or emojis. | Rule: Is exactly "STOP" |
Matches: "stop" | ||
Does Not Match: "stop now" | ||
Is exactly (case sensitive) | The received message must match the case-sensitive value letter-for-letter without additional characters such as exclamation marks or emojis. | Rule: Is exactly (case sensitive) "Hello" |
Matches: "Hello" | ||
Does Not Match: "hello" | ||
Starts with | The received message must begin with the specified sequence of characters. | Rule: Starts with "Buy" |
Matches: "Buy now!" | ||
Does Not Match: "Please buy now!" | ||
Ends with | The received message must end with the specified sequence of characters. | Rule: Ends with "thanks" |
Matches: "Many thanks" | ||
Does Not Match: "Thanks for everything" |
Using emojis
When you are creating reply matching rule with emojis, we recommend using only the Includes text rule type, and the default emoji variation to ensure all skin tone variations are matched.
For example:
- "Includes text "π" will match to any reply containing **any** of these variations: π ππ» ππΌ ππ½ππΎ ππΏ".
- "Includes text "ππΎ" will only match replies containing "ππΎ". All other skin tone variations will not be matched.
To consider: Apple and Android message reactions
Apple and Android devices allow users the ability to 'react' to a message. These reactions are received by Pendula as valid replies and will be matched accordingly. You can use the rule Starts with
and the value of the react type (e.g. Loved
"
), for each device type, to cater for these replies.
Reaction | Device | Reply received by Pendula |
Apple | Loved "[Original SMS]" | |
Apple | Liked "[Original SMS]" | |
Apple | Disliked "[Original SMS]" | |
Apple | Laughed at "[Original SMS]" | |
Apple | Emphasised "[Original SMS]" | |
Apple | Questioned "[Original SMS]" | |
Android | βββ€οΈβ to 'β[Original SMS]' | |
Android | ββπβ to 'ββ[Original SMS]' | |
Android | ββπβ to 'ββ[Original SMS]' | |
Android | ββπβ to 'ββ[Original SMS]' | |
Android | βββΌοΈβ to 'ββ[Original SMS]' | |
Android | ββ to 'ββ[Original SMS]' |
Recipes
A recipe is a pre-written rule. You can browse and add a recipe by selecting "Add recipe". Below are examples of what is and isn't accepted according to the recipes.
Recipe | Replies are matched to this rule if it... | Matched examples | Unmatched examples |
Email address | Contains an email address β a username, followed by @ symbol, a domain name and top-level domain (e.g. "com", "org"). |
harry@hatman.com ,My email is harry@hatman.com (The email itself can be extracted with βmatchedPartβ mergefield) |
@hatman.com |
Mobile no. (AU) | Contains a valid Australian mobile number. A reply can start with 04 , 614 ,+61
|
0400000000 , +61400000000 , 61400000000 , My mobile number is 61400000000
(The mobile number itself can be extracted with βmatchedPartβ mergefield) |
04000 |
Mobile no. (UK) | Contains a valid UK mobile number. A reply can start with 0 , 44 ,+44 and can be proceeded with 4-10 digits. |
07890 111111 , +4400000000 , 4400000000
|
|
Number |
Contains standalone numbers, without accompanying words or alphabet characters. Includes decimal numbers and integers, but not negative numbers. |
1 , 3.14 , 1000000
|
-1 , I give this a 10/10 , 1,000,000
|
No | Contains "no", "nope", or "nah" as standalone words. |
no thanks , nah...
|
nothx , decline , ππΌ
|
Yes | Contains "yeah", "yep", or "yes" as standalone words. |
yes! , yeah nah
|
yespls , yesππΌ , ππΌ
|
Opt-out | Exactly matches (non case-sensitive) Stop , stopall , unsubscribe , cancel , end or quit , |
STOP , CaNcEL
|
Please stop sending me messages , UNSUBSCRIBE!
|
Opt-in | Exactly matches (non case-sensitive) Start , Unstop
|
Start , unstoP
|
Start sending me messages again , unstop?
|
Using mergefields
Mergefields allow you to dynamically reference parts of a matched message in subsequent workflow steps. This is particularly useful for creating personalised responses and handling data dynamically.- Access the matched part of the message using the mergefield explorer. For example, the mergefield 'MatchedPart' (a 'string') can be used to reference the exact part of the message that triggered the match.
If a customer replies with an email address that matches a recipe, you can reference this email address later in your workflow to send a confirmation email or update a customer record.
Adding multiple rules and recipes
You can add multiple rules and recipes to a single path, allowing for flexible and comprehensive reply matching. This enables you to handle various types of customer replies efficiently.
When a message matches any rule or recipe in a path, it will follow that path. The relationship between each rule and recipe is "OR," meaning that if a reply matches at least one of the rules, it will be matched to that path.
How does reply matching work?
Reply matching operates based on specific rules for determining which path a message will follow:
- If a reply matches multiple paths within the same node, the path positioned highest in the node's configuration will be matched.
- If a reply matches rules across different active experiences, the reply will be matched to the customer's most recent conversation. Consider Annie, who is in two marketing flows that both listen for the keyword UPGRADE. The first offer is sent at 8 am, and the second at 9 am. When she replies with UPGRADE, her reply is matched to the second flow since it is the most recent interaction.