Import User Data


This article describes the import of user data using the revamped User Imports UI. If your account has the older version of the UI, refer to Import User Data (Older UI). To enable the revamped UI for your account, get in touch with your CSM.

User imports enable you to import new user profiles (or) update profile data of existing users through a CSV file. This is particularly useful when migrating from other platforms to MoEngage or performing mass updates to a large user segment. Some common scenarios where this is useful are listed below:

  • Importing new users - This is useful for immediately starting with Email Campaigns & SMS Campaigns without waiting for Mobile/Web SDK integrations
  • Updating existing users - This enables you to update specific user attributes for existing users in MoEngage. This is useful when you are running campaigns that are segmented or personalized on these user attributes, like sending notifications with unique coupon codes. Note: Update existing users will not add new users. It will only update existing users.

This feature is accessible from Segment -> Import Users.


The following step-by-step process outlines how users can be imported into the MoEngage platform.

Step 1: Upload CSV list of users

The first step towards importing users is to upload the .CSV file containing the user details, including their User Attributes. MoEngage allows user lists to be imported as a list of logged-in users (users who have signed up on your website or app) or as a list of Anonymous users (users who have used/visited your app or website but have not registered themselves). These two user list types are explained in detail below.

  • Registered Users: These are users who have a registered account with your app/website. These users should have a unique identifier in your system, and for this upload, your list should mandatorily map a column that contains this unique user identifier with the user attribute "ID". This upload is mostly used to update the user attributes of these registered users.
  • Anonymous Users: These are users who have not yet signed up on your app/website, but you have some identifier to recognize them i.e. email, mobile number, etc. For this upload type, you need to mark a column from your list (email, mobile number, etc.) as the "Anonymous ID" of the user. This upload can be used to create anonymous users in MoEngage using their recognizable unique identifiers and send email/SMS campaigns.


For each upload, you can also download a sample file that clearly explains the data format expected in the CSV File. Once you have selected the upload type that you wish to perform, you can click on the “Browse" button to select your preferred .csv file. You can also drag and drop the file into the area shown in the image above.

Furthermore, you can specify whether the file contains headers or if you wish to only update details of existing users by selecting their respective options. Once the file upload is completed successfully, you can click on the “Next” button to perform the next step.



In case you provide a unique identifier for LoggedIn Users (or Anonymous Identifier for Anonymous Users) who already exist in the system, the existing users will get updated with new attributes. If the identifier does not exist, MoEngage will create a new user with that identifier.

Step 2: Configure columns of the CSV File

Mapping User Attributes

In this step, you will need to map each column of the uploaded CSV file to existing user attributes (or create a new user attribute). You will see the top 3 rows (excluding Header) and all the columns of your CSV file (scroll horizontally to see all the columns). For each column, select a user attribute from the drop-down.




  • Column names are case-sensitive. They should exactly match the name of the attribute on the dashboard.
  • You can not use "moe_" as a prefix while naming events, event attributes, or user attributes. It is a system prefix and using it might result in periodic blacklisting without prior communication.

Configuring Identifier

For LoggedIn Users, you need to mandatorily identify one of the columns as a Unique Identifier of the user by selecting ID from the drop-down.


For Anonymous users, you can identify any column as the Anonymous Identifier by hovering over the column and selecting the checkbox Anonymous ID.


Adding new User Attributes

If a column is a new attribute you are adding to your users, click on "+" and enter the name of the attribute. In case the new attribute name is the same as one of the existing attributes, you will need to enter a new name.

Adding Values with Commas

In case a value in any column contains a comma (,)- please ensure that the value is enclosed in double quotes ("") so that the value is retained without being split into multiple columns. For example, if a column contains the value (221B Baker Street, London), it should be enclosed in double quotes ("221B, Baker Street, London"). In any other form, only the data preceding the "," will be considered for the given column.

Supported data types

The following data types are supported for column values in the file:

  • String
  • Numeric
  • Boolean
  • Datetime
  • Array (String, Double, Float, Int)

Supported User Attribute Types

Type Description Value in Manifest
String Any string value. Examples of acceptable values are ABC, ABC XYZ, ABC123, and so on. "type": "string"
Double Any decimal value. Examples of acceptable values are 3.14159, 241.23, -123.1 "type": "double"
Boolean Examples of acceptable values are true, false "type": "bool"
Date Time Any date time value. The supported formats are covered in the next table.Example of acceptable values are 2019/02/22 17:54:14.933 "type": "datetime"

Supported Datetime Formats

