CRM migration

Migrate from Iterable to Salesforce Sales Cloud

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

Iterable logo

Iterable

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

92%

11 of 12

objects map 1:1 between Iterable and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Iterable and Salesforce Marketing Cloud are both cross-channel marketing platforms, but they organize data differently and require deliberate mapping during migration. Iterable uses a flat user-profile model with unlimited custom fields, lists for segmentation, and Journeys as the automation engine. Salesforce Marketing Cloud uses a Contact data model tied to a Data Extension architecture, with Journey Builder as the orchestration layer and separate Subscription Management for channel-level opt-out tracking. We map Iterable user profiles to SFMC Contacts and Data Extensions, migrate active list memberships as Audience membership, export campaign metadata and templates as reference records, and deliver a written Journey inventory so your SFMC admin can rebuild automation logic in Journey Builder. We do not migrate Journeys as code, Templates as code, or Automations. SMS configuration requires re-verification with carriers post-migration because SFMC manages sender IDs and long-codes independently from Iterable.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Iterable objects map to Salesforce Sales Cloud

Each row shows how a Iterable object lands in Salesforce Sales Cloud, 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

Salesforce Sales Cloud

Contact + Data Extension

1:1
Fully supported

Iterable user profiles map to SFMC Contact records using email as the Subscriber Key. System fields (dataId, userId, email, createdAt, updatedAt) map to standard SFMC Contact attributes. Custom profile fields migrate to a primary Data Extension with the same field names and types, linked to Contact via Subscriber Key. We flag any fields approaching Iterable's 8,000-field soft limit during scoping and consolidate redundant or deprecated fields before migration to avoid Data Extension schema bloat in SFMC.

Iterable

Custom Events

maps to

Salesforce Sales Cloud

Data Extension (event-log table)

1:1
Fully supported

Iterable custom events with their full metadata payloads migrate to a dedicated Data Extension that logs event name, user identification (Subscriber Key), event timestamp, and all custom event metadata columns. We flatten nested event metadata to top-level Data Extension fields during the transform phase. For recurring behavioral triggers that the customer wants to replicate in Journey Builder, we document the event schema and recommend Triggered Send or API Event entry sources.

Iterable

List

maps to

Salesforce Sales Cloud

Audience or Data Extension

lossy
Fully supported

Iterable Lists are flat user collections used for campaign targeting. We migrate list memberships as Contact membership in SFMC Audiences or as rows in a List-Name Data Extension keyed by Subscriber Key. Dynamic Lists require SQL Query Activities to replicate using Contact data and event filters. We preserve the original Iterable list names and IDs in the migration metadata for reference during Journey rebuild.

Iterable

Campaign

maps to

Salesforce Sales Cloud

Campaign reference record

1:1
Fully supported

Iterable campaign metadata (name, channel type, status, schedule, template reference, send configuration) exports as a reference record that we store outside SFMC as a migration artifact. SFMC does not have a native Campaign object equivalent to Iterable's campaign model. We deliver the campaign inventory as a structured CSV and a written summary so the customer's SFMC admin can recreate campaign reference data in SFMC Email Sends, Journey Builder entry configurations, or a custom Campaign object if the customer builds one in Salesforce CRM and links it via the SFMC-CRM connector.

Iterable

Journey

maps to

Salesforce Sales Cloud

Journey Builder reference inventory

1:1
Fully supported

Iterable Journeys define multi-step, multi-channel automation paths. We export Journey definitions including trigger conditions, branching logic, wait steps, and message action configurations as a written inventory document. SFMC Journey Builder uses a different event and activity model. We do not migrate Journeys as code. The inventory document maps each Iterable Journey to a recommended Journey Builder structure with entry source, activities, and split logic so the customer's admin or SFMC partner can rebuild them post-migration.

Iterable

Template

maps to

Salesforce Sales Cloud

Content Builder asset

1:1
Fully supported

Iterable HTML and Handlebars-templated message content migrates as asset records in SFMC Content Builder. We export template content, metadata, and personalization syntax. Handlebars conditionals and merge tags require manual conversion to SFMC AMPscript or Marketing Cloud Personalization (Interaction Studio) syntax during the SFMC implementation phase. We flag templates with complex dynamic logic for admin review before migration.

