CRM migration

Migrate from Iterable to Zoho CRM

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

Iterable logo

Iterable

Source

Zoho CRM

Destination

Zoho CRM logo

Compatibility

67%

8 of 12

objects map 1:1 between Iterable and Zoho CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Iterable to Zoho CRM is a platform-type transition: Iterable organizes data around user profiles, campaigns, and multi-step journey automations for cross-channel marketing; Zoho CRM organizes data around Leads, Accounts, Contacts, and Deals for sales pipeline management. These are fundamentally different data models with no automatic equivalence. We migrate User Profiles to a Zoho Leads and Contacts split based on subscription status and behavioral recency, preserve Custom Event history as custom activity fields, and carry Subscription preferences into Zoho contact-level opt-in fields. We do not migrate Journeys or Campaigns as automation logic because Zoho Workflows and Iterable Journeys use incompatible trigger-and-action models. We deliver a written inventory of every active Journey, Campaign, and Template with recommended Zoho equivalents for the customer's admin to rebuild post-migration.

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

Iterable logo

Iterable

What's pushing teams away

  • Steep learning curve with unclear documentation forces teams to rely heavily on support for tasks that should be self-service.
  • SMS deliverability issues with accounts blocked without clear accountability or transparent root-cause communication from Iterable.
  • Contract pricing increases when usage is reduced, creating a billing model that punishes customers who downscale usage.
  • Cluttered UI requiring multiple clicks through nested menus to access common functions, slowing down campaign creation and editing.
  • Inconsistent conversion tracking and reporting makes it difficult to reliably measure campaign performance and optimize spend.

Choosing

Zoho CRM logo

Zoho CRM

What's pulling them in

  • Free tier is genuinely usable for up to 3 users with leads, pipeline management, and email tracking — no credit card required, making it easy to evaluate before committing.
  • Pricing undercuts Salesforce by 80–90% at equivalent feature tiers, with Enterprise plans offering capabilities that cost 3–4× more on competing platforms.
  • Deep ecosystem of 45+ integrated apps (Books, Desk, Creator, Campaigns) means companies already in the Zoho suite get native integrations without third-party connectors.
  • Highly customizable: custom modules, custom fields, Canvas drag-and-drop layouts, and Blueprint workflow automation without requiring developer resources.
  • Small-business reviewers highlight real-time team visibility, daily time savings of 60–90 minutes, and the ability to mold the CRM to any industry vertical.

Object mapping

How Iterable objects map to Zoho CRM

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

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

Iterable

User Profile

maps to

Zoho CRM

Lead or Contact (split based on lifecycle stage)

1:many
Fully supported

Iterable User Profiles with email, phone, and behavioral data map to Zoho Leads for prospects and Contacts for qualified buyers. We use Iterables subscription status, last engaged date, and custom lifecycle stage fields to determine the split: subscribed prospects with no purchase history go to Zoho Lead; users with purchase events or subscription-paid status go to Zoho Contact attached to an Account. The original Iterable dataId and email hash migrate to custom fields iter_data_id__c and iter_email_hash__c for reconciliation.

Iterable

Company

maps to

Zoho CRM

Account

1:1
Fully supported

Iterable does not have a native Company object but Company data stored within User Profile fields (company name, domain, industry) extracts to Zoho Account records. The Account Name maps from the company field; domain extracts to the Website field. Account is created before any Contact or Lead import so that the Account-Contact lookup relationship is satisfied at insert time.

Iterable

Custom Event

maps to

Zoho CRM

Task (custom field payload)

lossy
Fully supported

Iterable Custom Events carry behavioral data (event name, timestamp, user identification, arbitrary metadata). Zoho CRM has no native equivalent for arbitrary event payloads. We transform each event name and its key metadata into Zoho Task records with custom fields capturing event_name__c, event_timestamp__c, and serialized JSON payload in event_data__c for reporting queries. The Task links to the corresponding Lead or Contact via WhoId. Events without a matching user go to a dead-letter queue.

Iterable

List

maps to

Zoho CRM

Zoho CRM List or Tag

lossy
Fully supported