Date and Time Format Examples
“datetime_format”: "YYYY-MM-DD"
  • 2022-01-22
“datetime_format”: "YYYY/MM/DD"
  • 2022/01/22
“datetime_format”: "DD/MM/YYYY"
  • 22/01/2022
“datetime_format”: "DD-MM-YYYY"
  • 22-01-2022
“datetime_format”: "DD-MM-YYYY hh:mm:ss"
  • 31-12-2022 12:10:33
“datetime_format”: "DD/MM/YYYY hh:mm:ss"
  • 31/12/2022 12:10:33
“datetime_format”: "YYYY-MM-DD hh:mm:ss"
  • 2019-02-22 17:54:14
“datetime_format”: "YYYY/MM/DD hh:mm:ss"
  • 2019/02/22 17:54:14
“datetime_format”: "DD-MM-YYYYThh:mm:ss.s"
  • 31-12-2022T12:10:33.882
“datetime_format”: "DD/MM/YYYYThh:mm:ss.s"
  • 31/12/2022T12:10:33.882
“datetime_format”: "DD-MM-YYYYThh:mm:ssTZD"
  • 31-12-2022T12:10:33Z
  • 31-12-2022T12:10:33+08:00
  • 31-12-2022T12:10:33-08:00
“datetime_format”: "DD/MM/YYYYThh:mm:ssTZD"
  • 31/12/2022T12:10:33Z
  • 31/12/2022T12:10:33+08:00
  • 31/12/2022T12:10:33-08:00
“datetime_format”: "YYYY-MM-DD hh:mm:ss.s"
  • 2019-02-22 17:54:14.933
“datetime_format”: "YYYY/MM/DD hh:mm:ss.s"
  • 2019/02/22 17:54:14.933
“datetime_format”: "YYYY-MM-DDThh:mm:ssTZD"
  • 2019-11-14T00:01:02Z
  • 2019-11-14T00:01:02+08:00
  • 2019-11-14T00:01:02Z-08:00
“datetime_format”: "YYYY/MM/DDThh:mm:ssTZD"
  • 2019/11/14T00:01:02Z
  • 2019/11/14T00:01:02+08:00
  • 2019/11/14T00:01:02-08:00
“datetime_format”: "YYYY-MM-DDThh:mm:ss.sTZD"
  • 2019-02-22T17:54:14.957Z
  • 2019-02-22T17:54:14.957299-08:00
  • 2019-02-22T17:54:14.957299+08:00
“datetime_format”: "YYYY/MM/DDThh:mm:ss.sTZD"
  • 2019/02/22T17:54:14.957Z
  • 2019/02/22T17:54:14.957299-08:00
  • 2019/02/22T17:54:14.957299+08:00

Language Support

You can import data in any language as long as you are using UTF-8 decodable characters.
Empty values

If your file contains empty values then these would still be imported into MoEngage. In this case, we will create/update user attribute where the value would be empty.

Skipping Column

In case you need to skip any of the columns, just click on "Skip the column" and you will not need to configure that column. To hide skipped columns, you can de-select the checkbox "Show Skipped Columns" below the configuration.


In case you want to re-include a skipped column, make sure you select the "Show Skipped Columns" checkbox and for that column click "Include & Configure"

Creating a File Segment

File segments can be created for the imported users during the user import workflow itself. This can be achieved by selecting the "Save as File Segment" toggle and providing a name for the File segment. Upon successful completion, this custom segment will start appearing in the list of file Segments from where it can be used for any campaigns.


Click Finish, and your data will be uploaded. You will see a list of all your imports, and their status will indicate if the upload has been processed. Once the upload is processed, you will get an email mentioning the details of the upload. Note: You cannot use / or Unicode characters in your file segment name; otherwise, the import will fail.

Step 3: Scheduling imports

In this step, you need to define when to import the files. MoEngage supports the following types of imports:

  1. As soon as possible: The file will start importing as soon as you click Done.
  2. At specific date and time: You can choose to run the import based on your selected Start date and Start time.


Past Imports

After your first user import, you will see a section that will show the past imports in your account and their details. 



The channel reachability and custom segments of imported users are available after thirty minutes of the import completion. We recommend that you plan your campaigns in accordance with this.

What is not supported currently?

  • Attribute Type list and other complex types (JSON, dictionaries, etc.).
  • Newline character formats other than "\n" - .The only newline character currently supported for the .csv files is "\n".Other formats like "Ctrl+M" or "\r" are not supported. 
  • If your file contains less than 5 rows, then you may face errors during file import. Please add some dummy rows to import in this case.

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

How can we improve this article?