Using Blueshift’s Cloud Apps, you can orchestrate your in-house and custom marketing apps in campaigns/journeys. You can orchestrate cross-channel user journeys that include Email, Push, SMS along with Cloud App APIs that message WhatsApp, Slack, WeChat, Direct Mail, Salesforce CRM, Zendesk Support, Google Analytics and any other application that uses REST APIs. Cloud Apps can include 1:1 personalization and predictive content, including user attributes, predictive scores and content recommendations. 

Blueshift supports API calls made to a third party REST API with a JSON payload. Cloud App Templates support Blueshift’s template language, Liquid, to include dynamic content. This allows including user attributes or catalog attributes in the template. Each template can also be customized with the output from a recommendation algorithm created using the Recommendation Studio.

Why use Cloud Apps?

Marketing teams use several user engagement tools, messaging systems, in-house apps, analytics & CRM systems. Blueshift's Cloud App channel empowers marketing teams to unify orchestration across all these systems by orchestrating APIs. 

  • Unify orchestrating cloud-based applications in user journeys that include Email, Push, SMS as well as custom messaging channels and APIs
  • Leverage AI powered messaging such as predictive scores & content recommendations in CRM, support systems and in-house apps





Use Cases

Augment user journeys by extending personalized messaging in 3rd party apps. Here are some sample use cases: 

  • New Channels: Engage users across new touch-points
    • Reach out to users on new messaging channels such as WhatsApp, Facebook Messenger, WeChat or channels that are not natively supported.
  • New ESPs: Extend messaging to ESPs
    • Extend messaging to new ESPs, that may not have native connectors in Blueshift.
  • Ads: Update audiences in re-targeting tools
    • Update your audience in re-targeting tools, such as AdRoll for display re-targeting when those users have not engaged over Email. 
  • Analytics: Update user state in analytics systems
    • Update Google Analytics, Mixpanel and more based on user interaction in a journey. 
  • CRM:Update your CRM system
    • Update attributes in Salesforce or other CRM based on a user action with personalized recommendations, predictive scores or journey based attributes.
  • Support: Customer support tool
    • Create a new ticket in Zendesk or a similar CS tool based on outcome from journey with personalized recommendations such as abandoned items, predictive scores or journey based attributes.
  • Collaborate: Notify an account manager or collaborate with a team
    • Notify an internal account management team over Slack or similar system. 
  • Engage:Engage users with surveys 
    • Engage users with NPS surveys or send personalized post cards.
  • Custom: Add custom templates
    • Extend the Cloud App capability by integrating with custom REST/JSON API endpoints with Zapier.



Create the Cloud App template 

Cloud Apps can be accessed through the left sidebar, under creatives.


In order to create a Cloud App template, click the “+ Template” button located on the top right corner of the Cloud App index page.

Choose a Cloud App from the available options. Choose “Custom JSON” if you can’t find an appropriate Cloud App sample.




Edit Template Info 

Edit the template name, API endpoint and authorization fields according to your requirements. The API endpoint field supports liquid expressions.


Authentication Example

Here is an example of how to use HTTP basic authentication ( to secure your API endpoint. Other authentication schemes are possible. This serves as an example of what you would do if you chose to use basic authentication. Basic authentication requires that you set an “Authorization” request header field. The value of this field should be “Basic “ followed by the base 64 encoded value of the username and password joined by a colon. For example, if your username was “user” and the password was “password”, you would do a base 64 encoding of “user:password” to get “dXNlcjpwYXNzd29yZA==\n”. The value you would send for the “Authentication” request header would be “Basic dXNlcjpwYXNzd29yZA==\n”.

Note: There are many online tools out there that can generate the base 64 encoded value for you, but it’s safest to ask one of your internal developers to do it for you.


Advanced Settings


The “Template Info” tab also allows you to change the Advanced Settings. There are 4 Advanced Settings for Cloud App templates.

  • HTTP Headers

This allows modification of the default headers of the HTTP request. The default headers are as follows:

  • User-Agent: Blueshift Webhook 1.0
  • Content-Type: application/json
  • Accept: application/json

These headers can’t be removed, but the values of these headers can be changed using this advanced setting. Additional headers can also be added. If a sample template is being used, the HTTP Headers will already be set correctly and you do not need to change this field.

  • Unique Sent Identifier 

This is present to prevent spamming a user. For example, if you are sending a net promoter score (nps) survey to users through email, but there are multiple user accounts with the same email, it will only send it to each email address once if this field is set to email. If this field is set to none, it will message all selected users, which may result in the same email address getting spammed by multiple copies of the same message.  

In addition to preventing spams, this will catch users without emails early on and not attempt to send an email to those without email addresses. By default, this field is set to none. If there is a clear user identifier, then the “Unique Sent Identifier” field should be set to that. For example, if the Cloud App sends out email to users, then it should be set to “email”.  If text messages are being sent, then it should be set to phone number. If there is no such field, it is good practice to set it to customer_id, so that no customer in the database will be messaged twice. 


  • HTTP Method  

This refers to the HTTP method being used to make the API call. If a Cloud App sample is being used, the field is already set correctly and does not need to be changed. For a custom JSON sample, the default HTTP method is “POST”. Blueshift’s Cloud App channel supports 4 HTTP methods: POST, PATCH, PUT, and GET.

  • Whether or not the payload should be sent as a url encoded form 

By default, the payload is sent as a json object with the “Content-Type” header in the request set to “application/json”. If you want the payload to be sent as a url encoded string with the “Content-Type” header as “application/x-www-form-urlencoded”, check this checkbox.


Choose Recommendation Algorithm 

The recommendation algorithm can be switched from the “Recommendation” tab. A new recommendation algorithm may be created by using Recommendation Studio.


You can also see predictive scores and affinities that are associated with a customer's profile. You can use such values to include or exclude recommendations from the message that your customers receive via the Cloud App channel. Predictive attributes are available under user_metrics.


Edit the Content

The JSON payload can be edited from the Content tab. The rendered preview of the JSON template will appear on the left hand side of the screen. It will be rendered for the user specified in the Recommendation tab (just like email).

Blueshift supports impression and click tracking for Cloud App templates, but they are not automatically tracked (like for emails). Instead, we provide impression and click callback URLs that you can include in the JSON payload:

  • Impression URL - {{tracking.impression_url}}
  • Click URL - {{tracking.click_url}}

Blueshift will record an impression or click when an HTTP GET request is issued to the respective URL. 




External Fetch

Cloud App Studio has built-in support for external fetch. You can include one or more external fetch creatives, each of which calls a unique API endpoint. You can then use the content returned by your API endpoint(s) in your in-app messages using Liquid.


For more info about how external fetch works, please refer to this doc.


Was this article helpful?
1 out of 1 found this helpful



Article is closed for comments.