Into ActiveCampaign
What Shuttio writes into ActiveCampaign, where each object lands, how to connect, and what the ActiveCampaign API cannot do (deleting task types and account custom fields).
Last updated: 7 Nov 2026
Sources that can move into ActiveCampaign: Spreadsheet / CSV, HubSpot, Pipedrive, Affinity, Freshsales, OnePageCRM, Zendesk Sell, Close, folk, Insightly, Bitrix24, Capsule, HighLevel, SugarCRM, SuiteCRM, Salesflare, Vtiger, Twenty, Attio. A CSV import is free. A CRM migration is free under 5,000 records in total: contacts, companies, deals, notes, activities and files together; otherwise it is priced by record count. The sample is free. See pricing. ActiveCampaign to ActiveCampaign is not offered.
Object by object: What objects are supported for ActiveCampaign migrations.
Connect
- Paste your ActiveCampaign API URL (Settings, Developer; like https://acme.api-us1.com, or just the account name) and the API key. Shuttio sends the key as the Api-Token header and checks it with a live call before it stores anything. Accounts on a host other than api-us1.com are not supported yet.
- The key is stored encrypted and deleted 14 days after the migration finishes; there is nothing to revoke. A migration is pinned to the ActiveCampaign account it first wrote to: a key for another account is refused.
What Shuttio writes
- People as ActiveCampaign contacts, with first and last name, email and phone. ActiveCampaign requires an email: a person with none is listed as a failed row and not written. A contact is matched on its exact email first; a match is linked to and never overwritten.
- Companies as ActiveCampaign accounts, matched by exact name and created when ActiveCampaign has none of that name, with the website, the owner (the user with the same email) and your custom fields. People are linked to their account; deals are linked to theirs.
- Deals with their title, value (in cents), currency, owner, contact or account, pipeline and stage. Pipelines and stages are matched by name and created when ActiveCampaign has none of that name; a missing stage is added to a matching pipeline. Owners are matched to the user with the same email, else the first user of the account.
- Your own fields as contact, account and deal custom fields, created for you. A field with that name and a type that fits is reused, never retyped.
- Tags on people, by name. A tag ActiveCampaign does not have is created first, so a cancel can remove it.
- Notes on the contact, deal or account they were on. Tasks, meetings and calls are tasks in ActiveCampaign, of the types To-do, Meeting and Call (a type the account lacks is created), with their due date and whether they are done. A task belongs to a contact or a deal: one whose only record is an account, or that has no date, is written as a note instead.
Where each thing lands
| From | Object | Lands in ActiveCampaign as |
|---|---|---|
| HubSpot | Contacts | Contacts |
| HubSpot | Companies | Accounts (matched by name, or created with a contact that works there) |
| HubSpot | Deals | Deals (pipelines and stages created when missing) |
| Pipedrive | Persons | Contacts |
| Pipedrive | Organizations | Accounts (matched by name, or created with a contact that works there) |
| Pipedrive | Deals | Deals (pipelines and stages created when missing) |
| Affinity | Persons | Contacts |
| Affinity | Organizations | Accounts (matched by name, or created with a contact that works there) |
| Affinity | Opportunities | Deals (pipelines and stages created when missing) |
| Freshsales | Accounts | Accounts (matched by name, or created with a contact that works there) |
| Freshsales | Contacts | Contacts |
| Freshsales | Deals | Deals (pipelines and stages created when missing) |
| OnePageCRM | Companies | Accounts (matched by name, or created with a contact that works there) |
| OnePageCRM | Contacts | Contacts |
| OnePageCRM | Deals | Deals (pipelines and stages created when missing) |
| Zendesk Sell | Companies | Accounts (matched by name, or created with a contact that works there) |
| Zendesk Sell | People | Contacts |
| Zendesk Sell | Deals | Deals (pipelines and stages created when missing) |
| Close | Leads | Accounts (matched by name, or created with a contact that works there) |
| Close | Contacts | Contacts |
| Close | Opportunities | Deals (pipelines and stages created when missing) |
| folk | Companies | Accounts (matched by name, or created with a contact that works there) |
| folk | People | Contacts |
| folk | Deals | Deals (pipelines and stages created when missing) |
| Insightly | Organisations | Accounts (matched by name, or created with a contact that works there) |
| Insightly | Contacts | Contacts |
| Insightly | Opportunities | Deals (pipelines and stages created when missing) |
| Bitrix24 | Companies | Accounts (matched by name, or created with a contact that works there) |
| Bitrix24 | Contacts | Contacts |
| Bitrix24 | Deals | Deals (pipelines and stages created when missing) |
| Capsule | Organisations | Accounts (matched by name, or created with a contact that works there) |
| Capsule | People | Contacts |
| Capsule | Opportunities | Deals (pipelines and stages created when missing) |
| HighLevel | Businesses | Accounts (matched by name, or created with a contact that works there) |
| HighLevel | Contacts | Contacts |
| HighLevel | Opportunities | Deals (pipelines and stages created when missing) |
| SugarCRM | Accounts | Accounts (matched by name, or created with a contact that works there) |
| SugarCRM | Contacts | Contacts |
| SugarCRM | Opportunities | Deals (pipelines and stages created when missing) |
| SuiteCRM | Accounts | Accounts (matched by name, or created with a contact that works there) |
| SuiteCRM | Contacts | Contacts |
| SuiteCRM | Opportunities | Deals (pipelines and stages created when missing) |
| Salesflare | Accounts | Accounts (matched by name, or created with a contact that works there) |
| Salesflare | Contacts | Contacts |
| Salesflare | Opportunities | Deals (pipelines and stages created when missing) |
| Vtiger | Organizations | Accounts (matched by name, or created with a contact that works there) |
| Vtiger | Contacts | Contacts |
| Vtiger | Opportunities | Deals (pipelines and stages created when missing) |
| Twenty | Companies | Accounts (matched by name, or created with a contact that works there) |
| Twenty | People | Contacts |
| Twenty | Opportunities | Deals (pipelines and stages created when missing) |
| Attio | Companies | Accounts (matched by name, or created with a contact that works there) |
| Attio | People | Contacts |
| Attio | Deals | Deals (pipelines and stages created when missing) |
Matching, and what is never changed
- A contact is matched on email and an account on name, before anything is created. A record that matches one you already had is linked to, not written: its values are yours, and a cancel never removes it. The run counts them.
- A create that fails without an answer (a dropped connection, a 5xx) is never sent again: the row is reported as maybe written, and a Retry looks the contact up by email first.
ActiveCampaign's request limit
ActiveCampaign's API reference states no request limit and no Retry-After. Shuttio keeps a pause of a quarter of a second between requests, waits out a 429 and pauses the run, to resume where it stopped, when ActiveCampaign keeps refusing.
Known limits
- Tags on companies and deals, files, lists and every object other than people, companies and deals are not carried.
- A contact can belong to one account, and a note to one record: a person or note that names more is written on the first and the run counts them.
- A rollback deletes what the migration created: contacts, accounts and deals, their notes and tasks, the tags, pipelines and stages it added, and contact and deal custom fields. A task type it created is disabled, because ActiveCampaign does not let one be deleted. Account custom fields it created stay, because the API reference shows no way to delete them; the summary says so. Records that already existed are not touched.
Not answered here? Email help@shuttio.com.