Skip to main content

Introduction

MoEngage lets you import users, events, and auxiliary data into your workspace from files (Amazon S3, SFTP, or a manual CSV upload) and directly from your data warehouse (Snowflake, BigQuery, or Databricks). This page helps you choose the right source for your use case. Once you pick a path, its dedicated setup page walks you through the entire process.
If your system requires IP whitelisting, refer to IP Whitelisting in MoEngage before setting up a data import.

Sources and Supported Entities

Each source supports a different set of entity types. Use this matrix to confirm your source can import the data you need. File Sources Data Warehouses Entity types:
  • Registered Users: Users already registered on MoEngage. Also used to update existing users in bulk.
  • Anonymous Users: Users who have not yet registered on MoEngage.
  • Events (Standard and User-Defined): Standard events such as Campaign Interaction Events, as well as your own user-defined events.
  • Auxiliary Data: User data ingested into MoEngage temporarily for specific business purposes. Available for file-based sources only (S3, SFTP, and Manual Upload), not for data warehouses.

Choose Your Import Path

Select the import method that matches where your data lives:

Set Up a File Import

Automate imports from files dropped in Amazon S3 or an SFTP server, on a one-time or periodic schedule.

Set Up a Data Warehouse Import

Import directly from Snowflake, BigQuery, or Databricks tables and views. Connection-driven, with one-time or periodic syncs.

Manual Uploads

Upload a CSV directly in the dashboard for users or events. One-time only, no periodic scheduling.

Auxiliary Data

Import supplementary data via S3, SFTP, or CSV, using a simple primary-key mapping model.

How Imports Work

The following mechanics are common to every import source. Source-specific setup steps, limits, and failure behavior live on each source’s setup page.

Imports Dashboard

The Data Imports dashboard lists all your imports and their key details:
Import schedule and detail times shown on the Data Imports dashboard use your app’s configured timezone. If no app timezone is set, they display in UTC by default. Set the app timezone from Settings to see these times in your preferred timezone. This display timezone is separate from the requirement that mapped timestamp columns (such as Event time or Updated at) always be in UTC.

Import Statuses

Every import on the dashboard carries one of the following statuses:
  • Scheduled: The import is scheduled to run in the future.
  • Processing: The import is currently running.
  • Successful: The import completed successfully.
  • Partial Success: At least one file (or row) was imported with partial success.
  • Failed: The import failed. Hover over the status to see the reason.
To see per-file details, rows in file, users created/updated/failed, events added/failed, aux data added/failed, and rows skipped, open the three-dot Actions menu and select View Details. You can export a copy of an imported file for up to 60 days.

Trigger Imports

You can trigger imports in the following ways:
  1. Manually: Trigger a periodic import from the imports page by clicking Actions. Triggering an import within five minutes of its scheduled time may cause an error.
  2. API: Trigger imports using the File Imports Trigger API. Data Warehouses do not currently support these APIs.

Mapping Files and Data Mapping

A mapping file contains the mappings between each source column and a MoEngage attribute, along with the data type of the column. The file must be in JSON format. Instead of mapping columns one by one on the dashboard, you can upload a mapping file to automate the mapping.
For each column, provide the following fields:
  1. column (required): The column name from the source file. For Level 2 keys in a JSON file, use dot notation (key1.key2).
  2. moe_attr (required): The MoEngage attribute to map the column to. Ensure each column maps to a unique moe_attr.
  3. type (optional): The data type of the column. See the supported types below.
  4. datetime_format (optional): The date-time format. Mandatory for DateTime fields only.
  5. is_skipped (optional): A boolean field. Any column marked true is skipped during import.

Standard User Attributes for Reference

Map your source columns to MoEngage standard user attributes using the keys below. For the exhaustive list, refer to your Data Management dashboard.
Track standard string attributes with the correct data type. For example, if First Name (u_fn) is ingested as a number or an array instead of a string, the sample users on the Create segment page fail to load with a 500 error (“There seems to be an error”). To fix this, pin the attribute’s data type to String on the Data Management dashboard and re-send the corrected data for the affected users.

Supported Attribute Types

MoEngage does not support the | (pipe) character in non-array type columns. Ensure your String, Numeric, and Boolean columns do not contain this character.

Reserved Keywords for User Attributes

MoEngage reserves the following keys. Do not use them when you map or track user attributes.
  • USER_ATTRIBUTE_UNIQUE_ID
  • USER_ATTRIBUTE_USER_EMAIL
  • USER_ATTRIBUTE_USER_MOBILE
  • USER_ATTRIBUTE_USER_NAME
  • USER_ATTRIBUTE_USER_GENDER
  • USER_ATTRIBUTE_USER_FIRST_NAME
  • USER_ATTRIBUTE_USER_LAST_NAME
  • USER_ATTRIBUTE_USER_BDAY
  • USER_ATTRIBUTE_NOTIFICATION_PREF
  • USER_ATTRIBUTE_OLD_ID
  • MOE_TIME_FORMAT
  • MOE_TIME_TIMEZONE
  • USER_ATTRIBUTE_DND_START_TIME
  • USER_ATTRIBUTE_DND_END_TIME
  • MOE_GAID
  • INSTALL
  • UPDATE
  • MOE_ISLAT
  • status
  • user_id
  • source

Supported Datetime Formats

Use these formats in the datetime_format field of your mapping file, or when configuring date-time columns during setup.

Frequently Asked Questions

Click the ellipsis on the right and click View to look up the Import details. Hover over the Failed Status to learn the reason.
In such cases, the new data will still be added to the archived segment. You can unarchive the segment as required.
Once an import process starts, it can’t be stopped midway. This is because the data goes through several steps, and interrupting it could lead to incomplete or inconsistent results. It’s best to let the current import finish.
Yes, you can stop future scheduled imports from running automatically. To do this, find the import schedule and select the Archive option from the Actions menu on the Data Imports dashboard. This will prevent it from running on its next scheduled time.
If an import appears to be stuck or is taking longer than usual, it’s best to wait. The system has checks in place to handle these situations automatically and retry if necessary. Manually starting the same import again while it’s still processing can cause conflicts and may prevent the original import from completing successfully.