CRM migration
Field-level mapping, validation, and rollback between Agillic and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.
Agillic
Source
HubSpot
Destination
Compatibility
10 of 10
objects map 1:1 between Agillic and HubSpot.
Complexity
BStandard
Timeline
1–2 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
HubSpot
Contact
1:1Agillic 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)
HubSpot
Contact Property
1:1Agillic'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)
HubSpot
Company
1:1Companies 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
HubSpot
Custom Object
1:1Agillic 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)
HubSpot
Junction Object
1:1Agillic 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
HubSpot
Engagement (Email logged on Contact)
1:1Email 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
HubSpot
Engagement (Email logged on Contact)
1:1Email 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
HubSpot
Contact Property (unsubscribed) + Engagement Log
1:1Unsubscribe 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
HubSpot
Engagement (call logged on Contact)
1:1Agillic 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)
HubSpot
Contact Property
1:1Agillic 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.
| Agillic | HubSpot | Compatibility | |
|---|---|---|---|
| Recipient | Contact1:1 | Fully supported | |
| Custom Property (per recipient) | Contact Property1:1 | Fully supported | |
| Company (in Agillic address book or linked via recipient property) | Company1:1 | Fully supported | |
| Global Data Table | Custom Object1:1 | Fully supported | |
| Global Data Table (N:N relationship between two tables) | Junction Object1:1 | Fully supported | |
| Activity Export — Email Open | Engagement (Email logged on Contact)1:1 | Fully supported | |
| Activity Export — Email Click | Engagement (Email logged on Contact)1:1 | Fully supported | |
| Activity Export — Unsubscribe | Contact Property (unsubscribed) + Engagement Log1:1 | Fully supported | |
| Activity Export — SMS / Push | Engagement (call logged on Contact)1:1 | Fully supported | |
| Flow Execution Log (Agillic flow execution IDs linked to recipients) | Contact Property1:1 | Fully supported |
Gotchas + challenges
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 gotchas
Undocumented API rate limits complicate bulk migration planning
Fully custom schema requires mandatory field enumeration during discovery
Flows are not exportable as portable workflow definitions
Activity Export requires explicit Flow Execution ID enablement
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
Agillic
Source
Strengths
Weaknesses
HubSpot
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Agillic and HubSpot.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Agillic: Not publicly documented — limited per production instance per day.
Data volume sensitivity
Agillic doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Agillic to HubSpot migration scoping. Not seeing yours? Book a call.
Walk through your Agillic to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Agillic
Other ways to arrive at HubSpot
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.