Browse the docs

Agent setup guide

Lapsed Donor Re-engagement

Monthly personal notes to donors whose last gift was 12–24 months ago — sent only after your development lead approves the batch.

Available About 20 min to set up

What it does

Monthly personal notes to donors whose last gift was 12–24 months ago — sent only after your development lead approves the batch.

  • On the 1st of every month, reads your donor sheet (up to 200 rows per run).
  • Keeps only donors whose last gift was 12–24 months ago and who weren't contacted in the last year — worked out in code before the AI sees them; AI then skips anyone marked do-not-contact or without an email.
  • Dates are worked out in code, never by the AI: days until or since each date, the window and business days are computed in your workflow's time zone, and records outside the window are skipped before the AI sees them.
  • Drafts a personal note: thanks for their past gift, one or two real things you've done since (only from the impact you describe) and a low-pressure invitation to give again.
  • The whole batch waits in Reviews; your development lead edits any note or holds any donor, then approves.
  • Each approved note is checked in code (still marked to send, one valid email, no placeholders left) and by an AI wording check that only stops guilt or pressure, the word “lapsed” and AI mentions — then emailed with replies to your development lead, remembered for a year and marked with the send date in the donor's row.

What it needs

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • Google Sheets, connected in Settings → Integrations.
  • A donor sheet with an “Email” column and a last-gift date, refreshed from your donor database each month.

What it doesn't do

  • It never emails a donor before the batch is approved.
  • It drafts up to 200 notes per run (500 rows checked); for bigger lists, point it at a tab of donors whose last gift was 12–24 months ago. Rows whose last-gift date it can't read are skipped.
  • It doesn't read your donor database or payment processor directly — only the sheet you export.
  • It never invents impact figures, stories or matching gifts — only what you write in its settings.
  • It doesn't manage unsubscribes: mark do-not-contact donors in the sheet.

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: Google Sheets.
  • Nothing to send: the agent runs on a schedule.
  • 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 Google Sheets

Connect the Google account that can open your donor sheet (Settings → Integrations → Google Sheets).

3. Describe your impact and how to give

Open “Draft the note (or skip)” and replace the placeholder with your organisation, signer, impact since last year and giving link.

SettingWhat to enterIn step
Your organisation and impact since last yearReplace the placeholder with your organisation's name, who signs the notes, 2–4 real things that happened in the last year (figures and stories you're happy to share), your giving link or instructions, and anyone never to contact. It starts as “[DESCRIBE YOUR ORGANISATION, WHO SIGNS THE NOTES, YOUR IMPACT SINCE LAST YEAR (REAL FIGURES AND STORIES YOU MAY SHARE), HOW TO GIVE AND ANY DONORS NEVER TO CONTACT HERE]” until you replace it.“Draft the note (or skip)”

4. Pick your donor sheet

Open “Read your donor sheet” and pick the account, spreadsheet and tab (with an Email column and a last-gift date).

SettingWhat to enterIn step
Google account (donor sheet)The Google account that can open your donor sheet. Pick your connected Google Sheets account.“Read your donor sheet”
Donor spreadsheetPaste the link of the spreadsheet with your donor.“Read your donor sheet”
Donor tabThe tab with one row per donor, e.g. “Donors”.“Read your donor sheet”

5. Pick where sent notes are marked

Open “Mark the donor row”, pick the same account, spreadsheet and tab, and the column letter of “Reactivation sent”.

SettingWhat to enterIn step
Google account (mark rows)The same Google account, used to write the send date into the donor's row. Pick your connected Google Sheets account.“Mark the donor row”
Donor (to mark) spreadsheetPaste the link of the spreadsheet with your donor (to mark).“Mark the donor row”
Donor (to mark) tabThe same donor tab as above.“Mark the donor row”
Column to mark (“Reactivation sent”)Letter of the column where the send date is written, e.g. H for a “Reactivation sent” column.“Mark the donor row”

6. Add your development lead's email

Open “Email the note” and enter the address donors' replies should go to.

SettingWhat to enterIn step
Development lead's email (Reply-to)Donors' replies to the notes come back to this address.“Email the note”

7. Test it with Dry Run

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

8. Switch the trigger on

Open the trigger, set your time zone and switch the schedule on. It runs on the 1st of every month — refresh the donor export before then.

