FlowRunner
PricingContact
Theme
Start Free

Manage contacts and lifecycle marketing with Gist, covering events, tags, segments, forms, and drip campaigns. Agents keep segmentation driven by product behavior rather than a stale import.

27 actions API key available
Gist website ↗ Platform Documentation ↗ Capability data verified 2026-08-02
A win-back program starts against contacts with no product activity for 120 days
Agent resolves the win-back segment with List Segments and reads its live count with Get Segment
Agent pulls the matching contacts with List Contacts, filtered on subscription status
Agent separates the contacts who previously unsubscribed from this campaign from those who never enrolled
Agent reads each person's subscription types so a partial opt-out is not treated as a full one
Agent posts both cohorts and states exactly what re-enrollment would override
Lifecycle owner rules on the previously unsubscribed cohort before any enrollment runs

What This Integration Enables

Gist's unit of work is the sequence rather than the blast, and that changes which decisions are interesting. Subscribe Contact To Campaign takes a starting email index, so enrollment is not just whether a person enters a drip but where they enter it. Unsubscribe Contact From Campaign removes them from that one sequence and leaves every other subscription intact. Subscription types sit underneath all of it as granular preferences, so a contact can opt out of product announcements while still receiving billing notices, and Set Subscription Type Status is how a preference center anywhere else reflects itself back into Gist.

Around the sequences sits a complete contact and behavior model an agent can drive. Contacts de-duplicate on email with a documented lookup precedence, so repeated syncs never produce copies, and supplying a user ID promotes a Lead into a User. Track Event records product behavior that segments and campaigns react to. Tags are applied and removed in batches. Forms carry their full field schema, and Subscribe Contact To Form submits on a contact's behalf, which creates or updates the contact and runs whatever automations that form triggers. Everything is available to FlowRunner agents so that segmentation reflects what people actually did, and so that the digital andon cord can be pulled at the point where a sequence would reach someone who asked not to hear from it.

Without FlowRunner

Sequences are managed by hand Someone exports a list, opens the campaign, and pastes people in
Every enrollment starts at email one A customer who already read the onboarding series receives it again from the top
Opt-out is treated as one switch A person who declined product updates is dropped from receipts and renewal notices too

With FlowRunner

Enrollment is a flow step Contacts enter and leave sequences on product behavior, with the enrollment recorded
Entry point is chosen Enrollment can start partway through so people skip what they already received
Preferences stay granular Subscription types are read and set individually, so declining one thing is not declining everything

Use Case Scenarios

Onboarding that starts where the customer already is

A new account signs up and the agent calls Create Or Update Contact with the email and the user ID, promoting the record from Lead to User in one step. It then reads product telemetry to see what the account has already done. A team that has already connected an integration and invited a colleague does not need the first three onboarding emails, so the agent calls Subscribe Contact To Campaign with a starting index that skips them. The sequence picks up at the step that is actually next for this customer rather than at the step that is first in the campaign.

Behavior removing someone from a sequence

A customer in a payment-recovery drip pays their overdue invoice in Stripe. The agent calls Track Event to record the payment, then Unsubscribe Contact From Campaign to pull them out of the recovery sequence immediately, and Remove Tag From Contacts to clear the at-risk label. Their other campaign subscriptions are untouched. The next dunning email that would have gone out tomorrow simply does not, which is the whole point.

Reconciling captured leads against the CRM

Forms capture leads on the marketing site, and a weekly agent walks List Forms to enumerate them, then List Form Submissions for each one, reading the field values, consent flags and confirmation timestamps. It matches each submission against HubSpot and reports the ones that never made it across, along with the consent flag recorded at capture. Where a submission needs to be replayed, Subscribe Contact To Form resubmits it so the form's own automations run exactly as they would have on the day.

Human-in-Loop Highlight

The gate is on re-enrollment, because Subscribe Contact To Campaign will happily re-enroll someone who previously unsubscribed from that campaign and the platform will not argue with you. That option exists for legitimate reasons: a person who opted out of an onboarding sequence eighteen months ago and has since started a new account is not the same case as someone who opted out last week. But the flag is a deliberate override of a recorded preference, and an agent should never set it on its own. So when a win-back run finds contacts matching the segment who carry a prior unsubscribe, it holds them and asks: "Win-back segment matches 3,412 contacts. 2,987 have never been in this campaign and are ready to enroll at email one. 425 previously unsubscribed from it, 310 of them within the last 90 days. Enroll the 2,987 only, include the 115 who opted out over 90 days ago, or hold everything pending a review of the campaign copy?" That is the difference between an agent that can send and an agent that knows which sends are its to make. It handled the 2,987 without supervision and stopped at the 425, because overriding what a person told you is a decision a person should sign.

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

27 actions

Contacts

