Send personalized marketing emails to your whole list automatically

Writes a unique, personalized email for every contact on your list and sends it automatically, one by one.

How the work actually flows

It repeats. Exactly one path is taken; repeats move to next contact.

Pattern: Structured Loop (21) · Exclusive Choice (4)

flowchart TD trig(("campaign launched by user")):::human s0[("pull recipient list")]:::store s1["check if already contacted"]:::task s2["write and send personalized email"]:::task s3[("mark contact as sent")]:::store trig --> s0 s0 --> s1 s2 --> s3 gx{"× already contacted before"}:::gate s1 --> gx p00["skip this contact"]:::task gx -->|"already contacted"| p00 p10["write and send email"]:::task gx -->|"new contact"| p10 jn{"○ continue to next"}:::gate p00 --> jn p10 --> jn jn --> s2 lp{"list exhausted"}:::gate s3 --> lp lp -. "move to next contact" .-> s1 lp -->|"finished"| out out[/"personalized email sent to each contact"/]:::out pay{{"reach whole list without duplicates"}}:::pay out --> pay classDef task fill:#e7f6fe,stroke:#34b8f0,color:#2c2a29 classDef svc fill:#f6f8fa,stroke:#7c8795,color:#2c2a29 classDef mi fill:#e7f6fe,stroke:#0079a8,color:#2c2a29,stroke-width:2px classDef human fill:#fff,stroke:#0079a8,color:#0079a8 classDef store fill:#f6f8fa,stroke:#0079a8,color:#2c2a29 classDef trig fill:#00a4eb,stroke:#0079a8,color:#fff,font-weight:bold classDef trigtime fill:#00a4eb,stroke:#0079a8,color:#fff,font-weight:bold classDef trigdata fill:#8ad4f5,stroke:#0079a8,color:#06314c,font-weight:bold classDef gate fill:#fff,stroke:#e8a23d,color:#6b4708,font-weight:bold classDef out fill:#1f9d6b,stroke:#167a53,color:#fff,font-weight:bold classDef pay fill:#06314c,stroke:#021f33,color:#fff
A stepA personA record or sheetOne path onlyPaths rejoinRepeat or finishResultPayoff
Build size
Advanced

A larger build with multiple systems, AI reasoning, and custom rules.

Business functions
Knowledge Base & RAGEmail AutomationSpreadsheet & Database Ops
Connects
Google SheetsOpenAI
Featured in

The problem it solves

Writing a personal-feeling email to every contact on a large list by hand isn't realistic, so most campaigns end up generic. You also have to track who's already been emailed so no one gets missed or duplicated.

Who it fits

Businesses running promotional email campaigns to a sizable contact list.

How it works

  1. The system pulls your recipient list from Google Sheets
  2. It checks each email address and skips anyone already contacted
  3. AI writes a personalized email for each remaining recipient
  4. The email is sent automatically, with a short delay between sends
  5. Google Sheets is updated to mark each recipient as contacted
What you get

Campaigns that reach every contact personally

You get a personalized email written and sent to every contact on your list, so your campaigns feel individually crafted at scale.

What you get

A sent, personalized email to each contact and an updated record of who's been reached.

What you need

A Google Sheets account, an OpenAI account, and an SMTP email account.

We can build this. But should you?

The hard question is not how to build it. It is whether this is the right thing to build first.

That is what a Fractional Chief AI Officer figures out with you, before anyone writes a line of code.

Let's Talk Strategy

Related automations

Back to the AI Playbook