Browse the docs

Agent setup guide

Customer Anniversary Notes

Emails a personal thank-you on each customer's 1, 2, 5… year anniversary and tells the team which top accounts deserve a call.

Available About 10 min to set up

What it does

Emails a personal thank-you on each customer's 1, 2, 5… year anniversary and tells the team which top accounts deserve a call.

  • Every morning, reads your customers sheet in Google Sheets.
  • Today's anniversaries and the number of years are found in code, never by the AI, in your time zone; AI keeps the milestones you celebrate (e.g. 1, 2, 5 years), skipping cancelled customers.
  • Writes each a short, personal thank-you naming the milestone and one stat from your sheet — no upsell.
  • Emails the notes (up to 25 a day) automatically, or after approval when you switch review on.
  • Posts the day's anniversaries to Slack with the top accounts worth a call or a small gift, and the emails really sent (counted in code).

What it needs

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • Google Sheets and Slack, connected in Settings → Integrations.
  • A customers sheet with start dates and emails.

What it doesn't do

  • It sends no gifts and makes no offers: the owner decides on calls and gifts.
  • Data comes from the sheet only; start dates aren't checked against your billing system.
  • It sends up to 25 notes a day.

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 and Slack.
  • Nothing to send: the agent runs on a schedule.
  • About 10 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 customers sheet (Settings → Integrations → Google Sheets).

3. Connect Slack

Connect the Slack workspace your team uses (Settings → Integrations → Slack).

4. Describe your customers and milestones

Open “Write the anniversary notes” and replace the placeholder with your columns, milestones, top accounts and sign-off.

SettingWhat to enterIn step
Your anniversary setupReplace the placeholder with your company name, the sheet's columns, the milestones you celebrate, what counts as a top account, your tone, sign-off and whether to review every note (no by default). It starts as “[PASTE YOUR COMPANY NAME, YOUR CUSTOMERS SHEET'S COLUMN NAMES, WHICH ANNIVERSARIES TO CELEBRATE (E.G. 1, 2, 3, 5, 10 YEARS), WHAT COUNTS AS A TOP ACCOUNT, YOUR TONE, YOUR SIGN-OFF AND “REVIEW EVERY NOTE: NO” (OR YES) HERE]” until you replace it.“Write the anniversary notes”

5. Pick the customers sheet

Open “Read your customers” and pick the account, spreadsheet and tab.

SettingWhat to enterIn step
Google accountThe Google account that can open your customers sheet. Pick your connected Google Sheets account.“Read your customers”
Customers spreadsheetPaste the link of the spreadsheet with your customers.“Read your customers”
Customers tabThe tab with one row per customer, e.g. Customers.“Read your customers”

6. Add your inbox and Slack channel

Open “Email the thank-you” and enter the Reply-to, then “Tell the team in Slack” and pick the account and channel.

SettingWhat to enterIn step
Reply-to addressCustomers' replies to the note come back to this address.“Email the thank-you”
Slack accountThe Slack workspace your team uses. Pick your connected Slack account.“Tell the team in Slack”
Customer success Slack channelThe channel the daily anniversaries go to, e.g. #customer-success.“Tell the team in Slack”

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 (“today” is counted in it) and switch the schedule on. It runs every day at 9:00.

How it works

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

  • Every day at 9:00 — Runs on a schedule (cron 0 9 * * *, UTC — change it in the trigger's settings). Runs every morning. Set your time zone on the trigger: “today” is counted in that zone.
  • Read your customers — Google Sheets: Read rows. Reads your customers tab: name, email, company, start date, plan, account owner and one stat (e.g. orders this year).
  • Find today's anniversaries — Step. In code, not AI: keeps only the customers whose start-date anniversary is today in your time zone (29 February counts on 28 February in other years) and works out how many years it is.
  • Write the anniversary notes — AI step (runs on your AI provider key). AI keeps the anniversaries that are milestones you celebrate (the years were counted in code) and writes each a short personal thank-you naming the milestone and their stat.
  • Anything today? — Decision: picks the branch to follow. No anniversaries: nothing happens. Review off (the default): the notes are sent. Review on: they're approved first.
  • No anniversaries today — Kept in the run history. Branch: None today. Nothing to send today.
  • Approve today's notes — A person approves or rejects it in Reviews (the run waits). Branch: Review first. With review on, today's notes wait in Reviews: edit any, remove any, then approve.
  • Each note — Repeats the steps below for each item (up to 25 per run). Branch: Send without review / Approved. Emails every anniversary note (up to 25 a day).
  • [For each item — “Each note”] Email the thank-you — Sends an email from your workspace's sender. Sends the note from your workspace's sender, with replies to the account owner or your team inbox.
  • Count the emails sent — Step. In code, not AI: lists which thank-you emails really went out and which failed.
  • Tell the team in Slack — Slack: Post a message. Posts today's anniversaries, the top accounts worth a call or a small gift and the emails sent (counted in code) to your customer success channel.
  • Notes sent — Kept in the run history. The run history keeps today's notes and the Slack post.

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.

Go live

  • Open the trigger, set your time zone (“today” is counted in it) and switch the schedule on. It runs every day 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

What should the customers sheet have?

One row per customer: Name, Email, Company, Start date, Plan, Owner, a stat column (e.g. Orders this year) and optionally Status. Column names can vary; the date check looks for a start date (or “customer since”) column. Dates like 2023-10-13, 10/13/2023 or October 13, 2023 all work.

How are anniversaries found?

In code, not by the AI: each morning “Find today's anniversaries” compares every start date with today's date in your trigger's time zone and counts the years. Customers who started on 29 February are celebrated on 28 February in other years.

Does it send gifts?

No. It suggests which top accounts deserve a call or a small gift, and the owner decides.

Can I check notes before they go?

Yes. Change “REVIEW EVERY NOTE: no” to yes and each day's notes wait in Reviews.

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).
  • 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 .