FlowRunner
PricingContact
Theme
Start Free

Connect AI agents to Loops, the email platform built for SaaS. Agents create and update contacts, manage mailing list subscriptions, send transactional emails, and fire custom events that trigger automated email loops.

8 actions API key available
Loops website ↗ Platform Documentation ↗ Capability data verified 2026-07-27
A new customer converts to paid in the billing system
Find Contact checks whether the signup already exists in the audience
Update Contact upserts the contact with a Paid user group and the plan in a custom property
Send Event fires the purchase event with plan and amount as event properties, starting the paid-onboarding loop
Send Transactional Email delivers the receipt from its template with the order data merged in
Agent verifies the template used is on the approved transactional list
Any send routed through the transactional lane with a template not on that list waits for a person
The growth channel logs the contact, the event fired, and the loop it triggered

What This Integration Enables

Loops is email built the way SaaS teams think: contacts with properties, events that trigger sequences, transactional sends alongside marketing. That model only works when the product actually reports in, and most stacks report in badly, a nightly sync here, a manual import there. FlowRunner agents make Loops a live mirror of the product: every signup, upgrade, and milestone becomes a contact update or an event within moments of happening, and the automated loops the team designed fire on truth instead of on last Tuesday's snapshot. - Sync signups and customers from your app, CRM, or store into the audience as contacts - Fire custom events with properties to trigger event-based loops and update contacts in one call - Send transactional emails, receipts, resets, magic links, from templates without touching app code - Segment with user groups, external user IDs, and custom properties - Subscribe and unsubscribe contacts to mailing lists as part of an automation The transactional lane is powerful precisely because it bypasses subscription status, and that is exactly why FlowRunner's [human-in-the-loop](/concepts/human-in-the-loop) discipline polices what is allowed to travel in it.

Without FlowRunner

The audience lags the product Signups, upgrades, and churns happen in the app and billing system, and Loops finds out at the next CSV import
Lifecycle emails fire on stale state The onboarding loop nurtures a user who upgraded last week, because the event never reached Loops
Transactional sends live in app code Every receipt or magic-link change means an engineer, a deploy, and a template hardcoded far from marketing

With FlowRunner

Product events drive the audience Agents upsert contacts and fire events the moment things happen, so segments and loops run on live state
Loops trigger on real behavior Custom events with properties start the right sequence at the right moment, with the data the emails need
Transactional email is a governed lane Sends run from approved Loops templates through a workflow, with the lane's rules enforced by a gate

Use Case Scenarios

The upgrade that emails itself correctly

A customer record lands from [Stripe](/integrations/stripe). The agent calls Update Contact to upsert the customer with a Paid user group, then Send Event with an upgrade event carrying the plan name. Loops moves the contact out of the trial nurture and into the paid onboarding sequence, and Send Transactional Email delivers the receipt from the approved template. Marketing owns every email in the chain from the Loops dashboard; the agent just supplies the truth and the timing.

Store buyers join the audience with their history attached

A new customer appears in [Shopify](/integrations/shopify). The agent creates the contact with a customer user group and the store as source, subscribes them to the right mailing list via IDs from List Mailing Lists, and fires a purchase event with the order value as a property. The abandoned-versus-purchased logic the team built in Loops finally has the events it was designed around.

The audience backfill that does not trample anyone

A legacy lead list lives in [Google Sheets](/integrations/google-sheets). The agent walks the rows, calls Find Contact for each email, creates the genuinely new ones with a legacy-import source label, and leaves existing contacts untouched rather than overwriting their properties. The run summary, created, skipped, malformed, posts to [Slack](/integrations/slack), and a person reviews the skipped list before any second pass with Update Contact.

Human-in-Loop Highlight

Send Transactional Email is exempt from subscription status by design: a password reset must reach a user who unsubscribed from marketing. That exemption is a loaded weapon, because the same call will deliver any template to any address, including a promotion dressed up as a notification, sent to people who explicitly opted out. That is how a SaaS company converts a compliance promise into a violation at machine speed. So FlowRunner flows treat the transactional lane as allow-listed: agents may send only template IDs a human has designated as genuinely transactional, receipts, resets, magic links, and any send request outside that list stops cold: "Flow attempted transactional send with template 'March feature roundup' to 214 contacts. This template is not on the transactional allow-list. Approve as an exception, or route through a campaign?" A person answers, and the answer is usually no. The other irreversible call, Delete Contact, follows the same rule: the agent finds and presents the contact, a person confirms before the permanent delete runs.

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

8 actions

Contacts

4
  • Create Contact Creates a contact with standard fields, user group, external user ID, source label, subscription status, custom properties, and mailing list memberships. Fails on an existing email, which makes it the safe choice when a flow must not overwrite.
  • Update Contact Upserts a contact by email or user ID, changing only the fields provided. The default write for syncs that should converge rather than conflict.
  • Find Contact Looks up a contact by email or external user ID and returns the full profile. The check that decides between create, update, and skip.
  • Delete Contact Permanently deletes a contact by email or user ID. Cannot be undone, and human-confirmed in FlowRunner flows.

Mailing Lists

1
  • List Mailing Lists Retrieves all mailing lists with ID, name, visibility, and default flag. The lookup behind every subscribe and unsubscribe decision.

Transactional

1
  • Send Transactional Email Sends a template-based transactional email to one recipient immediately, with data variables filling the template's merge fields, regardless of campaign subscription status. The operation this page's human gate allow-lists.

Events

1
  • Send Event Sends a custom event for a contact, creating the contact if needed, with properties usable in loop conditions and email content. The trigger that connects product behavior to automated sequences.

Account

1
  • Verify API Key Confirms the configured key is valid and returns the team name. The preflight check before a flow's first write.

Frequently Asked Questions

What can FlowRunner do with Loops?

FlowRunner agents can run Create Contact, Update Contact, and Find Contact in Loops, plus 5 more actions.

Does connecting Loops to FlowRunner require OAuth?

No. Loops connects to FlowRunner with an API key, no OAuth flow required.

Can Loops trigger a FlowRunner workflow automatically?

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

Start building with Loops

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