Triggered workflows allow you to automatically generate content or send emails based on changes in your data. Triggered workflows consist of:
- A template: the template and selected input values determine what content to generate or send.
- A trigger: the trigger defines when that content should be generated or sent
- A cadence: the cadence defines how often we should query your data to fire the trigger.
Setup a Triggered Workflow
Currently, only admins can set-up triggered workflows
- Select a template. This will determine that data-driven content that sends or generates when the trigger fires.
- Triggered workflows are supported for all template types (presentations, documents, spreadsheets, Mail).
- For Mail templates, an email will be sent directly to the corresponding recipient(s) when the trigger fires.
- Configure your inputs. Select the input values to use to personalize your automatically generated content.
- As a best practice, make sure you set an input to bulk/personalize on. (If you don’t bulk on an input, there won’t be any way to map your trigger to which variations of your content should generate/send.)
For your bulk input, select all values you would like to potentially include in your trigger. You can simply “Select All” if you want all values. (For example, say you want to personalize your automatic generations on
&:accountID
. In this case, you should set&:accountID
as the bulk input, and select all possible account values).- Start trigger setup. Once you’ve finished filling out inputs, you should be able to navigate to “Schedules & Triggers” > and click “Set up triggers.” This will open the trigger set up wizard.
- Define your trigger. The first step is to define the trigger that will cause content to send or generate.
- Define trigger criteria by selecting dynamic content, and the changes we should look for in that dynamic content.
- For example, a trigger could be “When
{{weekly_active_users}}
becomes less than 80,” and it would fire if the result returned by the DC falls below 80. - Note that there are some restrictions on which dynamic content can be selected to define a trigger:
- The DC must include your bulk input. (Otherwise, there’s no way to map the trigger to your template).
- The DC must not include inputs that are not already populated within the template.
- The DC must be Text-type.
- You can also refine your triggers by adding filters.
- Filters are also defined using dynamic content, but they simply look for static values, rather than monitoring for changes. For example, a filter could be “And if
{{account_status}}
= active.” - Filters are combined with their associated trigger using AND logic
- You can apply and/or logic by adding addition Trigger Groups. Triggers Groups are evaluated with OR logic. That is, if any of your trigger groups evaluate to TRUE, the associated content will send/generate.
- Filters are also defined using dynamic content, but they simply look for static values, rather than monitoring for changes. For example, a filter could be “And if
- For example, a trigger could be “When
- Define trigger criteria by selecting dynamic content, and the changes we should look for in that dynamic content.
- Set cadence: configure how often Matik should query your data for changes.
- As a best practice, you should select the least frequent cadence that will meet your needs, in order to minimize the number of queries/API calls we need to make.
- Cadences can be set to daily, weekly, or monthly, very similarly to scheduling.
- Check “Refresh values for inputs set to ‘Select All’” here if you want Matik to always use all the currently available values for a given input. (If you don’t check this box, we’ll always use whatever values existed at the time you set up the schedule).
- Name your triggered workflow. Add a name & a description to your flow, so you can easily find it later.
- Save triggered workflow. Finalize your workflow by saving. You have two options for saving:
- Save and Activate: this will save and immediately enable your trigger. Content will start sending/generating as soon as your trigger is met.
- Save as Draft: this will save your trigger configuration, but in an inactive state, so no content will send/generate. You can open the triggered workflow from the Flows page whenever you are ready to activate it.
That completes the setup process! You can now manage created triggered workflows from the Flows page.
Managing Triggered Workflows
Triggered workflows can be managed from the Flows page. All triggered flows you have access to can be found in the Triggered Flows section.
You can click into it any specific triggered flow to:
- View or edit its configuration
- Pause it – keeps the flow, but stops any content from sending/generating
- Reactivate it - reactivates a previously paused flow, so that content will start sending/generating again
- Delete it
Use Cases
Send email when usage drops below a certain percent
In this example, we’ll set up an email that will send an email to all contacts at a given account if that account’s usage drops below a certain threshold.
Let's say we set up the following assets in Matik:
&:accountID
input, that returns the IDs of all our active customer accounts. Example value: UI124352.{{weekly_active_users_percent}}
Text dynamic content, that filters on the &:account_id input to return the percentage of weekly active users at that account as a number. Example value: 0.9.{{usage_email_contacts}}
Recipients dynamic content, that filters on the&:accountID
input and returns all the relevant account contacts from your CRM. Example value: [‘john@acme.com’,’jane@acme.com’...]- A Usage Email Matik Mail template, that includes content personalized to a given account based on their product usage.
Now we could set up a triggered workflow like so:
- Select the Usage Email template
- Fill out any required inputs. Since this email should be personalized by account, make sure we’re bulking on
&:accountID
. Chose ‘Select All’ for &:account_id values to make sure the trigger could fire for any of your accounts. - Define the trigger as When
{{weekly_active_ucers_percent}}
becomes less than or equal to 0.6 - Set the cadence as Daily at 9 AM, so we check for changes to the weekly active usage data daily. Make sure the ‘refresh values for inputs set to ‘select all’’ setting is enabled, so that we’ll always use the latest list of accounts.
The resulting trigger will query your data daily at 9 am, and send emails to all contacts at an account if that account’s usage drops below 0.6. For example:
- For account ID = 1, say that:
- Yesterday,
{{weekly_active_users_percent}}
= 0.8, but today, it drops to 0.5. - The trigger would fire, and we would send the email for all the contacts returned by
{{usage_email_contacts}}
for account ID 1.
- Yesterday,
- But for account ID = 2, say that:
- Yesterday,
{{weekly_active_users_percent}}
= 0.9, but today, it’s 0.7. - That’s still higher than the specified threshold, so the trigger does NOT fire. None of the contacts at account 2 will be emailed.
- Yesterday,
Trigger content when deal moves to new stage
In this example, we’ll generate a Kickoff Deck when an Opportunity moves to ‘Closed Won’ in Salesforce.
Let's say we set up the following assets in Matik:
&:opportunity_id
input, which returns all the Opportunity IDs from your Salesforce.{{opportunity_stage}}
Text DC, which filters on &:opportunity_id to return the Salesforce stage for that particular Opportunity record.- Kickoff Deck presentation template, which includes kickoff content for the account associated with this opportunity.
Now we could set up a triggered workflow:
- Select the Kickoff Deck template
- Fill out required inputs. In this case, we’re personalizing on opportunity, so bulk on
&:opportunity_id
and select all values. - Define your trigger: When
{{opportunity_stage}}
changes to ‘Closed Won.’ - Set your cadence. This data doesn’t change as often, so we can set it to Weekly, on Mondays. Make sure the ‘refresh values for inputs set to ‘select all’’ setting is enabled, so that we’ll always use the latest list of opportunities.
The resulting trigger will query your data weekly on Monday, and generate a Kickoff Deck for a given opportunity when that opportunity’s status first changes to ‘Closed Won. For example:
- For opportunity ID = 1:
- Last week,
{{opportunity_stage}}
= ‘In Progress’, but this week, it now equals ‘Closed Won.’ - The trigger would fire, and we would generate a kickoff deck for opportunity 1.
- Last week,
- And for opportunity ID = 2:
- Last week,
{{opportunity_stage}}
= ‘Prospecting’, but this week, it now equals ‘Qualification.’ - The trigger criteria are not met, so the trigger would not fire. Nothing generates for opportunity 2.
- Last week,
- And for opportunity ID = 3:
- Last week,
{{opportunity_stage}}
= ‘Closed Won,’ and we already generated a kickoff deck then. This week, it still is ‘Closed Won’ - The trigger criteria are not met since no change occurred, so the trigger does not fire. Nothing new generates for opportunity 3.
- Last week,
Trigger content when renewal is approaching
In this example, we’ll send an email to a CSM, with an attached renewal deck, when an account’s renewal date is 30 days away.
Set up the following assets in Matik:
&:account_id
input, which returns the names of all your customer accounts{{days_to_account_renewal}}
Text DC, filtering on &:account_id, which returns the number of days until the renewal date in Salesforce. This is set up as a custom calculated field in Salesforce, and returns a number like 55.{{account_csm_email}}
Recipients DC, filtering on&:account_id
, which returns the email of the CSM for the given account- Upcoming Renewal Notification Matik Mail template. This is an email template addressed to a CSM, to let them know the renewal is approaching. It has a presentation attachment, which is…
- Renewal Deck presentation template. This a renewal deck for the given account. It’s added as an attachment on the email.
Now we set up a triggered workflow:
- Select the Upcoming Renewal Notification mail template.
- Fill out the required inputs. Since this email should be personalized by account, make sure we’re bulking on
&:account_id
. Choose ‘Select All’ for &:account_id values to make sure the trigger could fire for any of your accounts. - Define trigger: When {{days_to_account_renewal_date}} becomes less than 30.
- Set cadence to daily, at 8 AM.
The resulting trigger will query your data daily at 8 AM. Whenever a given account’s days to renewal falls below 30 days, the trigger will fire. An email will be sent to the corresponding CSM, with a personalized renewal deck for that account attached. For example: say it’s Jan 1:
- For account 1, say that:
- Renewal date is Jan 30. So yesterday,
{{days_to_account_renewal}}
= 30, but now it’s 29. - The trigger fires, and the CSM is emailed with account 1’s personalized renewal deck.
- Renewal date is Jan 30. So yesterday,
- For account 2, say that:
- their renewal date is June 25. So yesterday,
{{days_to_account_renewal}}
= 176, but today it’s 175. - The trigger does not fire, and no content is sent or generated
- their renewal date is June 25. So yesterday,
Best Practices
- Make sure you select a bulk input based on how you want your automated content to be personalized.
- Be mindful of the load on your databases and integrations. You can minimize the load by:
- Including filters to refine the amount of data we need to check when evaluating the trigger. When you add filters, we check those filters first and exclude any non-matching data, so that part of the data set can be skipped when we evaluate the trigger.
- Choose the least frequent polling cadence that will still allow you to enable your use case. A less frequent cadence means less frequent queries/API calls.
FAQ
- Do triggered workflows work with send/generate conditions? Yes, you can use triggered workflows with templates that have send/generate conditions. We check both send/generate conditions and trigger criteria, and will respect all of them.
Comments
0 comments
Please sign in to leave a comment.