Iterable + Salesforce

Connect Iterable and Salesforce to Unify Marketing and Sales Data

Sync customer engagement data between Iterable and Salesforce to run smarter campaigns and close deals faster.

Why integrate Iterable and Salesforce?

Iterable handles cross-channel customer engagement. Salesforce runs your sales pipeline and CRM. When they don't talk to each other, marketing campaigns go out without CRM context and sales reps follow up blind — no idea which emails a prospect opened or which campaigns they clicked. Integrating Iterable with Salesforce on tray.ai fixes that. Every lead, contact, and opportunity stays informed by real-time behavioral data moving between both platforms.

Automate & integrate Iterable & Salesforce

Use case

Sync New Salesforce Leads into Iterable Campaigns

Whenever a new lead is created or updated in Salesforce, tray.ai automatically adds or updates that contact in Iterable and enrolls them in the right nurture or onboarding campaign. No new lead falls through the cracks, and every prospect enters the right marketing journey the moment they hit your CRM.

Use case

Update Salesforce Records with Iterable Engagement Data

As contacts interact with Iterable campaigns — opening emails, clicking links, or completing workflows — tray.ai writes those engagement events back to the matching Salesforce lead or contact record as activity logs or custom field updates. Sales reps can see exactly which marketing touchpoints a prospect has hit, so their outreach is better timed and actually relevant.

Use case

Trigger Iterable Campaigns from Salesforce Opportunity Stage Changes

When a Salesforce opportunity moves to a new stage — Proposal Sent, Closed Won, whatever matters to your team — tray.ai fires the right Iterable campaign for that moment. Marketing can deliver case studies, onboarding sequences, or upsell content based on where deals actually stand, not on a generic schedule.

Use case

Suppress Unsubscribed or Bounced Contacts Across Both Platforms

When a contact unsubscribes, marks an email as spam, or hard-bounces in Iterable, tray.ai updates their opt-out status in Salesforce automatically. Sales reps won't contact people who've already opted out, and your sender reputation doesn't take a hit from contacts that should've been suppressed weeks ago.

Use case

Enrich Iterable User Profiles with Salesforce CRM Attributes

tray.ai pulls CRM attributes from Salesforce — account tier, industry, contract value, sales owner — and pushes them into Iterable user profiles as custom data fields. Marketing teams can then build tightly segmented audiences and personalize campaign content using real sales data instead of guesses.

Use case

Create or Update Salesforce Contacts from Iterable Subscriber Events

When a new user subscribes via an Iterable form or gets added to an Iterable list, tray.ai creates or updates the matching record in Salesforce. This is especially useful for product-led growth and inbound marketing leads who enter through Iterable-powered channels before they ever touch your sales funnel.

Use case

Report on Campaign Influence Across the Salesforce Pipeline

By routing Iterable campaign engagement data into Salesforce campaigns and campaign member objects, tray.ai lets revenue teams measure how much marketing actually moved pipeline. Marketing can show which Iterable campaigns touched deals at each stage and tie campaign performance to closed revenue — not just opens and clicks.

Get started with Iterable & Salesforce integration today

Iterable & Salesforce Challenges

What challenges are there when working with Iterable & Salesforce and how will using Tray.ai help?

Challenge

Matching Records Across Platforms Without Duplicate Creation

Salesforce and Iterable use different internal identifiers, so reliably matching the same person across both systems is harder than it looks. Without deduplication logic, syncing data between them creates duplicate leads or contacts in Salesforce and orphaned user profiles in Iterable.

How Tray.ai Can Help:

tray.ai's workflow logic lets you build custom matching rules — email-based lookups with upsert logic, for example — that check for existing records in Salesforce before creating anything new. You can define fallback behaviors, merge strategies, and field-level conflict resolution to keep both platforms clean.

Challenge

Handling High-Volume Event Streams from Iterable

Iterable can generate thousands of engagement events per hour — opens, clicks, conversions, unsubscribes — and that volume can cause performance problems or Salesforce API rate limit errors if the integration isn't designed to handle it.

How Tray.ai Can Help:

tray.ai handles high-throughput event streams with built-in rate limiting, retry logic, and queue management. You can batch Iterable events before writing to Salesforce, or filter down to only the highest-priority events so you're not burning API quota on data that doesn't matter.

Challenge

Mapping Complex Data Structures Between the Two Platforms

Salesforce has a deeply relational data model — custom objects, lookup relationships, required fields. Iterable uses a flatter user and event schema. Translating data between them, especially for custom fields, nested objects, or multi-value attributes, takes real transformation logic.

How Tray.ai Can Help:

