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.
Capsule field review counts the 150 custom field limit#
· HubSpot
When Capsule is the destination, the field review shows how many of Capsule's custom fields the account holds plus the ones the current ticks would create, as "N of 150 Capsule custom fields". It updates as the customer ticks. Over 150, the review says how many to untick, and starting the move is refused until then. HubSpot system fields that HubSpot calculates or makes read-only now start unticked for Capsule, and the customer can tick them. Limit: Capsule allows 150 custom fields per account in total.
Done-for-you migration page: 50/50 payment, full refund, named consultant#
The /services page now states the payment terms: 50% before the migration starts and 50% after you sign off on the report. It lists a dedicated consultant from Craftt, a project plan sent after the call, a shared channel for updates (Slack or an email thread), and a full refund. The refund covers the full fee and deletes every record the migration created in your new CRM. The page also says there is no minimum data volume; the price depends on how many records you move, from $1,500. Anyone who visits the page can book the free 30-minute call.
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.
Home page now opens its CRM section with a one-line answer and the free sample#
The home page section 'Which CRMs move where' now starts with a sentence: Shuttio moves CRM data between CRMs, into the destinations it currently opens, and every run starts with a free sample you can roll back. The destination list is read from the product's own registry, so it changes when a destination opens or closes. Anyone visiting shuttio.com can read it; nothing changes in the migration flow.
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.
Files no longer make a free run paid; Pipedrive and Affinity files count#
· Pipedrive, Odoo, Clarify
Files no longer make a CRM migration into Clarify or Odoo need the paid plan. Pipedrive and Affinity files are counted after the free sample finishes, and they count toward the 5,000-record free limit. Files from other sources move free and do not count toward the limit. If the file count is not in when you press Run full migration, the files move free and add nothing to the total.
Services page now offers a done-for-you CRM migration from $1,500#
The /services page now describes a done-for-you CRM migration from $1,500. The final price depends on data volume and objects and is given after a free 30-minute call. Craftt maps the fields, runs a sample you review, runs the full migration within 1–2 working days of your approval, and sends a report with record counts per object before and after. Anything that does not match the report is fixed at no extra cost. A finished sample now shows a "Have us do it" link beside "Run full migration", which opens /services in a new tab. Self-serve Shuttio stays available, and a DPA is available on request.
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.
Review fields on the Objects step now works on the first click#
On the Objects step, when the Files tick is shown, Review fields first saves the Files choice and then continues. Before this fix, the first click could send nothing, and a second click went through without waiting for the save. Now the button shows "Loading fields…" while the save runs, ignores repeat clicks, and shows an error if the Files save fails. Limit: the button stays on the step until the Files save succeeds.
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.
Run page counts and setup buttons fixed after a live check#
After you run the full migration from a sample, the run page no longer shows sample-only wording, such as "Sample: 165 of 163 imported" and the sample notes. Imported and Failed now count records only, the same way the In source total does. Files and list entries are shown in a hint on the tile instead. On the Filters step, the long start-the-sample button label now wraps onto two lines instead of spilling over the step list; phones still show the short label. On the Objects step, Review fields now shows "Loading fields…" and disables itself on the first click while your Files choice is saved. Repeat clicks are ignored, and if the save fails the button comes back with the error. The button change applies only where the migration carries files.
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.
HubSpot attachments use files.write and files.delete permissions#
· HubSpot
HubSpot retired the broad files permission, so attachments moved into HubSpot now ask for files.write to upload them, and rollback uses files.delete to remove them. The Into HubSpot help article now lists both permissions. Without a permission, the run writes one row about attachments and moves the rest. Applies to migrations into HubSpot.
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.
Odoo app: open tasks and meetings now arrive as activities and Calendar events#
· Odoo
When you migrate into Odoo through the Shuttio app, an open task on a contact, company or deal is now written as a scheduled To-Do activity, and a meeting is written as a Calendar event. Before this, every note, task and meeting arrived as a chatter note. The task keeps its deadline and owner. The owner is matched by email and falls back to the fallback user you chose. The meeting keeps its start and end, with its contacts as attendees. Rollback removes them. Limit: done tasks, notes, calls and emails, and tasks or meetings on other parents such as tickets or orders, are still written as chatter notes.
HubSpot destination now carries extra emails and phone numbers#
· HubSpot
When a migration writes contacts into HubSpot, a contact's second and later email addresses are now added as HubSpot secondary emails. This only happens on contacts the migration created or updated, never on a contact you already had. A second phone number goes into Mobile phone. Any further numbers go into one text property, Other phone numbers, which the migration creates and removes again on rollback. Limit: the secondary-email call has not been checked against a live HubSpot account, so a refused address shows as a failed row in the per-record report.
Odoo 19+ connections keep working when Odoo drops its old API#
· Odoo
Odoo is removing its older /xmlrpc and /jsonrpc endpoints, starting with Odoo Online 21.1. Shuttio now recognises an Odoo 19 or newer server even when a proxy hides the standard version page or the server answers only on the web client's version endpoint, and connects to it over Odoo's newer JSON-2 API. If a server turns out not to have that endpoint, Shuttio logs in once over the older API and stays on it; if that login also fails, you see the original error. When Odoo 19 or newer refuses a key, the connect step says these versions accept only an API key, not your password, and points to Account Security → New API Key in your Odoo profile. This applies to Odoo connections with a URL, database, login and API key, not to the import package.
When you move HubSpot calls into Odoo, each call arrives as a Done entry of Odoo's Call type in the chatter of its contact, company or opportunity. The note now includes the call's outcome, for example "Outcome: Connected", read from the HubSpot disposition label rather than an internal ID. The HubSpot help article now says calls move into Odoo. Other CRM sources add the outcome to call notes the same way.
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.
Objects step shows the lists-and-files note only where the pair has them#
The Objects step used to say "Lists and files move with the full migration." for every pair, including pairs that carry neither. The note now appears only when the page has a lists row, a files row or the Files tick. Pairs without lists or files no longer show it. Lists and files are still not in the free sample and move with the full migration. The note stays hidden for CSV imports, as before.
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.
Free sample: 5% of your records, picked at random, with their linked records#
Since 22 October the free sample picks 5% of your companies, contacts or deals at random, at least 10 and at most 1,000. It used to write 50 records per object. Every other object you tick takes only the records linked to the sampled ones: their deals, notes, tasks, meetings, calls and emails. Since 28 October the sample also adds the records a sampled record points to, such as the people on a company's team, so the links are there when you check the sample. An object with more than 1,000 linked records keeps 1,000, and the run page says so. Limits: lists and files are not in the sample and move with the full migration. Referenced records are added one step deep: a person added through a team keeps its link to a company outside the sample.
Connect Twenty by signing in, with an API key as the fallback#
The Connect step for Twenty now has a "Connect Twenty" button. Customers sign in to Twenty and approve access instead of pasting an API key. "Use an API key instead" stays under it. For a self-hosted Twenty, enter the server address first; it must be https and not a private host. If the server does not allow a one-click connection, Shuttio says so and points to the API key. Shuttio renews the access token while a run is going. If Twenty refuses the renewal, the run pauses with "Reconnect Twenty to continue". The credentials are deleted 14 days after the run. Limit: Twenty Cloud shows the sign-in button only once Shuttio's Twenty client id is set. Until then Cloud shows the API key form alone.
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.
Odoo moves keep custom activity types like 'Lunch' on tasks#
· Pipedrive, Odoo
When a Pipedrive activity has a custom type such as 'Lunch', Shuttio now matches it by name to an existing Odoo activity type. If none exists, Shuttio creates one and files the to-do under it. Before, the type only appeared as a 'Type: Lunch' line in the task text. Activity types Shuttio creates are removed on rollback unless Odoo records already use them. Calls, meetings and emails keep their usual handling.
HubSpot destination: a property that clashes is left out, not added as a _2 copy#
· HubSpot
When you move data into HubSpot, Shuttio no longer creates a second property with a numbered name such as score_2. If HubSpot already has a property with the same label or internal name that cannot take the values (a different type, computed, read-only or HubSpot-defined), nothing is created. The field is left out of the move and the field review shows a warning. From there you can remap it, create a custom property under your own name, or switch the field off. If a property with a different label already uses the internal name, the new property keeps your label and only its internal name gets a number. Applies to moves into HubSpot.
Activities now land as calls, emails, meetings and tasks, not merged into notes#
· HubSpot, Pipedrive, Odoo, Clarify
Each source activity type now goes into the matching type in the destination. HubSpot gets calls and emails (calls used to arrive as notes, emails were not written). Odoo gets calls as Call-type entries (they were dropped before). Pipedrive receives emails as Email-type activities instead of tasks. Calls from SugarCRM, SuiteCRM, Salesflare, Vtiger, Nutshell and Teamleader Focus into Clarify are now calls, not notes. Pipedrive's Activities stay one object, and each row is routed by its type (call, meeting, email, task) into HubSpot, Odoo or Clarify. Limit: where a destination has no matching type, the Objects step names the fallback. For example, Clarify takes meetings, calls and emails as comments.
Odoo: link user columns from HubSpot or Pipedrive to Odoo users#
· HubSpot, Pipedrive, Odoo
When you migrate into Odoo with an API key, a source column that holds a user (an owner, creator or assignee) can now be linked to an Odoo user instead of being copied as plain email text. On the field review you can pick an existing Odoo field that links to users, or create a new one ('link to an Odoo user'). Each user is matched to an Odoo user by email or login. If no Odoo user matches, the field stays empty, the run summary counts it, and the email is kept in the record's internal note. Limit: the Odoo import package and the Odoo app do not write this field, so it applies to the API-key write only.
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.
Moving a Pipedrive account into HubSpot now handles three things that failed in the first live run. HubSpot portals with GDPR on refuse new contacts that have no legal basis. You now pick one from your portal's own options, on the Options step or later on the migration's legal-basis page. Shuttio never picks one for you, and a value mapped from your source wins. A start or retry is blocked while contacts have failed for this reason and no choice has been made, and the Errors tab links to the legal-basis page. HubSpot errors on a write now name the missing property and what to do, and say what HubSpot refused. "Reconnect" advice shows only for 401 and 403 errors. A source field named like an existing HubSpot property (any case) is now mapped into that property by default, in the field review and in the run, instead of creating a duplicate. Picklist values match by label. If a HubSpot-defined list lacks a value, the record still imports and the run summary lists the missing values per field. Link and name columns no longer show up as fields left out. Limit: when two source fields map to one property, the first non-empty value is written, and the summary counts the rows where the second differs.
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.
Pipedrive objects your plan lacks now show as unavailable, not as errors#
· Pipedrive
When your Pipedrive plan does not include an add-on such as Projects, the Objects step now shows that object greyed out as "not on this Pipedrive plan" instead of a red "Could not read" error. That object stays unavailable and cannot be migrated. If a match key you picked on the Fields step is no longer offered, the start stops with a message to open the Fields step and choose again. If the stale key was never picked by you, the start uses the default key and goes ahead.
Quick start: pick two apps, connect them and run a sample#
A migration between two connected CRMs is now three steps: pick the source and the destination, connect both, and press Run sample migration. Shuttio maps the fields automatically and writes 50 records per object. Fields the automatic mapping could not place are listed, and you mark them reviewed before the full run. Customize before running still opens the Objects and Fields steps.
Every change a customer can use now gets an entry here, with a link to its guide or help page and a screencast when there is one.
Help articles for "A value was left empty" and "A required value is missing"#
Two more help articles explain messages on the Errors tab. One covers a value left empty while the record imported, the other a record that failed because the destination requires a field the source row does not have.
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.
Long-form guides now live at /guides/<name>. The first one covers what moves from Pipedrive to Odoo, what needs a separate export, field types, links and rollback. It was updated on 21 October.
Shuttio can write into Breakcold. The writer was checked on a real Breakcold workspace, and the checks fixed the Website and stage fields, deal names, duplicate answers and runs that pause when Breakcold reports insufficient tokens.
Each CRM Shuttio supports now has a help article with a table of its objects: what Shuttio exports, what it imports, and notes per object. The tables are computed from the product's registry, so they match what the product does.
Pipedrive projects and project tasks into Odoo's Project app#
· Pipedrive, Odoo
Pipedrive projects and their tasks now move into Odoo's Project app, with the customer, the manager matched by email, dates, tags and task stages. If the Project app is not installed in Odoo, the Objects step says so and hides both objects.
Help articles for rejected email addresses and phone numbers#
Two help articles explain the messages "Email address rejected" and "Phone number rejected: missing country code": why the destination refuses the value and how to fix it before a re-run.
Run page fixes: percent, open Pipedrive deals, required values#
· Pipedrive
The run percent no longer goes over 100. Open Pipedrive deals without a deal stage now migrate. The Errors tab names the field behind a required-value refusal.
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.
HubSpot emails can be read with an optional scope#
· HubSpot
A HubSpot connection can ask for the optional sales-email-read scope. With it, Shuttio reads the emails logged in HubSpot, so they can migrate with the records they belong to. Without the scope, the connection works as before.
The free sample keeps linked parents, and new records move at the price of the first run#
The 50-record sample now includes the companies and contacts that its deals point to, so links in the sample are real. After a full run, "Move new records" is free while the records done plus the new ones fit the price band of the first run. Beyond that band, Shuttio sends you to Checkout for the band you need.
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.
One From and To card, saved field edits and Retry all errors#
Starting a migration is now one card with searchable lists for the source and the destination. Field edits are saved on the server and restored on every visit. The Errors tab has a Retry all errors button, and the run page keeps its other actions in a More menu.
Help center at /help, and help@shuttio.com for support#
The help center answers questions about each source and destination, with a support matrix computed from the product's own registry and a search that runs in the browser. Support email is help@shuttio.com.
Odoo as a destination: connect with an API key or install the Shuttio Migration app#
· Odoo
The From and To card now offers Odoo as a destination. You can connect with an API key, or download the Shuttio Migration app from the app step and import through it.
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 Odoo migration re-runs the failed records and the failed notes, tasks and meetings by id, and does not touch the records that already landed. A record that failed to link is counted as failed once, and the failure row carries its cause.
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.