Iterable Lists are audience segments used for campaign targeting. We map list memberships as Zoho CRM Tags on Lead and Contact records (using Zohos native tagging feature). List names preserve as tag values prefixed with iter_list_. For lists used as suppression audiences, we set HasOptedOutOfEmail = true on the corresponding Zoho records. If the customer uses lists as static audience groups rather than tags, we can create a custom module for list management during migration scoping.

Iterable

Campaign

maps to

Zoho CRM

Zoho Campaign

1:1
Fully supported

Iterable Campaigns (email, SMS, push) with metadata (name, channel, status, schedule, template reference) map to Zoho CRM Campaigns. Campaign type from Iterable maps to Zoho Campaign Type; campaign ID preserves in custom field iter_campaign_id__c. Note that Zoho Campaigns track marketing campaign performance but do not execute sends natively. The customer's admin configures the send mechanism post-migration using Zoho Email Templates and mass email actions.

Iterable

Template

maps to

Zoho CRM

Email Template

1:1
Fully supported

Iterable Templates (HTML email, plain text, dynamic personalization via Handlebars syntax) export as content files with metadata. We import the template content into Zoho CRM Email Templates, preserving HTML structure and Handlebars-style placeholders where the Zoho template syntax supports them. Where Handlebars syntax is incompatible, we document the personalization tokens for the admin to re-implement using Zohos merge field syntax.

Iterable

Catalog Item

maps to

Zoho CRM

Product

1:1
Fully supported

Iterable Catalog items (product data for dynamic content insertion) map to Zoho CRM Products. The catalog schema fields map to Product fields: name, SKU (from catalog item id), price, description, and custom fields. Inventory quantities map to the Quantity field. We preserve catalog-to-Journey associations in a custom field iter_catalog_journey__c so the admin can relink after rebuilding Journeys in Zoho Workflows.

Iterable

Purchase

maps to

Zoho CRM

Potentials (Deals)

1:1
Fully supported

Iterable Purchase events (orderId, total, items, associated user) map to Zoho CRM Potentials when the customer uses Zoho for sales pipeline tracking. The purchase total maps to Potential Amount; purchase date maps to Closing Date; orderId maps to a custom field iter_order_id__c. Line items from the purchase attach to the Potential via Products linkage. If the customer does not use Zoho Deals, purchases migrate as custom fields on the Contact record.

Iterable

Subscription

maps to

Zoho CRM

Contact preferences (custom fields)

lossy
Fully supported

Iterable subscription status tracks opt-in and opt-out per channel (email, SMS, push). We map each channel status to Zoho CRM Contact-level fields: Email Opt-out (HasOptedOutOfEmail), SMS Opt-out, and Push Opt-out as custom Boolean fields with iter_email_subscription__c, iter_sms_subscription__c, and iter_push_subscription__c storing the original Iterable values. Subscription event history migrates as Task records for audit trail.

Iterable

User Profile System Fields

maps to

Zoho CRM

Lead or Contact Standard Fields

1:1
Fully supported

Iterables system fields (dataId, email, userId, createdAt, updatedAt, itery_user_id) map to Zoho standard fields: Email Address maps directly; dataId preserves in iter_data_id__c; createdAt maps to Created Time. Custom profile fields on Iterable map to Zoho custom fields of matching type (string to text, number to big integer, date to date picker, boolean to checkbox). We validate type compatibility during schema design before field creation.

Iterable

Journey

maps to

Zoho CRM

Workflow (inventory only)

1:1
Fully supported

Iterables Journey definitions (multi-step, multi-channel automation paths with branching logic and AI decisioning) have no direct Zoho CRM equivalent. We export Journey metadata including trigger conditions, branching paths, associated templates, and wait-action configurations. This becomes a written inventory document delivered to the customer for manual rebuild in Zoho Workflows and Blueprint. We do not execute Journey logic during migration.

Iterable

Data Sync Records

maps to

Zoho CRM

Not migrated (requires CSM coordination)

1:1
Mapping required

Iterable Data Sync is a warehouse export feature gated behind Customer Success requiring IP allowlisting. If the customer has active Data Sync records, we export the most recent snapshot but note that Data Sync requires CSM coordination to access and cannot be automated as a standard migration step. We recommend the customer export full Data Sync history before initiating the migration window.

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.

Iterable logo

Iterable gotchas

Medium

Iterable does not allow field deletion

High

Separate API endpoints for US and EU data centers