tray.ai's visual data mapper and JSONPath expression engine let you reshape data between Salesforce's relational model and Iterable's user profile schema without writing custom code. You can map nested Salesforce objects to flat Iterable fields, handle nulls gracefully, and apply conditional logic where you need it.

Challenge

Maintaining Real-Time Sync Without Overloading Salesforce API Limits

Salesforce enforces strict daily API call limits. Integrations that poll too frequently or write every minor Iterable event back to Salesforce can burn through that quota fast, which breaks other integrations sharing the same limit.

How Tray.ai Can Help:

tray.ai lets you use Salesforce Change Data Capture or scheduled polling at sensible intervals instead of constant real-time polling. You can also filter which Iterable events actually get written back to Salesforce, cutting unnecessary API calls without leaving important data out.

Challenge

Keeping Field Mappings Current as Teams Customize Both Platforms

Ops teams customize Salesforce and Iterable all the time — new custom fields, renamed properties, updated campaign structures. Those changes can silently break existing integration workflows if nobody catches the broken field mapping before data loss has already happened.

How Tray.ai Can Help:

tray.ai gives you centralized workflow management with clear visibility into every field mapping and transformation step. When something changes in either platform, you can find and fix the affected step quickly. Error notifications flag broken mappings right away rather than days later when someone notices the data looks wrong.

Start using our pre-built Iterable & Salesforce templates today

Start from scratch or use one of our pre-built Iterable & Salesforce templates to quickly solve your most common use cases.

Iterable & Salesforce Templates

Find pre-built Iterable & Salesforce solutions for common use cases

Browse all templates

Template

New Salesforce Lead to Iterable Campaign Enrollment

Automatically adds new Salesforce leads to a specified Iterable list and enrolls them in a nurture campaign, keeping marketing journeys in sync with CRM lead creation in real time.

Steps:

  • Trigger when a new lead is created in Salesforce or an existing lead meets a defined criteria
  • Map Salesforce lead fields (name, email, company, lead source) to Iterable user profile attributes
  • Create or update the user in Iterable and enroll them in the target campaign or list

Connectors Used: Salesforce, Iterable

Template

Iterable Email Engagement to Salesforce Activity Log

Listens for email open, click, and conversion events in Iterable and writes structured activity records back to the matching Salesforce lead or contact, giving sales full visibility into marketing engagement.

Steps:

  • Trigger on Iterable webhook events such as emailOpen, emailClick, or emailConversion
  • Look up the matching lead or contact in Salesforce by email address
  • Log the engagement event as a Salesforce activity or update a custom engagement score field

Connectors Used: Iterable, Salesforce

Template

Salesforce Opportunity Stage Change to Iterable Campaign Trigger

Monitors Salesforce opportunities for stage changes and automatically fires targeted Iterable campaigns for each stage, delivering well-timed content to prospects and customers.

Steps:

  • Trigger when a Salesforce opportunity stage field is updated to a defined value
  • Retrieve the associated contact's email and profile data from Salesforce
  • Trigger the corresponding Iterable campaign or workflow for that opportunity stage

Connectors Used: Salesforce, Iterable

Template

Iterable Unsubscribe and Bounce Sync to Salesforce

Captures unsubscribe, spam complaint, and hard bounce events from Iterable and updates the corresponding Salesforce contact record to reflect the opt-out status, keeping both platforms compliant.

Steps:

  • Trigger on Iterable unsubscribe, spamComplaint, or emailBounce webhook events
  • Look up the contact in Salesforce by email address
  • Update the Salesforce contact's email opt-out field or add them to a suppression campaign

Connectors Used: Iterable, Salesforce

Template

Salesforce Account Data Enrichment to Iterable User Profiles

Periodically syncs Salesforce account and contact attributes — such as account tier, industry, and assigned sales rep — into Iterable user profiles to support advanced segmentation and personalization.

Steps:

  • Schedule a recurring tray.ai workflow to query updated Salesforce contacts or accounts
  • Extract CRM attributes such as account tier, industry, company size, and owner name
  • Update the corresponding Iterable user profile with the latest Salesforce field values

Connectors Used: Salesforce, Iterable

Template

Iterable New Subscriber to Salesforce Lead Creation

Automatically creates a new Salesforce lead whenever a user subscribes through an Iterable-powered channel, so inbound marketing subscribers land in the CRM without anyone doing it by hand.

Steps:

  • Trigger on an Iterable subscribe event or new user creation via webhook
  • Check Salesforce for an existing lead or contact with the same email to prevent duplicates
  • Create a new Salesforce lead with mapped Iterable subscriber attributes if no match is found

Connectors Used: Iterable, Salesforce