Iterable

Catalog Items

maps to

Salesforce Sales Cloud

Data Extension (product catalog)

1:1
Mapping required

Iterable Catalog is a product data store used for dynamic content insertion. We export catalog schemas and item records to a SFMC Data Extension with the same column structure. Product relationships to Journey steps require reconfiguration in Journey Builder because SFMC references catalog data through AMPscript lookup functions within email content rather than a separate catalog object.

Iterable

Purchase Events

maps to

Salesforce Sales Cloud

Data Extension (purchase log)

1:1
Fully supported

Iterable purchase events (orderId, total, items, user) migrate to a purchase-history Data Extension keyed by Subscriber Key. For teams migrating to SFMC Einstein (AI) capabilities, we recommend structuring this Data Extension to support Einstein Send Time Optimization and Einstein Email Recommendations, which require specific data shapes.

Iterable

Subscriptions

maps to

Salesforce Sales Cloud

Contact Subscription + Suppression Lists

1:1
Fully supported

Iterable channel-level opt-in/opt-out states migrate to SFMC Contact attributes (HasOptedOutOfEmail, MobileConnect opt-in flags) and to channel-specific suppression lists in MobileConnect and Push. We preserve subscription event history to maintain suppression logic. Note that SFMC handles SMS and push subscriptions separately from email subscriptions, and each requires its own opt-out configuration in the respective SFMC product.

Iterable

Data Sync Records

maps to

Salesforce Sales Cloud

Not migrated (requires separate engagement)

1:1
Mapping required

Iterable Data Sync is a warehouse export feature gated behind Customer Success and requiring IP allowlisting. Data Sync records migrate as standard Data Extension exports during the migration window if the customer has Data Sync enabled. If Data Sync is not active, we scope the migration to API-based profile and event extraction only and flag Data Sync activation as a pre-migration requirement for customers relying on warehouse-synced data.

Iterable

Owner/User

maps to

Salesforce Sales Cloud

SFMC User or API User

1:1
Fully supported

Iterable user accounts referenced as creators or modifiers of campaigns, Journeys, and templates map to SFMC user accounts by email. We resolve owner references in campaign and Journey metadata to SFMC User accounts provisioned in the destination tenant. If the customer uses Salesforce CRM alongside Marketing Cloud, we recommend using the CRM User as the SFMC user to keep attribution and permissions aligned.

Iterable

Suppression List

maps to

Salesforce Sales Cloud

SFMC Suppression List

1:1
Fully supported

