Browse the docs

Agent setup guide

Patreon Churn Saver

When a Patreon payment is declined or a pledge ends, a kind win-back note with your one-question survey goes out after your approval; reasons are counted weekly in Slack.

Available About 20 min to set up

What it does

When a Patreon payment is declined or a pledge ends, a kind win-back note with your one-question survey goes out after your approval; reasons are counted weekly in Slack.

  • When a member's payment is declined or their pledge ends, logs it to your lapses tab (Date | Member | Email | Status | Tier | Pledge (cents) | Last charge).
  • AI writes a short, kind note for that situation: how to update a declined payment, or thanks and what's next for a member who left (your comeback offer only if you give one).
  • Each note waits for your approval, then goes from your Gmail with your one-question survey link below it.
  • Once a week (with the next lapse), code counts that week's lapses and your survey's answers by reason and posts the summary to Slack.
  • The summary is counted in code from what each step really did (sent, held, skipped, failed), so it never reports a held message as sent.

What it needs

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • Patreon, Gmail, Google Sheets and Slack, connected in Settings → Integrations.
  • A one-question survey (e.g. a Google Form, choices: Too expensive, Not using it enough, Content isn't for me, Payment problem, Joined for one thing, Other) whose answers go to a sheet.

What it doesn't do

  • Nothing is sent without your approval, and it never offers discounts you didn't describe.
  • It doesn't read survey answers from Patreon: they come from your own survey's sheet.
  • A week without lapses sends no summary; members removed from Patreon entirely can't be detected.
  • It can't change, retry or refund a Patreon payment.

Availability and plans

Available

Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.

Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.

Before you start

  • A paid plan: agents run live, and the Free plan only runs Dry Runs.
  • An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
  • These apps, connected in Settings → Integrations: Patreon, Gmail, Google Sheets and Slack.
  • The app it watches, connected in Settings → Integrations (the agent starts from an app event).
  • About 20 minutes.

Set it up step by step

Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.

1. Connect your AI provider

The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.

2. Connect Patreon

Connect your Patreon creator account (Settings → Integrations → Patreon) and allow access to members and their emails.

3. Connect Gmail

Connect the Gmail account the notes should come from (Settings → Integrations → Gmail).

4. Connect Google Sheets

Connect the Google account that can open your lapses and survey sheets (Settings → Integrations → Google Sheets).

5. Connect Slack

Connect the Slack workspace for the weekly summary (Settings → Integrations → Slack).

6. Pick your campaign

Open the trigger and pick your Patreon account and campaign.

SettingWhat to enterIn step
Patreon accountThe creator account whose campaign's lapses start a run. Pick your connected Patreon account.“Pledge declined or ended”
CampaignYour Patreon campaign.“Pledge declined or ended”

7. Pick the lapses tab

Open “Log the lapse” and pick the account, spreadsheet and tab (Date | Member | Email | Status | Tier | Pledge (cents) | Last charge).

SettingWhat to enterIn step
Google account (Lapses)The Google account that can open the spreadsheet. Pick your connected Google Sheets account.“Log the lapse”
Lapses spreadsheetPaste the link of the spreadsheet.“Log the lapse”
Lapses tabThe tab the agent logs lapses to (Date | Member | Email | Status | Tier | Pledge (cents) | Last charge).“Log the lapse”

8. Your note and survey

Open “Write the win-back note” and replace the placeholder, then pick Gmail and paste your survey link in “Email the note from Gmail”.

SettingWhat to enterIn step
What members getReplace the placeholder with what members get, what's coming next, any comeback offer with its terms, your tone and sign-off. It starts as “[YOUR CREATOR NAME, WHAT MEMBERS GET, WHAT'S COMING UP NEXT, A COMEBACK OFFER WITH ITS EXACT TERMS (OR NONE), YOUR TONE AND YOUR SIGN-OFF]” until you replace it.“Write the win-back note”
Gmail accountThe Gmail account the notes come from. Pick your connected Gmail account.“Email the note from Gmail”
Your survey linkReplace the placeholder with the link to your one-question survey (its question “Reason” offers the choices listed in the setup). It starts as “[YOUR ONE-QUESTION SURVEY LINK]” until you replace it.“Email the note from Gmail”

9. Your weekly summary

Open “Read the survey answers” and “Read the lapses log” and pick the tabs, then pick the Slack account and channel on “Post the weekly summary”.

SettingWhat to enterIn step
Google account (Survey answers)The Google account that can open the spreadsheet. Pick your connected Google Sheets account.“Read the survey answers”
Survey answers spreadsheetPaste the link of the spreadsheet.“Read the survey answers”
Answers tabThe tab with your survey's answers (Timestamp | Reason).“Read the survey answers”
Google account (Lapses (summary, same one))The Google account that can open the spreadsheet. Pick your connected Google Sheets account.“Read the lapses log”
Lapses (summary, same one) spreadsheetPaste the link of the spreadsheet.“Read the lapses log”
Lapses tab (same one)The same lapses tab the agent logs to.“Read the lapses log”
Slack accountThe Slack workspace for the weekly summary. Pick your connected Slack account.“Post the weekly summary”
Slack channelWhere the weekly summary goes, e.g. #patreon.“Post the weekly summary”

10. Test it with Dry Run

Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.

11. Switch the trigger on

