Help center

How a migration runs, what moves between each pair of CRMs, what each CRM needs, what it costs, and what to do when something fails.

Shuttio for your client accounts

How to install Shuttio from the app marketplace, connect a client account and move a client's CRM data in or out of it.

  1. Install. Press Install on the Shuttio listing, or start a migration on shuttio.com. Sign in with Google or an email.
  2. Pick the direction. Choose the client's old CRM or a CSV file as the source and the client account as the destination, or the other way round.
  3. Connect. On the Connect step, sign in and choose the client account. Shuttio reads it to move data out, and reads and writes it to move data in. One migration works with one client account.
  4. Review. Tick the objects, check where each field lands and filter what moves. Nothing is written before this point.
  5. Check the free sample. Shuttio first moves a sample: 5% of your companies, contacts or deals, 10 to 1,000 records, picked at random, with their linked records. Open them in the client account, then run the rest. A CSV import is free; a CRM migration is priced once by record count, see pricing.
  6. Roll back or uninstall. Roll back deletes everything the migration created; records that were already there are never changed. Shuttio removes its app from the client account and deletes its access 14 days after the migration finishes. You can remove the app from the client account's integrations at any time.

Questions: help@shuttio.com.

Getting started

The seven steps of a migration: Source, Connect, Options, Objects, Fields, Filters, Import (the free sample, then the rest).

  • Source and ConnectSteps 1 and 2: pick where the data comes from and where it goes, then connect both ends.
  • OptionsStep 3: five checkboxes decide which kinds of data the migration offers on the next steps.
  • ObjectsStep 4: tick the objects to move and see where each one lands.
  • FieldsStep 5: review every field, rename it, change where it goes, and see what will be overwritten.
  • FiltersStep 6: limit which records move, per object. Filters do not change the price.
  • The free sampleStep 7, Import: a connected CRM first imports a sample: 5% of your companies, contacts or deals, 10 to 1,000 records, picked at random, with their linked records. You read the result in your destination, then decide.
  • The full runStep 7, Import: after the sample, "Run full migration" brings the rest. Attio and CSV imports are free. Into Clarify, Odoo, HubSpot, Pipedrive, Breakcold, Twenty, Capsule, HighLevel, ActiveCampaign, Zendesk Sell, Zendesk Support, HubSpot Service Hub, folk, Ashby, Lever, Greenhouse, ClickUp, Asana or Trello a CRM migration is free under 5,000 records in total: contacts, companies, deals, notes, activities and files together; otherwise it is priced by record count.
  • Roll backRoll back deletes what the migration created, from its ledger. It never touches records that already existed, and it does not restore values it overwrote.

Sources

For each CRM: what Shuttio reads, where it lands, which permissions it asks for and why, and what does not move.

Destinations

