Skip to main content
This feature is part of the Streams paid add-on. To check what’s available for your plan, refer to Plans and Pricing. To enable it for your account, contact your MoEngage Customer Success Manager (CSM) or the Support team.

Overview

Secure File Transfer Protocol (SFTP) is a network protocol for securely accessing, transferring, and managing large files and sensitive data over any reliable data stream. Designed by the Internet Engineering Task Force as an extension of Secure Shell (SSH) version 2.0, SFTP provides secure file transfer capabilities.

How Does MoEngage Work with SFTP?

MoEngage allows customers to automatically import users and events from their SFTP servers and export events from MoEngage through flat files. Integration with SFTP servers will allow MoEngage to:
  • Share periodic exports of campaign interaction events in JSON format.
  • Support for username-password authentication.
  • Support for VPC/private endpoints of the hosts.
You can export all user events and campaign events that are received or generated by MoEngage to your SFTP servers. You can further analyze the exported data to gain insights into user behavior, preferences, and more.
MoEngage utilizes the Paramiko (4.0.0) library to establish a native connection to your SFTP servers. This routine upgrade ensures that all integrations remain robust and comply with modern encryption standards.

Integration

Prerequisites

  • Ensure you have connection access to your SFTP server. To create one, refer to Configure a New SFTP Connection.
  • The export option is enabled only when you set up at least one connection.
  • MoEngage requires permissions to create folders and write files on your SFTP server. Give full write access to a dedicated MoEngage directory on your SFTP server.
  • If your system requires IP whitelisting, refer here.

Set Up Your Export

  • The export option is enabled only when you set up at least one connection.
  • MoEngage requires permissions to create folders and write files on your SFTP server. It is recommended to give full write access to a dedicated MoEngage directory on your SFTP server.
  • Exports to SFTP are part of the Streams add-on. Please reach out to your dedicated MoEngage CSM (customer success manager) to get it enabled for your account.
To enable SFTP Exports on the MoEngage App Marketplace:
  1. On your MoEngage UI, go to the App Marketplace.
  2. Search for “SFTP”.
  3. Go to the Integrate tab and click + Add export.
  4. Enter the export details: Export details panel for an SFTP export, with the export name, connection, folder path, user properties, events and frequency
    MoEngage does not recommend frequently changing your export frequency, as this might result in data loss or duplication.
  5. Click Save export. Your export will be saved and when the Export status toggle is turned on, MoEngage will start exporting files to the specified folder path on your SFTP server based on the selected export frequency.
MoEngage utilizes the Paramiko (4.0.0) library to establish a native connection to your SFTP servers. This routine upgrade ensures that all integrations remain robust and comply with modern encryption standards.

Events and Attributes

With the MoEngage and SFTP integration, you can export all events coming into MoEngage to your SFTP servers. By default, MoEngage tracks some standard events and user properties through its SDKs. You can read about our standard events and attributes here. You can also export any custom user-defined event you tracked in MoEngage.

Data Export Format

In the sample folder path:
  • <folder_path> is the prefix folder path given by you.
  • <connection_name> is the connection name sluggified as entered by you.
  • File number is optional in case we split the files.
Note: The file naming convention change will be effective December 25, 2025. The file naming format for exports is being updated from an epoch timestamp to a unique string. Ensure any data pipelines are configured to handle the new format.
  • Current name (epoch timestamps): export_day=2025-10-28/event_exports_1761689701.json.gz
  • New name (unique str) : export_day=2025-10-28/event_exports_50492790da7cc2a0674fb51fa5046e3c.json.gz
You can download a sample file from here. This is a GZIPPED file and you must extract it before you can view the files. For the full list of events and attributes exported, refer to the Data Exports Glossary.

Export Failure Policy

MoEngage pauses an export that keeps failing. While it is paused, MoEngage collects the events the export would have delivered, and you replay them after you fix the problem.

When MoEngage Pauses an Export

MoEngage will retry an export multiple times before marking it as failed. The export will be paused if multiple scheduled exports fail, depending on your chosen export frequency: When MoEngage pauses an export, it alerts you and shows the export as Paused on the App Marketplace.

What Happens While an Export Is Paused

