Condition Step
- 1 Tag & Sequence Condition
- 2 Text Variable Condition
- 3 Number Variable Condition
- 4 DataTime Variable Condition
- 4.1 New Date-Time Filter Conditions
- 4.2 1. After x Days Ago
- 4.2.1 Description
- 4.3 How to Apply After x Days Ago Condition
- 4.3.1 Use Cases
- 4.4 2. Before x Days Ago
- 4.4.1 Description
- 4.5 How to Apply Before x Days Ago Condition
- 4.5.1 Use Cases
- 4.6 3. After x Minutes Ago
- 4.6.1 Description
- 4.6.2 Use Cases
- 4.7 4. Before x Minutes Ago
- 4.7.1 Description
- 4.7.2 Use Cases
- 5 JSON Variable Condition
- 6 Custom Input
- 7 Math Formula
- 8 Email
- 9 True/False Conditions (Boolean)
- 10 Integer/Numerical Conditions
- 11 Date/Time Conditions
- 12 System Fields Conditions
- 13 System JSON Fields Conditions
- 14 Miscellaneous Conditions
With Condition step, you can go to different steps/sub flows depends on conditions.
In your Condition step, click on "+ Add Condition Group" to set at least one condition group. "Otherwise" group is always there.
You can make as many condition groups as you need. The matching start from the top to the bottom, once a group matched, the system goes to a named step. When it fails to match all condition group, the "Otherwise" group will take over it. So it's always a good practice to name a step in the "Otherwise" group even it is very unlikely to be used.
Another important thing to know is the difference between "All conditions" and "Any conditions". It is sitting at the upper right corner of each condition group.
You can list more than 1 condition in a condition group. When you do, it matters whether you choose "All" or "Any".
"All Condition" means to get this group matched, you will need to have all the conditions matched in the group.
However, to get a group with "Any Condition" matched, you only need to have one of the conditions matched.
Tag & Sequence Condition
For tag and sequence condition, you can choose "in" or "not in" from the "Operator". Choosing multiple tags/sequences is allowed.
Text Variable Condition
These are all the operators for text condition.
For "has any value" and "is empty" of all variable types, when you clear a variable, the variable becomes empty. Thus, "has any value" is false and "is empty" is true for this variable.
Number Variable Condition
These are all the operators for number condition.
DataTime Variable Condition
These are all the operators for DateTime condition.
Note that you will need to put "value" always as the correct format "yyyy-MM-dd HH:mm:ss" no matter which displayed format you choose for that variable.
Please note that - "before/after" is different from "time before/after". The former compare the whole datetime value while the latter only compare the time value.
New Date-Time Filter Conditions
The following new date-time conditions have been added to the filtering options:
After x days ago
Before x days ago
After x minutes ago
Before x minutes ago
These options allow users to filter data or users by specific activity periods, making it easier to target recent or past events for follow-ups or analysis.
1. After x Days Ago
Description
The After x days ago condition allows filtering of records or users based on activities that have occurred after a specified number of days. It’s useful for retrieving records or users whose activities or interactions happened after a certain point in time, relative to the current date.
How to Apply After x Days Ago Condition
Go to the Flow, Select Condition Node.
Now click on add Condition
A new popup will appear where you can select last seen
Now once you click on Operator you will see the After x days ago action
You can add the desired value in the Value Field and then the condition implies accordingly
This condition now checks if the user's Last Seen date is more than 30 days ago
Use Cases
Recent Activity Tracking: Filter users or records that have interacted with your system after a specified number of days.
Targeted Follow-ups: Identify users who have not interacted recently, allowing for follow-up actions or campaigns.
2. Before x Days Ago
Description
The Before x days ago condition filters users or records based on activities that occurred before a specified number of days. This filter is ideal for tracking older interactions or analysing past behaviour over a defined period.
How to Apply Before x Days Ago Condition
Similarly in the “Last seen” actions you will see
You can add the desired value in the Value Field and then the condition implies accordingly
This condition now checks if the user's Last Seen date is earlier than 10 days ago
Use Cases
Historical Data Analysis: Analyse user or record data that falls within a specific range of past activity.
Event Follow-up: Identify users or records whose activities happened before a certain date for retrospective analysis.
3. After x Minutes Ago
Description
The Before x Minutes ago condition filters users or records based on activities that occurred before a specified number of Minutes. This filter is ideal for tracking older interactions or analysing past behaviour over a defined period.
Similarly in the “Last seen” actions you have “After a minutes Ago”
You can add the desired value in the Value Field and then the condition implies accordingly
This condition now checks if the user's Last Seen date is more than 30 minutes ago
Use Cases
Historical Data Analysis: Analyse user or record data that falls within a specific range of past activity.
Event Follow-up: Identify users or records whose activities happened before a certain date for retrospective analysis.
4. Before x Minutes Ago
Description
The Before x Minutes ago condition filters users or records based on activities that occurred before a specified number of minutes. This filter is ideal for tracking older interactions or analysing past behaviour over a defined period.
Similarly as above the Last seen actions you have After a minutes Ago
You can add the desired value in the Value Field and then the condition implies accordingly
This condition now checks if the user's Last Seen date is earlier than 10 minutes ago
Use Cases
Historical Data Analysis: Analyse user or record data that falls within a specific range of past activity.
Event Follow-up: Identify users or records whose activities happened before a certain date for retrospective analysis.
JSON Variable Condition
These are all the operators for JSON condition.
Note - The very last 3 operators, "has item matched with ...", require the JSON to be a list of variables, not a list of JSON. In other words, if your JSON is storing a list of normal variables, these 3 operators work. They won't work for a JSON storing a list of JSON.
Custom Input
Custom input is built for compare values in JSON variable. Search "custom input" in the if field:
Pick a value from a JSON, then you can compare it as you use the text variable condition.
Math Formula
With this operation, you can now do formula calculation directly in the Action Step - "Set Variable Value" and Condition Step - "Value".
Math operations and function supported:
+, -, *, e, pi, PI, abs(), min(), max(), ceil(), floor(), log(), pow(), round(), sqrt(), sin(), cos(), tan()
Please note that - If the formula is invalid, the system will return 0 to number variable and empty to text variable.
UChat also provides the following system variables to be used inside the condition node.
These relate to the email nodes where a specific email node is sent/delivered/clicked.
Condition | Explanation |
Email Click | Whether a specific email is clicked |
Email Opened | Whether a specific email is opened |
Email Delivered | Whether a specific email is delivered |
Email Sent | Whether a specific email is marked sent |
Opted-In for Email | Whether a bot user has been opted-in for emails |
True/False Conditions (Boolean)
These refer to the booleans variables whether a condition or variable is true or false
Condition | Explanation |
Subscribed to bot | Whether a bot user is subscribed to bot or isnt |
Has Interacted in last 24h | Whether a bot user has interacted in last 24 hours of the last interaction |
Is Guest User | Whether a user is a guest user |
Is Tester | Whether the user is a tester |
Is Admin | Whether the user is an admin |
Is assigned to agent | Whether the bot user has an assigned agent |
Has SSO user connected | Whether user has SSO connected |
Is Business Hours | Whether the time of interaction is within specified business hours |
Is assigned agent online | Whether the bot user’s assigned agent is online or not |
Has agents online | Checks if any live agent is assigned or not |
Integer/Numerical Conditions
Condition | Explanation |
Opted-In Date (minutes ago) | Represents minutes since the bot user has subscribed to bot |
Last seen (minutes ago) | Represents minutes since the bot user has last seen the message sent by the bot |
Last interaction (minutes ago) | Represents minutes since the bot user last interacted with the bot flow |
Last agent interaction (minutes ago) | Represents minutes since the live agent last interacted with the bot user |
Opted-In for Email (minutes ago) | Represents minutes since the bot user has been opted in for email |
Opted-In for SMS (minutes ago) | Represents minutes since the bot user has been opted in for SMS |
Shopping cart total price | Represents the total price of the cart present in ORDER JSON system,field |
Agent Id | System ID of the live agent |
Last FB Comment is existing user |
|
Last FB Comment total new tagged user |
|
Last FB Comment total tagged users |
|
Date/Time Conditions
Condition | Explanation |
Opted-In Date | Date of the user’s opt in |
Last Seen | Datetime field representing the last seen of the bot user |
BOT_CURRENT_TIME | Current time in present represented in workspace timezone |
Created At | Datetime field representing the timestamp the bot user was created |
Last Interaction | Datetime field representing the timestamp of the last interaction by the bot user |
NOW | Current time in present represented in UTC time |
Subscribed | Datetime representing the timestamp the bot user subscribed to the bot |
TODAY | Date field representing the date today |
System Fields Conditions
Condition | Explanation |
Agent Email | Represents the email of the assignedagent |
Agent Name | Represents the name of the assigned agent |
Browser | Represents the browser through which the user is interacting with the bot on web channel |
CRM Contact Id | Represents the unique Id assigned by the integrated CRM. (for eg GHL, Zoho etc) |
Channel | Represents the channel via which the bot user is interacting with bot |
City | Represents the city of the bot user |
Country | Represents the country of the bot user |
Department | Represents the department you want to assign the bot user |
Device | Represents the device via the bot user is interacting with the bot |
Represents the email of the bot user | |
First Name | Represents the first name of the user |
Flow Ns | Represents the the current mainflow Ns of the bot |
GMB Name | Name of the GMB Location |
GMB Place Id | Id of the GMB location |
GTAG Client Id |
|
GTAG Session Id |
|
Gender | Represents the gender of bot user |
IP | Represents the the IP of the bot user on web channel |
Instagram Id | Represents the Meta assigned unique ID of the bot user on Instagram |
Instagram User Name | Represents the Meta assigned user name of the bot user on Instagram channel |
Interest | Represents the interest of the bot user you cn assign |
Language | Represents the language of the bot user |
Last Button Title | Represents the last button the user clicked |
Last FB Comment | Represents the last comment made by the user on Facebook channel |
Last FB Comment Id | Represents the Id of the last comment made by the user |
Last FB Comment Post Id | Represents the Id of the post on which the last comment was made by the user |
Last Name | Represents the last name of the bot user |
Last Node Ns | Represents the Ns value of the node last visited by the bot user |
Last Text Input | Represents the last text input bot user entered |
Lead Source | Represents the source of the bot user you can assign |
Lead Status | Represents the status of the bot user you can assign |
Live Chat Url | Represents the URL link of the livechat of the bot user |
Locale | Represents the locale of the bot user |
Market | Represents the market of the bot user you can assign |
OpenAI Thread Id | Represents the current thread Id by the assistant run from OpenAI |
Page Id | Represents the Id of the facebook page |
Page Name | Represents the name of the facebook page integrated |
Page User Name | Represents the user name of the facebook page’s admin who integrated the page with UChat |
Platform | Represents the platform from which the bot user is interacting with the bot |
Profile Image | Represents the profile image of the bot user |
Region | Represents the region of the bot user |
SSO Url | This contains the SSO Url |
Sub Flow Ns | Represents the NS value of the subflow in which the bot user is currently in |
Timezone | Represents the timezone of the user |
User Id | Represents the User ID assigned by the system of the bot user |
User Name | Represents the username of the bot user |
User Ns | Represents the unique value assigned by UChat to every bot user |
System JSON Fields Conditions
Condition | Explanation |
CART | Represents the line items user has selected when using UChat native ecommerce |
Claude | Represents the chat history of the bot user when using Claude AI |
DialogFlow | Represents the chat history of the bot user when using DialogFlow |
Gemini | Represents the chat history of the bot user when using Gemini |
Last Error | Represents the Last error triggered by the bot user |
Last Message | Represents the last message the bot user went through |
ORDER | Represents the order placed by the bot user when using UChat native ecommerce |
OpenAI | Represents the chat history of the bot user when using OpenAI |
SELECT | Unique JSON that saves the key-value pair from the JSON the user has selected from the previous step. Is used widely in For Each option. |
SHOP | Contains the information regarding the user’s business |
User | Contains the complete information regarding the bot user |
Miscellaneous Conditions
Condition | Explanation |
Segments | Represents the segment the bot user belongs to |
Tag | Represents if the bot user has a certain tag or not |
Label | Represents if the bot user has a certain label or not |
Sequence Subscription | Represents if the bot user is subscribed to a sequence or not |
Closing Notes | Represents the closing notes assigned to the bot user |
Board | Represents the board the bot user currently is assigned to |
Notification Topic | Represents the notification topic assigned to the bot user |
Assigned Agent | Represents whether a certain agent assigned to the bot user |
Channel | Represents the channel the bot user belongs to |
Conversation Status | Represents the status of the bot user’s conversation (Done, Open, Pending etc) |
Custom Input | Allows the user to input custom inputs that doesnt necessarily fit into the various conditions provided by the user. For example using Custom JSON user fields. |