Using in-app template builder

The in-app template builder allows you to:

  • create in-app message templates from scratch and edit them by using HTML, CSS, and JavaScript
    Important: The SRInApp.close() method must be included in every in-app message.
  • use the ready-made templates from the Predefined templates folder.

The Predefined templates folder provides you with templates for the most common campaign scenarios such as sending an abandoned cart, displaying a carousel with item recommendations, and displaying a simple banner with a button.

Modification of the ready-made templates doesn’t require applying changes to the template code. The template builder contains a user-friendly configuration form that brings editing down to filling out fields that define the properties of the template. This makes editing templates possible by any user regardless of the programming skills. You can simplify the editing of your own templates as well by creating custom configuration form adjusted to your needs. Thanks to this you can edit your template or create its variations dedicated for different scenarios.

Additionally, you can personalize the content of the message by using inserts. Inserts allow you to refer to customer attributes (such as name, city, size), product recommendations (for example, last seen items or added to a cart), and the results of aggregates, expressions, and metrics.

Character limits

The template to be used in an in-app message campaign cannot exceed 60,000 characters.

Editing a ready-made template


  1. Go to Image presents the Communication icon Communication > In-app messages.
  2. On the left pane, select Templates.
  3. From the list of template folders, select Predefined templates.
  4. Select one of the templates to edit.
  5. You can edit the template in two ways:
  6. After you make changes to the template, you can check the preview.
  7. If the template is ready, in the upper right corner click Save this template > Save as.
  8. On the pop-up:
    1. In the Template name field, enter the name of the template.
    2. From the Template folder dropdown list, select the folder where the template will be saved.
    3. Confirm by clicking Apply.

Creating a template


  1. Go to Image presents the Communication icon Communication > In-app messages.
  2. On the left pane, select Templates.
  3. In the upper right corner, click New Template.
  4. Use the HTML, CSS, and JavaScript tabs to define the properties of the template.
  5. If the template is ready, in the upper right corner click Save this template > Save as.
  6. On the pop-up:
    1. In the Template name field, enter the name of the template.
    2. From the Template folder dropdown list, select the folder where the template will be saved.
    3. Confirm by clicking Apply.

Adding an insert in the template code

To use data such as analysis results or product recommendations in the code of the template, use Inserts available on the upper right side of the preview.
Read more about how you can use inserts in communication with customers.

  1. Click Inserts.
    Result: A pop-up shows up.
  2. From the dropdown list, select the type of the insert.
    Result: A list of inserts of the selected type opens.
  3. Click the insert you want to add to the template.
    Result: A field with the Jinjava code appears.
  4. To copy the code to the clipboard, click the icon on the left side of the field.
  5. Paste the code in the code of the template.

JavaScript methods in in-app messages

JavaScript methods can be used to let the SDK Listeners and Delegates handle actions from in-app messaging campaigns. The methods only work when the Listeners/Delegates are implemented and running.

Every message must include a method to close or hide the message.

Close a message

This method sends an inApp.discard event when closing the in-app.

SRInApp.close()

The method has no parameters.

Close message and send an event

This method sends an additional event (inApp.discard is sent automatically) when closing the in-app.

SRInApp.closeAndTrigger(action,params,label)
  • action is the event’s action name (string) in the context.action format, for example page.visit. The maximum length is 32 characters.
  • params is an object with free-form JSON parameters to send with the event.
  • label is a string with a human-readable summary of the event. It is obligatory, but not saved in persistent storage and can’t be used in Analytics and is not displayed in the Profiles module.

Hide a message

This method sends an inApp.hide event when hiding the in-app.

SRInApp.hide()

The method has no parameters.

Open URL

This method sends an inApp.click event when a customer opens an URL by clicking a link in the message.

SRInApp.openUrl(url)

url is the address to open (string).

This method sends an inApp.click event when a customer clicks a link (deeplink).

SRInApp.openDeeplink(deeplink)

deeplink is the deeplink to open (string).

Send a custom event

This method sends a custom event.

SRInApp.trackCustomEvent(action, params, label)
  • action is the event’s action name (string) in the context.action format, for example page.visit. The maximum length is 32 characters.
  • params is an object with free-form JSON parameters to send with the event.
  • label is a string with a human-readable summary of the event. It is obligatory, but not saved in persistent storage and can’t be used in Analytics and is not displayed in the Profiles module.

Trigger a custom action

This method allows you to pass data to a custom action. You must create logic in your mobile application to perform the action, which is triggered when a Listener/Callback processes the JS method and returns the name and parameters of the custom action. The method generates an inApp.customHook event.

SRInApp.handleCustomAction(name, params)
  • name is used as the identifier that triggers a logic associated with it.
  • params is an object with free-form JSON parameters to pass to the logic.

Template editing simplification

To make your template more accessible to users without programming skills, you can add a configuration form with variables dedicated for the template, so the user can make adjustments to the template.

The effect of template editing simplification is that you can edit templates by filling out a user-friendly configuration form (available in the Config tab) whose fields define the value for each property of the template.

The process of template simplification involves replacing values with variables in the HTML, CSS, and JavaScript code elements, such as alignment, font, color in CSS, or HTML tags as title, description or buttons. You can also add a variable in the place of Jinjava elements, such as a recommendation campaign ID, voucher pool ID, or catalog name. Variables inserted in the code appear in a form the Config tab when editing the template.

List of variables

You can use the following variables:

  • String - Lets you add a field that requires a string value.
  • Select - Lets you add a dropdown list with configurable values.
  • Synerise insert select - Lets you add a dropdown list with aggregates, expressions, metrics, voucher pools, and recommendations.
  • Switch - Lets you add a field which is enabled/disabled by a toggle.
  • Color - Lets you add a color selector. You can either select a color or enter its code manually.
  • Number - Lets you add a field that requires a number. You can either select a number from a dropdown or enter it manually.

While inserting a variable in the code, you must define the ID of the variable, select the type of the variable (if you chose the Select type, you must define the scope of values available in the dropdown) and define a default value. Optionally, you can add a label and description.

Results of simplifying template editing

Instead of modifying the design of the template directly in the code, a user can go to the Config tab and define the properties of the template by filling out configuration form.

The image below presents the easy-to-edit form that lets users without coding expertise change the variable values:

Defining the settings of a string variable
Defining the settings of a string variable

Adding a variable

  1. Select one of the following tabs: HTML, CSS, JavaScript.

  2. Find a property to which you want to add a variable.

  3. On the right side, click Variable.
    Result: A sidebar appears.

  4. In the Identifier field, enter the ID of the variable.
    This will be the title of the field unless you define the Label field.

  5. From the Type dropdown list, select the type of variable.

    Lets you add a field that requires a string value.

    1. In the Label (Optional) field, enter the name of the field.
      If this field is empty, the name of the field will be taken from the Identifier field.
    2. In the Description (Optional) field, enter a short explanation of the field’s purpose.
    3. In the Default Value field, enter the default value.

    A select variable
    A select variable during configuration
  6. Optionally, to modify the order of variables appearing in the configuration form, add the order parameter to the variable formula (for example, #### type: "string", id: "string", label: "Text", order: 1 !####).

  7. In the upper right corner, click Add.
    Result: In the template code a variable will appear (it starts with ####)

A select variable
A select variable after configuration

Previewing templates

  1. To check the preview of the template for a particular customer or a product, click the Preview button on the upper left side.
  2. Enter the ID of a customer or a product.
  3. Click Apply.
😕

We are sorry to hear that

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

😉

Awesome!

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

Close modal icon Placeholder alt for modal to satisfy link checker