Changelog

Every change to Shuttio that you can use today, newest first. A change appears here once it is live in production.

Last updated: 28 October 2026

Week of 26 October

Standard fields and object names now follow the destination you pick#

· Attio, Odoo, Clarify

On the field review, a source's standard fields (Name, Email, Phone, Job title) now start on the destination's own field, not on "New field". The automatic field is always one of the picker options. Standard objects now use the destination's own word, for example Contacts and Opportunities when the destination is Odoo. The messages for Roll back, Restart sample, Run full retry, Change mapping, kept records, filters and plan limits now name the destination instead of saying Attio. This applies to Attio, Clarify and Odoo.

Checkout now has a promotion code field#

· Attio, Odoo, Clarify

The Stripe Checkout page for a paid migration now has a field for a promotion code. Stripe applies the discount and checks whether the code has expired. The Product Hunt code PH50 (50% off, valid until 2027-02-03) can be entered there. It applies to migrations that are priced by record count: CRM migrations into Clarify or Odoo, from $249. Moves into Attio and CSV imports are free and never reach Checkout. Payment is still confirmed by Stripe's payment status, so the price shown at Checkout is the price paid.

Source fields now map into existing destination fields of the same name#

· Attio, Odoo, Clarify

When you migrate into Attio, Clarify or Odoo, a source field now goes into the destination field with the same label, ignoring case, punctuation and spacing, so it no longer creates a duplicate. If that field's type cannot hold the values, the field review warns on the row, and for Attio and Clarify you remap it, create it as a custom field, or switch it off before the sample can start. Text values go into a same-named choice field by option label; a value with no matching option is left out and shown in the Errors tab, one row per field. When two source columns map to one field, the first non-empty value wins.

Site copy now describes the pick, connect, sample flow#

· Attio

The home page and the Attio page now describe the three steps: pick your apps, connect both, and run a free sample of 50 records per object. Fields are mapped automatically, and changing the mapping is optional. The home FAQ gains a "What does the free sample do?" answer, and the pricing page says fields the automatic mapping could not place are listed before the full run. The /vs/import2 page no longer shows a price row or plan-tier claims, and the footer now links to this changelog.

Week of 19 October

Guide: migrate HubSpot to Attio#

· Attio, HubSpot

A new guide compares three ways to move HubSpot to Attio: Attio's Import2 flow, a CSV import and Shuttio. It lists what moves, what stays behind and how to check the result.

Week of 12 October

Comparison: Shuttio vs MigrateMyCRM (formerly Trujay)#

· Attio, Odoo, Clarify

A comparison page sets Shuttio next to MigrateMyCRM by destination: Attio, Clarify and Odoo, and what to use when your pair is not covered.

Attio as a source of calls and other activities#

· Attio

When Attio is the source, Shuttio reads calls and other activities through Attio's Activities API, including the workspace's own call notes field.

HubSpot SMS, WhatsApp and LinkedIn messages move to Attio#

· Attio, HubSpot

HubSpot messages sent over SMS, WhatsApp and LinkedIn now arrive in Attio as activities.

Calls, logged emails and activity types land as Attio activities#

· Attio, HubSpot, Pipedrive

Calls from HubSpot, Affinity and Pipedrive arrive in Attio's Phone calls, and logged emails arrive as a Logged emails activity, unticked by default. Other done Pipedrive activity types become an activity of their own. If a workspace has no activity scope or plan, Shuttio falls back to notes and tasks and counts them in the run summary.

A page for each source and destination pair#

· Attio, HubSpot, Pipedrive, Odoo

Every pair a customer can finish today has its own page, such as HubSpot to Attio, Pipedrive to Attio and Pipedrive to Odoo. Each page lists the objects that move for the pair and links its guide.

Pricing page with the price per destination#

· Attio, Odoo, Clarify

The pricing page lists the price for each destination: free into Attio at any record count, and from $249 into Clarify or Odoo, set once per migration by record count. It also states the rollback and refund terms.

Week of 5 October

Attio to Attio: move records between two workspaces#

· Attio

Shuttio copies records, lists, meetings, files, options and statuses from one Attio workspace to another, and matches workspace members by email. It refuses a pair where both sides are the same workspace.

Change mapping: fix a mapping after a run without starting over#

· Attio

After a migration into Attio you can change the field mapping and run again. Shuttio removes what it imported, except records you edited in Attio, and writes the records with the new mapping.

Attachments: files move with their records#

· Attio, HubSpot, Odoo

An Attachments switch on the Options step moves HubSpot files into Attio and into Odoo, with the file count and an estimate shown before the run. Files run as their own job after the records, and cancelling deletes the files first. Failed files are listed as rows with a reason.

Record filters: migrate only the records that match#

· Attio, HubSpot, Pipedrive

A Filters step lets you narrow each object by field values or dates before the run, and shows a live match count under the filter. HubSpot, Pipedrive and Attio apply the filter at the source, so records that do not match are not read. The run page shows how many records are in the source and how many were filtered out, and filters never lower the price.

Week of 28 September

Retry on an Attio migration re-runs only the records that failed#

· Attio, Odoo

Retry on a done, failed or paused Attio migration marks only the objects with failures and queues those records again. A field that Attio cannot find now costs that one value, not the whole record. A field that is empty in every sampled record starts unticked on the Fields step, for Attio as for Odoo.

Faster schema setup and clearer refusals when writing into Attio#

· Attio

Shuttio now reads the live Attio state in parallel and writes fields and options eight at a time, in dependency order. An object that Attio refuses over the plan limit is skipped, and the plan continues. The rollback confirmation now says that custom objects the migration created are deleted too.