Engagement Hub
Learn about the messaging channels within Pendula, how to configure and send messages, best practices.
-
Introduction
Learn the fundamentals of Pendula’s Engagement Hub.
Get startedIntroduction to Engagement Hub
Introduction to Experience and Workflow Studio
Engagement Hub by Pendula allows businesses to interact with customers by connecting and configuring multiple channels such as SMS, Email, WhatsApp, and Push notifications, ensuring messages are timely, relevant, and engaging. Together with the Experience and Workflow Studio, it supports creating simple or complex customer journeys with multiple touch-points, ensuring seamless communication based on individual customer preferences.
What can you accomplish
Multi-channel, multi-step Flows
Connecting channels through the Engagement Hub supports the coordination of messaging across various channels from a single, centralised interface. This allows businesses to construct tailored journeys for customers, handling unique preferences at scale.
- Design and manage customer journeys.
- Integrate multiple channel touch-points within a single workflow.
- Deliver personalised and scalable customer interactions.
To get started, see
Working with SMS
Working with Email
Push notificationsTwo-way conversations with reply matching
Engagement Hub enables dynamic two-way conversations based on customer responses through reply matching. This feature allows businesses to create interactive flows that respond appropriately to customer inputs. By matching replies to predefined keywords or patterns, businesses can guide customers through a personalised journey.
- Configure rules and recipes to manage expected replies.
- Implement conversation nodes to handle various customer responses.
To get started, see Best practices for reply matching.
Fallback configuration
Engagement Hub ensures no customer interaction is left unresolved with its fallback configuration and delivery tracking features. Easily set up fallback, follow-up, and success messages through the builder canvas, and track the delivery status of emails and SMS messages to ensure your communications are effective.
- Configure fallback and follow-up messages to ensure message delivery.
- Track email and SMS delivery outcomes.
- Guarantee that essential communications reach their intended recipients.
To get started, see Working with SMS.
-
SMS
Learn about configuring SMS nodes and creating engaging two-way conversations.
Get startedWorking with SMS
SMS, or Short Messaging Service, is a powerful communication tool that allows businesses to engage directly with customers through concise, timely messages. Pendula enhances this by enabling conversational SMS, where recipients can respond to messages and trigger automated follow-up actions. Pendula integrates seamlessly with your data sources, enabling automated actions based on specific events or conditions such as payment confirmations, invoice deliveries, or the start of a customer relationship. This integration allows for dynamic and contextually relevant communications that keep your audience engaged and informed.
Best practices for SMS communications
Understand the legal obligations of using SMS
When using SMS for marketing and communication, it is crucial to comply with legal standards applicable to the countries you operating within. Best practices to ensure consumer protection and privacy:
- Always obtain either express consent before sending marketing SMS. Without this, messages could be considered spam.
- Clearly identify your organisation within the SMS to avoid any ambiguity about the sender.
The mobile phone number your SMS are sent from is unique to your business and will not change. You might like to suggest to your customers that they save this number or add it to their contact list for future communication.
- Provide recipients with an easy and clear way to opt out of receiving further communications. This can be achieved by including a simple opt-out instruction in every message, such as "Reply STOP to unsubscribe."
- Ensure you are capturing and referring to your customers' communication preferences when sending out SMS, and always have a clear path for them to opt out if they wish.
Hi [Name], this is [Your Company Name]. Thank you for signing up for the event! Visit [Link] for details. To opt-out of future messages, reply STOP.
Start with accurate data management
Pendula is directly connected to your data source. Keep your data source clean and up to date to make the most of any SMS communication. This includes:
- Consistently updating and verifying mobile phone numbers and communication preferences across your contact records. This ensures that your messages reach the intended recipients without errors.
- Checking your database to eliminate duplicate records. Sending multiple messages to the same phone number can lead to increased costs and customer dissatisfaction.
- Store mobile phone numbers in international format (e.g., +61 for Australia), without any extra characters like spaces or text. This standardisation is crucial for global message delivery and ensures that inbound messages are correctly associated with customer records.
Why do mobile phone numbers need to be stored in international format?
When a recipient replies to one of your messages, it's received by Pendula in this format (we support SMS from all over the world). Therefore, for Pendula to match this message back to the correct contact record in your data source they need to be stored in this format.
Correct Format: +61400123456
Incorrect Format: 0400 123 456 or 0400123456Understanding SMS Segmentation and Concatenation
The most effective SMS content is relevant, interesting and easily understood. It's designed for sending short messages which are rapidly delivered, with a high read and response rate.
Segmentation
SMS messages are typically restricted to 160 characters. When your message exceeds this limit, it must be segmented. Each segmented part of the message can hold 153 characters, not the full 160, because additional characters are needed to manage and reassemble the message parts correctly on the recipient's device. Aim to communicate your message within the standard SMS length of 160 characters. This limit keeps the message concise enough for quick consumption without needing segmentation.
Concatenation
This is the process of linking segmented messages so that they appear as a single, continuous message on the recipient’s phone. This is done automatically by most modern mobile devices, which recognise the segments and stitch them together seamlessly.
This message is exactly 160 characters, fitting within one SMS segment.
Quick reminder: Your appointment is scheduled for tomorrow at 3 PM. Please reply YES to confirm or NO to reschedule.
This message is 290 characters, which would be split into two segments. The first segment uses 153 characters, and the remaining 137 characters form the second segment.
Thank you for your recent purchase from our store! We hope you are delighted with your new items. Remember, if you have any questions or need support, don't hesitate to contact our customer service team. We're here to help!
If your message strategy involves longer narratives, consider how smartphones and carrier limitations might affect the delivery. Keep your messages below 750 characters (approximately 5 concatenated segments) to ensure compatibility and delivery across all devices and networks.
Managing non-GSM characters in SMS
When incorporating non-GSM characters—such as emojis or characters from non-Latin scripts—into SMS messages, understanding their impact on segmentation and encoding is important
Typically, SMS messages use the GSM-7 character set, including letters, numbers, and common punctuation, each encoded in 7 bits, allowing up to 160 characters per SMS.
Non-GSM characters require UCS-2 encoding, which uses 16 bits per character. This change reduces the maximum length to 70 characters per SMS. Each segmented SMS can then only contain 64 characters due to the additional space needed for headers. Non-GSM characters, like emojis, often consume more space than GSM characters. Most emojis count as two characters, but newer ones might take up to four. Messages with non-GSM characters are segmented when they exceed 70 characters, with each segment able to contain only 64 characters. This needs careful management to avoid unexpected costs and message fragmentation.
For a detailed guide on non-GSM characters, see Understanding non-GSM characters.
Pendula helps you identify when a non-GSM character is introduced to your intended messaging.
Stick to the GSM-7 character set, which include letters of the English alphabet, numbers, and common punctuation marks or symbols such as
!,'@%$=.?/().
. Avoiding characters outside this set ensures that your message remains within the single SMS limit and avoids potential delivery issues.Certain symbols, like curly brackets
{}
or the Euro symbol€
, consume more than one character space. Using these sparingly can prevent unexpected message segmentation.Keep your messaging relevant and valuable to your customers
To maintain customer interest and satisfaction, it is essential to ensure that every SMS sent holds significance for its recipients. Irrelevant messages not only disrupt the customer but also increase the likelihood of them perceiving the communication as spam.
Merge fields act as placeholders within your SMS template, which are automatically filled with specific data from your database when messages are sent. You can use a recipient’s first name to address them directly in the SMS, making the message feel more personal and engaging.
"Hi {{First Name}}, don't forget your appointment on **{{Appointment Date}}** at {{Time}}. Reply YES to confirm."
For a detailed guide on Merge Fields, see Working with Merge Fields in Workflow Studio
Limit your CTA to one or two options
Ensure your call to action is clear and straightforward, so recipients aren't confused on how they are supposed to respond. Providing too many different reply options increases the margin for error and generally makes for a worse experience. If there is a lot of information you wish to capture via SMS, consider breaking this up over a series of messages with a question and answer approach for a seamless and easy to follow conversation.
"To confirm your appointment, reply YES. For rescheduling, reply NO."
If the interaction requires more detailed responses or multiple pieces of information, consider deploying a series of messages, each with a clear, actionable step. This approach helps maintain engagement without overwhelming the recipient.
Keep inbound responses unique
In SMS communication, the context of a response is primarily discerned from the sender's mobile phone number and the message content. This direct and straightforward method differs from channels like email, where additional metadata can provide context.
Pendula allows for the automation of SMS-based conversations by setting specific expected responses to sent messages. If a response from a recipient perfectly matches a predefined expectation, automated actions can be triggered accordingly. To ensure clarity and effectiveness in automated SMS interactions, it's critical to designate unique response triggers for different messaging campaigns. When multiple messages request the same response, it can lead to confusion about which message the recipient is responding to. For instance, if two promotions are sent to the same contact and both anticipate a 'YES' reply, it will be unclear which promotion the 'YES' refers to.
Instead of using a generic reply like 'YES' for multiple offers, tailor the responses to be distinct:
"Reply YESDEAL to accept the 20% discount offer." "Reply YESTICKET to confirm your event ticket purchase."
- Use specific keywords that relate directly to the message content, reducing the likelihood of overlap and ensuring responses can be accurately matched to the correct interaction.
- Communicate clearly in the SMS what the expected response should be, using straightforward language that ties directly back to the message's call to action.
Pendula SMS capabilities
Reply matching
Pendula's reply matching feature automates SMS responses by recognising specific keywords in incoming messages. This allows for predefined actions to be triggered based on customer replies, streamlining interactions and ensuring timely, relevant communications. For example, responses to promotional SMS such as "YES" to accept an offer or "NO" to opt out can automatically initiate appropriate follow-up actions, enhancing efficiency and customer engagement.
For further information, see How reply matching works
Rules and recipes
Rules allow you to define conditions for acceptable replies, such as specific keywords or formats. This helps in tailoring responses that trigger specific actions within your SMS workflows. Recipes are predefined rules that simplify setup by providing common response patterns. This makes it easier to quickly deploy interaction scenarios without crafting conditions from scratch.
For further information, see Rules and recipes
Nodes for SMS management
Inbound message trigger node
Initiates a flow when a specific SMS message is received. It is configured to recognise predefined keywords or phrases within the text message, facilitating instantaneous engagement with customers.
For further information, see Inbound message trigger node
Conversation action node
Handles two-way SMS interactions, enabling conversations that can adapt based on customer responses.
For a detailed guide, see Conversation node
Outbound SMS node
Sends a single SMS to a designated recipient. The node offers two outcome paths based on message delivery status—sent and not sent. It handles fallbacks and failures by tailoring experiences based on these outcomes.
For a detailed guide, see Outbound SMS
Workflow action nodes
Workflow action nodes in Pendula enhance the flexibility and efficiency of SMS campaigns by allowing for dynamic responses based on evolving criteria. These nodes can re-evaluate conditions midway through a customer journey, segment recipients into tailored pathways, and integrate valuable feedback directly into your data systems. By orchestrating multiple interactions within a single flow, they effectively synchronize your SMS strategies with broader business processes. This functionality is crucial for adapting communication tactics based on progressing leads, or updating database records based on interactive customer responses.
ReferenceInbound message trigger
Complete overview of Flow Builder
The Inbound message trigger initiates a flow when it detects incoming messages that meet specified criteria or rules. This ensures that your automated workflows respond appropriately to each relevant customer interaction.
Understanding rules and recipes
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 or phrases. 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.
Merging rules and recipes within a path allows for comprehensive coverage of potential customer responses, ensuring the flow can handle the varied ways customers might respond.
For a detailed guide on each, see Rules and recipes
Usage scenario
The example below demonstrates the use of the Inbound Trigger Node within a flow that initiates an experience when a customer expresses interest in an event. By replying with
ATTEND
, the customer indicates their intention to attend the event, while replying withCONTACT
signifies an interest to get in touch with the organisers. The Inbound Message Trigger node evaluates the different replies and appropriately routes the flow to handle each specific request.Configuring the trigger
Path labelling
You can define clear labels for each path. These labels appear on the canvas, providing a visual representation of message routing within your flow.Defining trigger criteria
Determine the specific conditions—known as rules or recipes—that incoming messages must meet to initiate the flow.Implementing OR logic within paths
Multiple rules or recipes can be set within a single path, where each is connected with "OR" logic. This means that if an incoming message matches any of the listed conditions, it will follow that path.If a reply matches several paths, the topmost path or rule will always take precedence. If a reply matches several triggers, all matching triggers will be fired.
Prioritisation in reply matching
The Inbound Message Trigger starts a flow in response to incoming messages that meet specific criteria. When a message is received, a systematic prioritising exact keywords before considering broader rules.
1. Active Conversations
The system checks if there are any ongoing conversations with the sender. If so, it looks for a match within these conversations first, prioritising exact keywords before considering broader rules.2. Inbound SMS Triggers
If the message does not fit into any active conversation, the system then attempts to match it with any Inbound SMS Triggers. Here, all triggers that detect the keyword are activated.3. Match Priority
Within a node, if multiple paths or rules could match a reply, the system follows the top-down priority. The first path or first rule of a path that aligns with the incoming message takes precedence.4. Unmatched Messages
Messages that do not correspond with any active conversations or triggers are labeled as “unmatched.” If you have an Unmatched Message Trigger flow set up, it will then handle these messages to ensure no communication is left without a response.For a detailed explanation on setting up an unmatched message trigger, see Unmatched Message Trigger Node.
For a detailed explanation, see How reply matching works and Best practices for creating two-way conversations with reply matching.
When an inbound message comes into Pendula, both the phone number and the keywords in the message body are used to match an inbound message to a flow and continue the recipient down the correct path of their customer journey.
What happens if the message matches two or more flows?
Only the most recent flow will be matched.
What happens if it matches a recipient number, but no flows?
When Pendula receives an inbound message, first it checks if it will trigger an active flow with an inbound message node trigger. If there’s no match, then Pendula looks for any messages that might have been sent to this number; if it was expecting any keywords from this number as part of a conversation node (outbound SMS) in any active flow.
What happens if it doesn’t match either a recipient number, or a flow?
The message will be persisted into the database and Pendula will publish anUnmatchedMessageEvent
to the event queue.Mergefield explorer
Mergefields function as dynamic placeholders within a flow, automatically populated with actual data as the flow progresses. Below are key mergefields accessible in subsequent nodes following the Inbound Message Trigger
Mergefield name Description Possible outputs Definition and examples fromNumber
The number from which the message was received "+61 400000000" matchedIntent
The intent/branch matched based on the message content Indicates the flow's path or intent that the incoming message has triggered, based on its content (e.g., “YES”). matchedPart
The part of the message that matched the rule Specifies the segment of the inbound message that fulfilled the criteria of a rule. This is helpful when the Contains rule is used. For example, "annie@acme.com" would be the matched part of the message "my email is mailto:annie@acme.com matchedType
Classifies the kind of rule match that prompted the flow to activate. This can be used in later nodes such as Criteria Filter. Exact Match (Trigger) An inbound message has been matched to the is exactly rule in an Inbound SMS Trigger Node. Rule Match (Trigger) An inbound message has been matched to a free response, a rule or recipe in a Inbound SMS Trigger Node. messageBody
The entire body of the inbound message “Yes, thank you”. timeStamp
The time at which the message was received in Unix Epoch time in milliseconds “1672534861000” Opt-in and opt-out flows
- Opt-in and opt-out trigger flows should be used as final 'catch all' flows. Triggers contain limited context, meaning if a customer decides to opt-out mid-flow, you would not be able to see which flow caused the opt-out. Instead, in your marketing flows, add opt-in and opt-out paths of your Conversation Nodes for a richer context.
For other best practices, see Best practices for creating two-way conversations with reply matching.
-
Opt outs will not affect active flows. This means if a recipient is mid-way through an active flow and triggers an opt-out flow, they won’t drop out of the active flow. They will however, be excluded from any new flows. For example, if Pendula is waiting on a reply from a particular number and that person messages 'STOP' (as an opt-out) and then messages 'CONFIRM' in response to the original offer, the flow will continue on the 'CONFIRMED' path.
In the following example, we have two flows.
Flow I triggers an experience when the keyword
OFFER
is used. The flow prompts the customer to eitherCONFIRM
orDECLINE
the offer and based on the reply, sends outbound SMS.
Flow II is an opt-out flow that triggers an experience when the keyword STOP is used. The flow updates the CRM, and sends the confirmation outbound SMS to the customer.
Here is an example conversation where the person messages 'STOP' (as an opt-out) and then messages 'CONFIRM' in response to the original offer, the flow will continue on the 'CONFIRMED' path.
ReferenceUnmatched message trigger
Complete overview of Flow Builder
The Unmatched message trigger is a global flow that is triggered whenever a message is marked as “Unmatched”, when
UnmatchedMessageEvent
is published to the event queue. A message is marked as “Unmatched” when a received message is not matched to any active Conversations or Inbound SMS message triggers, thus effectively addressing messages that otherwise would remain unprocessed.Only ONE unmatched trigger flow can be active at a time. Drafts can be created but cannot be activated if there is a duplicate.
Usage scenario
The following example demonstrates a practical application of the Unmatched Message Trigger within a flow, illustrating how these messages are processed to ensure no customer inquiry goes unaddressed.
Send all Unmatched messages to your system of record, and let the customer know the message has been received and an agent will be in touch shortly.
When an Unmatched message is received, start a conversation with the customer which seeks to clarify the intent of their message. Send the message body from both the trigger and Conversation node to your system of record, and let the customer know the message has been received and an agent will be in touch shortly.
Configuring the trigger
This trigger requires minimal setup. Simply ensure that it's active within your desired flow to begin capturing any unmatched inbound SMS messages.
Mergefield Explorer
Mergefields function as dynamic placeholders within a flow, automatically populated with actual data as the flow progresses. Below are key mergefields accessible in subsequent nodes following the Unmatched Message Trigger
Mergefield name Description Definition and examples fromNumber
The number from which the message was received "+61 400000000" messageBody
The entire body of the inbound message “Yes, thank you”. timeStamp
The time at which the message was received in Unix Epoch time in milliseconds “1672534861000” Given the limited mergefields, scenarios requiring comprehensive context—such as understanding the specific prompt a customer is responding to—might not be fully addressed.
For example, if a customer replies with feedback in response to an upsell flow, the context such as what the customer was replying to would not be included in this trigger. In this scenario, we recommend adding a free reply path to your conversation node instead to capture and send it to your platform.To learn more, see Best practices for creating two-way conversations with reply matching.
ReferenceConversation node
How does reply matching work?
Best practices for creating two way conversations with reply matchingConfigure your customer conversations based on anything you receive and progress flow experiences based on what a reply contains, all through the Conversation node on the canvas.
The conversation node allows you to ask your customer a question through the Outbound SMS tab and craft the reply paths depending on their reply through the Replies tab. Before configuring the Replies tab, we strongly recommend reading how Reply Matching works and best practices for configuring workflows with rules.
Usage scenario
The following example demonstrates a practical application of the Conversation message action node within a flow, that sends an confirmation message following a inbound message trigger. Depending on the reply, the experience follows it’s respective path.
Configuring the action
Outbound SMS
Edit the outbound SMS, replies and the reply expiry settings. You can refer to the merge fields section to see how to reference a merge field.
Values in the recipient field must follow the internationally standardised E.164 format:
[+]
[country code]
[recipient number including area code]
. For example, an E.164 format Australian number: +61400000000.Total characters
The number of characters in your message. Not that this does not account for the merge field values – depending on what it renders to, the final character count will vary.
Non-GSM characters
Non-GSM characters (e.g. emojis) are characters that increase the size of your SMS. These can be identified with the orange highlights over these characters.
Copying and pasting from other programmes such Microsoft Word or Google Docs will surface any non-GSM characters present. These will be highlighted automatically.
Learn more about non-GSM characters and SMS size here.
Preview and test
You can also view a preview of the message as it will appear to recipients in the conversation preview.
Replies
In the replies tab, you can label a path’s name (appears on the canvas) and define how responses are matched to this path. You can tailor what happens in each path, in later nodes.
There are two ways to match responses to a path: 1) Expected reply or 2) Free reply.
Expected reply
Expected replies are replies you anticipate on receiving. This includes listening for exact keywords, a certain phrase or word(s) within a sentence, or formatted text (such as email addresses or mobile numbers). You can choose from a pre-written recipe, or build your own 'rule'.
You can add as many rules or recipes within a path. The relationship between each rule/recipe is "OR".
If a reply matches several paths within a node, the topmost path or rule will always be matched. If a reply matches several rules across different active conversations, the reply will be matched with the recipient's most recent conversation. Learn more about Reply Matching
Free reply
Free replies are replies that anything your customer say. They do not have to fulfil any rule to be matched as a 'free reply'. A free reply can contain alphanumeric characters, with or without emojis, and other special characters (such as
è
). We recommend having a Free Reply path for most flows to ensure unprompted customers replies to your message can be matched to this experience. Learn more about best practicesWhen the Free Reply path is enabled, it will always be positioned as the last path. This is because if a reply can match multiple paths in a node, the top-most path is always matched first. Learn more about rules, regex and recipes
Outcomes
Configure different experiences based on the outcomes of this node:
Replies
The experience continues on the path if an inbound reply is matched to an expected or free reply path. Reply paths can be configured in the Replies tab. Refer to Mergefield explorer section to see possible outputs.Not sent
The experience will either end or continue on this path depending on the toggle settings. Specifically, the Outbound SMS part of this node has failed to send due to an error.
When toggled off, the experience will end and exit the flow. When toggled on, the Not Sent path will be visible on the canvas, and the experience on this path can be configured. Refer to Mergefield explorer section to see possible outputs.No reply
Depending on its toggle settings, the experience will either end or continue on this path if no reply is received after the reply expiry period has elapsed. By default, this configurable reply expiry time is set to 2 days.This configurable wait time determines how long Pendula should keep the flow open to inbound replies. Once the wait time has elapsed with no reply received, the experience will continue on this 'No reply' path. The flow will no longer match the recipient's inbound messages to the keywords in this flow. You can change the wait time by clicking on the pencil icon.
When toggled off, the experience will end and exit the flow. When toggled on, the No Reply path will be visible on the canvas, and the experience on this path can be configured. Refer to Mergefield explorer section to see possible outputs.
Please note this is different to offer expiry. Reply expiry lets your flow successfully ‘complete’. If you want to build offer expiry functionality into your Pendula flow, you should use criteria split nodes. Learn more about criteria split nodes here.
Mergefield explorer
In later nodes, when viewing the available mergefields for the Conversation node in mergefield explorer you can expect to see:
Mergefield name Description Possible outputs Definition and examples matchedIntent The path label (string) Example: "Yes" would be the matched intent from the path named "Yes". matchedPart The part of the message body that was matched with your rule (string) Example: "annie@acme.com" would be the matched part of the message "my email is annie@acme.com".
matchedType The reason why a message was matched (string) Exact Match (Conversation)
An inbound message has been matched to the
is exactly
rule in a Conversation Node.Rule Match (Conversation)
An inbound message has been matched to a free response, a rule or recipe in a Conversation Node. outcome The final Outbound SMS message delivery status (string) success
The Outbound SMS message was sent to the mobile carrier for delivery, and an inbound message was matched to a path in this node. The experience will continue on the 'Sent' path.
failure
The Outbound SMS message failed to be sent. See outcomeReason (below) for possible reasons. The experience will continue (if configured) or exit the 'Not Sent' path. outcomeReason The reason for a message delivery (string) expired
No reply was received within the configure timeframe. The experience will exit the flow.
reply
An inbound SMS was matched to a reply path in this node. The experience will continue on the 'Sent' path.
failed: [reason]
The carrier has accepted the Outbound SMS message, but encountered an error while sending it to the recipient. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
failed-normalization
The recipient's phone number is invalid. Ensure it is present and in the correct E.164 format. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
other-error
Another error was found while sending the Outbound SMS message to the recipient. Contact Support for further troubleshooting. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
rejected
The carrier has rejected the Outbound SMS message. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
validation-error
An invalid value was found in the node. Ensure your message body is not empty, and that your expiry time is between 1-10 days. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
timestamp The time at which the message was received in Unix Epoch (milliseconds) Example: "1714975027" ReferenceOutbound SMS
Complete overview of the flow builder
Send a single SMS to a designated recipient. The node offers two outcome paths based on message delivery status—sent and not sent. Handle fallbacks and failures by tailoring experiences based on these outcomes.
An Outbound SMS progresses on the Sent path after 10 minutes by default. This wait time is configurable, and exists to monitor for any sending failures that may occur. Learn more in Outcomes section of this article
Usage Scenario
The following example demonstrates a practical application of the Outbound SMS within a flow, that sends an confirmation message following a event sign-up.
Configuring the action
Settings
Edit the recipient field and the message body. Refer to the merge fields section to see how to reference a merge field.
Values in the recipient field must follow the internationally standardised E.164 format:
[+]
[country code]
[recipient number including area code]
. For example, an E.164 format Australian number: +61400000000.Total characters
The number of characters in your message. Not that this does not account for the merge field values – depending on what it renders to, the final character count will vary.
Non-GSM characters
Non-GSM characters (e.g. emojis) are characters that increase the size of your SMS. These can be identified with the orange highlights over these characters.
Learn more about non-GSM characters and SMS size here.
Copying and pasting from other programmes such Microsoft Word or Google Docs will surface any non-GSM characters present. These will be highlighted automatically.
Preview
This is how the message will appear to recipients.
Outcomes
Configure how the experience should continue after this node depending on outcomes of this node.
The possible outcomes of the Outbound SMS are:
Sent
The experience will continue on this path if no failure notifications are received within the default wait time of 10 minutes.
This configurable wait time exists to monitor for any sending failures that may occur after the SMS has been sent to a mobile carrier for delivery. You can change the wait time by clicking on the pencil icon, and when edited, the 'Not sent' wait time will be synced too.
For example, if a sending failure occurs within the default 10 minute wait time, the experience will progress onto the 'Not Sent' path. If no sending failures occur within the default 10 minute wait time, the experience will progress onto the 'Sent path'.
Not sent
The experience will either end or continue on this path (depending on its toggle settings) if a sending failure has occurred within the default wait time of 10 minutes.This configurable wait time exists to monitor any sending failures that may occur after the SMS has been sent to a mobile carrier for delivery. You can change the wait time by clicking on the pencil icon, and when edited, the 'Sent' wait time will be synced too.
When toggled off, the experience will end and exit the flow. When toggled on, the Not Sent path will be visible on the canvas, where you can further configure the experience on this path. You can refer to Merge fields section below to personalise experiences continuing on this path.
Merge fields
You can reference any merge fields from nodes previous to this node. Learn more about merge fields
In later nodes, when viewing the available merge fields for the Outbound SMS node in merge field explorer you can expect to see:
Merge field
Description Possible outputs Output definition outcome The final message delivery status (string) success
The message was sent to the mobile carrier for delivery, and no failure notifications were received during the set time period. The experience will continue on the 'Sent' path. failure
The message failed to be sent. See outcomeReason (below) for possible reasons. The experience will continue along the 'Not Sent' path (if configured) or exit the flow. outcomeReason The reason for a message delivery (string) success-timeout
The SMS was sent to a mobile carrier for delivery, and no failure notifications were received during the set wait time. The experience will continue on the 'Sent' path.
failed: [reason]
The carrier has accepted the message, but encountered an error while sending it to the recipient. The experience will continue along the 'Not Sent' path (if configured) or exit the flow. failed-normalization
The recipient's phone number is invalid. Ensure it is present and in the correct E.164 format. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
other-error
Another error was found while sending the message to the recipient. Contact Support for further troubleshooting. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
rejected
The carrier has rejected the message. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
validation-error
An invalid value was found in the node. Ensure the message body is not empty. The experience will continue along the 'Not Sent' path (if configured) or exit the flow.
-
Email
Learn how to configure email node, design emails, set up custom domains, and more.
Get startedWorking with Email
Effective email communication is essential for engaging customers and achieving business goals. This article covers best practices for writing and sending outbound emails, emphasising the use of Pendula for personalisation, design, testing, and security.
General guidelines for writing emails
- Keep subject lines concise and relevant, and use action-oriented language to encourage recipients to open the email. Avoid using all caps or excessive punctuation, which can trigger spam filters
- Focus on delivering one main message or call to action per email. Use short paragraphs, bullet points, and clear headings to make the content easy to read and understand.
- Maintain a friendly yet professional tone. Avoid using jargon or overly complex language. Tailor the tone to match your brand's voice while ensuring it resonates with your audience.
- Include a clear and conspicuous unsubscribe link in every email and honour opt-out requests promptly, adhering to legal requirements where applicable, such as the five working days timeframe in Australia. Ensure that your email header information, including the "From" and "Reply-To" addresses, is accurate and not misleading.
Personalisation with merge fields
Using merge fields in emails allows for dynamic personalisation, making messages feel more relevant and engaging to each recipient. Merge fields automatically insert specific data from your database into your email templates, such as names, order numbers, or other details.
Hello {{FirstName}}, This is a reminder for your appointment on {{AppointmentDate}} at {{AppointmentTime}}.
For more details, see Working with merge fields and Designing emails with Outbound Email node
Using the email builder
In Pendula, there are two primary methods for designing emails within the Outbound Email Node: building from scratch using an email builder with a drag-and-drop interface or utilising custom HTML code. While custom HTML offers flexibility, it may cause visual discrepancies across different email clients. For instance, background images in custom HTML may not render correctly in Outlook, which defaults to a white background unless otherwise configured. To ensure visual consistency, we recommend using Pendula's email builder.
For more details, see Outcome Email Node and Designing emails with Outbound Email node
Optimising email campaigns with A/B Testing
A/B testing is a powerful method for optimising your email campaigns by comparing different versions to see which performs better. In Pendula, you can use the Criteria Filter to implement A/B testing.
The example below demonstrates the use of a Criteria Filter in an A/B testing scenario, initiated by a form submission. The Criteria Filter divides customers into two groups based on predefined criteria. Customers who meet the criteria for Group A receive Email A. Conversely, those who do not meet the criteria for Group A and fall into Group B receive Email B.
This setup allows for a direct comparison between different marketing approaches. By analysing the results from both groups, you can determine which email version is more effective in achieving your goals, such as higher open rates or conversion rates.
For a detailed guide, see Criteria Filter and Criteria Split
Ensuring email delivery coverage
Email delivery events provide critical insights into the performance of your email communications. Key events include clicks, opens, deliveries, and bounces (with soft bounces indicating temporary issues and hard bounces indicating permanent ones).
In Pendula, the "Outcomes" tab in the Outbound Email Node allows you to configure the workflow path based on these events. The "Sent" path is followed if no failure is detected within the default 10-minute wait time or if the email is opened or clicked. The "Rejected" path is followed if a failure occurs within the wait time and can be toggled on in the node settings.
Merge fields in the subsequent nodes help track and personalise email delivery outcomes. The
Outcome
field indicates whether the email was successfully delivered (success
) or failed (failure
), and theOutcome Reason
field provides specific details (e.g.,opened
,failed: [reason]
,rejected
).By configuring these outcomes and using merge fields, you ensure comprehensive email delivery coverage, effectively managing both successful deliveries and failures.
For more details, see Outcome Email Node
Email security
Ensuring email security with SPF, DKIM, and DMARC is essential for preventing spoofing and phishing attacks. SPF verifies that incoming mail comes from authorised hosts, DKIM uses cryptographic signatures to ensure email integrity, and DMARC instructs mail servers on handling emails that fail SPF or DKIM checks.
Using a custom domain allows you to configure these records, enhancing your email credibility and deliverability. With Pendula, SPF is pre-configured, DKIM involves adding CNAME records to your DNS, and DMARC requires setting up a TXT record for additional security and reporting.
For more information, see Setting up Custom Domains for secure email delivery using Pendula
ReferenceOutbound email
The outbound email node sends a single email with optional attachments. There are outcomes for 'sent' and optionally 'rejected', allowing you to continue an experience even if there is a sending failure or bounce. You can learn more about this in the outcomes section below.
Configuring the action
Sender Details
- Sender name: The name that appears to recipients, identifying the sender of the message.
- From address: The email address that appears as the sender when recipients receive the email. The 'From address' must be a verified email address, or from a verified domain.
Contact Support to set up a custom From address.
Email details
- Recipient: The individual who will receive the email. Merge fields may be referenced here.
- Email subject: A brief description or summary that conveys the purpose or content of the email to the recipient. Merge fields may be referenced here.
Attachments
Uploading attachments
Use the attachments tab to manage attachments for an outbound email. This tab allows you to upload files from your local machine as attachments, and allows you to view (download) existing attachments; as well as delete them.
You can upload as many attachments as you like, however, the email design and attachment size combined must be less than 10MB to send successfully. As email size can change depending on merge fields used, you must take this into account when designing an email with attachments.
We check attachments before uploading successfully. The cases where a file will not be uploaded successfully include:
- File size too large. You must upload files less than 10MB.
- File type not supported. We support TXT, HTML, ICS, JPEG, PNG, GIF, WebM, MP4, MPEG, PDF, DOC, DOCX, XLS, and XLSX.
- File name taken. Please rename your file and upload again, or delete the existing file.
- Server unavailable. Please contact support.
Attachment indicator
On the flow canvas, outbound email nodes that have attachments are denoted by a circular blue paperclip badge on the node icon:
In the case that you finish designing your flow that has outbound email nodes with attachments, try to activate the flow, and are presented with this message:
- The following attachments are unavailable and can't be accessed...
You will need to either delete the listed attachments, or upload them again to proceed and activate the flow.
Designing email
Build from scratch
Use the email builder to design your email. This tool allows you to edit, drag, and drop content into the email canvas. The design panel includes sections for Content, Blocks, Body, and Images. You can move items around by hovering over them and using the pan icon, and you can use the redo/undo buttons to adjust your design. Once the email is built to your satisfaction, click the Save icon.
Use HTML code
If you prefer to use custom HTML code, select the HTML option and paste your code into the text field. You can preview the template before saving the node.
Export HTML
After designing an email, the HTML can be exported (downloaded) easily by clicking the 'Export HTML' button:
Note that using custom HTML may cause visual discrepancies across different email clients. Pendula recommends using the email builder for consistent visual results.
For a detailed guide on designing emails, see Designing emails for Outbound Email node.
Outcomes
The outbound email node can send recipients down different flow paths based on email delivery; we call these outcomes, and you can manage these on the Outcomes tab.
Sent
The outbound email node waits for failures for 10 minutes before a 'sent' outcome is determined. This wait time is configurable, and exists to cater for the inconsistencies in email client failure / delivery reporting.
If the email is opened or a link within is clicked by a recipient, a 'sent' outcome is determined immediately.
The experience will continue on this path if no failure notifications are received within the default wait time of 10 minutes, or immediately if the email is opened or a link is clicked. An opened or clicked email event is confirmation that the email was sent successfully.
Wait time configuration for sent path
This configurable wait time exists to monitor for any sending failures that may occur after the email has been sent to a carrier for delivery. You can change the wait time by clicking on the pencil icon. When edited, the 'Rejected' wait time will be synced too.
For example, if no sending failures occur within the wait time, the experience will continue down the 'Sent' path. If the email is opened or a link is clicked during this wait time, the experience will continue the experience down the 'Sent path'.
Configuring the wait frame for Soft Bounces
Soft bounces occur when an email cannot be delivered temporarily, often due to a full inbox or server issues. To cater for soft bounces, we recommend setting the wait time to 960 minutes (16 hours) within Pendula. This gives the carrier enough time to try sending the email again after a soft bounce, and progress an experience based on the final delivery status (Sent or Rejected). Keep in mind that if a recipient opens the email or clicks a link, the process advances along the 'Sent' path immediately.
Rejected path
The experience will either end or continue on this path (depending on its toggle settings) if a sending failure has occurred within the default wait time of 10 minutes.
If a sending failure occurs, a 'rejected' outcome is determined, and you can choose to continue the experience down the 'rejected' path; if configured.
When toggled off, the experience will end and exit the flow.
When toggled on, the Rejected path will be visible on the canvas, where you can further configure the experience on this path. You can refer to Merge fields section below to personalise experiences continuing on this path.
Wait time configuration for reject path
This configurable wait time exists to monitor for any sending failures that may occur after the email has been sent to a carrier for delivery. You can change the wait time by clicking on the pencil icon. When edited, the 'Sent' wait time will be synced too.
For example, if a sending failure occurs within the default 10 minute wait time, the experience will continue down the 'Rejected' path.
Merge field explorer
In later nodes, when viewing the available merge fields for the Conversation node in merge field explorer you can expect to see the below.
Only one outcomeReason will be displayed. For example, if your email continues on the 'Sent' path, you will see either "opened" or "success-timeout", not a combination of these outcomes.
Mergefield name Description Possible outputs Definition and examples outcome The final email delivery status (string) success
The message was sent to the carrier for delivery, and no failure notifications were received during the wait time period, OR the email was opened.
The experience will continue on the 'Sent' path.failure
The message failed to be sent. See outcomeReason (below) for possible reasons.
The experience will continue along the Rejected path (if configured) or exit the flow.
outcomeReason The reason for a message delivery (string) opened
The email has been opened by the recipient. Please note different email clients and devices handle what is considered an 'opened' email differently.
The experience will continue on the 'Sent' path, and skip the wait time.
failed: [reason]
The carrier has accepted the email message, but encountered an error while sending it to the recipient.
The experience will continue along the Rejected path (if configured) or exit the flow.
failed-normalization
The recipient's email is invalid. Ensure it is present and in the correct email format. The experience will continue along the Rejected path (if configured) or exit the flow.
other-error
Another error was found while sending the email message to the recipient. The experience will continue along the Rejected path (if configured) or exit the flow.
rejected
The carrier has rejected the email. The experience will continue along the Rejected path (if configured) or exit the flow.
success-timeout
The email message was sent to a carrier for delivery, and no failure notifications were received during the wait time. The experience will continue on the 'Sent' path.
validation-error
An invalid value was found in the node. Ensure your flow error warnings have been addressed. The experience will continue along the Rejected path (if configured) or exit the flow.
-
Push notifications
Learn how to set up push notifications with Pendula
How toSetting up push notifications in Pendula
Make a web request Data Action
What is a push notification?
A push notification is a message sent from a server to a user's mobile device, appearing in the notification area of the device. These notifications are designed to deliver timely, relevant information to users, helping to keep them engaged with the application even when it is not actively being used.
On a mobile application, a push notification is typically triggered under one of two conditions (or both):
An event occurs inside the application:
This refers to notifications generated by the app itself based on user interactions or scheduled events. For example, a calendar app may send a reminder notification to the user about an upcoming meeting or event.
An event is received from an external application:
In this scenario, an external system or application sends data to the mobile app, which then triggers a push notification. For example, a weather app might receive data from a weather service indicating a severe weather alert, prompting the app to send a push notification to the user.
Pendula supports the second use case, where an external event triggers a push notification.
Sending push notifications from Pendula
Push notifications are sent from Pendula over HTTP, using the web request node. This allows you to send push notifications at any point in a flow where you want to communicate with your customer.
Messages are sent as JSON payloads to the backend of your push notification solution, allowing you to choose the format, timing and destination for each message.
Push notification examples
Our JSON payloads can be customised to support simple or complex use cases.
For example, you can send a simple push notification to thank a customer on an anniversary.
{ "message":{ "token":"zbk3RNwTe3H0:CI2k_HHwgIp...", "notification":{ "title":"Happy Annivesary!", "body":"Thank you for shopping with us! Check your email for a special thank you from us." } } }
Or a complex notification that lets you adjust the notification to suit the platform your customer is using.
{ "message": { "token": "zbk3RNwTe3H0:CI2k_HHwgIp...", "notification": { "title": "Summer celebrations", "body": "It's time to celebrate summer with these great offers!!" }, "android": { "ttl": "86400s", "notification": { "click_action": "OPEN_ACTIVITY_1" } }, "apns": { "headers": { "apns-priority": "5" }, "payload": { "aps": { "category": "NEW_MESSAGE_CATEGORY" } } }, "webpush": { "headers": { "TTL": "86400" } } } }
-
<% categories.forEach(function(category) { %>
<%= partial('partial-article-list-sections', {
id: 'category-' + category.id,
parentId: '#sidebar-navigation',
sections: category.sections,
activeCategoryId: activeCategoryId,
activeSectionId: activeSectionId,
activeArticleId: activeArticleId,
partial: partial
}) %>
<% }); %>
-
<% sections.forEach(function(section) { %>
-
<%= partial('partial-article-list-sections', {
id: 'section-' + section.id,
parentId: '#' + id,
sections: section.sections,
activeCategoryId: activeCategoryId,
activeSectionId: activeSectionId,
activeArticleId: activeArticleId,
partial: partial
}) %>
<% if (section.articles.length) { %>
-
<% section.articles.forEach(function(article) { %>
- <%= article.title %> <% }); %>
<% }); %>