CRM migration

Migrate from Agillic to HubSpot

Field-level mapping, validation, and rollback between Agillic and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.

Agillic logo

Agillic

Source

HubSpot

Destination

HubSpot logo

Compatibility

100%

10 of 10

objects map 1:1 between Agillic and HubSpot.

Complexity

BStandard

Timeline

1–2 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Agillic is a Nordic customer marketing platform that organizes data around recipient profiles and campaign flow execution — with flexible, self-defined custom fields per recipient and global data tables for relational data. HubSpot CRM uses a standard object model: Contacts, Companies, Deals, and custom objects with a fixed property system that enforces data types and pick-list values. These architectural differences shape every migration decision we make. We map Agillic recipient profiles to HubSpot contacts, preserving all custom properties by matching them to HubSpot's property definitions or creating new ones. Global data tables become HubSpot custom objects, with N:N junction tables translated into junction objects where relationships are many-to-many. Email, SMS, event, and promotion activity exports from Agillic become HubSpot engagement logs tied to the contact record with original timestamps and owners preserved. Agillic flow execution IDs are stored as custom properties on the contact for auditability. Workflows, sequences, and automation logic in Agillic have no equivalent in HubSpot's automation model — these must be exported as definition references and rebuilt in HubSpot's workflow editor post-migration. The migration runs through Agillic's REST API with attention to rate limits and batch export scheduling, followed by a structured delta window that captures any records modified in Agillic during the cutover. A field-level diff on a representative sample precedes the full run so you can verify property mapping and activity log fidelity before HubSpot goes live.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Agillic logo

Agillic

What's pushing teams away

  • Rate limits and API quotas are not publicly documented, creating uncertainty for teams planning large-scale data migrations or integrations.
  • The platform's heavy reliance on developer configuration for data synchronisation, custom flow elements, and content templates means marketing teams without technical support encounter bottlenecks.
  • Complex workflow logic built by developers becomes difficult for non-technical marketers to modify independently, limiting operational agility.
  • Exporting Activity data requires external analysis tools; Agillic itself lacks built-in advanced analytics dashboards for post-campaign insight generation.

Choosing

HubSpot logo

HubSpot

What's pulling them in

  • Lowest barrier to entry of any major CRM — the free tier with unlimited contacts lets teams validate fit before committing to a paid plan, according to G2 and Capterra reviewers.
  • Native integration between the CRM and sales engagement tools (sequences, email tracking, dialer) means no separate sync configuration, a theme across G2 Sales Hub reviews.
  • Pipeline visualization, deal tracking, and automated workflows are consistently praised as intuitive and easy to set up without developer involvement.
  • Strong onboarding for new team members — reviewers on Capterra and G2 highlight how quickly new reps become productive without formal training.
  • The HubSpot platform ecosystem (Marketing, Sales, Service, CMS hubs) allows growing companies to consolidate tools without building new integrations.

Object mapping

How Agillic objects map to HubSpot

Each row shows how a Agillic object lands in HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Agillic

Recipient

maps to

HubSpot

Contact

1:1
Fully supported

Agillic recipient profiles migrate to HubSpot contacts. HubSpot requires a valid email address to create a contact — recipients without email addresses are flagged and exported to a separate exception report for manual review. All standard recipient fields (email, first name, last name, phone, address components) map to their HubSpot contact equivalents.

Agillic

Custom Property (per recipient)

maps to

HubSpot

Contact Property

1:1
Fully supported

Agillic's self-defined recipient properties map to HubSpot contact properties. We match property names to existing HubSpot properties by label and API name, or create new HubSpot properties preserving the original data type. Pick-list properties require value-by-value mapping; multi-select properties are stored as comma-separated strings or as HubSpot multi-checkbox properties depending on HubSpot tier availability.

Agillic

Company (in Agillic address book or linked via recipient property)

maps to

HubSpot

Company

1:1
Fully supported

Companies linked to recipients in Agillic migrate to HubSpot companies. Where Agillic recipients reference a company by name without a separate company record, we create a HubSpot company from the name and link it to the contact. Parent-child company hierarchies in Agillic map to HubSpot's parent company field — circular references are flagged before migration.

Agillic

Global Data Table

maps to

HubSpot

Custom Object

1:1
Fully supported

Agillic global data tables map 1:1 to HubSpot custom objects. Each row in a global data table becomes a custom object record in HubSpot. Field types are preserved: text fields become text properties, date fields become date properties, and pick-list fields map to HubSpot pick-list properties. We validate that the table schema fits within HubSpot's custom object limits per tier.

Agillic

Global Data Table (N:N relationship between two tables)

maps to

HubSpot

Junction Object

1:1
Fully supported

Agillic global data tables used to represent many-to-many relationships between entities translate to HubSpot junction objects. The junction object holds foreign keys to both related custom object records. We create the junction object schema in HubSpot, map each relationship row, and configure the association labels before the migration runs.