Medium

Soft limit of 8,000 unique fields per project

High

Enterprise pricing is opaque and contract-based

Low

Usage metrics lag by one calendar day

Zoho CRM logo

Zoho CRM gotchas

High

API access requires Professional tier or above

High

Subform fields do not export cleanly via CSV

Medium

API credit consumption is non-linear

Medium

Export download links expire in 7 days

Medium

Owner (User) assignments require pre-mapped user IDs

Pair-specific challenges

  • Journey automation does not migrate to Zoho Workflows

    Iterables Journey engine uses event-triggered branching with AI decisioning across multi-step, multi-channel paths. Zoho Workflows are record-triggered or time-based rules with simpler conditional logic. These are architecturally incompatible: a Journey that branches based on behavioral scoring, product affinity, and channel preference cannot be expressed as a Zoho Workflow without significant redesign. We do not migrate Journeys as automation code. We deliver a written inventory of every active Journey including its trigger, conditions, branches, and associated Campaigns and Templates, with a recommendation for Zoho Workflow or Blueprint reconstruction by the customer's admin.

  • Custom Events have no native behavioral object in Zoho CRM

    Iterable Custom Events are first-class objects with arbitrary metadata payloads that track behavioral data beyond profile updates. Zoho CRM has Tasks and Events as activity records but no native object for arbitrary event schemas. We transform Custom Events into Task records with serialized JSON payloads in custom fields. This preserves the data but does not replicate the same behavioral timeline visibility that Iterable provides. Teams relying on Custom Events for segmentation and scoring should plan to implement custom Zoho reporting views or a third-party analytics layer post-migration.

  • Zoho custom field limits vary by edition

    Zoho CRM Standard edition has limited custom field support; Professional, Enterprise, and Ultimate editions provide more extensive custom field creation. If the migration involves many Iterable profile fields or event metadata fields, we confirm the customer's Zoho edition during scoping and design the field map accordingly. Custom fields are not available in Zoho CRMs free edition at all. We audit the field count during discovery and advise on edition selection before migration begins.

  • Iterable field deletion is not possible

    Iterables custom fields cannot be deleted once created. During migration scoping, we audit all active and deprecated fields in the Iterable project. Deprecated fields that are no longer in use map to deprecated__c marker fields in Zoho or are omitted entirely if they contain no data. The customer should review deprecated fields during discovery to avoid carrying unnecessary schema overhead into Zoho.

  • Iterable data center split requires API endpoint verification

    Iterable operates separate API endpoints for US and EU data centers: api.iterable.com for USDC and api.eu.iterable.com for EDC. API keys are scoped to a single data center and are not interchangeable. We confirm the customer's data center during scoping and use the correct base URL for all extraction operations. Misidentifying the data center results in authentication failures and cross-region data mismatches during migration.

Migration approach

Six steps for a successful Iterable to Zoho CRM data migration

  1. Discovery and scoping

    We audit the Iterable project across API key scope (US or EU data center), User Profile field count and data types, active Custom Event names and metadata schemas, List memberships and segment sizes, Campaign and Journey counts, Template content volumes, Catalog item count, and Purchase and Subscription event history. We pair this with a Zoho CRM edition assessment to confirm custom field limits, module availability, and workflow constraints. The discovery output is a written migration scope with object mapping, a Zoho edition recommendation, and a list of Journey and Campaign items requiring manual rebuild.

  2. Schema design in Zoho Sandbox

    We deploy the destination schema into a Zoho CRM Sandbox using the Zoho API or manual configuration. This includes provisioning custom fields on Lead and Contact modules (matching Iterable field types), configuring Tags or custom picklist fields for List membership, designing the Campaign structure, creating Product records from Catalog items, and setting up any custom modules needed for behavioral event storage. We validate the schema before any data loads to avoid field type mismatches and edition-limit violations.

  3. Sandbox migration and reconciliation

    We run a full migration into the Zoho Sandbox using production-equivalent data volume. The customer's team spot-checks 25-50 records against the Iterable source (User Profile fields, Subscription status, event history, Campaign associations) and validates that the split between Lead and Contact is correct. The customer signs off on the mapping before production migration begins. Any corrections to field mapping, split rules, or custom field design happen at this stage.

  4. Contact and account import in dependency order

    We run production migration in record-dependency order. Accounts import first (from Iterable Company data in User Profiles). Leads and Contacts import second, with the lifecycle-stage split applied at transform time and AccountId resolved via lookup. Subscription preferences and behavioral fields attach at import. Each phase emits a row-count reconciliation report before the next phase begins. Iterables dataId and email hash preserve in custom fields for cross-system reconciliation.

  5. Behavioral event and purchase migration

    Custom Events migrate as Task records with event metadata in custom fields and a WhoId pointing to the migrated Lead or Contact. Purchase records migrate as Zoho Potentials (Deals) with line items attached and order IDs preserved. Catalog items migrate as Zoho Products with pricing and inventory data. Subscription event history migrates as additional Task records for audit trail. All parent-record lookups resolve before the batch commits.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Iterable writes during cutover, run a final delta migration of records modified during the migration window, then mark Zoho CRM as the system of record. We deliver the Journey, Campaign, and Template inventory document to the customer's admin team with recommended Zoho Workflow equivalents. We support a one-week hypercare window for reconciliation issues. We do not rebuild Iterables Journeys as Zoho Workflows inside the migration scope; that work requires a separate engagement or internal admin effort.

