Skip to content
Afterstack
Menu

Migration Agent

HubSpot Marketing Hub → Customer.io

Add optional context, then the agent writes a detailed plan and coaches it step by step. The full plan stays on this page. Talk to a specialist or a matched services partner when the cutover is too heavy.

Product briefings are secondary. HubSpot Marketing Hub · Customer.io

Checking Migration Agent…

Talk to a specialist

Recommended services partners for HubSpot Marketing Hub → Customer.io, matched on category and product tags. Paid profiles never change this list. Partners never enter a software rank.

Migration specialist

Accenture

Custom pricing · unclaimed

Global systems integrator for SAP, Salesforce, and Dynamics cutovers that are programs, not a CSV. Escalation when the Migration Agent plan is enterprise-shaped.

Marketing stack

Migration · Crm Implementation · Ai Adoption

Migration specialist

Faculty

project · unclaimed

Applied-AI partner when the migration is really ‘put models into the operating loop,’ not a CSV into a new SaaS.

Marketing stack

Migration · Ai Adoption · Data

Migration specialist

Thoughtworks

Custom pricing · unclaimed

Engineering-led migration when the blocker is building the after, not buying another seat — data, AI, and platform cuts.

Marketing stack

Migration · Ai Adoption · Engineering

All services partners

Talk to a specialist

Get an introduction for HubSpot Marketing Hub → Customer.io

We match this to firms tagged for the stack. It is not a paid placement and it does not change a quiz rank.

Catalog plan outline

General guidance from the Afterstack catalog for HubSpot Marketing Hub → Customer.io. Not HubSpot Marketing Hub or Customer.io vendor documentation.

Migration friendliness
HubSpot Marketing Hub 6/10 · Customer.io 6/10
Speed to live
HubSpot Marketing Hub 6/10 · Customer.io 7/10
Catalog migration difficulty
HubSpot Marketing Hub high · Customer.io medium

Data to export from HubSpot Marketing Hub

  • custom objects
  • sequences and cadences
  • synced email and calendar links
  • workflow rules
  • saved reports
  • campaign and automation records
  • installed marketplace apps
  • AI assistant configuration
  • records for the catalog use cases: automation

How the catalogs differ

  • HubSpot Marketing Hub is flagged for custom objects. Customer.io is not, so the map is a redesign rather than a field-for-field copy.
  • Customer.io is not flagged for: custom objects, installed marketplace apps.
  • HubSpot Marketing Hub is flagged with an open API, which is the export path to test.
  • Customer.io is flagged with an open API for the load.
  • HubSpot Marketing Hub is cataloged as a fit for: Teams already on HubSpot CRM.
  • Customer.io is cataloged as a fit for: Product-led teams.

Phases

  1. Export

    Take HubSpot Marketing Hub as the source of truth for this pair. Export custom objects; sequences and cadences; synced email and calendar links; workflow rules; saved reports; campaign and automation records; installed marketplace apps; AI assistant configuration; records for the catalog use cases: automation. The inbound marketing SKU attached to the HubSpot CRM a generation of teams already run.

  2. Map

    Load into Customer.io only after the field map is written down. Behavioral messaging for product-led teams — events in, messages out. HubSpot Marketing Hub is flagged for custom objects. Customer.io is not, so the map is a redesign rather than a field-for-field copy.

  3. Prove a sample

    Customer.io scores 7/10 on speed to live and 6/10 on migration friendliness. Run one sample load and one report the team already uses in HubSpot Marketing Hub before a full cutover.

  4. Cut over

    HubSpot Marketing Hub scores 6/10 on migration friendliness and is marked high difficulty in the catalog. Keep HubSpot Marketing Hub readable until the team is working in Customer.io. HubSpot Marketing Hub is the campaigns, scoring, and landing-page SKU in the HubSpot suite — plus Breeze AI on top of a platform that was not designed as an AI content studio. It is the incumbent for teams whose ‘MAP’ was always a Hub. A Jasper or Mutiny is not a like-for-like swap if CRM and service still live in HubSpot. Confirm current Marketing Hub and Breeze packaging on HubSpot’s site.

HubSpot Marketing Hub to Customer.io: what the vendor docs actually cover

Linked sentences come from vendor documentation opened for this page. Everything else is general guidance, not HubSpot Marketing Hub or Customer.io vendor documentation. This section does not move data and does not change the catalog outline above.

What to export from HubSpot Marketing Hub

HubSpot's exports API, opened 2026-10-17, is the source procedure for people and lists. POST /crm/v3/exports/export/async starts a job. exportType is VIEW or LIST. format is XLSX, CSV, or XLS. objectType for contacts can be the name CONTACT. A list export also needs the ILS list id, which the page says you copy from the list details panel, not the other contact-list id. OAuth requires a super admin to grant crm.export. You can attach up to four associated object types. Association labels are optional. Internal property names and values are optional via exportInternalValuesOptions. Default association cap is 1,000 per row unless you set the override flag. Retrieval is GET on /crm/v3/exports/export/async/tasks/{exportId}/status. Status values include COMPLETE, PENDING, PROCESSING, and CANCELED. A finished job returns a download URL that expires five minutes after the completed request, and that URL works without another Authorization header. Limits are 30 exports in a rolling 24 hours and one export at a time. CSV or XLSX files past 1,000,000 rows, and any CSV past 2MB, arrive zipped. Workflows, emails, and landing pages are not in this API's object list as described. The Marketing Hub pricing URL the same day showed a pricing-data error and no dollar table. The catalog's zero starting price and free-plan flag could not be confirmed or contradicted from that error. No discrepancy is asserted.

