Into Attio

What Shuttio writes into Attio, where each object lands, the scopes it needs and why, and what a rollback leaves.

Last updated: 7 Nov 2026

No Attio account yet? Sign up with our partner link and get 10% off any plan.

Sources that can move into Attio: Spreadsheet / CSV, HubSpot, Pipedrive, Affinity, Freshsales, ActiveCampaign, OnePageCRM, Zendesk Sell, Close, folk, Insightly, Bitrix24, Capsule, HighLevel, SugarCRM, SuiteCRM, Salesflare, Vtiger, Twenty, Attio. A migration into Attio is free at any record count.

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

What Shuttio writes

  • Companies, people and deals into Attio's standard objects. Every other object is recreated with its attributes, select options, statuses and links.
  • Relationships, resolved in a second pass: Records are created first and linked second, so a deal finds its company no matter which order they arrived in. A link whose other end never made it is reported as a skipped row naming what it was waiting for.
  • Dedup against what is already in Attio: People match on email, companies on domain, custom objects on the unique key you designate. A matched record is updated in place, so running the same migration twice never leaves you two of anything.
  • Roll back removes what Shuttio created: Every record, note, task, meeting, file, list entry, attribute and select option this migration created is deleted or archived, in reverse order. A record it matched and updated in place stays, and the values it overwrote are not restored. Anything else in your workspace is never touched.
  • Notes, tasks, meetings and files on the records they belong to, and lists with their members. Meeting participants are carried by name only.
  • Pipelines and stages, as a list per pipeline or as a stage field per pipeline, whichever you pick in the Pipelines block on the Fields step.

Where each thing lands

FromObjectLands in Attio as
HubSpotContactsPeople
HubSpotCompaniesCompanies
HubSpotDealsDeals
HubSpotProductsIts own object, or the one you already have with that name
HubSpotLine itemsIts own object, or the one you already have with that name
HubSpotTicketsIts own object, or the one you already have with that name
HubSpotQuotesIts own object, or the one you already have with that name
HubSpotLeadsPeople, deals at the stage Lead, or their own object (you choose)
PipedrivePersonsPeople
PipedriveOrganizationsCompanies
PipedriveDealsDeals
PipedriveProductsIts own object, or the one you already have with that name
PipedriveDeal productsIts own object, or the one you already have with that name
PipedriveProjectsIts own object, or the one you already have with that name
PipedriveLeadsPeople, deals at the stage Lead, or their own object (you choose)
AffinityPersonsPeople
AffinityOrganizationsCompanies
AffinityOpportunitiesDeals
FreshsalesAccountsCompanies
FreshsalesContactsPeople
FreshsalesLeadsPeople, deals at the stage Lead, or their own object (you choose)
FreshsalesDealsDeals
ActiveCampaignAccountsCompanies
ActiveCampaignContactsPeople
ActiveCampaignDealsDeals
OnePageCRMCompaniesCompanies
OnePageCRMContactsPeople
OnePageCRMDealsDeals
Zendesk SellCompaniesCompanies
Zendesk SellPeoplePeople
Zendesk SellLeadsPeople, deals at the stage Lead, or their own object (you choose)
Zendesk SellDealsDeals
CloseLeadsCompanies
CloseContactsPeople
CloseOpportunitiesDeals
folkCompaniesCompanies
folkPeoplePeople
folkDealsDeals
InsightlyOrganisationsCompanies
InsightlyContactsPeople
InsightlyLeadsPeople, deals at the stage Lead, or their own object (you choose)
InsightlyOpportunitiesDeals
InsightlyProjectsIts own object, or the one you already have with that name
InsightlyProductsIts own object, or the one you already have with that name
Bitrix24CompaniesCompanies
Bitrix24ContactsPeople
Bitrix24LeadsPeople, deals at the stage Lead, or their own object (you choose)
Bitrix24DealsDeals
Bitrix24ProductsIts own object, or the one you already have with that name
CapsuleOrganisationsCompanies
CapsulePeoplePeople
CapsuleOpportunitiesDeals
CapsuleProjectsIts own object, or the one you already have with that name
HighLevelBusinessesCompanies
HighLevelContactsPeople
HighLevelOpportunitiesDeals
SugarCRMAccountsCompanies
SugarCRMContactsPeople
SugarCRMLeadsPeople, deals at the stage Lead, or their own object (you choose)
SugarCRMOpportunitiesDeals
SugarCRMProductsIts own object, or the one you already have with that name
SugarCRMCasesIts own object, or the one you already have with that name
SugarCRMProjectsIts own object, or the one you already have with that name
SuiteCRMAccountsCompanies
SuiteCRMContactsPeople
SuiteCRMLeadsPeople, deals at the stage Lead, or their own object (you choose)
SuiteCRMOpportunitiesDeals
SuiteCRMProductsIts own object, or the one you already have with that name
SuiteCRMCasesIts own object, or the one you already have with that name
SuiteCRMProjectsIts own object, or the one you already have with that name
SalesflareAccountsCompanies
SalesflareContactsPeople
SalesflareOpportunitiesDeals
VtigerOrganizationsCompanies
VtigerContactsPeople
VtigerLeadsPeople, deals at the stage Lead, or their own object (you choose)
VtigerOpportunitiesDeals
VtigerProductsIts own object, or the one you already have with that name
VtigerTicketsIts own object, or the one you already have with that name
VtigerProjectsIts own object, or the one you already have with that name
TwentyCompaniesCompanies
TwentyPeoplePeople
TwentyOpportunitiesDeals
AttioCompaniesCompanies
AttioPeoplePeople
AttioDealsDeals