Agillic

Activity Export — Email Open

maps to

HubSpot

Engagement (Email logged on Contact)

1:1
Fully supported

Email open events from Agillic activity exports become HubSpot email engagement logs attached to the contact record. The original timestamp of the open, the subject line, and the email campaign name are preserved as properties on the engagement log. Multiple opens of the same email are preserved as separate engagement events.

Agillic

Activity Export — Email Click

maps to

HubSpot

Engagement (Email logged on Contact)

1:1
Fully supported

Email click events from Agillic activity exports map to HubSpot email engagement logs on the contact record, with the clicked URL and timestamp preserved. The link URL is stored in a custom property on the engagement log for reporting on digital engagement intensity.

Agillic

Activity Export — Unsubscribe

maps to

HubSpot

Contact Property (unsubscribed) + Engagement Log

1:1
Fully supported

Unsubscribe events from Agillic activity exports update the HubSpot contact's email unsubscribe property and are also logged as an engagement event for auditability. The original unsubscribe timestamp is preserved. We validate that the contact exists in HubSpot before writing the unsubscribe property — orphan events are logged separately.

Agillic

Activity Export — SMS / Push

maps to

HubSpot

Engagement (call logged on Contact)

1:1
Fully supported

Agillic SMS sends and push notifications map to HubSpot call engagement logs on the contact record, since HubSpot does not have a native SMS engagement type. The original send timestamp, message content, and SMS campaign name are preserved as properties on the engagement log.

Agillic

Flow Execution Log (Agillic flow execution IDs linked to recipients)

maps to

HubSpot

Contact Property

1:1
Fully supported

Agillic flow execution IDs linked to recipients are stored as a custom property on the HubSpot contact — a number or text property depending on the ID format. This preserves the audit trail of which campaigns reached each contact. Flow execution metadata (execution timestamp, flow name) is stored in a secondary custom property for reference.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Agillic logo

Agillic gotchas

High

Undocumented API rate limits complicate bulk migration planning

High

Fully custom schema requires mandatory field enumeration during discovery

Medium

Flows are not exportable as portable workflow definitions

Medium

Activity Export requires explicit Flow Execution ID enablement

HubSpot logo

HubSpot gotchas

High

Marketing Contacts billing model is migration-critical

High

Feature tier gating is not visible until onboarding

Medium

Mandatory onboarding fees inflate year-one cost

Medium

HubSpot CSV importer cannot migrate engagements or attachments

Medium

Custom objects require Enterprise and a pre-existing schema

Pair-specific challenges

  • Agillic REST API rate limits constrain extraction window

    Agillic imposes per-instance daily rate limits on its REST API. Large recipient datasets may require multiple export batches spread across scheduled export windows, which can extend the extraction phase significantly beyond what a single API pull would achieve. We request full export schedules from Agillic and map extraction runs to non-peak hours to maximise throughput within the rate limit budget. Daily limit resets are factored into the migration timeline before any data transformation begins.

  • HubSpot Marketing Hub Starter caps at 250,000 contacts per portal

    HubSpot's Marketing Hub Starter tier limits each portal to 250,000 marketing contacts. If your Agillic recipient list exceeds this, records above the cap will not receive marketing emails in HubSpot without an upgrade to a higher tier. We surface the total recipient count during discovery and recommend a tier upgrade or archival strategy before the migration plan is finalised. Contacts above the cap can be migrated as non-marketing records to preserve the data without triggering the billing limit.

  • Agillic activity exports are date-range scoped, limiting historical depth

    Agillic's activity export feature is scoped by a date range, and older engagement events may fall outside the configurable window. This means email open history, click history, and unsubscribe events from older campaigns may not be retrievable unless they were already exported or archived separately. We query the available date range during discovery and capture the maximum available history, flagging any gaps in the audit log for your team to assess before migration runs.

  • Agillic custom property names require manual mapping to HubSpot's property system

    Agillic allows flexible property naming with no enforced convention, while HubSpot's property system has naming rules and enforces data types at the property level. Pick-list properties in Agillic need value-by-value mapping to HubSpot pick-list values. Multi-select properties in Agillic require conversion to comma-separated strings or HubSpot multi-checkbox properties depending on your HubSpot edition. We deliver a property mapping plan before migration that documents every custom property, its Agillic data type, and the corresponding HubSpot property or creation requirement.

  • Agillic global data table schemas must be preserved and recreated in HubSpot

    Agillic global data tables support self-defined schemas with arbitrary field names and types, which do not have a direct HubSpot equivalent by default. Each table becomes a HubSpot custom object, and every field must be manually mapped and recreated. N:N junction tables require junction objects in HubSpot with foreign-key fields pointing to the two related custom object records. We deliver the custom object and junction object schema definitions as part of the migration plan so your HubSpot admin can create the structure before data lands.

