SuiteCRM

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.

Last updated: 7 Nov 2026

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 objectIn AttioIn ClarifyIn OdooIn HubSpotIn PipedriveIn BreakcoldIn TwentyIn CapsuleIn HighLevelIn ActiveCampaignIn Zendesk SellIn folk
AccountsCompaniesCompaniesPartners (companies)CompaniesOrganizationsCompaniesCompaniesOrganisationsBusinessesAccounts (matched by name, or created with a contact that works there)Organizations (matched by name, else created)Companies
ContactsPeoplePeoplePartners (contacts)ContactsPersonsPeoplePeoplePeopleContacts (put into their business)ContactsContacts (put into their organization)People
LeadsPeople, deals at the stage Lead, or their own object (you choose)Its own object, created in Clarify when it has noneCRM leadsA custom object (HubSpot Enterprise), or the one you already have with that nameLeadsNot movedA custom object, created in Twenty when it has none, or the one you already have with that nameNot movedNot movedNot movedLeadsNot moved
OpportunitiesDealsDealsCRM opportunitiesDealsDealsDealsOpportunitiesOpportunitiesOpportunities (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)
ProductsIts own object, or the one you already have with that nameIts own object, created in Clarify when it has noneProductsProductsProductsNot movedA custom object, created in Twenty when it has none, or the one you already have with that nameNot movedNot movedNot movedNot movedNot moved
CasesIts own object, or the one you already have with that nameIts own object, created in Clarify when it has noneNot movedA custom object (HubSpot Enterprise), or the one you already have with that nameNot movedNot movedA custom object, created in Twenty when it has none, or the one you already have with that nameNot movedNot movedNot movedNot movedNot moved
ProjectsIts own object, or the one you already have with that nameIts own object, created in Clarify when it has noneProjects (Odoo Project app)A custom object (HubSpot Enterprise), or the one you already have with that nameNot movedNot movedA custom object, created in Twenty when it has none, or the one you already have with that nameProjectsNot movedNot movedNot movedNot moved
Project tasksNot movedNot movedProject tasks (Odoo Project app)Not movedNot movedNot movedNot movedNot movedNot movedNot movedNot movedNot 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

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, Leads, Opportunities, Products, Cases, ProjectsYesYesYesYesYesNoYesNo

Into Clarify

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, Leads, Opportunities, Products, Cases, ProjectsYesYesAs commentsAs commentsAs commentsNoYesNo

Into Odoo

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, Leads, Opportunities, Products, Projects, Project tasksYesYesYesYesYesNoYesNo

Into HubSpot

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, Leads, Opportunities, Products, Cases, ProjectsYesYesYesYesYesNoYesNo

Into Pipedrive

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, Leads, Opportunities, ProductsYesYesYesYesYesNoYesNo

Into Breakcold

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, OpportunitiesYesYesYesYesAs notesNoNoNo

Into Twenty

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, Leads, Opportunities, Products, Cases, ProjectsYesYesAs notesAs notesAs notesNoYesNo

Into Capsule

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, Opportunities, ProjectsYesYesYesYesAs notesNoYesNo

Into HighLevel

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, OpportunitiesYesYesYesYesAs notesNoYesNo

Into ActiveCampaign

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, OpportunitiesYesAs notesAs notesAs notesAs notesNoYesNo

Into Zendesk Sell

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, Leads, OpportunitiesYesYesAs notesAs notesAs notesNoYesNo

Into folk

FromObjectsNotesTasksMeetingsCallsEmailsFilesOwnersLists
SuiteCRMAccounts, Contacts, OpportunitiesYesYesYesYesAs notesNoYesNo

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

WhatWhy Shuttio needs it
Your instance addressShuttio 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 createsSuiteCRM 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.

Not answered here? Email help@shuttio.com.