Migrate Twenty CRM to Attio, Clarify or Odoo

Shuttio now reads Twenty as a source. Move people, companies, opportunities, custom objects, notes and tasks into Attio free, or into Clarify or Odoo.

Last updated: 29 October 2026

Shuttio now reads Twenty as a source, so you can migrate Twenty CRM to Attio, Clarify or Odoo. You connect with a sign-in or an API key, on Twenty Cloud or a self-hosted server. Into Attio the move is free at any record count.

What changed

Shuttio reads these from Twenty:

  • People, companies and opportunities.
  • Opportunity stages, in the order of Twenty's stage field. A stage named Won, Closed Won, Lost or Closed Lost (capitals and a hyphen do not matter) marks the deal won or lost; a stage with any other name stays open.
  • Your own objects and fields, where the destination takes them (the Objects step shows which). Select options come across with them. Fields with several parts are split into separate columns, for example an extra column for additional emails and one column for each part of an address (street, city, state, postcode, country).
  • Notes and tasks, with the records they were attached to. Shuttio reads note bodies as markdown. A task counts as completed when its status is DONE.
  • Record owners and task assignees, matched by email to users in the destination. Attio takes deal owners and task assignees, Odoo takes record owners, Clarify takes task owners only.

Into Clarify or Odoo the migration is priced once, by record count. The free sample comes first, and Shuttio shows the price before the full run starts. A CSV import into either is free.

How to use it

  1. Pick Twenty as the source. On the first screen, choose Twenty as "from" and Attio, Clarify or Odoo as "to".
  2. Connect Twenty. On the Connect step, press Connect Twenty, sign in to Twenty and approve access to the workspace. If your Twenty does not offer the one-click sign-in, paste an API key instead. Shuttio only reads with it.
  3. Add the address if you self-host. Leave the address empty for Twenty Cloud. For your own server, enter the address you open Twenty at. Shuttio checks the access before it saves anything.
  4. Choose objects. Shuttio lists the objects it finds in your workspace, custom ones included. Tick what you want to move.
  5. Review fields. Check each object's fields and its match key. Nothing is written until you have reviewed this screen and started the sample.
  6. Run the free sample. Check the sample records in the destination.
  7. Run the full migration. Every record gets a result in the per-record report. A failed record shows its reason.

If something looks wrong, cancel. Cancelling deletes what the migration created, in reverse order. Records that already existed and were matched stay.

What it does not cover

  • Emails and calendar events. Shuttio reads no messages or events from Twenty.
  • Notes and tasks attached to no record, or only to records of an object that is not moved. Shuttio leaves them out and the run summary says how many. Into Clarify and Odoo, notes and tasks attached only to custom-object records are left out too.
  • Workflows, views and dashboards. Shuttio does not read them.
  • Twenty's request limit. Shuttio keeps to 90 requests a minute. If Twenty keeps refusing requests, the run pauses. Press Resume and it carries on where it stopped.

What lands where depends on the destination. The Objects and Review fields steps show what the destination takes.

FAQ

Does Shuttio change anything in Twenty? No. It only reads. Shuttio stores the access encrypted and deletes it 14 days after the migration finishes.

Can I copy records created after the first run? Yes. "Move new records" copies records created in Twenty after the first run.

Does an AI model write my data? No. AI is used only to guess column types in CSV imports. Twenty migrations do not use it.

Pick Twenty as the source at https://www.shuttio.com.