# Migrate from CRM sequences to Reply

> Moving outreach out of your CRM's own cadences: why you connect the CRM rather than export, and how to keep it as the record without sending from it.

**This migration is different from the others: instead of exporting a CSV you connect the CRM, and contacts flow in continuously. Your CRM stays the system of record and Reply becomes where outreach happens. Carry the CRM's do-not-contact field across before anything sends.**

_Status: Reviewed – written against Reply's product documentation on 2026-09-22, not yet confirmed against the running product._

## Why teams move outreach out of the CRM

### Sending is a specialism, and it shows

Mailbox warm-up, gradual volume ramps, pacing, randomized delays and authentication checks run continuously. CRM sending tools rarely go beyond a daily cap. See [Deliverability](/capabilities/deliverability/).

### More than email, in one sequence

LinkedIn, calls, SMS and WhatsApp steps sit alongside email in the same sequence, branching on behaviour. See [Multichannel outreach](/capabilities/multichannel-outreach/).

### Replies are classified before they reach you

Out-of-office, auto-responders and bounces are separated from real replies and kept out of your reply rate, rather than everything arriving as one undifferentiated stream. See [Reply management](/capabilities/reply-management/).

### The CRM stays the record

Two-way contact sync keeps both sides current, and outreach activity is written back so the CRM record still tells the whole story. See [Integrations](/integrations/).

Ready to switch? [{{MIGRATION_CTA_PRIMARY_LABEL}}]({{MIGRATION_CTA_PRIMARY_URL}}) or [{{MIGRATION_CTA_SECONDARY_LABEL}}]({{MIGRATION_CTA_SECONDARY_URL}}).

## Migration at a glance

| | |
| --- | --- |
| **Transfers directly** | Contacts and mapped fields, **continuously through the integration** rather than as a one-off file |
| **Rebuilt in Reply** | The cadences themselves, as sequences |
| **Doesn't transfer** | Cadence logic and enrolment rules, and the CRM's own send history |
| **Do first** | Get your CRM's opt-out or do-not-contact field into Reply's blacklist |
| **What you need** | A CRM user with the right permissions, mailboxes connected in Reply, and a switch-over date |

## Before you start

- [ ] Confirm which CRM: [HubSpot](/integrations/hubspot/), [Salesforce](/integrations/salesforce/), [Pipedrive](/integrations/pipedrive/) and [Copper](/integrations/copper/) sync natively
- [ ] A CRM user with read and write access to the objects you sync
- [ ] The CRM field that records opt-out or do-not-contact, identified by name
- [ ] Mailboxes connected and authenticated in Reply ([guide](/how-to/connect-a-mailbox/))
- [ ] Agreement on when CRM sending stops

## Sending infrastructure without the warm-up wait

The step that most often stalls a migration is not the data; it is sending reputation. New domains and new
mailboxes need weeks of careful ramping before they can carry real volume, and a migration that switches over
on day one from cold infrastructure lands in spam.

You have three ways through this, and the right one depends on how much notice you have.

**Keep sending from the mailboxes you already use.** If your current domains have a good record, connect those
mailboxes to Reply and nothing about your reputation changes. This is the simplest path and the one to prefer
when your existing setup is healthy.

**Buy domains and mailboxes inside Reply and warm them yourself.** You can register sending domains and have
mailboxes created without going to a registrar. Allow up to five mailboxes per domain. The first mailbox
usually appears within a few minutes; the rest can take up to 48 hours. Then warm them before they carry
volume: which still takes weeks, so start this well before your switch-over date.

**Buy mailboxes that are already warmed.** Reply also sells ready-warmed packages from a pool that has been
warming in advance. A package is one domain plus exactly three mailboxes, and they arrive able to send with no
warm-up setup. This is the option that removes the wait.

Three things to know before you choose a ready-warmed package:

- It is bought and cancelled as a single unit. You cannot remove one of the three mailboxes or add a fourth.
- The sender names on the mailboxes are assigned by the provider, not chosen by you.
- The package cannot be renewed. Plan for it as a term, not as a permanent domain.

Whichever route you take, ramp volume rather than switching everything at once, and keep your old sending
running until the new mailboxes have carried real traffic for a while.

## How CRM cadences map to Reply

| In your CRM | In Reply | What changes |
| --- | --- | --- |
| Contact or lead | Contact | Kept in step by the integration, not a one-off import |
| Company or account | Account | Synced where the integration supports it |
| Cadence, sequence, workflow | Sequence | Rebuilt |
| Enrolment rule | Filter plus an add-to-sequence action | Reply does not read your CRM's enrolment logic |
| Do-not-contact field | Blacklist entry | Must be carried across deliberately – it does not sync itself |
| Logged email or call | Activity written back from Reply | One direction only: Reply → CRM |

## Step 1: Connect the CRM instead of exporting

Set up the integration first. This is what makes this migration different: contacts arrive and stay current on their own, rather than being frozen into a file the moment you exported it.

Follow the page for your CRM ([HubSpot](/integrations/hubspot/), [Salesforce](/integrations/salesforce/), [Pipedrive](/integrations/pipedrive/) or [Copper](/integrations/copper/)) and switch on the contact sync step before anything else.

If your CRM is not one of those four, this is not your guide: export a CSV and follow [Migrate from another sales engagement tool](/migration/sales-engagement-tool/) instead.