How it works

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

  • 1st of the month at 9:00 — Runs on a schedule (cron 0 9 1 * *, UTC — change it in the trigger's settings). Runs on the first day of every month. Set your time zone on the trigger.
  • Read your donor sheet — Google Sheets: Read rows. Reads your donor list from Google Sheets: one row per donor with name, email, last gift date and amount.
  • Check the last-gift dates — Step. In code, not AI: works out how long ago each donor's last gift was (in your time zone) and keeps only donors whose last gift was 12–24 months ago (365–730 days) and whose “Reactivation sent” / “Last contacted” cell is blank or over a year old. Change the window here (the tier's min / max days).
  • Each lapsed donor — Repeats the steps below for each item (up to 200 per run). Drafts a note for every donor the date check kept (up to 200 per run).
  • [For each item — “Each lapsed donor”] Contacted before? — Recalls what it remembered earlier (memory “lapsed-donor-reactivation”). Looks up whether this donor got a re-engagement note from this agent in the last 365 days (by the Email column).
  • [For each item — “Each lapsed donor”] Draft the note (or skip) — AI step (runs on your AI provider key). For each donor whose last gift was 12–24 months ago (checked in code), AI checks the do-not-contact notes and drafts a personal note on what their support made possible and what's happened since.
  • Approve this month's batch — A person approves or rejects it in Reviews (the run waits). All of this month's notes wait in Reviews together. Your development lead edits any note, sets send to false on any that shouldn't go out, and approves the batch; nothing is sent before that.
  • Each approved note — Repeats the steps below for each item (up to 200 per run). Branch: Approved. Checks, sends and records every approved note.
  • [For each item — “Each approved note”] Final check on the wording — AI step (runs on your AI provider key). AI reads each approved note for guilt or pressure tactics, the word “lapsed” and AI mentions only — thanking the donor for their gift and sharing your impact are fine. It must quote the exact sentence it objects to.
  • [For each item — “Each approved note”] Check before sending — Step. In code: drafted to send, still marked to send after review, exactly one valid email, a row number, a subject and a body with no placeholders left — plus the wording check's verdict. Anything that fails is held, with the reason.
  • [For each item — “Each approved note”] Send it? — Decision: picks the branch to follow. Notes that pass every check are emailed; skipped and held ones are kept in the run history with the reason.
  • [For each item — “Each approved note”] Not sent — Kept in the run history. Branch: Hold. Skipped by the agent, held by the reviewer or stopped by a check; the reason is in the gate's output.
  • [For each item — “Each approved note”] Email the note — Sends an email from your workspace's sender. Branch: Send. Sends the approved note from your workspace's sender, with replies going to your development lead.
  • [For each item — “Each approved note”] Remember the note was sent — Remembers it for later runs (memory “lapsed-donor-reactivation”, kept 365 days). Remembers the donor got a note (for 365 days) so next month's run skips them.
  • [For each item — “Each approved note”] Mark the donor row — Google Sheets: Update a row. Writes today's date (in your time zone) into the donor's row, in the column you pick (e.g. “Reactivation sent”), so the date check skips them for a year.
  • Batch sent — Kept in the run history. The run history keeps every note that was sent or held.

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.

  • 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, set your time zone and switch the schedule on. It runs on the 1st of every month — refresh the donor export before then.
  • Scheduled runs start only once the schedule is activated, and can't repeat faster than your plan's minimum interval.
  • 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

What should the donor sheet have?

One row per donor with First name, Email (a column named exactly “Email”), Last gift date and, if you have them, Last gift amount, Fund, and a Do not contact column. Export it from your donor database each month. Add an empty “Reactivation sent” column for the agent to fill in.

How does it avoid contacting someone twice?

Two ways: it remembers every note it sends for a year (by email address), and it writes the send date into the column you pick in the donor's row. Donors with a recent date there are skipped too.

My donor list is bigger than 200 rows.

The date check reads up to 500 rows per run and drafts notes for up to 200 donors in the window. For bigger lists, point it at a tab that lists only donors whose last gift was 12–24 months ago (e.g. a FILTER formula on your main list), or a lapsed-donor report from your donor database.

How is “12–24 months ago” worked out?

In code, not by the AI: the agent counts the days from each donor's last gift date to today (in your trigger's time zone) and keeps 365–730 days, skipping anyone with a “Reactivation sent” or “Last contacted” date in the last year. Only those donors reach the AI. Change the window in “Check the last-gift dates”.

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.
  • It didn't run at the expected time: the schedule must be activated, and its time is in the trigger's timezone.
  • 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 .