Overview of the trigger and transition events
Last updated: 02 August 2024
Triggers and transitions are key building blocks for creating workflows. Whether starting a new workflow or determining where the user will be taken next, having well-planned triggers and transitions will allow you to create a seamless automation experience.
Before we dive into the available events, let’s summarise the purpose of both triggers and transitions.
Triggers
Triggers determine how a workflow starts.
Every single workflow needs a trigger. It is the (or the set of) event(s) that need to happen for a user to start into this specific workflow. The trigger sits at the very top of the workflow tree.
Workflows can have one, multiple, combined, or mutually exclusive triggers.
For example, a workflow might trigger when a specific message is sent to the bot (e.g. “hello”).
Triggers are not to be confused with step triggers. Step triggers are optional. They allow users to jump to a particular step in the conversation where required.
Transitions
Transitions are the set of events needed to happen to take a user from the step they’re currently on to the following step.
Transitions are displayed between two steps, along the line that connects them. You can edit a transition by clicking on the three dots, then Edit transition.
Much like triggers, you can add one, multiple, combined, or mutually exclusive transitions. Adding multiple transitions is ideal if you have a conversation that has multiple paths. Users can be taken down specific paths by applying specific conditionals on each transition.
For example, a user might move to the next step of the conversation when they click a button.
Events glossary
Events | Description |
---|---|
Subject | |
Message | A match on a message sent by a user. |
Page URL | A match on the page URL user is currently on. |
User’s IP address | A match on the user’s IP address. |
User’s browser | A match on the user’s browser. |
User’s operating system | A match on the user’s operating system. |
User’s language | A match on the user’s language. (Must be one of the activated languages within the account) |
User’s location | A match on the user’s location. (Must be one of the existing locations within the account) |
Making an API request | A match on the result of an API request. |
Looking up | A match on the result of a spreadsheet lookup. |
Variable | A match on a stored dynamic piece of data. |
Imported content | A match on content imported from the chatbot’s knowledge base. |
Payment | A match on the result of a payment taken within the chatbot. |
Event | |
A message is sent | Any message is sent by a user, regardless of the message content. |
User first uses chatbot | A user interacts with the chatbot for the very first time. Will trigger again if the user clears their local storage or hits the reset button in the chatbot widget. |
Live chat is successful | A user marks a live chat experience as successful. |
Live chat is not successful | A user marks a live chat experience as not successful. |
Subscriber is active | A user has spoken to the chatbot within the last day. |
Subscriber is inactive | A user has not spoken to the chatbot within the last day. |
Message is explicit | A message contains a word or phrase that exists in the block list. |
Subscriber is stuck | Triggered when the chatbot provides the same response three times in a row. |
Subscriber returns to the bot | An existing user returns to interact with the chatbot. |
Subscriber talks to the bot for the first time today | An existing user returns to the chatbot for the first time today. |
Subscriber talks to the bot for the first time this week | An existing user returns to the chatbot for the first time this week. |
Subscriber talks to the bot for the first time this month | An existing user returns to the chatbot for the first time this month. |
Subscriber talks to the bot for the first time this quarter | An existing user returns to the chatbot for the first time this quarter. |
Subscriber talks to the bot for the first time this year | An existing user returns to the chatbot for the first time this year. |
Live chat is available | Live chat is enabled and currently within the availability hours. |
Live chat follow up is enabled | Live chat follow-up is enabled. |
Subscriber returns on weekday | An existing user returns to interact with the chatbot between Monday and Friday. |
Subscriber returns on weekend | An existing user returns to interact with the chatbot between Saturday and Sunday. |
Subscriber returns between 9am and 5pm | An existing user returns to interact with the chatbot between 9am and 5pm. |
All the time | Always valid. (This option is most suitable for call-to-action triggers) |
Previous step is complete | The workflow will execute the following step as soon as the previous has completed (e.g. a message was sent, an email was created, an API call was made, etc.). |
NLP event | |
Small talk is triggered | The chatbot recognises a small talk message. |
FAQ is triggered | The chatbot recognises an FAQ message. |
FAQ is triggered (with follow up enabled) | The chatbot recognises an FAQ message, and follow-up is enabled. |
Error | |
Something went wrong | The chatbot is unable to reply due to a technical error. |
Integration fails to return a response | An integration times out and fails to return a response. |
Integration returns an invalid response | An integration returns an invalid response. |
There was a problem responding to an FAQ | The NLP failed to reach the FAQ service. |
There was a problem responding to small talk | The NLP failed to reach the small talk service. |
There was a problem with NLP | The chatbot is unable to reply due to an NLP service error. |
Semantic search failed | The semantic search has failed. |
Semantic search returned no results | The semantic search has returned no results. |
Message event | |
Live chat is triggered | A user requests a live chat conversation. |
Event date time check | |
Subscriber returns in the morning | An existing user returns to interact with the chatbot between 12:00am - 11:59am. |
Subscriber returns in the afternoon | An existing user returns to interact with the chatbot between 12:00pm - 16:59pm |
Subscriber returns in the evening | An existing user returns to interact with the chatbot between 17:00pm - 23:59pm |
Event date time check | |
Subscriber returns before date and time | An existing user returns to interact with the chatbot before a specified date and time. |
Subscriber returns after date and time | An existing user returns to interact with the chatbot after a specified date and time. |
Time message check | |
Subscriber returns after time | An existing user returns to interact with the chatbot before a specified time. |
Subscriber returns before time | An existing user returns to interact with the chatbot after a specified time. |
Semantic search event | |
Content import is triggered | When used in transition, this event triggers the search through the searchable knowledge bases (learn more). |
Conditionals glossary
Conditionals | Description |
---|---|
Message type | |
Is an email | The message sent is a valid email format (e.g. hello@company.com). |
Is a number | The message sent is a number (e.g. 1). |
Is a phone number | The message sent is a valid UK phone number (e.g. 08003688885). |
Is a confirmation | The message sent is one of: ok, I agree, yes, sounds good, sure. |
Is a yes or no | The message sent is either yes or no. |
Is a name | The message sent is a name (e.g. John Smith). |
Is a percentage | The message sent is a percentage (e.g. 10%). |
Is a decimal | The message sent is a decimal number (e.g. 1.25). |
Is true | The message sent is a boolean value of ‘true’. (Commonly used to verify values returned from an API integration) |
Is false | The message sent is a boolean value of ‘false’. (Commonly used to verify values returned from an API integration) |
Is a URL | The message sent is a valid URL (e.g. https://google.com). |
Is an image URL | The message sent is a valid image URL (e.g. https://google.com/dog.jpg). |
Is a business email | The message sent is a valid email format and not from a public email provider (e.g. @gmail.com). |
Is a time | The message sent is in time format (HH:MM:SS). |
Is a date and time | The message sent is in date time format (DD:MM:YYYY HH:MM:SS). |
Is a date | The message sent is in date format (DD:MM:YYYY). |
Is an emoji | The message sent is an emoji. |
Message check | |
Equals | The message sent exactly equals the value. |
Matches regex | The message sent matches a regular expression (e.g. "(A-Z)\w+"). |
Starts with | The message sent starts with a value. |
Ends with | The message sent ends with the value. |
Contains | The message sent contains the value. |
Is empty | The variable is empty. |
Message number check | |
Is greater than | The message sent is a number greater than the value. |
Is less than | The message sent is a number less than the value. |
Contains number of words | The message sent contains an exact number of words. |
Contains number of letters | The message sent contains an exact number of letters. |
Has less words than | The message sent has less words than the value. |
Has more words than | The message sent has more words than the value. |
Has less letters than | The message sent has less letters than the value. |
Has more letters than | The message sent has more letters than the value. |
Message group check | |
Is one of | The message sent matches any of the given words or phrases. |
Is between | The message sent is a number between two values. |
Contains all | The message sent matches all of the given words or phrases. |
Message intent check | |
Triggers specific intent | The message sent triggers a specific intent. (Applies to FAQ and small talk) |
Message FAQ check | |
Triggers specific FAQ | The message sent triggers a specific FAQ, picked from a dropdown. |