## Step 2: Carry your opt-outs across

**Before anything sends.**

Your CRM's do-not-contact field **does not become a Reply blacklist entry on its own.** Export the contacts carrying it and load them into the blacklist as a deliberate, separate step.

This is the single most likely thing to go wrong in this particular migration, precisely because the rest of the data arrives automatically; it is straightforward to assume the suppression list came with it. It did not.

## Step 3: Choose who is in scope

Use the integration's filtering so only the contacts you actually want reach Reply, rather than the entire database. Then use Reply's own filters and lists to decide who enters which sequence. See [Filter contacts](/how-to/filter-contacts/).

## Re-enrich the contacts you bring across

An exported list is a snapshot of the day it was exported. People have changed jobs, companies have been
acquired, and a proportion of the addresses no longer accept mail. Sending to that list from new infrastructure
is the fastest way to damage a domain you have just set up.

Do two things before your first send.

**Validate the addresses.** Validation checks whether an address will accept mail before you send to it. It
costs one credit per address, drawn from a balance kept separately from other enrichment, and it runs one job
at a time. Removing the undeliverable addresses first is the single most valuable thing you can do for a new
domain's reputation.

**Fill the gaps that matter.** Reply can find missing details for contacts you already have: enriching from a
LinkedIn profile costs 1 credit, finding an email address costs 2, and finding a phone number costs 3. Those
three draw on one shared balance, so a phone lookup moves it three times as fast as a profile enrichment.

Two behaviours to know before you run enrichment across a whole imported list:

- **A profile enrichment is charged even when it finds nothing**, because the credit pays for the lookup. An
 email or phone search refunds a miss. Enrich selectively rather than across everything.
- **Your keep-existing choice covers contact fields only.** Company records are always overwritten with what
 the provider returns, and a contact whose employer has changed can be moved to a different company
 altogether. If you curated company data in your old tool, expect it to be replaced.

## Step 4: Rebuild your cadences as sequences

Recreate the steps, the timing and the copy. Two decisions your CRM made differently:

- **Which steps a person performs.** Reply separates automatic steps from ones that create a task.
- **What a reply does.** A sequence either finishes a contact on reply or keeps sending.

Your CRM's enrolment rules do not come across; the equivalent in Reply is a filter plus adding contacts to the sequence. See [Create a sequence](/how-to/create-a-sequence/).

## Step 5: Turn on activity write-back

So the CRM record still shows the whole story, switch on the activity sync steps. Two things to know before you rely on it: it travels **from Reply to the CRM only**, and enabling it **does not backfill**: only activity from that point forward is written. One supported CRM has no activity sync at all. See [Why is Reply activity not showing in my CRM?](/troubleshooting/activity-not-logged-in-crm/).

## Step 6: Stop sending from the CRM

Turn off the cadences, and tell everyone who could start one. While both are live the same contact can receive from your CRM and from Reply on the same day, and neither side knows about the other.

## Step 7: Switch over

1. Stop CRM sending.
2. Launch one Reply sequence with a small group.
3. Confirm the sends went out and that activity is appearing on the CRM record.
4. Add the rest.

## What doesn't transfer

- **Cadence logic and enrolment rules.** Rebuilt as sequences plus filters.
- **The CRM's own send history.** It stays in the CRM. Reply writes new activity from the day you enable it.
- **Do-not-contact status**, unless you carry it across yourself.
- **Contacts' positions in a cadence.** Everyone starts at the beginning.

## Check your migration

- [ ] Contacts are syncing, and the count matches what your filters should produce
- [ ] The CRM's do-not-contact list is in the blacklist, spot-checked
- [ ] CRM cadences are switched off
- [ ] Reply activity is appearing on the CRM record
- [ ] Nobody is receiving from both systems

## FAQ

### Do I still need a CSV export?

No. That is the point. The integration keeps contacts current instead. Export only your do-not-contact list, which does not sync.

### Will my CRM still show outreach activity?

Yes, once you enable activity write-back. It goes one way and does not backfill, so it starts from the day you switch it on.

### Which CRMs work this way?

HubSpot, Salesforce, Pipedrive and Copper sync natively. Anything else should follow the general guide and a CSV export.

### Can I keep running one cadence in the CRM?

You can, but split the audience so no contact is reachable by both. Otherwise the same person receives from both systems.

## Ready to move to Reply?

[{{MIGRATION_CTA_PRIMARY_LABEL}}]({{MIGRATION_CTA_PRIMARY_URL}})

Want to talk it through first? [{{MIGRATION_CTA_SECONDARY_LABEL}}]({{MIGRATION_CTA_SECONDARY_URL}})

Already moving and stuck on a step? {{MIGRATION_HELP}} Open the
[Reply Help Center](https://support.reply.io/) and send the support team a message.
Include the tool you're moving from, roughly how many contacts and sequences you're
moving, and the step you're on.

Don't send passwords, API keys, or access tokens, and don't attach contact files
unless the support team asks for them.

## Related

- [Switch to Reply](/migration/) – all migration guides
- [Integrations](/integrations/) – connecting your CRM
- [Sync Reply with a CRM](/workflows/sync-reply-with-a-crm/)
- [Create a sequence](/how-to/create-a-sequence/)

## Build with Reply

- Bulk import through the API: [Import contacts](https://docs.reply.io/api-reference/contacts/import-contacts) – for the opt-out list and anything outside the sync
