You might not have access to this feature!

This feature is only available on our premium and enterprise plans. [Talk to our team](mailto:premium@customer.io) about upgrading your plan.

# Resend past data

[PremiumThis feature is available for Premium plans.](/accounts-and-workspaces/plan-features/) [EnterpriseThis feature is available for Enterprise plans.](/accounts-and-workspaces/plan-features/)

## How it works[](#how-it-works)

Imagine that you’ve sent source data to an analytics platform for six months. Now you want to move to a new platform—it might have features you need or just aligns better with your business needs. Do you really have to start fresh in your new analytics platform? What happens to that six months of data?

That’s what our **Resend past data** feature does: it lets you send data that you previously sent into Customer.io to a new outbound integration, so that you don’t have to start from scratch when you add a new outbound integration—like if you were to switch from one analytics platform to another.

We store incoming data forever (or for as long as you want us to) so that you can access it and replay it to outbound integrations on demand.

### Data replay limitations[](#data-replay-limitations)

Our data replay feature supports most, but not all, of our integrations.

#### We can’t replay data *from* the Track API[](#we-cant-replay-data-from-the-track-api)

To replay data to a destination, it must have been sent to Customer.io through our Pipelines API. **We can’t replay data that was originally sent to Customer.io through our Track API.** This includes integrations based on our Track API like:

*   The [Legacy JavaScript snippet](/integrations/data-in/connections/javascript/legacy-js/getting-started/)
*   Data sent to Customer.io through a Customer Data Platform (CDP) like Segment or Rudderstack because their integrations use our Track API

#### We can’t replay data *from* Reverse ETL or other syncs[](#we-cant-replay-data-from-reverse-etl-or-other-syncs)

We can’t reply data from Reverse ETL, Salesforce, or Hubspot integrations through Customer.io. But you already have the ability to pull data from these sources at will; you can effectively ‘replay data’ from these sources without Customer.io’s help!

*   [Amazon Redshift](/integrations/data-in/connections/reverse-etl/amazon-redshift/)
*   [Google BigQuery](/integrations/data-in/connections/reverse-etl/google-bigquery/)
*   [HubSpot](/integrations/data-in/connections/hubspot/)
*   [Microsoft SQL server](/integrations/data-in/connections/reverse-etl/microsoft-sql/)
*   [MySQL](/integrations/data-in/connections/reverse-etl/mysql/)
*   [PostgreSQL](/integrations/data-in/connections/reverse-etl/postgres/)
*   [Salesforce](/integrations/data-in/connections/salesforce/)
*   [Snowflake](/integrations/data-in/connections/reverse-etl/snowflake/)

#### We can’t replay data *to* these destinations[](#we-cant-replay-data-to-these-destinations)

You cannot replay data **to** data warehouses. These integrations sync data on regular intervals rather than receiving replayed historical data. However, they capture historical data during their first sync, so you can effectively “replay” data to them by creating a new integration.

*   [Amazon Redshift](/integrations/data-out/connections/amazon-redshift/)
*   [Amazon S3](/integrations/data-out/connections/amazon-simple-storage-service/)
*   [Azure Blob Storage](/integrations/data-out/connections/azure-blob-storage/)
*   [Google BigQuery](/integrations/data-out/connections/google-bigquery/)
*   [Google Cloud Storage](/integrations/data-out/connections/google-cloud-storage/)
*   [Snowflake](/integrations/data-out/connections/snowflake/)

We also can’t replay data that doesn’t go through our Pipelines API. This includes any integration relying on metrics from Customer.io:

*   [Reporting Webhooks](/integrations/data-out/connections/reporting-webhooks/)
*   [Segment (Message Metrics)](/integrations/data-out/connections/segment-legacy/)
*   [Mixpanel (Legacy)](/integrations/data-out/connections/mixpanel-legacy/)
*   [Amplitude (Legacy)](/integrations/data-out/connections/amplitude-legacy/)
*   [Rudderstack (Legacy)](/integrations/data-out/connections/rudderstack-legacy/)

## How to resend data[](#how-to-resend-data)

Contact us! For now, you’ll have to let us know when you want to resend past data, and how far back you want to go.

1.  Set up your new data-out integration.
    
2.  Double-check the [actions for the new integration](/integrations/data-out/actions/). Make sure that your past data works with the triggers and mappings for your integration.
    
3.  [Contact Customer.io](mailto:product@customer.io) and let us know that you want to resend data.
    

In the future, you’ll be able to resend data on your own!

## What outbound integrations can I send past data to?[](#what-outbound-integrations-can-i-send-past-data-to)

You can resend data to any new outgoing integration, *but* you’ll need to make sure that actions for the new integration support the source events you care about. For example, if you capture `group` events, but your new integration doesn’t have a concept of *groups*, then those events won’t apply or get mapped to your new integration.

## How long does it take to resend my data?[](#how-long-does-it-take-to-resend-my-data)

The time that it takes to resend data depends on:

*   The volume of data: how many events you want to send to your new integration.
*   Rate limits for the integration.
    
    If your integration has a rate limit of 1000 events per second and you have a million events, then it’ll take *at least* 16 minutes and 40 seconds to resend your data after we start the operation.
    
*   The total load on Customer.io during the resend operation.
    
    We process data with some elasticity. If it’s a busy day at Customer.io, it may take a little longer to resend your past data than it would on a slow weekend.