Using Shuttio with Attio

Shuttio moves your data from a CSV file, HubSpot, Pipedrive, Salesforce or Affinity into Attio. This guide covers connecting your workspace, what Shuttio can do in it, how a migration runs and how to undo one.

Last updated: 24 September 2026

What it does

Shuttio reads your source system and mirrors the objects you tick into Attio: people, companies and deals go to Attio's standard objects, and every other object is recreated 1:1 with its attributes, select options, statuses and links. You review every field before anything is written. A migration from a CRM starts as a free 50-record sample; after that it imports the rest of the records, the links between them, notes, tasks, meetings and list memberships. It keeps a ledger of everything it creates, so a re-run updates rather than duplicates, and a rollback removes exactly what the migration added. Shuttio is free.

Connect your Attio workspace

  1. Start a migration and choose your source and Attio as the destination. If you are not signed in, Shuttio asks you to sign in or create an account first (with Google, or with an email and password), then brings you straight back to continue.
  2. On the migration's Connect step, press Connect Attio. Attio shows the permissions Shuttio is asking for. Choose the workspace you want to migrate into and approve.
  3. You land back on the Connect step, which now shows Attio as connected with the workspace name.

Each migration connects its own Attio workspace and its own source. The connection belongs to that migration and no other migration can use it. The access token is encrypted before it is stored, and it is never placed in a background job payload or a log line.

Permissions Shuttio asks for

Each permission maps to specific Attio API calls Shuttio makes. It asks for nothing beyond these.

Attio scope
record_permission:read-writeCreate, update and match records in your objects (so a re-run updates instead of duplicating), write a field's value history when you opt in, and delete the records a migration created when you roll it back.
object_configuration:read-writeRead your existing objects and attributes so nothing is created twice, create the custom objects, attributes, select options and statuses for the objects and fields you reviewed, and when you roll a migration back, archive the fields it created and delete the custom objects it created.
list_configuration:read-writeShow your existing lists in the setup form, create a list you name, and add or archive the list attributes and options that carry list-level values (for example Affinity list fields).
list_entry:read-writeAdd imported records to a list, update entry values on a re-run, and remove the entries a migration added when you roll it back or when a member left the source list.
note:read-writeImport notes onto the records they belong to, update a note whose source was edited, and delete imported notes on rollback.
task:read-writeImport tasks linked to their records, and delete them on rollback. Tasks are created without assignees.
meeting:read-writeImport meetings with their linked records, and delete them on rollback. Participants are carried by name only, so no new people are created behind your back.
user_management:readRequired by Attio's task endpoints. Shuttio does not list, read or change your workspace members.

Shuttio does not request access to comments, email or call recordings, or webhooks, and it never deletes anything that was in your workspace before a migration.

Run a migration

  1. Connect your source.On the migration's Connect step, connect HubSpot, Pipedrive or Salesforce over OAuth, paste an Affinity API key, or upload a CSV file (up to 4 MB). Shuttio only reads from your source; it never writes to it.
  2. Tick the objects.Choose which source objects to move. People, companies and deals land in Attio's standard objects; everything else becomes an object of its own name. They run in dependency order.
  3. Review the fields. See where each source field lands. Keep or skip it, rename it, change its type and choose the key records are matched on; optionally set a default phone country and, for HubSpot and Salesforce, field history. For a CSV, Claude guesses what each column holds, and you can change every guess. Nothing is written to Attio before this point.
  4. Check the sample. A migration from a CRM starts as a free sample of 50 records per object. Check them in Attio, then run everything. Records already imported are updated, not duplicated. A CSV skips the sample and imports in full.
  5. Watch it run. The progress view shows counts as they happen. You can pause, resume, retry or cancel at any point. Closing the tab does not stop it: the migration runs as a background job.

Results and receipts

When a migration finishes, the results view shows what was created, updated and linked, and every row that did not make it, grouped by cause, each with a plain explanation and a suggested fix. For any failed row you can look up the original source record on demand; it is fetched live and not stored. Shuttio also emails you a summary with the totals when the run ends.

Roll back a migration

On a finished, failed or paused migration, press Roll back this import and confirm. Cancelling a running migration does the same. Working from its ledger in reverse order, Shuttio deletes every record, note, task, meeting and list entry the migration created, then archives the attributes, select options and statuses it added. Records and structure that were in your workspace beforehand are never touched.

Custom objects the migration created are then deleted once they are empty. One that holds records the migration did not create is left in place and named with its record count. A standard object or one you already had is never touched. Lists it created are left in place and listed for you by name at the end (Attio's API has no way to delete a list). Remove them in Attio if you no longer want them.

If you reconnect Shuttio to a different Attio workspace, resume, retry, full runs and rollback are blocked for earlier migrations, so a migration can never write into, or delete from, a workspace other than the one it started in. Reconnect the original workspace to continue.

Remove access or uninstall

  • In Shuttio: Shuttio deletes its stored access token 14 days after the migration finishes. Attio has no way for us to revoke the grant, so we delete our copy only.
  • In Attio:remove Shuttio from your workspace's connected apps to revoke its access on Attio's side, at any time. Do this if you want the grant gone before the 14 days are up.

Removing access does not change your Attio data. Records a migration created stay in your workspace; roll the migration back first if you want them removed. To delete your Shuttio account and its migration history, email support@shuttio.com. See the privacy policy for what is kept and for how long.

Support

Email support@shuttio.com with the migration link and a short description of what you expected. The security page covers encryption, subprocessors and what reaches the AI model, and the terms of service cover the rest.

Shuttio is built by Venturise OÜ, Tallinn, Estonia. It is not affiliated with or endorsed by Attio.