6
  • Create Or Update Contact Creates a contact or updates the matching one, de-duplicating on email so repeated syncs never produce copies. Supplying only an email creates a Lead; adding a user ID creates or promotes the record to a User. Lookup precedence is contact ID, then user ID, then email.
  • Create Or Update Contacts In Batch Queues a batch of contact creates and updates in one request, returning a batch ID immediately. Used to import an existing database without hitting the workspace rate limit, with progress followed through Get Batch Import Status.
  • Get Batch Import Status Reports how far a queued import has progressed, using the batch ID from the submission. Used as the wait step so downstream automations do not run against a half-loaded audience.
  • Get Contact Retrieves a single contact with its properties, tags, segments, subscription types and location data, looked up by Gist ID, your own user ID, or email address. Used to read current state before deciding what to send.
  • List Contacts Returns a paginated page of contacts with server-side filtering by subscription status, tag, segment, campaign, form submission, email keyword or creation window. Used to assemble a working cohort without pulling the whole audience first.
  • Delete Contact Permanently deletes a contact along with all of their conversations and email history. Irreversible, so it belongs behind an erasure or cleanup approval rather than inside a routine sync.

Events

2
  • Track Event Records a product event against a contact so campaigns, segments and workflows can react to real behavior. Event names are case insensitive and periods and dollar signs are rewritten to hyphens, so lowercase hyphenated names are the safe convention.
  • List Events Returns the paginated catalogue of event names recorded in the workspace. Used to discover which events exist before a segment or automation is wired to one, rather than guessing at a name that was never sent.

Tags

5
  • Create Or Update Tag Creates a tag by name, or renames an existing one when a tag ID is supplied. Names are case insensitive and repeated submissions reuse the existing tag, so a flow never needs to check first.
  • Delete Tag Deletes a tag from the workspace, detaching it from every contact that carried it. The contacts themselves are untouched; only the label disappears, along with any segmentation that depended on it.
  • List Tags Returns the paginated list of tags with their IDs and names. Used to resolve a tag name to the ID that contact filters and segment definitions expect.
  • Add Tag To Contacts Applies a tag to a list of contacts in one call, creating the tag automatically when the name is new. Contacts are identified by Gist ID, email or your own user ID, and batches stay around 50 contacts to avoid a timeout.
  • Remove Tag From Contacts Removes a tag from a list of contacts without deleting the tag itself, so other contacts keep it. Used as the exit step when someone no longer belongs to a cohort.

Segments

2
  • Get Segment Retrieves a single segment with its name and timestamps, optionally with a live count of the contacts currently matching. Segments are rule driven, so the count reflects the audience at the moment of the call, which is what makes it worth reading before a send.
  • List Segments Returns the paginated list of segments, optionally with contact counts. Used to resolve segment names to IDs and to report on audience sizes across a program.

Forms

4
  • Get Form Retrieves a single form with its title, type, status and full field schema. Used to read the field keys before submitting, so supplied values line up with what the form actually expects.
  • List Forms Returns a paginated list of the workspace's forms with their field schemas, optionally narrowed to live, paused or draft. Used to enumerate lead capture surfaces for reconciliation.
  • Subscribe Contact To Form Submits a form on a contact's behalf, creating or updating the contact from the field values and running whatever automations the form triggers. Used to replay a captured lead so the intended automations fire, rather than writing the contact in silently and losing the follow-up.
  • List Form Submissions Returns the paginated submission history for a form including every field value, consent flags and the confirmation timestamp. Used to reconcile leads captured on the site against the records in a CRM or warehouse.

Campaigns

4
  • Get Campaign Retrieves a single drip campaign with its status, subscriber counts and aggregate open and click rates. Used to check campaign health before enrolling anyone new into it.
  • List Campaigns Returns a paginated list of drip campaigns with subscriber counts and engagement rates, optionally filtered by status. Used to discover campaign IDs and to report on a whole program at once.
  • Subscribe Contact To Campaign Enrolls a contact in a drip campaign, optionally starting partway through the sequence and optionally re-enrolling someone who previously unsubscribed. The starting index lets a contact skip emails they already received. The re-enrollment option overrides a recorded preference, which is why it belongs behind an approval.
  • Unsubscribe Contact From Campaign Removes a contact from one drip campaign so they receive no further emails in that sequence, leaving their other subscriptions untouched. Used the moment product behavior makes the rest of a sequence wrong.

Subscription Types

3
  • Get Subscription Type Retrieves a single subscription type with its description, publication status and opt-in count. Subscription types are the granular preferences that let a contact opt out of one kind of message without unsubscribing entirely.
  • List Subscription Types Returns the paginated list of subscription types in display order with opt-in counts. Used to resolve names to IDs before a preference is changed.
  • Set Subscription Type Status Opts a contact in to or out of a specific subscription type, identified by your user ID, their email address, or the Gist contact ID. Used to reflect a preference center hosted outside Gist back into the platform, so one opt-out is not silently applied to everything.

Workspace

1
  • Get Workspace Meta Returns metadata about the token in use including the workspace ID, type, expiry and granted scopes. Used as the credential check before a batch job runs against what might be the wrong workspace.

Frequently Asked Questions

What can FlowRunner do with Gist?

FlowRunner agents can run Create Or Update Contact, Create Or Update Contacts In Batch, and Get Batch Import Status in Gist, plus 24 more actions.

Does connecting Gist to FlowRunner require OAuth?

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

Can Gist trigger a FlowRunner workflow automatically?

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

Start building with Gist

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