Events

Event is general programming term which is used to describe an occurrence recognised by the bot (mostly asynchronous). When your bot is operational, it generates various events which can be used to trigger a journey or automation workflow. Event helps you handle those occurrences and perform some tasks. For example, popup closed is an event, you can handle it by sending another message in the journey.

In this article, you will learn -

  1. How to activate or deactivate an event

  2. About different types of events

    a. Widget related events

    b. Inbox related events

    c. Engage related events

    d. Integration events

    e. User inactivity events

    f. Schedule events

    g. User events

    h. Custom events


1. Activate/deactivate event#

  1. On the Event page, navigate to the category in which you want to activate or deactivate an event.

  2. Click on the inactive event that you want to activate.

  3. Click the more options icon, > Activate.

  1. To use an active event in a flow, in the Start node, select Event from the first drop-down and select the event that you have enabled.

note

Similarly, you can deactivate an active event. The flow will not trigger When you deactivate a [custom event] or system event.

2. Type of Events#

1. Widget related events#

EventDescription
bot-openedOn a website: when someone clicks on the chat bubble to open the bot.
For PWA: It is when the bot loads.
bot-closedWhen the user closes the bot on a website.
bot-loaded-on-page-reloadWhen the current bot page is reloaded.
ym_homeWhen someone clicks the home button.
ym_closed_promotionWhen the user closed the promotion in the bot.
page-url-based-triggerTo trigger a specific flow, when the URL matches with the loading page URL.

2. Inbox related events#

EventDescription
offline-ticketing-disabledticket tried to go to open state but offline ticketing disabled
offline-ticketing-not-configured-for-groupticket tried to go to open state but offline ticketing config not there for group
offline-ticket-limit-reachedopen ticket limit reached
offline-disabled-group-absentno group given (i.e. default) and offline not enabled
offline-ticketing-disabled-for-groupgroup given and offline ticketing not enabled for group
no-agents-onlineWhen there are no agents online
all-agents-busyWhen there is atleast one online agent and all are busy
ticket-queue-state-only-inside-working-hoursticket tried to go to queue but not in working hours
ticket-assign-state-only-inside-working-hoursticket tried to go to assign but not in working hours
default-queue-disableddefault queue config disabled
group-queue-not-configuredspecific group queue config not allowed
group-queue-limit-reachedmax queue limit for group reached
ticket-open-state-only-outside-working-hoursticket tried to go to open but it's inside working hours
agent-replyWhen an agent replies to the user
assigned-from-queueWhen a conversation is assigned to an agent from the queue
custom-field-updateWhen the agent updates a custom field
note-updateWhen ticket note is updated by agent
ticket-assigned-UIWhen a ticket is created from the bot messages from Inbox
ticket-inactiveWhen a ticket is marked as inactive
ticket-queue-to-openWhen a ticket is moved from queued to open state

3. Engage related events#

EventDescription
quick_reply_eventReceive WhatsApp Quick Reply Template related events
campaign-notification-updatesReceive Notification API delivery updates to the bot
whatsapp-referralReceive Click to WhatsApp(CTWA) referral property events
fb-ad-referralReceive facebook ad referral property events

4. Integration related events#

The integration related events depend completely on the events the respective third-party app supports. Hence, the list of supported events might vary for each integration.

5. User inactivity events#

Sometimes, when a user is asked for an input, we might not get a response and would like to nudge them to share a response, otherwise the bot flow cannot move forward.

Example: You have asked user for their email address and they have not shared it. You would like to ask the user if they're still available by their device or have they dropped off.

On the User inactivity tab, you can create events that handle situations when no sign of input is received from the user after a specified period.

Use-cases#

We treat a user as inactive when a user does not respond to a prompt such as -

  • Please share your email-ID
  • Please select one of the options (Quick reply/Whatsapp List)
  • What is your name?

If there is no response to such a prompt, we can trigger the Inactivity event.

Handling inactivity#

We can handle inactivity in different ways depending on the conversational design and tone in which the flow moves forward in. A few examples are -

  • Sending a message asking whether the user is still active.
  • Sending the above message followed by repeating the input requested for.
  • Triggering a whole new flow for inactivity.

Handling inactivity in lead generation#

This is a lead generation template that's available in the Marketplace

Take the following inputs from the user -

  • Email-id
  • Product of interest

Then, insert the data into a table considering as a lead.

Here, we wouldn't want the user to drop off just because they haven't entered their email ID. So, if we see the user is inactive for more than 5 minutes, we can ask for his email ID once again through chat.

EventDescription
send-delayed-message-for-sessionTo transfer to the agent after 5 mins of inactivity

Create inactivity event#

All user inactivity events have to be created in the same way.

  1. On the Studio page, go to Event > User inactivty events.
  2. Click Add event.

  1. Click Add event and configure the event as explained in the following table.

Enter the event name and description. In Event delay, choose the inactive period (hours/minutes) and enter the value in the respective box. For example, if you set 5 minutes, a user is considered as inactive if the users does not respond to the prompt for five minutes.

  1. Handle event with message. There are three different ways to set up the bot response when a user is inactive -

    1. Set up a nudge as a message
    2. Set up the nudge followed by question they dropped off at.

  1. Trigger a different flow to handle inactivity

  1. Activate event for specific steps in a specific flow. If you are observing consistent drop offs at a particular step, you can set up a unique event exclusively for that step.