Platform deep dives

Context on both ends of the pair

Iterable logo

Iterable

Source

Strengths

  • Cross-channel execution across email, SMS, push, and in-app from one unified platform interface.
  • Real-time AI decisioning using behavioral, contextual, and performance signals to optimize message delivery.
  • Enterprise-grade infrastructure with contracts supporting billions of messages and high deliverability standards.
  • Comprehensive API with documented endpoints for users, events, campaigns, and catalogs, plus an interactive API reference.
  • Helpful customer support with strong onboarding assistance cited across review sites.

Weaknesses

  • High total cost of ownership with opaque enterprise pricing starting at $20K+ annually.
  • Significant learning curve requiring extensive support and time investment to build competent workflows.
  • SMS deliverability reliability issues with account suspensions applied without clear explanation.
  • Cluttered UI requiring multiple navigation steps to complete common campaign management tasks.
  • Limited reporting consistency that complicates performance measurement and campaign optimization.
Zoho CRM logo

Zoho CRM

Destination

Strengths

  • Generous free tier (3 users) with real CRM functionality — no artificial feature restrictions that prevent valid use cases.
  • Per-seat pricing is transparent and predictable; no contact-based billing surprises that inflate monthly invoices.
  • Blueprint visual workflow builder lets sales ops teams automate stage progressions without developer involvement.
  • Canvas drag-and-drop layout editor lets non-technical users customize module views and forms per role.
  • Active development cadence: API v8 is well-documented, supports bulk endpoints, and COQL queries handle complex filtering.

Weaknesses

  • Poor support quality and inconsistent SLA — Enterprise tier requires 50+ user minimum for Priority Phone support.
  • Daily export limits in the UI vary by plan tier, making large dataset extraction slow and planning-dependent.
  • Zia AI features are gated behind $40+/user Enterprise tier, not available to most SMB customers who chose Zoho for cost savings.
  • User-reported occasional UI inconsistencies and performance slowdowns on large datasets with many custom fields.
  • No EU-hosted option limits appeal for GDPR-sensitive companies; some competitors offer data residency guarantees Zoho does not.

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Iterable and Zoho CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Iterable and Zoho CRM.

  • Object compatibility

    A

    All 8 core objects map 1:1 between Iterable and Zoho CRM.

  • 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

    Iterable: Not publicly documented; returns RateLimitExceeded code on limit.

  • Data volume sensitivity

    A

    Iterable exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Iterable to Zoho CRM 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 Iterable to Zoho CRM data migrations

Answers to the questions buyers ask most during Iterable to Zoho CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Standard migrations under 20,000 User Profiles with clean contact data and no complex event schemas complete in four to six weeks. Migrations with high event volume (over 500,000 Custom Event records), large Catalog datasets, complex list structures, or multiple active Journeys move to ten to fourteen weeks because of event-to-Task transformation logic, Catalog-to-Product mapping, and the Sandbox validation cycle. Timeline depends on data quality, Zoho edition confirmation, and customer team availability for acceptance testing.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Iterable.
Land in Zoho CRM, 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