Scopes and why

Attio scopes are fixed on the Shuttio app, not requested per call. Shuttio signs in with OAuth. The full guide is Using Shuttio with Attio.

ScopeWhy Shuttio needs it
record_permission:read-writeCreates, updates and matches records (so a re-run updates instead of duplicating), writes field history when you opt in, and deletes the records a migration created when you roll it back.
object_configuration:read-writeReads your objects and attributes so nothing is created twice, creates the custom objects, attributes, options and statuses you reviewed, and on rollback archives the fields and deletes the custom objects it created.
list_configuration:read-writeShows your lists in the setup form, creates a list you name, and adds or archives list attributes and options.
list_entry:read-writeAdds imported records to a list, updates entry values on a re-run, and removes the entries it added on rollback.
note:read-writeImports notes onto their records, updates a note whose source was edited, and deletes imported notes on rollback.
task:read-writeImports tasks linked to their records, and deletes them on rollback.
meeting:read-writeImports meetings with their linked records, and deletes them on rollback. Participants are carried by name only, so no new people are created.
activity_configuration:read-writeReads your activities and their attributes, creates the activities a migration needs (Logged emails, SMS, WhatsApp, LinkedIn, and one per source activity type), adds a text field for the body, and on rollback archives those fields and deletes an activity it created once it is empty.
activity_record:read-writeImports calls into Phone calls and messages, logged emails and other activities into their activities, linked to the migrated records, and deletes them on rollback. Participants are matched by email; no people are created.
user_management:readLists your workspace members, so owners and assignees are matched by email. Without it the migration still runs and shows one note that owners were not set.
file:read-writeUploads a record's attachments (files up to 50 MB). Without it, a migration with attachments on asks you to reconnect.

Known limits

  • Emails: logged emails from HubSpot, Pipedrive, Zendesk Sell, Close, Insightly, Bitrix24, Capsule, HighLevel, SugarCRM, SuiteCRM, Vtiger, ActiveCampaign and OnePageCRM land as a Logged emails activity. They start unticked, because Attio's mailbox sync may already show the same mail. An Insightly email carries only its subject, sender and date: Insightly's API returns no body and no To or Cc.
  • Files over 50 MB and entries that are only a link are listed as failed rows and not copied.
  • Calls land in Attio's Phone calls; SMS, WhatsApp, LinkedIn messages and other source activity types in an Attio activity each. Activities are a beta Attio API: a workspace that has not allowed them, or whose plan has no custom activities, gets notes and tasks instead, and the run summary says how many.
  • A dynamic list's filter: Attio has no filtered-membership API, so a HubSpot dynamic list or a Pipedrive filter arrives as a snapshot of its members, with its conditions written out as text.
  • Goals, invoices, payments, carts and other commerce or admin records have no Attio object to land in.
  • Rollback deletes what Shuttio created. A record it matched and updated stays, and the values it overwrote are not restored.
  • Attio has no delete-list call. A rollback renames each list it created to "<name> (rolled back, safe to delete)".

Not answered here? Email help@shuttio.com.