All Collections
Delivering surveys via MoEngage in-app messages
Delivering surveys via MoEngage in-app messages
Updated over a week ago

This is a new feature. We'd love to hear your feedback! Contact your Iterate account representative for assistance or questions.

With the MoEngage SDK installed in your app, you can use the segmentation and targeting tools available in MoEngage to deliver in-app messages to a specific portion of your audience based on any trigger or custom segment.

Now, Iterate's integration with MoEngage allows you to deliver Iterate surveys natively and seamlessly as an in-app message, using only the MoEngage SDK and without any additional setup.

  1. Make sure you've added your App ID, Data Center ID, Data API ID, and Data API Key in your Iterate settings, as described here.

  2. Next, you'll turn on the toggle in the MoEngage settings section of your company settings page to 'Enable In-App Message surveys'. Before you do this, you'll need to reach out to our support team via chat to request it to be enabled and give them your MAU count from your MoEngage dashboard

    Once you've done that, turn the toggle on to enable in-app messages.

  3. Create a new survey in Iterate. For the survey type, choose "MoEngage Message". Add questions, and if appropriate a prompt message to be shown before the survey. (Don't see this option? Make sure you've enabled the toggle from step 2)

  4. In the "Publish" tab for your survey, select "In-App Survey" as the MoEngege message type, then copy the code snippet under "Copy and paste your embed code"

  5. Create a new In-App Messaging campaign in MoEngage. Set your target platforms, criteria, and audience as you need. Click 'Next', then select the 'Start from scratch' tab, then the 'Custom HTML Upload' as the template.

  6. Delete all of the pre-populated HTML so the input field is completely empty, then take the code you copied in step 4 and paste it into the HTML input.

  7. Click next and make sure you disable the option to 'Auto dismiss message after 60 seconds'

  8. Continue setting up your campaign as you would any other in-app messaging campaign

Using custom fonts

Technical difficulty: easy

If you'd like to use a custom font in your Iterate survey, you can import your custom font and override the default font-family specified in our HTML embed code. Example below

Import your font

The method used to import your font will depend on your file type. Talk to your engineering team to find out which method to use.

@import url('');

Override the font-family

<style type="text/css">
̶h̶t̶m̶l̶ ̶{̶ ̶
f̶o̶n̶t̶-̶f̶a̶m̶i̶l̶y̶:̶ ̶-̶a̶p̶p̶l̶e̶-̶s̶y̶s̶t̶e̶m̶,̶ ̶B̶l̶i̶n̶k̶M̶a̶c̶S̶y̶s̶t̶e̶m̶F̶o̶n̶t̶,̶ ̶'̶S̶e̶g̶o̶e̶ ̶U̶I̶'̶,̶ ̶R̶o̶b̶o̶t̶o̶,̶ ̶O̶x̶y̶g̶e̶n̶,̶ ̶U̶b̶u̶n̶t̶u̶,̶ ̶C̶a̶n̶t̶a̶r̶e̶l̶l̶,̶ ̶'̶O̶p̶e̶n̶ ̶S̶a̶n̶s̶'̶,̶ ̶'̶H̶e̶l̶v̶e̶t̶i̶c̶a̶ ̶N̶e̶u̶e̶'̶,̶ ̶s̶a̶n̶s̶-̶s̶e̶r̶i̶f̶;̶ ̶

html {
font-family: 'Rubik Pixels';

Passing MoEngage user attributes to Iterate

Technical difficulty: medium

In some cases, you may want to make attributes from users' profiles in MoEngage available to Iterate, so that you can use those attributes to help segment and filter your survey responses in the Iterate dashboard, or use the data to personalize your survey using Dynamic Text.

Example: an e-commerce marketplace might want to include an attribute that identifies a user as a "buyer" or a "seller", so they can then filter their survey responses in Iterate to only show buyers or sellers.

By default, Iterate will include only the user's MoEngege ID via the integration. If there are additional attributes you'd like to include, you can add them to the HTML code provided in the "Publish" tab of your survey.

Look for the following lines in that HTML code:

"userTraits": {
"external_id": "{{UserAttribute['uid']}}",

To add attributes, include an additional line in this JSON object where the key is the attribute name as you'd like it to appear in Iterate, and the value is a MoEngage personalization tag (note it should be surrounded by double quotes).

For example, to include the user's first name, add the following line:

"userTraits": {
"external_id": "{{UserAttribute['uid']}}",
"first_name": {{UserAttribute['u_fn']}}",

Important Note: Once created, the type of a property (e.g. 'user_id' is a number) cannot be changed. If you need to update the property type you can create a new key (e.g. 'user_id_string') or reach out to [email protected] to help.

You can also add attributes that are specific to this session or survey response, by adding an additional field to the JSON object called responseTraits:

"userTraits": {
"external_id": "{{UserAttribute['uid']}}",
"first_name": {{UserAttribute['u_fn']}}",
"responseTraits": {
"survey_campaign_name": "{{UserAttribute['campaign_name']}}"

These attributes will be available as filters in the Iterate dashboard, visible when browsing survey responses, and included in exported survey data.

Did this answer your question?