Iterable maintains per-channel unsubscription records. We export the full suppression list per channel and import into SFMC Suppression Lists (for email) and MobileConnect suppression data (for SMS). This ensures migrated contacts who previously unsubscribed remain suppressed in SFMC and do not receive messages after cutover.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • Journeys do not migrate to Journey Builder

    Iterable Journeys and SFMC Journey Builder are architecturally different. Iterable uses event-triggered branching with a built-in delay engine; Journey Builder uses entry sources, activities, and decision splits that must be reconstructed manually. We export a written Journey inventory documenting every active Journey's trigger, conditions, branches, wait steps, and message actions with a recommended Journey Builder equivalent. The customer's SFMC admin or a certified SFMC partner rebuilds them post-migration. Skipping this step leaves marketing automation with gaps that are discovered only after cutover.

  • Iterable's USDC and EDC data centers require correct API targeting

    Iterable operates 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. SFMC tenants are also region-specific (SFMC pods such as s7.s1, s6.s1, or EU pods). We confirm the customer's Iterable data center and SFMC tenant region during scoping and use the correct base URLs for extraction and loading. Cross-region mismatches result in authentication failures and silent data loss.

  • Handlebars template syntax requires manual conversion to AMPscript

    Iterable templates use Handlebars syntax for dynamic personalization ({{firstName}}, {{#if}} conditionals). SFMC uses AMPscript and Template Language (GTL) for dynamic content. We export template content and flag any templates using Handlebars conditionals, loops, or partials for manual conversion to AMPscript or GTL. Templates migrated without conversion render as plain text or show literal Handlebars syntax in SFMC-sent messages.

  • Iterable Catalog relationships require AMPscript lookup reconstruction

    Iterable Catalog stores product data and references it directly in Journey message content. SFMC does not have a Catalog equivalent; product data lives in Data Extensions and is accessed via AMPscript Lookup functions inside email content. We migrate Catalog schemas and items to SFMC Data Extensions but flag that every message referencing catalog data must be updated to use LookupAmpscript or LookupRows functions pointing at the migrated Data Extension.

  • Iterable field deletion is impossible; deprecated fields persist

    Iterable does not allow field deletion once created. Custom fields created during experimentation accumulate in the profile schema indefinitely. During migration scoping, we audit the active field set and recommend which deprecated fields to exclude from the SFMC Data Extension schema. If the destination SFMC tenant has a Data Extension column limit (255 columns per Data Extension), we consolidate related fields or split into multiple linked Data Extensions to avoid truncation.

Migration approach

Six steps for a successful Iterable to Salesforce Sales Cloud data migration

  1. Scoping and data center confirmation

    We audit the Iterable project including data center (USDC or EDC), user profile field count, custom event types and volumes, active Lists and list sizes, active Journeys, campaign history, Catalog schemas, and subscription event volumes. We confirm the SFMC tenant region and edition. We deliver a written migration scope document specifying which objects migrate, which map to written inventories, and which require post-migration manual setup.

  2. Profile schema design and Data Extension architecture

    We design the SFMC contact schema and Data Extension structure based on the Iterable profile and event field audit. This includes mapping Iterable custom fields to SFMC Data Extension columns with correct data types, designing linked Data Extensions for nested event payloads, and configuring Contact attribute relationships for use in Journey Builder entry conditions. Schema is validated in SFMC Sandbox or a parallel tenant environment before production migration.

  3. Contact and profile migration

    We extract all Iterable user profiles via the /api/users/getUsers endpoint with pagination, preserving the full field map including system fields and custom fields. Profiles load into SFMC Contacts via the Contacts API or Bulk API with Subscriber Key as the dedupe key. Subscription status loads into Contact attributes and suppression lists simultaneously to maintain compliance throughout the migration window.

  4. Custom events, purchase history, and catalog data

    We export Iterable custom events, purchase events, and Catalog items to CSV or JSON format, transform nested metadata to flat columnar format, and load into the corresponding SFMC Data Extensions via Bulk API or Data Loader. For large event histories (over 5 million events), we chunk the export and load in batches with exponential backoff to avoid Iterable API rate limits.

  5. List and audience migration

    We export all Iterable list memberships and recreate them in SFMC as Audience memberships or as rows in a List-Name Data Extension keyed by Subscriber Key. Dynamic Lists require SQL Query Activity definitions that we document and hand to the customer's SFMC admin for configuration in Automation Studio. Suppression lists import to SFMC Suppression Lists and MobileConnect suppression data to ensure unsubscribed contacts remain suppressed at cutover.

  6. Journey and template inventory delivery

    We export Journey definitions as written documentation including trigger configuration, branching logic, message actions, and wait-step timing. We export template content with metadata as Content Builder reference records. We do not rebuild Journeys or convert templates to AMPscript inside the migration scope. We deliver the inventory and a recommended rebuild guide to the customer's SFMC admin or partner.

  7. Cutover, validation, and post-migration handoff

    We freeze Iterable sends during cutover, run a final delta migration of any profiles modified during the window, validate contact counts and suppression list integrity in SFMC, and enable SFMC as the active sending platform. We conduct a one-week hypercare window to resolve any data integrity issues. We do not provide ongoing SFMC admin support, Journey Builder configuration, or AMPscript development as part of the migration scope.

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.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

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 Iterable and Salesforce Sales Cloud.

  • 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

    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 Salesforce Sales Cloud 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 Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during Iterable to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 250,000 contacts with straightforward profile schemas and no complex Data Extension relationships typically complete in four to eight weeks. Migrations with large custom event histories, multiple active Journeys, Catalog data requiring Data Extension schema design, or EU data-center constraints move to twelve to twenty weeks. Discovery and scoping account for one to two weeks regardless of size.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Iterable.
Land in Salesforce Sales Cloud, 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