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.
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.
- On your MoEngage UI, go to the App Marketplace.
- Search for “SFTP”.
- Go to the Integrate tab and click + Add export.
-
Enter the export details:

- 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.
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
<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.
- 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
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:What Happens While an Export Is Paused

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.
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:- Hover over the Replay available label, or open the kebab menu on the export.
-
Click Replay paused data.

-
In the Replay paused data dialog box, click Confirm.

Replay Results
When the replay finishes, MoEngage emails the user who requested it with one of the following results: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 theevent_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
What does the Replay available label mean?
What does the Replay available label mean?
My export was paused for three weeks. Why can I replay only part of it?
My export was paused for three weeks. Why can I replay only part of it?
Why did my replay come back as Partially Successful?
Why did my replay come back as Partially Successful?
Can I run two replays at the same time?
Can I run two replays at the same time?
I replayed twice and I see duplicate rows. Why?
I replayed twice and I see duplicate rows. Why?
event_uuid field, which is unique for each event.How soon will I start getting the data?
How soon will I start getting the data?
Can I export additional events at a later time?
Can I export additional events at a later time?
Can I export historical data using Automated Data Exports?
Can I export historical data using Automated Data Exports?
Is there any pricing involved for Automated Data Exports?
Is there any pricing involved for Automated Data Exports?
Does Data Exports guarantee the latest user properties?
Does Data Exports guarantee the latest user properties?