Commune
AgentAPI

Send a different email to different readers

A sequence that sends everybody the same three emails treats a reader who has supported you for two years exactly like one who subscribed on Tuesday and has not opened anything since. Commune can ask, part way through, what it knows about the person and what they have done with the email you already sent, and take a different path for each.

Before you start

A condition about a property the run cannot see matches every run, so the branch silently always takes the same arm. Commune refuses such a condition when you save, naming the path, which is why the first request here reads the trigger catalog's context rather than guessing at field names.

Your agent can read the sequence you already have, add the branch and send you the new emails to look at. This route writes, replacing the graph of a live automation, and an edit applies to the readers already part way through it. Ask it to tell you the graph back before it sends anything.

Connect once

Add Commune's MCP server to your agent, then approve the consent screen and pick your newsletter. Nothing else to install.

terminal
claude mcp add --transport http commune https://api.usecommune.com/mcp
Step by step for each client

Ask

One prompt does the whole job. Paste it as it is, or change the parts that are yours.

prompt

Read my Commune newsletter's welcome sequence, then add a branch three days in:

- if the reader holds the Founding member tag, send them the members-only note instead of the usual second email, and end there; - otherwise, if they opened the first email, send the usual second email; - if they did not open it, send a short note asking them to check their spam folder.

Show me the graph before you save it, and send me a test copy of each new email.

What it uses

Your agent picks these of Commune's tools to answer. You do not name them; they are here so you know where every part of the answer comes from.

  • commune_read

    Reads the trigger catalog (which properties a condition may name under this trigger), the newsletter's tags to find the one to branch on, and the automation with its whole graph including the Markdown of every email.

  • commune_write

    Sends the graph back with the branch in it, and sends test copies of the new emails. Replacing the graph of a live automation applies to the runs already in flight.

  • who_is_on_my_list

    Answers how many readers hold the tag you are branching on, which is how you tell a branch worth building from one that will take the same arm every time.

What comes back

Here is the graph before I save it. Two conditions, three endings:

StepAsksThenOtherwise
memberHolds the Founding member tag?insider, and the run endsread-it
read-itOpened welcome?best-of, and the run endsnudge
  • 214 readers hold Founding member, so the first arm is worth having rather than theoretical.
  • The tag is matched by id, not by name, so renaming it in Commune will not break the branch.
  • Both conditions carry `required`. Without it a missing property matches everything and the branch would always take the same side.
  • Say the word and I will save it. Test copies of insider and nudge are in your inbox.

An example. Yours comes from your own newsletter.

Worth asking next

  • How many readers have taken each arm this month?
  • Take the nudge back out: the readers who never opened should get nothing more.
  • Which readers are sitting on the wait step right now?

Tips

  • Ask what the condition can see before you describe the branch. A condition can read the event that started the run, the subscriber's record as it stands now, and whether an earlier email in this sequence was opened or clicked. It cannot read anything else, and a path it cannot see is refused when you save.
  • A tag is read at the moment the condition runs, not when the run started. That is the whole value of branching three days in: somebody who upgraded on Tuesday takes the member arm on Thursday.
  • An arm ends where its last step stops pointing anywhere, so you do not have to say "and then nothing". Commune used to fall through to the next step in order, which meant an arm that did not end ran into the following arm's email and the reader got both; that changed on 2026-10-14. There is no step type for ending a path either: a stop step existed for saying it out loud and was removed on 2026-10-15, because the arrow with nothing on the end of it already says it.

Next use cases

See all