What Shuttio reads from SuiteCRM, where it lands in Attio, Clarify, Odoo, HubSpot, Pipedrive, Breakcold, Twenty, Capsule, HighLevel, ActiveCampaign, Zendesk Sell, folk, which permissions it needs and why, and what does not move.
Your instance address and an OAuth2 client an admin creates in Admin, OAuth2 Clients and Tokens (a Client Credentials client with the user it reads as). Shuttio checks it before saving anything, stores the client ID and secret encrypted, and deletes them 14 days after the migration finishes.
Object by object: What objects are supported for SuiteCRM migrations.
What Shuttio reads and moves
The list below describes the move into Attio. Where Clarify or Odoo differ, the destination's own article says so.
- Accounts and contacts: Accounts become companies and contacts become people, with their emails, phones, addresses and website. A contact is linked to its account.
- Leads: Leads land as people with a lead status, as deals at the stage Lead, or as their own object, as you choose. A lead that was converted is not imported a second time: it resolves onto the contact it became.
- Opportunities and sales stages: Opportunities become deals in the stage they are in, in SuiteCRM's order. Closed Won and Closed Lost carry over as won and lost, and the deal is linked to its account and to every contact related to the opportunity (one read per opportunity).
- Products: The product catalogue (Products) becomes an object of its own, with SKU, price and description.
- Cases: Cases become an object of their own, with subject, status, priority, and the account and contact they belong to.
- Projects: Projects become an object of their own, with their status, dates and manager.
- Custom fields: Fields added in Studio (names ending _c) keep their type: dropdown and multi-select fields keep their options, number, currency, date and yes/no fields stay typed.
- Notes, tasks, meetings and calls: They land on the contact, account or opportunity they are attached to. Tasks become Attio tasks with their due date, completion and assignee; meetings become meetings; calls land in Attio's Phone calls, or as a note when the workspace has not allowed activities.
- Owners: A task's assignee is matched to an Attio member by email.
- Emails: Archived and sent emails, with subject, sender, recipients, date and body, on the account, contact or opportunity they are related to. Drafts are not read. They land in Attio as a Logged emails activity on their record, unticked by default because Attio's mailbox sync may already show the same mail.
Where each thing lands
| SuiteCRM object | In Attio | In Clarify | In Odoo | In HubSpot | In Pipedrive | In Breakcold | In Twenty | In Capsule | In HighLevel | In ActiveCampaign | In Zendesk Sell | In folk |
|---|
| Accounts | Companies | Companies | Partners (companies) | Companies | Organizations | Companies | Companies | Organisations | Businesses | Accounts (matched by name, or created with a contact that works there) | Organizations (matched by name, else created) | Companies |
|---|
| Contacts | People | People | Partners (contacts) | Contacts | Persons | People | People | People | Contacts (put into their business) | Contacts | Contacts (put into their organization) | People |
|---|
| Leads | People, deals at the stage Lead, or their own object (you choose) | Its own object, created in Clarify when it has none | CRM leads | A custom object (HubSpot Enterprise), or the one you already have with that name | Leads | Not moved | A custom object, created in Twenty when it has none, or the one you already have with that name | Not moved | Not moved | Not moved | Leads | Not moved |
|---|
| Opportunities | Deals | Deals | CRM opportunities | Deals | Deals | Deals | Opportunities | Opportunities | Opportunities (pipeline and stage matched by name) | Deals (pipelines and stages created when missing) | Deals (pipeline and stage matched by name; the contact is required) | Deals (an object in the group Shuttio import) |
|---|
| Products | Its own object, or the one you already have with that name | Its own object, created in Clarify when it has none | Products | Products | Products | Not moved | A custom object, created in Twenty when it has none, or the one you already have with that name | Not moved | Not moved | Not moved | Not moved | Not moved |
|---|
| Cases | Its own object, or the one you already have with that name | Its own object, created in Clarify when it has none | Not moved | A custom object (HubSpot Enterprise), or the one you already have with that name | Not moved | Not moved | A custom object, created in Twenty when it has none, or the one you already have with that name | Not moved | Not moved | Not moved | Not moved | Not moved |
|---|
| Projects | Its own object, or the one you already have with that name | Its own object, created in Clarify when it has none | Projects (Odoo Project app) | A custom object (HubSpot Enterprise), or the one you already have with that name | Not moved | Not moved | A custom object, created in Twenty when it has none, or the one you already have with that name | Projects | Not moved | Not moved | Not moved | Not moved |
|---|
| Project tasks | Not moved | Not moved | Project tasks (Odoo Project app) | Not moved | Not moved | Not moved | Not moved | Not moved | Not moved | Not moved | Not moved | Not moved |
|---|
Notes, tasks, meetings, calls, files, owners and lists depend on the destination. This is the row for SuiteCRM, generated from the same tables the runner uses:
Into Attio
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Leads, Opportunities, Products, Cases, Projects | Yes | Yes | Yes | Yes | Yes | No | Yes | No |
|---|
Into Clarify
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Leads, Opportunities, Products, Cases, Projects | Yes | Yes | As comments | As comments | As comments | No | Yes | No |
|---|
Into Odoo
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Leads, Opportunities, Products, Projects, Project tasks | Yes | Yes | Yes | Yes | Yes | No | Yes | No |
|---|
Into HubSpot
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Leads, Opportunities, Products, Cases, Projects | Yes | Yes | Yes | Yes | Yes | No | Yes | No |
|---|
Into Pipedrive
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Leads, Opportunities, Products | Yes | Yes | Yes | Yes | Yes | No | Yes | No |
|---|
Into Breakcold
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Opportunities | Yes | Yes | Yes | Yes | As notes | No | No | No |
|---|
Into Twenty
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Leads, Opportunities, Products, Cases, Projects | Yes | Yes | As notes | As notes | As notes | No | Yes | No |
|---|
Into Capsule
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Opportunities, Projects | Yes | Yes | Yes | Yes | As notes | No | Yes | No |
|---|
Into HighLevel
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Opportunities | Yes | Yes | Yes | Yes | As notes | No | Yes | No |
|---|
Into ActiveCampaign
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Opportunities | Yes | As notes | As notes | As notes | As notes | No | Yes | No |
|---|
Into Zendesk Sell
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Leads, Opportunities | Yes | Yes | As notes | As notes | As notes | No | Yes | No |
|---|
Into folk
| From | Objects | Notes | Tasks | Meetings | Calls | Emails | Files | Owners | Lists |
|---|
| SuiteCRM | Accounts, Contacts, Opportunities | Yes | Yes | Yes | Yes | As notes | No | Yes | No |
|---|
Each destination's own article says how its data is written: Attio, Clarify, Odoo, HubSpot, Pipedrive, Breakcold, Twenty, Capsule, HighLevel, ActiveCampaign, Zendesk Sell, folk.
Permissions and why
| What | Why Shuttio needs it |
|---|
| Your instance address | Shuttio calls your own SuiteCRM, so it needs the address you open it at. It must be https and public; Shuttio refuses a private-network address and follows no redirect to another host. |
|---|
| An Authorization Client your admin creates | SuiteCRM has no app store: an admin creates a New Authorization Client in Admin, OAuth2 Clients and Tokens, with the Redirect URI https://www.shuttio.com/api/connect/suitecrm/callback. You enter its client ID and secret, then sign in to SuiteCRM and approve. Shuttio reads what your user sees; no password reaches Shuttio. |
|---|
Sign in as a user who sees everything you want to move. It needs SuiteCRM 7.15 or later, or 8.10 or later, with the API set up and its OAuth2 keys generated. SuiteCRM documents no request limit: Shuttio keeps three requests in flight and pauses the run, to resume where it stopped, if the server keeps refusing. The tokens and the client are stored encrypted and deleted 14 days after the migration finishes; Shuttio logs the token out of SuiteCRM then. Your admin can delete the client in SuiteCRM at any time.
Known limits
- The request limit: SuiteCRM documents no request limit; it is set per instance. Shuttio keeps three requests in flight, backs off when the server answers 429 or 503, and pauses the run, to resume where it stopped, when it keeps refusing.
- Quotes, contracts and invoices: Shuttio does not move SuiteCRM's quotes, contracts, invoices or campaigns. They stay there.
- Documents and attachments: Shuttio reads no documents, note attachments or email attachments from SuiteCRM. They stay there.
- Drafts and emails on leads or cases: A draft or an email queued to send never reached anyone, and an email related only to a lead or a case has no slot to land in. Neither is moved from SuiteCRM.
- Activities on leads, cases and projects: A note, task, meeting or call attached to a lead, a case or a project, with no contact named, has no slot to land in. It is counted in the run's report and not moved.
- Project tasks: Project tasks move into Odoo's Project app, not into Attio.
- Records outside your reach: SuiteCRM shows Shuttio only the records of the user who approved it. Sign in as a user who sees everything you want to move.
- Emails: sent, received and archived emails move with subject, sender, recipients, date and body, on the account, contact or opportunity they are related to. Drafts, emails that failed to send and emails related only to a lead or a case are not moved. Attachments are not read. Into Attio they land as a Logged emails activity, unticked by default because Attio's mailbox sync may already show them.