A paused SFTP export on the Integrate tab, with Export status turned off and the Paused label beside it MoEngage collects the events the export would have delivered and keeps only the most recent 7 days. If the export stays paused for longer than a week, MoEngage drops the oldest days as newer ones come in. If an export pauses more than once before you replay, MoEngage combines the data from all those pauses, provided it falls within the 7-day window.

Resume an Export

Find the Failure Reason

On the App Marketplace, click the Integrate tab, and then hover over the Paused label on the export. MoEngage names the reason for the failure, such as a login user that does not have write permission on the destination folder, and tells you how to fix it. The Paused label hover on the Integrate tab, showing the failure reason and what you need to do

Enable the Export

Fix the cause at your end, and then turn on Export status for the export. Do this as soon as you can, because the 7-day window keeps moving while the export stays paused. When you enable the export, MoEngage stops collecting and sets aside what it has: the last 7 days of paused data, or all of it if the pause was shorter. This is the data you can replay. It stays fixed from then on, and does not reduce further even if you wait to replay it.

Replay Paused Data

Request a Replay

MoEngage saves the data it collected while the export was paused. An export with data waiting shows a Replay available label on the Integrate tab. To replay, perform the following steps:
  1. Hover over the Replay available label, or open the kebab menu on the export.
  2. Click Replay paused data. SFTP export with a Replay available label on the Integrate tab and the Replay paused data option
  3. In the Replay paused data dialog box, click Confirm. Replay paused data dialog box asking you to confirm, with the Confirm button
A replay sends everything MoEngage collected while the export was paused. MoEngage backfills the data into the date folders it would have written to at the time, rather than writing it to a new location. You can replay at any time until 30 days from the date the oldest paused data was collected. After that, the data is no longer available.
Replay before the export pauses again. If it pauses a second time before you replay, MoEngage adds the new paused data to the data still waiting from the first pause. The combined data is then trimmed back to the most recent 7 days, so if the two pauses are more than 7 days apart, the older data is lost.For example, your export pauses on day 1. You enable it but do not replay. It pauses again on day 20. Since that is 19 days later, the day 1 data falls outside the 7 day window and is gone, even though its 30 day replay window had not expired. If the second pause had happened within 7 days of the first, the day 1 data would still be included.

Replay Results

When the replay finishes, MoEngage emails the user who requested it with one of the following results: You can run only one replay per export at a time.

Avoid Duplicate Data

Every replay sends the whole collection again, because MoEngage does not deduplicate. If you replay more than once, deduplicate at your end on the event_uuid field, which is unique for each event. For the fields in the export, refer to the Data Export Glossary.

Export Paused Alerts

MoEngage alerts you when it pauses an export, so you can fix the issue and replay the data collected while the export was paused. MoEngage subscribes workspace admins to the Data Exports system alert by default, and adds the user who creates or updates an export. To subscribe or unsubscribe anyone else, go to the Alert Management page. Subscribing or unsubscribing changes notifications only for that person, and does not affect anyone else’s subscription.

Frequently Asked Questions

MoEngage is holding data it collected while the export was paused. Hover over the label or open the kebab menu, and then click Replay paused data.
MoEngage keeps only the most recent 7 days of paused data, so a three-week pause leaves only the last 7 days to replay.
MoEngage delivered some of the data and not the rest, usually because the destination rejected part of it. Fix the cause and replay again. The next replay sends the whole collection, not only the part that failed.
No. You can run only one replay per export at a time. Wait for the result email before you request another.
Every replay sends the whole collection again, because MoEngage does not deduplicate. Deduplicate at your end on the event_uuid field, which is unique for each event.
It typically takes up to 30 minutes for the automated data exports to be set up for your account and for you to start seeing data there.
Yes, if you need to export new events at a later time, you can always edit your configuration on the App Marketplace and get the new events added to your exports.
As of now, you cannot export historical data using Automated Data Exports. Once configured, you will start seeing data for each event from the time you enabled your exports.
If your billing plan does not cover this already and you need to get this enabled at a later time, you would need to work with your Customer Success Manager to get this included in your billing plan. Based on the amount of data that MoEngage will place in your Data warehouse/Partner/API on a monthly basis, this could lead to additional charges.
No, Data Exports is primarily built to export your Events in near real-time and user properties in MoEngage are updated asynchronously so it is currently not possible to guarantee the latest values of user properties in the exports.