While designing your campaign journey, you can connect with your customers on a specific channel using the appropriate messaging trigger. The triggers you will see in the '+' or 'New Trigger' menu will depend upon the channels you've enabled and the cloud apps you have configured for your account. The following screenshot shows an example of what this could look like.
Sending a message is the main action of a messaging trigger. A messaging trigger typically requires the following pieces of information:
-
Content (required): You will need to select the creative/ message template that will be used to send messages to the customer.
- For Live Content triggers, instead of selecting a live content template, you will need to select a Live Content campaign here. You can only select 'launched' Live Content campaigns, configured to use audience from 'other campaigns.'
- Similarly, you must select an audience sync campaign (aka syndication) here for Audience Sync triggers. You can only select 'launched' syndications configured to use audiences from 'other campaigns.'
- Send Settings (required): You must specify the sender information. You can do so by specifying the app and adapter.
- Tracking Parameters (optional): You may also optionally specify UTM or custom URL tracking parameters for the campaign so that you can measure the impact of running the campaign.
-
Expiration (optional): You may optionally specify when a message will expire.
- Note: This is applicable for the in-app trigger only.
- Action (required): This setting is required for the Live Content and Audience Sync triggers. You must specify the action you want to perform with this trigger, i.e., whether to show or hide the live content/ paid media campaign.
Content
Select the creative/ message template that will be used to message the customer. You can also set up A/B Tests as required.
Tip
You cannot change the selected message template if your campaign is paused or launched. To use a different messaging template, set up an A/B test for the Entire Creative. Add a new variation, select the required messaging template, and assign 100% of users to this variation. Then, assign 0% of users to the old variation.
Send settings
The send settings can vary by channel.
Note
If you use a promotion code in the template, specify the promotion code in the send settings. If you do not set the promotion code, the promotion will not be included in the message, and the message will render a blank promotion instead.
Here’s a breakdown of the different send settings by channel.
Setting | Description | Required? | Push | SMS | In-App | Cloud App | Live Content | |
---|---|---|---|---|---|---|---|---|
Promotions | Specify your promo code | No | ✓ | ✓ | ✓ | ✓ | ✓ | x |
App | Choose the app for messaging from the dropdown list (e.g., Mailgun, Twilio). | Yes | ✓ | ✓ | ✓ | ✓ | x | x |
Adapter |
Choose an adapter from the dropdown list. |
Yes | ✓ | ✓ | ✓ | ✓ | x | x |
From Name | Sender name | No | ✓ | x | x | x | x | x |
From Address | The email address of the sender | No1 | ✓ | x | x | x | x | x |
Reply to Address | The email address to which replies will be sent | No1 | ✓ | x | x | x | x | x |
BCC | Send a copy of the message to these email addresses | No1 | ✓ | x | x | x | x | x |
1 By default, Blueshift will use the value specified in the adapter settings, but you can replace them. You can also specify a liquid variable with appropriate attributes to populate the fields dynamically.
Using Liquid for Dynamic Adapter Selection
Please contact your Blueshift Customer Support Manager (CSM) to enable dynamic adapter selection for your campaigns.
This feature lets you dynamically choose adapters based on campaign context, enabling greater flexibility when managing multiple brands or domains.
Once enabled, you can dynamically use Liquid expressions to select an adapter for your campaigns. The adapter defines the app and associated credentials (e.g., sending domains) to send your messages.
{% case bsft_event_context.company_name %} {% when "Brand A" %} {% assign sending_adapter = "51085ae8-d4e9-4304-99cb-33ee307774a3" %} {% when "Brand B" %} {% assign sending_adapter = "dd05hs8-khhf-2344-tycb-ijhff307uit" %} {% when "Brand C" %} {% assign sending_adapter = "f9c3d701-ac16-4bd6-88a1-082b2c753790" %} {% else %} {% assign sending_adapter = "5f1d458c-ec7e-4634-8a0e-aeceb2300556" %} {% endcase %} {{ sending_adapter }}
In the above example:
- bsft_event_context.company_name: Represents the company name from the event triggering the campaign (e.g., "Brand A").
-
Adapter UUIDs: Unique identifiers for the adapters configured in your account. Each adapter is linked to a specific app (e.g., Mailgun, SendGrid) and credentials.
- Go to the App Hub, select the app, and open the adapter. You will find the account_adapter_uuid in the browser's URL, as shown in the screenshot.
-
Case statement: Dynamically assigns the appropriate adapter based on the company name. For example:
- If the company is "Brand A," the adapter with UUID 51085ae8-d4e9-4304-99cb-33ee307774a3 is selected.
- If the company is "Brand B," the adapter with UUID dd05hs8-khhf-2344-tycb-ijhff307uit is selected.
- A default adapter with UUID 5f1d458c-ec7e-4634-8a0e-aeceb2300556 is used if no match is found.
Ensure that your Liquid expression resolves to a valid adapter UUID. If it doesn’t, the campaign will skip sending the message.
Tracking parameters
Adding tracking parameters to your messages allows you to gauge the effectiveness of your campaign and identify the best ways to drive more visitors to your website or app.
Blueshift supports both UTM and custom tracking parameters.
Note
Contact support@blueshift.com to add a default set of tracking parameters to all campaign triggers in your account.
UTM parameters
You can specify values for the 5 UTM parameters here:
- UTM source: the source of your traffic. For example, Blueshift.
- UTM campaign: the campaign name. For example: Abandoned Browse.
- UTM medium: the medium the link was used on, such as email, SMS, etc.
- UTM content: optional parameter for additional details for A/B testing and content-targeted ads.
- UTM term: optional parameter suggested for paid search to identify keywords for your ad.
You can specify static values, as explained in the examples above, or you can specify dynamic values using liquid variables. So you could specify an attribute from any of the below-mentioned entities or a combination thereof:
- A user
- A recommendation
- An external fetch
- An event
- A transaction
When the message is rendered, these variables are replaced with actual values for a specific customer. You can then slice and dice your campaign performance using these attributes on a third-party analytics platform like Google Analytics. For example, if you use content = {{user.gender}}, you can see how your campaign performed for men compared to women using the content param.
Custom parameters
In addition to standard UTM parameters, you can also include custom URL tracking parameters. Similar to UTM parameters, you can include Liquid expressions to set these attributes.
Note: You can add tracking parameters directly to links in your message template. Tracking parameters defined in the trigger settings do not overwrite those specified in the creative. They only get added to links if they don't already have these parameters.
Specifying a direct value for a tracking parameter is saved in both sent and non-sent UCT parameters. If you add a Liquid expression as the value for a tracking parameter, the resulting value for the Liquid expression is saved. For example, if the value of the tracking parameter is set as {{my_param}}, and if the value of the Liquid expression is rendered as "abcd," the rendered value "abcd" is saved as the sent UCT, but the expression {{my_param}} is saved as the non-sent UCT. You can obtain the rendered value in non-sent UCTs by getting it from the sent UCT with the same message_uuid as the non-sent UCT.
Link tracking and iOS 17
Apple's iOS 17 contains a major privacy enhancement called Link Tracking Protection. This feature offers increased user-level tracking safeguards in Messages, Mail, and Safari Private Browsing. It detects user-identifiable tracking parameters in link URLs and automatically removes them.
Does this enhancement impact emails sent from the Blueshift platform?
No. These changes will not impact your ability to track links or how you measure campaign performance on the Blueshift platform.
The Blueshift team has thoroughly reviewed and tested the upcoming changes, and here are our takeaways:
- Only known ad link tracking parameters might be impacted depending on how customers access the link. Examples of such parameters include Google Adwords (gclid), Facebook (fbclid), Twitter Advertising (twclkd), Mailchimp (mc_eid), and Instagram (igshid).
- There will be no impact on UTM, custom tracking params, or redirect params.
- Your campaigns and reports will continue to work like they did in the past.
Message expiration
This setting is available for in-app messages only.
- It allows you to set an expiration date for the message.
- Users logging into your app after the expiration date will not see the message. This ensures that infrequent users of your app don’t see messages that are old or stale.
- You can specify that an in-app message expires based on one of the following:
- The amount of time that has passed since it was first sent.
- A specific date and time (available for one-time sends only).
- The default setting to expire in-app messages is 30 days. The maximum expiration time can be set as 90 days (2160 hours or 13 weeks).
Note
- If you set criteria for users to re-qualify for the campaign, make sure that the message expiration period is equal to or shorter than the re-qualification period. This prevents users from getting the same message multiple times due to re-qualification.
- For recurring campaigns, the message expiration period should fit within the campaign's repeat cycle. This prevents users from getting the same message multiple times if they don't open the app during that time.
Action
- This setting is available for Live Content and Audience Sync triggers only.
- It allows you to specify whether you want to show the selected Live Content/Paid Media campaign to the customer or whether you want to hide it from the customer.
- The default action is to show the selected Live Content/Paid Media campaign.
Live content trigger vs. live content campaign
A campaign journey can only perform push-type actions, such as sending a message, making an API call, etc. Once a journey has completed the action for a given customer, it moves to the next one. A campaign journey cannot be used to fetch content on demand. That is the job of a Live Content campaign.
The main reason you want to use a Live Content trigger in the journey builder is to plan and visualize all your customer touchpoints across all channels in a single location. The job of the Live Content trigger is to control the audience of a Live Content campaign. Suppose a customer meets all the delay and trigger criteria specified in the Live Content trigger. In that case, the trigger will instruct the selected Live Content campaign to show/ hide the content (based on the configured 'action') to/from the customer the next time they visit your website. This is why you still need to create a Live Content campaign and launch it first in order to use a Live Content trigger in a journey.
Metrics
Since the job of a Live Content trigger is to add/ remove a customer to/ from a Live Content campaign, you will not see any engagement stats (sends, opens, clicks, etc.) for this trigger. All engagement stats will be tied to the Live Content campaign that is actually responsible for displaying the content to the customer. Customer flows through Live Content triggers will be tracked with 'action' = 'journey' and 'action_type' = 'live_content' in campaign activity reports.
Audience sync trigger vs. syndication
The main reason you want to use an Audience Sync trigger in the journey builder is to plan and visualize all your customer touchpoints across all channels, including paid media, in a single location. The job of the Audience Sync trigger is to control the audience of a Syndication. Suppose a customer meets all the delay and trigger criteria specified in the Audience Sync trigger. In that case, the trigger will instruct the selected syndication to add/remove the customer to/from the destination (based on the configured 'action'). This is why you still need to create a Syndication and launch it first in order to use an Audience Sync trigger in a journey. Additionally, the syndication will run at the time and cadence specified in the syndication setup, independent of when the syndication trigger gets evaluated. For example, if your syndication job runs every day at 9 AM and a syndication trigger sends customer A to the syndication at 12 PM on Monday, customer A won't be syndicated until the syndication job runs again at 9 AM on Tuesday.
Metrics
Since the job of an Audience Sync trigger is to add/ remove a customer to/ from a Syndication, you will not see any engagement stats (sends, opens, clicks, etc.) for this trigger. Customer flows through Audience Sync triggers will be tracked with 'action' = 'journey' and 'action_type' = 'syndication' in campaign activity reports.
Create a campaign API
The Create a campaign API allows you to configure and launch campaigns programmatically. This includes options for specifying campaign settings, triggers, and more. It also supports advanced features like dynamic adapter selection using Liquid expressions.
Comments
0 comments