How Customer.io imports

Customer.io's CSV article, opened the same day, loads people or events from a file or a Google Sheet. Each row is a person or an event. Each column is an attribute or an event property. The file must be under 100MB and at most 100 columns, and it needs an identifier column: id, email, phone, or cio_id when updating. Adding people requires an id column. Updates can match email or phone. The UI path is People, Add people, CSV or Google Sheets. The App API can also post /v1/imports with a public data_file_url that should expire about two hours after you start, an identifier of id or email, and a type of people. data_to_process defaults to all and can be add-only or update-only. Event imports cannot be add-only. Uploading people is described as an identify per row. The pricing page prints Essentials from 100 dollars a month billed monthly for 5,000 profiles, then a ladder through 50,000-plus at 505 dollars and up. Additional profiles on Essentials are 0.009 dollars. Additional 1,000 emails are 0.12 dollars on every plan column. Premium starts at 1,000 dollars a month billed yearly. Enterprise is let's talk. Seats are unlimited. Essentials allows 2 workspaces and 2 object types. Premium migration support and a dedicated technical specialist are marked available at an additional cost. A start-a-trial link is on the page. The catalog starting price of 100 matches Essentials. The catalog trial flag matches the trial link. Profiles count people and objects together. HubSpot workflows do not become journeys by being in the CSV.

Object and field mapping

  • A HubSpot contact is the closest object to a Customer.io person. Map email or a stable id. Customer.io wants id when the row is a create.
  • A HubSpot list can be exported with exportType LIST and the ILS id. Customer.io does not say that list becomes a segment. You would rebuild the segment.
  • Marketing-contact status is a HubSpot billing concept the import article on the HubSpot side mentions for imports into HubSpot. It is not a Customer.io column on the CSV page.
  • Workflows, marketing emails, and landing pages are not rows in the exports API description. They stay in HubSpot.
  • Object types on Essentials are capped at 2. A HubSpot custom object export is a different objectType and may not fit.
  • Association ids can ride along in the HubSpot file, up to four associated types. Customer.io's people CSV does not describe those association columns.
  • The five-minute HubSpot download URL is not the two-hour public URL Customer.io's API wants. Copy the file to storage you control.

What will not carry over

  • Journeys, workflows, and email templates. Neither doc says they convert.
  • Landing pages and forms.
  • A HubSpot Marketing Hub dollar amount. The pricing URL errored.
  • More than 100 columns or 100MB in one Customer.io CSV.
  • The ILS list id as a Customer.io identifier. It identifies a HubSpot list, not a person.
  • Premium migration support as included. The pricing table marks it as an extra cost.
  • A second concurrent HubSpot export. The limit is one at a time.

Cutover checklist

  1. Export contacts as CSV with the properties you will map, using a super admin if the call is OAuth.
  2. Download before the five-minute URL dies, then host a short-lived copy if you use the Customer.io imports API.
  3. Add an id column before create. Email-only files are for updates, on the CSV article's rule.
  4. Stay under 100 columns and 100MB. Split the file if the HubSpot zip is larger.
  5. Rebuild segments in Customer.io. Do not expect the ILS list to appear as an audience.
  6. Leave workflows running in HubSpot until a sample journey in Customer.io sends to the same people.
  7. Budget Essentials from 100 dollars a month if you are under 5,000 profiles, and 0.009 dollars for each extra profile.
  8. Treat Marketing Hub's missing price table as unknown, not as free, until the page loads.

Common pitfalls

  • Using the wrong HubSpot list id. The exports page says contact lists have two ids and only the ILS id works.
  • Leaving the download URL in a ticket. It is unauthenticated until it expires.
  • Counting a workflow export that the API did not offer.
  • Assuming migration support is inside the 1,000-dollar Premium card. The table says it costs more.
  • Declaring Marketing Hub free because the catalog says 0, after the live price table failed to load. Say the page errored.

Related catalog pages

Questions teams actually ask

Will Customer.io import HubSpot workflows?+

No page opened here says that. HubSpot's exports API moves records from a view or a list. Customer.io's CSV article creates or updates people and can send events. Journeys are rebuilt.

Which HubSpot id exports a list?+

The ILS list id, copied from the list details panel. The exports doc says contact lists have another id that must not be used in the request.

What does Customer.io cost?+

Essentials starts at $100 per month billed monthly for 5,000 profiles. Extra profiles on that plan are $0.009. Extra 1,000 emails are $0.12. Premium starts at $1,000 per month billed yearly. Checked 2026-10-17. The catalog's $100 starting price matches Essentials.

What does Marketing Hub cost on this check?+

Unknown. www.hubspot.com/pricing/marketing showed a pricing-data error and no dollar table. The catalog's $0 starting price was not confirmed and was not edited.

How long is the HubSpot download link good?+

Five minutes after the completed status request. You can GET the status again for a new URL. The link does not require an Authorization header, so do not forward it.

Last reviewed: 2026-10-17

Sources

Afterstack is not the vendor. This agent does not move data, does not authenticate to HubSpot Marketing Hub or Customer.io, and does not sell a rank. Methodology.