Agent setup guide
Subscriber Re-engagement
Monthly: subscribers inactive for 90 days get one re-permission email after you approve it, and Mailchimp tags show who came back and who didn't.
What it does
Monthly: subscribers inactive for 90 days get one re-permission email after you approve it, and Mailchimp tags show who came back and who didn't.
- On the 1st of each month, reads your subscribers' activity export in Google Sheets.
- Works out in code who hasn't opened or clicked for 90 days (change it in the date step). 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.
- Tags people who were asked before and are active again as re-engaged in Mailchimp.
- AI drafts one short, honest re-permission email in your voice; it waits for your approval and is checked in code.
- Sends it once from your Gmail to each newly inactive subscriber (up to 50 a run) and tags them re-permission-sent; people asked before who are still inactive are tagged inactive instead.
- 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).
- Google Sheets, Mailchimp and Gmail, connected in Settings → Integrations.
- A monthly activity export in a tab with the columns Email | Name | Last activity.
What it doesn't do
- It can't read opens or clicks from Mailchimp, Kit or beehiiv itself: it works from the export you refresh in the sheet.
- It never unsubscribes or deletes anyone; it tags them in Mailchimp for you to decide.
- Nothing is sent without your approval. At most 50 emails a run, within Gmail's daily limits.
- Tags are added in Mailchimp only (not in Kit or beehiiv).
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, Mailchimp and Gmail.
- 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 activity export (Settings → Integrations → Google Sheets).
3. Connect Mailchimp
Connect Mailchimp with an API key (Settings → Integrations → Mailchimp).
4. Connect Gmail
Connect the Gmail account the email goes out from (Settings → Integrations → Gmail).
5. Pick the activity export
Open “Read the activity export” and pick the account, spreadsheet and tab (columns Email | Name | Last activity).
| Setting | What to enter | In step |
|---|---|---|
| Google account (Activity export) | The Google account that can open the spreadsheet. Pick your connected Google Sheets account. | “Read the activity export” |
| Activity export spreadsheet | Paste the link of the spreadsheet. | “Read the activity export” |
| Activity export tab | The tab with your export (columns Email | Name | Last activity). | “Read the activity export” |
6. Describe your newsletter
Open “Draft the re-permission email” and replace the placeholder with your newsletter and how to stay.
| Setting | What to enter | In step |
|---|---|---|
| Your newsletter and how to stay | Replace the placeholder with your newsletter, what readers get, tone, sign-off and the link or reply that keeps someone subscribed. It starts as “[YOUR NEWSLETTER'S NAME, WHAT SUBSCRIBERS GET FROM IT, YOUR TONE, HOW YOU SIGN EMAILS, AND THE LINK OR REPLY THAT KEEPS SOMEONE SUBSCRIBED (E.G. YOUR PREFERENCES PAGE)]” until you replace it. | “Draft the re-permission email” |
7. Pick the Gmail account
Open “Send the re-permission email” and pick the account.
| Setting | What to enter | In step |
|---|---|---|
| Gmail account | The Gmail or Google Workspace account the email is sent from (ideally the address your newsletter replies come to). Pick your connected Gmail account. | “Send the re-permission email” |
8. Pick the Mailchimp audience
Open the three Mailchimp tag steps and pick the same account and audience.
| Setting | What to enter | In step |
|---|---|---|
| Mailchimp account | The Mailchimp account with your newsletter audience. Pick your connected Mailchimp account. | “Tag “re-engaged” in Mailchimp” |
| Mailchimp audience | Your newsletter's audience (Audience → Settings → Audience name and defaults → Audience ID). | “Tag “re-engaged” in Mailchimp” |
| Mailchimp account (inactive tag, same one) | The same Mailchimp account. Pick your connected Mailchimp account. | “Tag “inactive” in Mailchimp” |
| Mailchimp audience (same one) | The same audience. | “Tag “inactive” in Mailchimp” |
| Mailchimp account (re-permission tag, same one) | The same Mailchimp account. Pick your connected Mailchimp account. | “Tag “re-permission sent” in Mailchimp” |
| Mailchimp audience (same one) | The same audience. | “Tag “re-permission sent” in Mailchimp” |
9. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
10. Switch the trigger on
Open the trigger, set your time zone and switch the schedule on. It runs on the 1st of each month at 9:00.
How it works
The agent is a normal workflow with 30 steps (1 AI step, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.
- On the 1st of every month — Runs on a schedule (cron 0 9 1 * *, UTC — change it in the trigger's settings). Runs at 9:00 on the 1st of each month. Refresh your activity export in the sheet before then. Set your time zone on the trigger.
- Read the activity export — Google Sheets: Read rows. Reads your subscribers' activity export (Email | Name | Last activity).
- Inactive for 90 days? — Step. In code, not AI: subscribers whose Last activity (last open or click) is at least 90 days ago are inactive; the rest are active. Rows with a blank or unreadable date are treated as active. Change the days in this step.
- Each active subscriber — Repeats the steps below for each item (up to 300 per run). Checks up to 300 active subscribers for an earlier re-permission email.
- [For each item — “Each active subscriber”] Has an email? — Step. In code: one valid email address.
- [For each item — “Each active subscriber”] Valid? — Decision: picks the branch to follow. Rows without a valid email are skipped.
- [For each item — “Each active subscriber”] Skipped (no valid email) — Kept in the run history. Branch: No email. Check the row.
- [For each item — “Each active subscriber”] Asked before? — Recalls what it remembered earlier (memory “subscriber-reengagement”). Branch: Valid. Was this person sent a re-permission email in the last 6 months?
- [For each item — “Each active subscriber”] Came back? — Decision: picks the branch to follow. Asked before and active again: tagged re-engaged.
- [For each item — “Each active subscriber”] Active (nothing to do) — Kept in the run history. Branch: Never asked. Never asked; still active.
- [For each item — “Each active subscriber”] Tag “re-engaged” in Mailchimp — Mailchimp: Add or remove tags. Branch: Came back. Adds the tag re-engaged to them in your Mailchimp audience.
- [For each item — “Each active subscriber”] Forget the ask — Forgets a remembered value (memory “subscriber-reengagement”). Clears the earlier ask, so they start fresh.
- Count who came back — Step. In code: subscribers asked before who are active again.
- Draft the re-permission email — AI step (runs on your AI provider key). AI writes one short, honest “do you still want these emails?” message in your voice, for everyone inactive this month.
- Approve the re-permission email — A person approves or rejects it in Reviews (the run waits). The email waits in Reviews: edit it, approve to send it to this month's newly inactive subscribers (up to 50), or reject to send nothing.
- Check the email — Step. Branch: Approved. In code: subject and body are there, the body fits and nothing is left as a placeholder.
- Passed the checks? — Decision: picks the branch to follow. Passed: the inactive subscribers are handled. Otherwise nothing is sent.
- Held: nothing sent — Kept in the run history. Branch: Held. The email was blank, too long or had a placeholder.
- Each inactive subscriber — Repeats the steps below for each item (up to 50 per run). Branch: Send. Handles up to 50 inactive subscribers a run (Gmail's limits).
- [For each item — “Each inactive subscriber”] Has an email? — Step. In code: one valid email address.
- [For each item — “Each inactive subscriber”] Valid? — Decision: picks the branch to follow. Rows without a valid email are skipped.
- [For each item — “Each inactive subscriber”] Skipped (no valid email) — Kept in the run history. Branch: No email. Check the row.
- [For each item — “Each inactive subscriber”] Asked before? — Recalls what it remembered earlier (memory “subscriber-reengagement”). Branch: Valid. Was this person sent a re-permission email in the last 6 months?
- [For each item — “Each inactive subscriber”] First time inactive? — Decision: picks the branch to follow. Asked before and still inactive: tagged inactive, not emailed again.
- [For each item — “Each inactive subscriber”] Tag “inactive” in Mailchimp — Mailchimp: Add or remove tags. Branch: Asked before. Adds the tag inactive to them in your Mailchimp audience, so you can clean them out or stop sending to them.
- [For each item — “Each inactive subscriber”] Send the re-permission email — Gmail: Send an email. Branch: First time. Sends the approved email from your Gmail, starting “Hi <first name>,”.
- [For each item — “Each inactive subscriber”] Remember the ask — Remembers it for later runs (memory “subscriber-reengagement”, kept 180 days). Remembers that this person was asked (kept 6 months), so they're asked once.
- [For each item — “Each inactive subscriber”] Tag “re-permission sent” in Mailchimp — Mailchimp: Add or remove tags. Adds the tag re-permission-sent in your Mailchimp audience.
- Count what happened — Step. In code, not AI: who was emailed, who was tagged inactive, who was skipped, and any step that failed.
- Done for this month — Kept in the run history. The run history keeps both counts.
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 each month at 9:00.
- 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
Why does it need an export in a sheet?
Our Mailchimp, Kit and beehiiv connections can't read who opened or clicked, so the agent works from an activity export you refresh in Google Sheets (most email tools export last open or last click dates).
Who gets the email?
Subscribers whose last activity is at least 90 days old and who weren't asked in the last 6 months, up to 50 a run. People asked before who are still inactive are tagged inactive instead of being emailed again.
How does it know someone came back?
When a person it asked shows recent activity in a later export, they're tagged re-engaged in Mailchimp.
Does it unsubscribe anyone?
No. It tags people; you decide whether to archive or unsubscribe the ones tagged inactive in Mailchimp.
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 .