Batch multiple alerts & send summary of notifications at a recurring schedule to the user.
Opens batch window
Accumulates trigger until the next digest schedule
Moves to next workflow step
Fixed Schedule
5
with minutely
frequency)$timezone
key in HTTP API oruser.set_timezone()
method from your backend or Frontend SDKs. Timezones should be in IANA (TZ identifier) format, such as America/New_York
.2024-07-17 17:00
and repeat every is set to daily at 4pm IST, first schedule will be 18th July 4pm IST. You can set a future starting point if you want the first digest to be sent later. Note that in this case, all triggers from when the workflow is activated until the first schedule after the “starting from” time will be included in the first digest. Referred to asdtstart
in dynamic schedule expression.Dynamic Schedule (Send Digest based on user preference)
Variable | Type | Description |
---|---|---|
frequency | string (mandatory) | Choose from one of the below options: minutely hourly daily weekly (mandatory to pass weekdays in this case) weekly_mo2fr (weekly on Monday to Friday) monthly (mandatory to pass monthdays in this case) |
interval | integer (optional) | Interval at which the frequency will repeat. Interval 2 with frequency daily would mean repeat every 2 days. Defaults to 1 if not set. |
weekdays | array[] (mandatory for weekly frequency) | Days of the week for weekly frequency. Pass the first 2 characters of days of the week in an array as ["su", "mo", "tu", "we", "th", "fr", "sa"] |
monthdays | array[map] (mandatory for monthly frequency) | Days of the month for monthly frequency (e.g. 1st, 3rd, and 5th Mondays of the month or 1st - 5th day of the month). Pass as [{"pos": 1, "day": "mo"}] , where pos defines the day index and day defines the type of day (can be referred to define the day of the week). e.g., 1st,2nd day of the month will be set as [{"pos": 1, "day": ""},{"pos": 2, "day": ""}] . |
time | string (optional) | Time for daily, weekly, or monthly frequency when the digest will close. Defined in hour and minute as hh:mm . Defaults to 00:00 if not set. |
dtstart | datetime (ISO-8601 format) (optional) | Starting time from which the first schedule will be calculated. Set as 2024-08-01T10:40:50 in ISO-8601 format. Defaults to current_timestamp at the time of setting the schedule if not defined. |
tz_selection | string (optional) | Timezone selection. time and dtstart will both be in this timezone. - Leave empty "" for fixed timezone - Set to "recipient" if the timezone needs to be picked dynamically from user property or trigger data. |
tz_fixed | string (mandatory if "tz_selection": "" ) | Timezone to pick in case of fixed tz_selection . Add timezone in IANA (TZ identifier) format as America/New_York . Defaults to UTC if not set. |
Retain Items
Min Trigger Count
$batched_events
array : All the event properties corresponding to a batched event is appended to this array and can be used in the template in the array format. The number of event properties returned here is limited by retain batch events.$batched_event_count
: This count represents the number of events in a batch and is utilized to render the batch count in a template. For instance, you might send a message like,Joe left 5 comments in the last 1 hour
where 5 corresponds to $batched_event_count.$batched_events
array.$batched_events_count
and $batched_events
array of all properties passed in the event payload as shown below:
Enable batching
option in Mock data button on template details page. Once enabled, you’ll start getting $batched_events
variable in auto suggestion on typing {{
in template editor. The variables in mock data will be treated as event properties and Event Count
will imitate the number of times this event will be triggered in the batch.
You have got 5 comments and 3 likes on your post today
where post and likes are interaction_type in your input payload. You can use data transform node and generate relevant variables using JSONNET editor to handle this use case.
comment_count
: to get the count of all interactions whereinteraction_type = comment
like_count
: to get the count of all interactions whereinteraction_type = like
all_comments
: to fetch all array objects whereinteraction type = comment
You have got {{comment_count}} comments and {{like_count}} likes on your post today
.
Sending immediate or digest notification based on user's preference
Deliver individual alerts to users throughout the day and provide a summary of all alerts at day’s end
Send recommendation or top stories at the end of the day
Send batched reminders for pending activities or courses
What happens when digest schedule is changed and an existing digest is running?
What happens when dynamic schedule is empty?
What happens when wrong schedule is passed in dynamic schedule?
What happens when digest node follows time window?