Twenty

What Shuttio reads from Twenty, where it lands in Attio, Clarify, Odoo, HubSpot, Pipedrive, Breakcold, Twenty, which permissions it needs and why, and what does not move.

Last updated: 28 October 2026

Sign in to Twenty and approve access, or paste an API key from Settings, APIs & Webhooks. A self-hosted Twenty takes its address first. Shuttio only reads, checks the access before saving anything and deletes it 14 days after the migration finishes.

Object by object: What objects are supported for Twenty migrations.

What Shuttio reads and moves

The list below describes the move into Attio. Where Clarify or Odoo differ, the destination's own article says so.

  • People and companies: People keep their name, emails, phones, job title, city and LinkedIn; companies their domain, address, employee count, annual revenue and LinkedIn. A person is linked to its company.
  • Opportunities and stages: Opportunities become deals with their amount, currency and close date, in the stage they are in. Twenty has one pipeline, so its stages arrive in Twenty's order; a stage named Won or Lost marks the deal won or lost. The company and point of contact are linked.
  • Your own objects and fields: Every object you added in Twenty comes as an object of its own, with its fields and its links to people, companies, opportunities and your other objects. Fields keep their type: text, number, currency, date, checkbox, select, multi-select, email, phone, link, address and rating.
  • Notes and tasks: Notes keep their title and markdown body, tasks their due date, status and assignee. Each lands on every person, company and opportunity it is attached to in Twenty.
  • Owners: Account owners, opportunity owners and task assignees are matched to an Attio member by email.
  • Attachments and profile photos: With the full migration, each file attached in Twenty lands in the Files of its opportunity, person or company; a file on a note or task lands on the records that note or task is on. A person's profile photo arrives as a file on that person.

Where each thing lands

Twenty objectIn AttioIn ClarifyIn OdooIn HubSpotIn PipedriveIn BreakcoldIn Twenty
CompaniesCompaniesCompaniesPartners (companies)CompaniesOrganizationsCompaniesCompanies
PeoplePeoplePeoplePartners (contacts)ContactsPersonsPeoplePeople
OpportunitiesDealsDealsCRM opportunitiesDealsDealsDealsOpportunities

Notes, tasks, meetings, calls, files, owners and lists depend on the destination. This is the row for Twenty, generated from the same tables the runner uses:

Into Attio

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
TwentyCompanies, People, OpportunitiesYesYesNoNoNoYesYesNo

Into Clarify

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
TwentyCompanies, People, OpportunitiesYesYesNoNoNoYesYesNo

Into Odoo

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
TwentyCompanies, People, OpportunitiesYesYesNoNoNoWith an API keyYesNo

Into HubSpot

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
TwentyCompanies, People, OpportunitiesYesYesNoNoNoYesNoNo

Into Pipedrive

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
TwentyCompanies, People, OpportunitiesYesYesNoNoNoYesYesNo

Into Breakcold

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
TwentyCompanies, People, OpportunitiesYesYesNoNoNoNoNoNo

Into Twenty

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
TwentyCompanies, People, OpportunitiesYesYesNoNoNoYesYesNo

Each destination's own article says how its data is written: Attio, Clarify, Odoo, HubSpot, Pipedrive, Breakcold, Twenty.

Permissions and why

WhatWhy Shuttio needs it
Your Twenty sign-in, or an API keyConnect Twenty signs you in and asks you to approve access to the workspace; Twenty renews the token every hour. An API key comes from Settings, APIs & Webhooks. Shuttio only reads with either: records, notes, tasks, attachments and profile photos, the workspace's objects and fields, and its members' emails.
The address of a self-hosted TwentyEmpty for Twenty Cloud. For your own server, the https address you open Twenty at. Shuttio refuses an address that points to a private network and never follows a redirect with your key.

Twenty allows 100 requests a minute per workspace; Shuttio stays under it and pauses the run, to resume where it stopped, if Twenty keeps refusing. Twenty to Twenty connects each workspace on its own card and refuses the same workspace on both. The access is stored encrypted and deleted 14 days after the migration finishes.

Known limits

  • The request limit: Twenty allows 100 requests a minute per workspace. Shuttio reads up to 200 records a request, stays under the limit, and pauses the run, to resume where it stopped, if Twenty keeps refusing.
  • Emails and calendar events: Twenty fills them from its own mailbox and calendar sync. Shuttio reads no messages or events from Twenty.
  • Files attached only to records of your own objects, and company logos: Shuttio attaches files to people, companies and opportunities; a file attached only to a record of an object you added is listed as a failed row. Twenty draws a company's logo from its domain and stores no file to move.
  • Notes and tasks attached only to records of your own objects: Shuttio attaches notes and tasks to people, companies and opportunities. One attached only to a record of an object you added is counted in the run's report and not moved.
  • Workflows, views and dashboards: Shuttio moves records, not how the workspace is set up. Workflows, views, favourites and dashboards stay in Twenty.
  • Deleted records: Records in Twenty's trash are not read. Restore one in Twenty before the migration if you want it moved.
  • Emails: Shuttio reads no emails or calendar events from Twenty; Twenty fills them from its own mailbox and calendar sync.
  • Large and linked files: a file over 50 MB, and an entry that is only a link, is listed as a failed row and not copied.

Not answered here? Email help@shuttio.com.