FlowRunner
PricingContact
Theme
Start Free

Salesforce Marketing Cloud

Email Marketing

Connect AI agents to Salesforce Marketing Cloud. Agents upsert and read Data Extension rows, fire Journey Builder entry events, send triggered transactional emails, and look up contacts to power segmentation and lifecycle campaigns.

5 actions OAuth available
An order completes in the storefront
Insert Data Extension Rows upserts the order record into the purchases Data Extension, keyed on order ID
List Contacts resolves the buyer's Contact Key from the contact model
Agent verifies the contact satisfies the post-purchase journey's entry criteria before injection
Fire Journey Event injects the contact into the post-purchase journey with the order attributes attached
Injection failures and contacts rejected by entry criteria post to the marketing ops channel
The lifecycle owner reviews rejected contacts and decides whether the entry criteria or the data needs fixing

What This Integration Enables

Salesforce Marketing Cloud is where enterprise lifecycle marketing lives, and its power depends entirely on what feeds it: Data Extensions that are current, journey entries that fire at event time, and triggered sends carrying accurate attributes. That feeding layer is the part SFMC does not do for you, and it is exactly what FlowRunner agents are built to run. Agents upsert Data Extension rows as events occur, inject contacts into Journey Builder journeys, dispatch triggered transactional emails through started send definitions, and read segments back out for reporting and enrichment. The position this connector takes: Marketing Cloud is the sending engine, FlowRunner is the orchestration layer that decides what enters it and when. That split matters because entry decisions, not send mechanics, are where campaigns go wrong. - Order, signup, and product events land in Data Extensions the moment they happen, via keyed upserts that survive retries - Journey injection happens in the same workflow that saw the triggering event, with the event's attributes carried in - Transactional emails personalize through the send definition's attributes rather than hardcoded application strings - Segments retrieved from Data Extensions feed reporting, enrichment, and cross-channel steps - Contact Keys resolve through the contact model, so messaging operations target real subscribers Because journeys send real email to real customers, FlowRunner's [human-in-the-loop](/concepts/human-in-the-loop) layer gates bulk injections while letting event-triggered single-contact flows run free.

Without FlowRunner

Data Extensions age between imports Segmentation runs on last week's CSV upload, so journeys fire on customers who already churned or already bought
Journey entry depends on batch schedules The event happened at 9am, the import ran at midnight, and the "immediate" post-purchase email arrived a day late
Transactional sends live outside marketing Order confirmations fire from application code nobody in marketing can see, version, or personalize

With FlowRunner

Data Extensions are written at event time Agents upsert rows the moment the order, signup, or status change happens, keyed so re-runs never duplicate
Journeys start when the event does Fire Journey Event injects the contact within the same workflow that observed the trigger
Every send is orchestrated in one place Triggered emails, journey entries, and the data feeding them run through auditable FlowRunner workflows

Use Case Scenarios

The post-purchase journey that starts at purchase time

An order arrives from [Shopify](/integrations/shopify). The agent upserts the order into the purchases Data Extension keyed on order ID, resolves the customer's Contact Key, and fires the journey entry event with order value, product category, and first-purchase flag as event data. The journey personalizes on those attributes from its first send. When the same order syncs twice because a webhook retried, the keyed upsert updates the existing row instead of duplicating it, and the journey's entry criteria keep the contact from entering twice.

Form leads get a welcome email while they still remember the form

A submission lands via [Typeform](/integrations/typeform). The agent writes the lead into the leads Data Extension, then calls Send Triggered Email against the started welcome definition with the respondent's answers as personalization attributes. The email references what they actually asked about, because the attributes came from the form, not from a generic segment. High-intent responses, scored by the agent on the answers given, also get injected into the sales nurture journey via Fire Journey Event, while the rest stay in the standard track.

Segments that leave the walled garden on a schedule

Every Monday the agent pages through Retrieve Data Extension Rows on the active-trial segment, exports the rows to [Google Sheets](/integrations/google-sheets) for the revenue team, and posts the count movement to [Slack](/integrations/slack). The same retrieval feeds enrichment: trial accounts matching target criteria get flagged to sales in the CRM. Marketing Cloud remains the system of record for the segment; FlowRunner makes the segment usable everywhere else without anyone clicking export.

Human-in-Loop Highlight

Fire Journey Event is irreversible in the way that matters to a marketer: once a contact is admitted, the journey's sends are in motion, and a bad batch injection means real customers receiving a sequence they should never have entered, with unsubscribe links attached to your brand. Insert Data Extension Rows carries a quieter version of the same risk, since an upsert with wrong keys silently overwrites rows in a Data Extension that live journeys are reading. So FlowRunner draws the gate at scale: single-contact, event-triggered injections and upserts run autonomously because each one traces to something the customer did. Any workflow that would inject a list of contacts into a journey, or bulk-rewrite a Data Extension powering active sends, presents the count, the target, and a sample to the lifecycle owner first. The agent prepares the batch; a person authorizes the blast radius.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

5 actions

Data Extensions

2
  • Insert Data Extension Rows Inserts or upserts rows into a Data Extension identified by its external key (Customer Key). Provide an array of row objects, each with a `keys` object (primary-key fields that identify the row) and a `values` object (the remaining field values). This is an async-friendly bulk upsert: existing rows matching the keys are updated, new rows are created. Use Retrieve Data Extension Rows to read data back.
  • Retrieve Data Extension Rows Retrieves rows from a Data Extension identified by its external key (Customer Key). Supports pagination via page number and page size, and optional server-side field filtering. Returns the requested rows along with paging metadata. Use Insert Data Extension Rows to write data.

Journeys and Messaging

2
  • Fire Journey Event Fires a journey entry event to inject a contact into a Journey Builder journey. Provide the Event Definition Key configured on the journey's entry event, the Contact Key of the subscriber to inject, and an optional Data object carrying the event's expected attributes. The contact must satisfy the journey's entry criteria to be admitted.
  • Send Triggered Email Sends a single triggered transactional email using a pre-configured triggered send definition (identified by its definition key). Provide the recipient's Contact Key, their email address, and optional attributes to personalize the message via AMPscript/personalization strings. The definition must already exist and be started in Marketing Cloud.

Contacts

1
  • List Contacts Lists contacts from the Marketing Cloud contact model. Supports pagination via page number and page size. Returns each contact's Contact Key, Contact ID, and core attributes. Use the Contact Key values with Fire Journey Event or Send Triggered Email.

Frequently Asked Questions

What can FlowRunner do with Salesforce Marketing Cloud?

FlowRunner agents can run Insert Data Extension Rows, Retrieve Data Extension Rows, and Fire Journey Event in Salesforce Marketing Cloud, plus 2 more actions.

Does connecting Salesforce Marketing Cloud to FlowRunner require OAuth?

Yes. Salesforce Marketing Cloud connects to FlowRunner with OAuth 2.0, so agents authenticate without handling raw credentials.

Can Salesforce Marketing Cloud trigger a FlowRunner workflow automatically?

Salesforce Marketing Cloud doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with Salesforce Marketing Cloud

$100 in credits. No card required. Connect in minutes.