Open the trigger and press “Activate app trigger”. Lapses are picked up on Patreon's next check (about every 15 minutes).

How it works

The agent is a normal workflow with 29 steps (1 AI step, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.

  • Pledge declined or ended — Starts on “Pledge declined or ended” in Patreon (an app event). Starts a run when a member's payment is declined or their pledge ends (Patreon is checked every 15 minutes or so).
  • Log the lapse — Google Sheets: Add a row. Adds a row to your lapses tab (Date | Member | Email | Status | Tier | Pledge (cents) | Last charge).
  • Write the win-back note — AI step (runs on your AI provider key). AI writes a short, kind note for the situation: a declined payment (how to update it) or an ended pledge (thanks, and what's coming). The survey link is added in code.
  • Check the note — Step. In code: one valid member email, a subject and body with no leftover placeholders.
  • Ready for review? — Decision: picks the branch to follow. Incomplete notes are held; every other note waits for your approval.
  • Held: not sent — Kept in the run history. Branch: Incomplete. No member email, or the note was blank or had a placeholder.
  • Approve the win-back note — A person approves or rejects it in Reviews (the run waits). Branch: Review. The note waits in Reviews: edit and approve to send it from your Gmail with your survey link. Reject to send nothing.
  • Check before sending — Step. Branch: Approved. In code, after any edits: still no placeholders in the note.
  • Send it? — Decision: picks the branch to follow. Passes: emailed. Otherwise held.
  • Held after review — Kept in the run history. Branch: Held. An edit left a placeholder.
  • Email the note from Gmail — Gmail: Send an email. Branch: Send. Sends the note from your Gmail with your one-question survey link below it.
  • Note sent — Kept in the run history. The run history keeps the note.
  • When was the last summary? — Recalls what it remembered earlier (memory “patreon-churn-saver”). Reads the date of the last weekly summary.
  • Summary due? — Step. In code: the summary goes out once every 7 days, with the first lapse after that.
  • Send the summary? — Decision: picks the branch to follow. Not due yet: this branch ends.
  • No summary this run — Kept in the run history. Branch: Not due. The last summary went out less than 7 days ago.
  • Read the survey answers — Google Sheets: Read rows. Branch: Due. Reads your survey's answers tab (Timestamp | Reason), e.g. a Google Form's responses sheet.
  • Keep the last 7 days — Step. In code: answers from the last 7 days (your time zone).
  • Each answer — Repeats the steps below for each item (up to 200 per run). Goes through this week's answers so they can be counted (up to 200).
  • [For each item — “Each answer”] Counted — Kept in the run history. Nothing is changed in the sheet.
  • Count the reasons — Step. In code, not AI: this week's answers grouped by reason.
  • Read the lapses log — Google Sheets: Read rows. Reads your lapses tab (Date | Member | Email | Status | Tier | Pledge (cents) | Last charge).
  • Keep the last 7 days — Step. In code: lapses logged in the last 7 days.
  • Each lapse — Repeats the steps below for each item (up to 200 per run). Goes through this week's lapses so they can be counted (up to 200).
  • [For each item — “Each lapse”] Counted — Kept in the run history. Nothing is changed in the sheet.
  • Count the lapses — Step. In code, not AI: declined payments and ended pledges this week.
  • Post the weekly summary — Slack: Post a message. Posts this week's lapses and survey reasons (counted in code) to your Slack channel.
  • Remember the summary date — Remembers it for later runs (memory “patreon-churn-saver”, kept 60 days). Stores today's date so the next summary waits 7 days.
  • Summary posted — Kept in the run history. The run history keeps the summary.

Test it with Dry Run

Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live. The sample has the same shape as a real event from the app.

Sample data fields

member_id, full_name, email, patron_status, pledge_relationship_start, currently_entitled_amount_cents, will_pay_amount_cents, campaign_lifetime_support_cents, last_charge_status, last_charge_date, next_charge_date, user_id, tier_ids (a list), tier_title, tier_titles (a list), member.

  • Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
  • Approval steps use the Dry Run decision you pick in the step's settings (approved, rejected or timeout), so you can try each branch.
  • For-each loops repeat only the first 3 items.
  • Memory steps don't read or write stored memory: a recall finds nothing, and a save only shows what it would store.

Go live

  • Open the trigger and press “Activate app trigger”. Lapses are picked up on Patreon's next check (about every 15 minutes).
  • Activating the app trigger needs the trigger's connected account. The first check only remembers what's already there, so older items don't start runs; the same item never starts two runs.
  • The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
  • When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.

Questions

How are the reasons collected?

With your own one-question survey (a Google Form works well) whose answers land in a sheet. Code counts the answers by its choices: Too expensive, Not using it enough, Content isn't for me, Payment problem, Joined for one thing, Other. The agent never asks members anything else.

When does the weekly summary arrive?

With the first lapse at least 7 days after the last summary. A week without lapses sends no summary.

Does every note wait for me?

Yes. Win-back notes are personal and sometimes sensitive, so each one is approved before it's sent.

Troubleshooting

  • “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
  • A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
  • An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
  • Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
  • No runs start: activate the app trigger with a connected account. Only items created after activation start runs.
  • A run shows as paused: it's waiting for someone in Reviews to approve or reject it.
  • A step failed: open the run in History and check that step in the Trace tab for the error and what it received.

Generated from the agent's own workflow, so it always matches what the agent does. Last updated .