Example: Handle inactivity for email in a flow called 'moreinfo'.

This will trigger the event exclusively for the email step and won't be applicable globally.

note

If there are any specific use-cases around inactivity that you'd like to implement, post it in our Community. Someone from the team will reach out to you.

6. Schedule events#

Use Schedule events to create events that define the time at which specific workflows of your choice need to be triggered.

To schedule events, follow these steps -

  1. Go to Events > Schedule events.

  2. Click +Add event.

  3. Enter the Event Name and Description.

  4. In Execute Event, select the frequency of schedule

    • Once: Select to run the event only once at a particular date and time.

    • Recurring: Select if the event is recurring, Hourly, Daily, Weekly, or Monthly. Set when to run according to the chosen options (Minutes/ Time/ Date/ Day). Choose your preferred Timezone, and the End date (when the recurring events must end) accordingly.

  • Advanced: This gives you the flexibility to use corn expressions to handle complex cases. A cron expression is a string consisting of six or seven subexpressions (fields) that describe each information of the schedule.

    It is recommended to use the Advanced option only if your use case is complex which cannot be configured through Once or Recurring. Ensure that you are familiar with Cron expression to use it.

    Know more about corn expressions with examples

note

By default, a scheduled event is in activate state. You can deactivate, edit, or delete the event by using the more options icon.

7. User 360 events (System events)#

These are sytem events that helps in triggering flows or perform actions on user profile related activities - when a user is created, user details are updates, and user profile is deleted.

The following are some real-time use cases that you can solve with these events -

  • Send onboarding campaigns when a new user is created
  • Send message when a user information is updated or deleted.
  • Sync data to an external CRM through APIs when a user is added/upated/deleted.
  • Sync data from an external database through APIs when these events occur.
EventDescriptionSample payload
USER_CREATEWhen a user record is created in (CDP) DB through any of the following operations:
- Single User Creation in UI
- User Creation through Builder
- User Creation through API
- User Creation through CSV Import
{
"id": "IN5TK-OyZekJUT2xldP1J",
"botId": "x1659503658437",
"userId": "[email protected]",
"event": "USER_CREATE",
"source": "SYSTEM",
"payload”: {
"timestamp": 1666340842464,
"user": {
"firstName”: "Jolly",
"gender": "FEMALE",
"profileComplete": "17.65",
"userId": "[email protected]"
},
"userId": "[email protected].com"
},
"createdAt": "2022-10-21T08:27:23.000Z"
,
"updatedAt": "2022-10-21T08:27:23.000Z"
,
"deletedAt": null
}
USER_UPDATEWhen a user record is updated in (CDP) DB through the following operations:
- Single User Updation in UI
- User Updation through Builder
- User Updation through API
- User Updation through CSV Import
Setting an unset field:
{
"id": "5IjS7mCLBEWehufVSa3Jj",
"botId": "x1659503658437",
"userId": "[email protected]",
"event": "USER_UPDATE",
"source": "SYSTEM",
"payload": {
"newPayload": {
"city": "Bengaluru",
"country": "IN",
"lastName": "Harsha",
"profileComplete": "35.29"
},
"oldPayload": {
"city": null,
"country": null,
"lastName": null,
"profileComplete": "17.65"
},
"timestamp": 1666352773812,
"userId": "[email protected]"
},
"createdAt": "2022-10-21T11:46:15.000Z",
"updatedAt": "2022-10-21T11:46:15.000Z",
"deletedAt": null
}
Updating an already set field:
{
"id": "O0-AanNYjvHzWB-l62tKM",{
"botId": "x1659503658437",{
"userId": "[email protected]",{
"event": "USER_UPDATE",{
"source": "SYSTEM",{
"payload": {{
"newPayload": {{
"city": "Mysore"{
},{
"oldPayload": {{
"city": "Bengaluru"{
},{
"timestamp": 1666353518569,{
"userId": "[email protected]"{
},{
"createdAt": "2022-10-21T11:58:40.000Z",{
"updatedAt": "2022-10-21T11:58:40.000Z",{
"deletedAt": null{
}
USER_DELETEWhen a user record is updated in (CDP) DB through any of the following operations:
- Single User Updation in UI
- Bulk User Deletion from UI
- User Deletion during MERGE
- User Deletion through API
{
"user": {
"firstName": "kumar",
"userName": "sasi",
"userId": "10"
},
"userId": "10",
"timestamp": 1657713515000
}

8. Custom Event#

Besides the standard events that we have, you can also create custom events to perform actions any other activities that are not listed on this page.

You can create custom events through API or builder nodes. However, the event details are captured only when the event is active.

  • When this event triggers via. API, the event is recorded and sent to the bot only when the event is active.
  • When the event triggers via. Builder nodes, the event is recorded only if the event is active. The event originates from the executor services.

To create a custom event, follow these steps -

  1. In the Event tab, click Custom events > +Add Event.

  2. Add Event name and Description.

  3. Then, push the event data using the Push user event (POST /v1/internal/event/)(https://documenter.getpostman.com/view/17583548/UVsEVUsg#00eb59cf-7f00-461e-8d53-94eafb056a9a) API.

note

Once a custom event is created, you can activate, deactivate, edit or delete a custom event.