Migration approach

Six steps for a successful Agillic to HubSpot data migration

  1. Extract and audit Agillic data via API and export schedules

    We connect to Agillic's REST API using production-instance credentials and pull the full recipient export including all custom property columns. Activity exports are scheduled and retrieved via WebDAV or API for the maximum available historical window. We audit the total record count per object, flag recipients without email addresses, and identify all custom property names and their data types. The export plan is shared with your team before extraction begins so you can confirm the data scope.

  2. Map Agillic properties to HubSpot properties and create custom objects

    We map every Agillic recipient property to a HubSpot contact property by matching labels or API names, or by creating new HubSpot properties preserving the original data type. Pick-list and multi-select properties receive value-by-value mapping. Global data table schemas are translated to HubSpot custom object definitions, with junction tables converted to junction objects for N:N relationships. The complete mapping plan is delivered as a spreadsheet for your HubSpot admin to review and create the property and object definitions before migration.

  3. Migrate recipients, companies, and activities in dependency order

    HubSpot requires a company to exist before a contact can be associated to it, so we sequence the migration accordingly: companies first, then contacts with primary company associations, then activity engagement logs attached to contacts. Global data tables and their junction relationships migrate after the contact base is stable. Each batch is validated against the source after write — record counts, required field coverage, and association completeness are checked before the next batch begins.

  4. Run sample migration with field-level diff before full run

    A representative sample — typically 100–500 recipients spanning the full range of custom property configurations and activity types — migrates first. We generate a field-level diff between the Agillic source values and the HubSpot destination values so you can verify that property mapping, pick-list values, multi-select formatting, and timestamp fields are correct. Any mapping errors are corrected in the migration plan before the full run commits.

  5. Execute full migration with delta-pickup and audit log

    The full migration runs against HubSpot, processing recipients, companies, global data tables, and activity logs in the validated sequence. A delta-pickup window of 24–48 hours captures any records modified in Agillic during the cutover period. Every write operation is captured in an audit log. One-click rollback is available if reconciliation identifies record count gaps or field mapping errors after the migration completes.

Platform deep dives

Context on both ends of the pair

Agillic logo

Agillic

Source

Strengths

  • Fully customisable recipient schema with no fixed field constraints.
  • Native omnichannel support: email, SMS, push, print, paid media, and point-of-sale.
  • GDPR compliance built-in with annual independent security audits.
  • Staging and production separation for safe campaign testing.
  • Real-time audience activation to Google and Meta.

Weaknesses

  • API rate limits are not publicly documented, complicating migration planning.
  • Heavy developer dependency for data sync, custom flows, and content templates.
  • No built-in advanced analytics — requires external BI tools for activity analysis.
  • Workflows (Flows) are tightly coupled to Agillic's execution engine, making cross-platform migration requires reimplementation.
HubSpot logo

HubSpot

Destination

Strengths

  • Genuinely useful free CRM tier with no seat limit on contact records.
  • All-in-one sales engagement layer (sequences, email tracking, calling, dialer) embedded natively in the CRM, eliminating a separate integration.
  • Intuitive interface and fast onboarding for individual reps, per G2 and Capterra reviews.
  • Workflow automation triggers across contacts, deals, and tickets with a visual builder.
  • API coverage for all standard objects including custom objects at Enterprise tier.

Weaknesses

  • Pricing model is contact-based at the marketing layer — importing all records as marketing contacts can multiply the monthly bill by 4×.
  • Feature tier cliffs are frequent surprises: sequences, calling, advanced reporting, and quoting are all gated, often requiring plan upgrades mid-implementation.
  • Mandatory onboarding fees at Professional ($1,500) and Enterprise ($3,500) are not prominently disclosed on the pricing page.
  • API rate limits are restrictive for bulk migration — burst limits of 100-200 req/10sec and search endpoint limits of 4 req/sec require careful job queuing.
  • Custom objects, additional pipelines, and advanced forecasting are Enterprise-only, making cost projections difficult for growing teams.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Agillic and HubSpot.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Agillic: Not publicly documented — limited per production instance per day.

  • Data volume sensitivity

    B

    Agillic doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Agillic to HubSpot migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Agillic to HubSpot data migrations

Answers to the questions buyers ask most during Agillic to HubSpot migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Agillic to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Agillic-to-HubSpot migrations complete in one to two weeks of clock time for under 50,000 recipient records with standard custom property counts. Larger datasets exceeding 100,000 recipients, or setups with multiple global data tables and N:N junction relationships, extend to three to four weeks. Agillic's API rate limits and scheduled export windows are the primary timeline variable — we factor in batch export timing during the planning phase.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Agillic.
Land in HubSpot, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day