Into Attio

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

Last updated: 28 October 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, 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.
  • Cancel 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
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 and Pipedrive land as a Logged emails activity. They start unticked, because Attio's mailbox sync may already show the same mail.
  • 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.