Every change to Shuttio that you can use today, newest first. A change appears here once it is live in production.
Last updated: 13 Nov 2026
November 2026
Attio: a ticked object turned off in Attio now blocks the start#
· Attio
Attio workspaces can turn off standard objects such as Deals, Users and Workspaces. If a ticked object would land in one of them, the Objects step now shows a red line under that row saying the Attio object is turned off and what to do. Review fields stays disabled while such a row is ticked, and the start is refused with the same text, so nothing is written. Quick start leaves those rows unticked. The check uses the object list the step already loads, so it makes no extra call to Attio. Only Attio is checked; if a migration is started anyway, the run reports the turned-off object again.
Comparison pages added for ClonePartner, Skyvia and Import2 alternatives#
· Attio
New pages compare Shuttio with ClonePartner and Skyvia row by row, including the rows where the other tool is ahead. A new page lists seven options for moving a CRM when Import2 is the starting point, including Attio's Migrate CRM button, which runs Import2. Facts about the other companies link to the public pages they were read from, on 4 November 2026. A fact not found there is marked "not published". Anyone can open the pages; no sign-in is needed.
Connector pages into Attio say the move is free and link to Import2 comparison#
· Attio, Odoo, Clarify
Each connector page whose destination is Attio now shows a line under the hero: migration into Attio is free at any record count, with a free sample first and a rollback. The line also says Attio's built-in Import2 is free too, and links to the Import2 comparison. Pages whose destination is Odoo or Clarify do not show the line.
Import2 comparison and who-can-migrate guides for Attio#
· Attio, HubSpot, Pipedrive
The Import2 comparison page now opens by saying both Import2 (from Attio's Migrate button) and Shuttio are free into Attio, then what differs. Three new guides cover who can migrate Pipedrive, HubSpot and Affinity to Attio, with a table of options, price, fit and limit for each.
Reminder email a day after a migration is set up but nothing is connected#
· Attio
One email goes to the person who set up a migration from a connected CRM if nothing is connected 24 hours later. It names the source and destination, links to the Connect step and says that nothing has moved. It is sent once per migration. CSV migrations get no reminder, and drafts set up before this change get none. The sample run also says once, in its notes, when activities such as meetings and calls link to an object that is not ticked (for example companies): those links are left out, and the note tells the customer to tick the object to keep them. On the Connect step, an Attio to Attio migration now says that the two connected workspaces are the source and the destination.
Pipedrive deals with several pipelines now land in their own pipeline#
· Attio, Pipedrive, Odoo, Clarify
Deals migrated from Pipedrive now carry their pipeline when they are read. Before, every deal in an account with more than one Pipedrive pipeline was reported as being in an unknown pipeline and could not be placed. Deals now go to the pipeline and stage they had in Pipedrive. Available to anyone migrating Pipedrive deals to Attio, Clarify or Odoo. The fix was checked by tests, not by a new live run of a Pipedrive sample.
Attio user fields now migrate to HubSpot as owner fields matched by email#
· Attio, HubSpot
When you migrate from Attio to HubSpot, Attio fields that hold workspace users now land in HubSpot. This covers a custom field such as "LP owner" and a deal's owner. Before, these fields were proposed as plain text and arrived empty. A deal's owner goes to HubSpot's deal owner. Any other user field becomes a new HubSpot owner-type property, which the field review explains before you start. Each user is matched to the HubSpot user with the same email. If a cell names several users, the first one HubSpot has is used. Limit: no HubSpot users are created. If an email has no HubSpot user, that field is left empty and the run summary counts those people and lists their emails.
Attio to HubSpot migrations can now move record files#
· Attio, HubSpot
When you migrate from Attio to HubSpot, the Objects and Options steps now offer an Attachments switch. If you turn it on, files stored on your Attio people, companies and deals are uploaded to HubSpot and attached to the matching HubSpot contact, company or deal through a note. Only the objects you picked for the migration are scanned for files. Rolling the migration back deletes the uploaded files and archives the notes. Limit: files on Attio custom objects are not moved, because HubSpot files are attached only to contacts, companies and deals.
Fix: source lists migrate into Attio again; Lists and Files keep their row#
· Attio, HubSpot
Attio began rejecting the request Shuttio sent to create a list (400, 'Expected string, received array'), so a source list such as a HubSpot list failed on a migration into Attio. Shuttio now sends the list's parent object in the form Attio accepts. The run page also no longer files Lists and Files under 'Not migrated, no records in the source'. Shuttio never counts them in advance, so a count of 0 said nothing about the source. They now keep their own row. Limit: this applies to migrations into Attio.
Company Employee range now lands in Attio's own ranges instead of failing the run#
· Attio
When a migration into Attio writes the company Employee range field, each source value is now written into the Attio range its head count falls in. For example, 1-5 goes to 1-10, 25-50 goes to 11-50, and 1000+ goes to 1K-5K. Before this, Attio refused to add new options to that field, and the whole migration failed during its schema build. Now, if Attio refuses an option on a field whose options are fixed, only that option is dropped and the build continues. Any other permission error still stops the run. Limit: a value that names no head count, such as "Unknown", is not written and is reported.
Sample notes name your lists and objects instead of showing raw ids#
· Attio
The note on a free sample now names Attio lists and custom objects the way the field review showed them, so a raw 'list:' id no longer appears. Lists with no name are shown once as 'lists'. The sentence about objects that are not linked to the others now names them all, for example 'Events, Fundraising and Partnerships: not linked to the other objects, so each is sampled separately.' A source's files object is labelled 'Files' in the progress list. Limit: this changes wording only, and the sample rules are the same.
Twenty: reserved names, every deal contact, employees and revenue currency#
· Attio, HubSpot, Pipedrive
Fixes from Attio and HubSpot moves into Twenty on 2 November. Twenty refuses objects and fields named with its reserved words, such as event, plan or type. Shuttio now gives them another internal name and keeps your labels, so an Attio Events object and a Plan field arrive. An Attio deal with several people keeps the first as Point of Contact, and a junction object between opportunities and people carries every person. An Attio company's Team is written as each person's company instead of being skipped. From HubSpot, employees go into a number field when the workspace has no standard one, and the revenue currency code becomes the currency of Twenty's annual revenue. In the app, the mapping shows Twenty's own field types, for example LINKS for Domains. A sample rolled back from the app returns to setup with its mapping, so you can edit it and sample again. A source record that duplicates one the run created adds its values as a note on that record, in Twenty and Pipedrive. A choice field reused from an earlier run no longer blocks the start when the sample has no values for it. Limit: the deal-people object has not yet been checked against Twenty Cloud.
Twenty is now a source: move it into Attio, Clarify, Odoo or another Twenty#
· Attio, Odoo, Clarify
You can now pick Twenty as the source and connect it with a sign-in or an API key, on Twenty Cloud or a self-hosted server. Shuttio reads people, companies and opportunities (stages in Twenty's order), your own objects and fields, and notes and tasks with the records they were attached to. Owners and assignees are matched by email. Into Attio the move is free at any record count; into Clarify or Odoo it is priced once by record count, after the free sample. Twenty to Twenty is also available: self-hosted into Cloud, or one workspace merged into another. Shuttio refuses the same workspace as both source and destination. Emails and calendar events are not moved, because Twenty fills them from its own sync. Notes and tasks attached only to records of your own objects are not moved either.
Shuttio app for Twenty: set up and run a migration from inside Twenty#
· Attio
The Shuttio app for Twenty connects the CRM you are leaving, shows the field mapping, runs the free sample, takes payment through Stripe Checkout, runs the full migration and rolls it back, all from your Twenty workspace. The first time, you link the workspace by connecting Twenty to Shuttio; later migrations start without another consent screen. After the link, Shuttio sends you back to the app's import page in your workspace. The app names Attio lists and records by their names, and sums up records imported without some links in one sentence, for example people outside the sample. Limit: the link works while the person who made it is still a member of the Twenty workspace.
Attio into Twenty: custom objects, lists, owners, locations and two-way links#
· Attio
A move from Attio into Twenty now carries Attio custom objects, created in Twenty as objects with their fields. Each Attio list is offered on the Objects step and becomes a Twenty object of its own, one record per list entry, linked to its parent record. Owner fields on companies, opportunities, custom objects and lists link to the Twenty user with the same email. Locations arrive as Twenty addresses: street, city, state, postcode, country and coordinates. A two-way Attio link becomes one Twenty relation, and a link with many records on both sides becomes a junction object between the two, one record per link. A Twitter handle becomes an x.com link; a value that is not a valid link is left out and the record still imports. Also fixed for every destination: Attio record references now link records instead of arriving as text of record ids. Limit: an owner with no Twenty user of the same email stays empty, and the run counts these in one line.
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.
Site: one price block, a "Which CRMs move where" table and help in seven groups#
· Attio
The home page now gives the price in two cards: into Attio free at any record count, into any other CRM from $249 by record count, once per migration. A CSV import is free into every destination. A "Which CRMs move where" table replaces the Yes/No grid: one row per destination, with its price, every source that moves into it and a "What moves" link. The home picker lists each source once. The hero reads: "Migrate your entire CRM: pick two apps, connect them and run a free sample." Help at /help has seven groups (Getting started, Sources, Destinations, What moves where, Pricing and billing, Security, Troubleshooting) and a search box. Object tables now head their columns "Moves out of" and "Moves into" the CRM. Each pair page under /migrate opens with five short answers: can I move it, what moves, what doesn't, price and how long.
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.
Attio moves now create pipeline lists and link Owner fields to Attio users#
· Attio
Fixed: creating a pipeline list in Attio was refused with "Body payload validation error". Each pipeline then fell back to a stage field on Deals. Pipelines now come in as Attio lists. Also new for moves into Attio: source columns that point at a user (owner, creator and similar) become user attributes. The field review shows them as "Create as user" with "Linked to users (matched by email)". A deal's owner column fills Attio's built-in Owner. Emails are matched case-insensitively against your workspace members. Limit: a person with no matching Attio user leaves the field empty. Their name is kept in a note on the record, and unmatched people are listed once in the object's run summary. For other destinations, a user column now carries the user's email as text instead of the source user id.
Into Attio: a partner sign-up link before you connect, a Deduptio offer after the run#
· Attio
A customer with no Attio account yet now sees one line: "No Attio account yet? Sign up with our partner link and get 10% off any plan." It shows on the Connect step until Attio is connected, under the main button on /attio and on the pages for pairs into Attio, and on the Into Attio help article. The link opens Attio's sign-up in a new tab. After a full migration into Attio finishes, the run page and the completion email offer Deduptio, the Shuttio team's app that finds and merges duplicate records in Attio. The offer does not show after a sample, a Move new records run or a rolled-back run.
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.
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.
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.
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.
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.
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.
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.
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.