FlowRunner
PricingContact
Theme
Start Free

EmailOctopus

Email Marketing

Keep EmailOctopus audiences in sync with the rest of your stack. Agents create and update contacts, manage lists, look up subscribers by email address, and read campaign reports on opens, clicks, bounces, and unsubscribes to act on engagement automatically.

10 actions API key available
The Monday morning list-hygiene schedule fires
List Campaigns finds every send from the last 30 days
Get Campaign Report pulls opens, clicks, bounces, unsubscribes, and complaints for each send
List Contacts pages through the newsletter list, filtered by status
The agent assembles a removal candidate set: hard bounces, spam complaints, and subscribers dormant across every recent send
The marketing owner reviews the candidate set in Slack and approves or trims it before anything leaves the list
Update Contact marks approved dormant subscribers as Unsubscribed, and Delete Contact permanently removes the hard bounces
A summary of the cleanup, with counts by category, posts to the marketing channel

What This Integration Enables

EmailOctopus is the platform teams pick when they want email marketing without the platform tax, and that trade only holds if the list stays honest. Subscriber count is the pricing meter and the deliverability meter at once, so every stale contact costs money twice. That makes list hygiene a finance problem wearing a marketing costume, and exactly the kind of recurring, judgment-adjacent work FlowRunner agents are built to carry. Agents keep the subscriber base in sync with the systems where customers actually appear, and read campaign performance as data to act on rather than a chart to admire: - Add and update contacts the moment a customer signs up, buys, or changes their details, with custom fields and tags mapped from the source system - Look up any subscriber by plain email address, since the connector computes the MD5 contact id automatically - Pull campaign reports on a schedule and route opens, clicks, bounces, and unsubscribes into dashboards and alerts - Spin up new audience lists on demand as part of onboarding or segmentation workflows - Keep the irreversible operations, unsubscribes at scale and permanent deletions, behind a [human-in-the-loop](/concepts/human-in-the-loop) gate

Without FlowRunner

The list only grows Every form and store feeds subscribers in, nothing ever comes out, and deliverability quietly pays for it
Engagement read after the fact Campaign reports get opened days after a send, when the bounce spike is already a sender-reputation problem
Sync by CSV New customers reach the newsletter list in monthly exports, so the welcome email arrives weeks after the welcome mattered

With FlowRunner

Hygiene as a standing process Agents read every campaign report, flag the bounces and the dormant, and a person signs off on what leaves
Reports that trigger work Open and click rates land in a sheet and a channel within hours of a send, with the outliers called out
Contacts arrive as they happen A checkout or form response becomes a subscriber with the right fields and tags in the same minute

Use Case Scenarios

The welcome email that keeps up with the store

A checkout completes in [Shopify](/integrations/shopify). The agent calls Get Contact with the customer's email to check whether they already sit on the newsletter list, then Create Contact adds them with their first name and order category mapped into custom fields and a store tag applied. A respondent finishing a [Typeform](/integrations/typeform) survey gets the same treatment on the prospects list. Nobody exports a CSV, and the welcome sequence starts while the purchase is still fresh.

The campaign report that files itself

The morning after a send, the agent calls List Campaigns to find the latest campaign, then Get Campaign Report for its sent, opened, clicked, bounced, unsubscribed, and complained counts. The numbers append to a running sheet in [Google Sheets](/integrations/google-sheets), and a digest posts to [Slack](/integrations/slack). When the bounce rate or complaint count sits outside the list's normal range, the digest says so explicitly and tags the list owner, because a complaint spike is a today problem, not a next-retro problem.

Segmentation that builds its own lists

A product launch needs its own audience. The agent calls Create List for the launch segment, then pages through the main list with List Contacts, reading custom field values and tags to find the buyers who match. Each match gets Create Contact on the new list, with status and fields carried over. When the launch ends, Update Contact re-tags the segment on the main list with the campaign outcome, so the next segmentation pass starts smarter than this one did.

Human-in-Loop Highlight

Delete Contact is permanent, and on an email platform it deletes more than an address: the subscriber's status history and engagement record go with it, and EmailOctopus cannot bring any of it back. So the hygiene agent never fires it on its own judgment. It posts the candidate set first: "214 contacts hard-bounced across the last three sends, 41 marked spam complaints. Recommend permanent deletion for both groups. 890 subscribers opened nothing in 90 days. Recommend Unsubscribed status, not deletion." The marketing owner approves, trims, or holds each group, and only then does the agent execute. Machine speed for the sweep, human judgment for what the list loses forever.

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

Agent Capabilities

10 actions

Lists

3
  • List Lists Retrieves the audience lists in the account, including counts of contacts by status. Paginated with a Starting After cursor. The starting point for any workflow that operates across lists.
  • Get List Retrieves a single list by id, including its name, custom fields, tags, and per-status contact counts. Used to read a list's shape before mapping fields into it.
  • Create List Creates a new audience list with a given name and returns its generated id. The step behind launch segments and onboarding audiences built on demand.

Contacts

5
  • List Contacts Retrieves the contacts on a list, optionally filtered by Subscribed, Unsubscribed, or Pending status. The paging workhorse behind hygiene sweeps and segmentation passes.
  • Get Contact Retrieves a single contact by id or plain email address. The connector computes the MD5-hash id from the email automatically, so lookups need nothing but the address.
  • Create Contact Adds a subscriber to a list with email, optional status, custom field values, and tags. Defaults status to Subscribed. The write that turns a checkout or form response into a subscriber.
  • Update Contact Updates a contact's email, status, custom fields, or tags, changing only the values supplied. The instrument for re-tagging, status changes, and keeping details current with the CRM.
  • Delete Contact Permanently removes a contact from a list, identified by id or email. Cannot be undone. The operation this page's human gate exists for.

Campaigns

2
  • List Campaigns Retrieves the campaigns in the account with name, status, and send details. Paginated. Used to find the sends worth reporting on.
  • Get Campaign Report Retrieves the summary performance of a sent campaign: sent, opened, clicked, bounced, unsubscribed, and complained counts and rates. The data source for engagement dashboards and the hygiene sweep's evidence.

Frequently Asked Questions

What can FlowRunner do with EmailOctopus?

FlowRunner agents can run List Lists, Get List, and Create List in EmailOctopus, plus 7 more actions.

Does connecting EmailOctopus to FlowRunner require OAuth?

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

Can EmailOctopus trigger a FlowRunner workflow automatically?

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

Start building with EmailOctopus

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