Where each kind of data lands in each CRM, and what a rollback removes.

  • Into AttioWhat Shuttio writes into Attio, where each object lands, the scopes it needs and why, and what a rollback leaves.
  • Into ClarifyWhat Shuttio writes into Clarify, where each object lands, what the connection needs and what a rollback cannot remove.
  • Into OdooThe three ways to write into Odoo, where each object lands, what each way needs and which of them can roll back.
  • Into HubSpotWhat Shuttio writes into HubSpot, where each object lands, the permissions it asks for and why, and what a rollback leaves.
  • Into PipedriveWhat Shuttio writes into Pipedrive, where each object lands, the permissions it needs, how Pipedrive's API limits shape a big run, and what a rollback leaves.
  • Into BreakcoldWhat Shuttio writes into Breakcold, where each object lands, the API key it needs, how slow Breakcold's API makes a big run, and what a rollback leaves.
  • Into TwentyWhat Shuttio writes into Twenty, where each object lands, how to connect Twenty Cloud or a self-hosted server, how Twenty's request limit shapes a big run, and what a rollback leaves.
  • Into Zendesk SupportWhat Shuttio writes into Zendesk, how it keeps the original dates, how to connect with an API token, how Zendesk's request limits shape a run, and what a rollback leaves.
  • Into HubSpot Service HubWhat Shuttio writes into HubSpot Service Hub, how it keeps the original dates, how to connect, which optional permissions it asks for, what the HubSpot API cannot do, and what a rollback leaves.
  • Into folkWhat Shuttio writes into folk, where each object lands, how to connect with an API key, how folk's request limit shapes a big run, and what a rollback leaves.
  • Into CapsuleWhat Shuttio writes into Capsule, where each object lands, how to connect, how Capsule's hourly request limit shapes a run, and what a rollback removes.
  • Into HighLevelWhat Shuttio writes into a HighLevel sub-account, where each object lands, how to connect, what HighLevel's API cannot create, and what a rollback removes.
  • Into ActiveCampaignWhat Shuttio writes into ActiveCampaign, where each object lands, how to connect, and what the ActiveCampaign API cannot do (deleting task types and account custom fields).
  • Into Zendesk SellWhat Shuttio writes into Zendesk Sell, where each object lands, how to connect, and what the Zendesk Sell API cannot do (create pipelines, stages, custom fields or users; delete tags).
  • Into AshbyWhat Shuttio writes into Ashby, where each part of a candidate's record lands, what to set up first, and what a rollback leaves.
  • Into LeverWhat Shuttio writes into Lever, where each part of a candidate's record lands, what to set up first, and what a rollback leaves.
  • Into GreenhouseWhat Shuttio writes into Greenhouse, where each part of a candidate's record lands, what to set up first, and what a rollback leaves.

What moves where

Pair by pair and object by object: what crosses, and how it lands. Each CRM's page lists the objects Shuttio reads from it and writes into it.

Pricing and billing

Into Attio is free. Into any other CRM, a CRM migration is free under 5,000 records in total, otherwise priced once by record count.

  • What a migration costsFree into Attio; into the others free under 5,000 records in total, otherwise priced by record count; a CSV import and the sample are free.
  • RefundsA paid migration is refunded only after you roll it back.
  • Prices by record countThe price table for every destination.

Security

What Shuttio stores, for how long, and what reaches an AI model.

Troubleshooting

What an error means, how to retry it, and when to roll back.

  • Errors and Retry all errorsThe Errors tab groups everything that did not transfer, with the reason. "Retry all errors" runs only the failures again, for free.
  • Email address rejectedA record failed because one email value is not a valid address; correct it in your source, then press "Retry all errors".
  • Phone number rejected: missing country codeAttio refused a phone number because it has no country code or is not a valid number; add the code in your source and press "Retry all errors".
  • A value was left empty, the record importedOne value did not fit its field and was left empty while the record imported; add it in the destination by hand, or change the field's target on the Fields step before a re-run.
  • A required value is missingA record failed because the destination marks a field as required and the source row has no value for it; fill it in at the source or make it optional in the destination, then press "Retry all errors".
  • Duplicate unique valueA record failed because another record in Attio already holds the same value in a unique attribute; remove the duplicate in your source or in Attio, then press "Retry all errors".
  • Domain rejected: the domain is not a bare hostnameAttio refused a company domain that carries a protocol, a path or spaces; reduce it to a bare hostname such as acme.com in your source, then press "Retry all errors".
  • Attio rate limit: some rows failed after retriesAttio throttled the import and some rows still failed after Shuttio's automatic retries; press "Retry all errors" to retry those rows.
  • Attio was unavailableAttio returned a server error while Shuttio wrote a row, so that row failed; press "Retry all errors" and the failed rows run again.
  • A field wasn't created in the destinationShuttio could not create a field in the destination and skipped it, so its values were not imported; add the field in the destination by hand if you need it.
  • When something failsSix steps, from the Errors tab to emailing support.
  • QuestionsPrice, refunds, security and data retention, and what to do when something fails.