How to Automate Emails With Claude Code

Learn how to automate emails with Claude Code: event-triggered and scheduled emails, which ones a SaaS needs, what to say to Claude Code, and how to check them.

Quick answer

To automate emails with Claude Code, connect an email service, then describe each email in plain English: what it says, who gets it and when it goes out. Claude Code sets each one to send when something happens in your SaaS or on a schedule. From then on, your live project sends them with no manual work.

Last checked: October 2026

On this page
  1. What's the difference between event-triggered and scheduled emails?
  2. Which emails should a SaaS automate?
  3. How do you automate emails with Claude Code?
  4. How do scheduled sends work for digests and reminders?
  5. How do you keep an eye on automated emails?

You've built a SaaS with Claude Code, and now you want emails to go out on their own: a welcome note when someone signs up, a reminder before a trial ends, a summary every Monday. This guide shows how to automate emails with Claude Code so nobody has to press send.

It's for people who build with Claude Code but don't write code. You'll learn the two kinds of automated email, which ones most SaaS products need, what to tell Claude Code to set them up, and how to check they keep working.

What's the difference between event-triggered and scheduled emails?

Event-triggered emails go out the moment something happens in your SaaS. Scheduled emails go out at a set time, whatever anyone is doing.

Both are transactional emails: messages about one person's own account or activity, sent to that person, rather than marketing campaigns sent to a list.

Event-triggeredScheduled
What starts itSomeone does something: signs up, pays, asks to reset a passwordThe clock: every Monday, every morning
ExamplesWelcome, password reset, receiptWeekly summary, "finish setting up" nudge
When it sendsWithin seconds of the actionAt the time you choose
What Claude Code buildsA step that sends the email right after the actionA scheduled job that checks who should get the email, then sends it

Plenty of automations mix the two. A "three days after sign-up" email is scheduled: a job runs once a day and looks for people who signed up three days earlier.

Which emails should a SaaS automate?

Most SaaS products automate the same core set. Start with emails people can't do without, such as password resets, then add the ones that help them get value from your product.

EmailTypeSends when
Welcome emailEventSomeone signs up
Password resetEventSomeone asks to reset their password
Receipt or order confirmationEventA payment goes through
Payment failedEventA card is declined
Trial ending reminderEvent or scheduledA few days before a trial ends
Weekly summaryScheduledOnce a week
Onboarding tipsScheduledA set number of days after sign-up
New sign-up alert to youEventSomeone signs up

For the full list, see 12 transactional emails every SaaS needs. For the right moment to send each one, see when each email should go out.

Keep automated emails about the person's account. The FTC's guidance treats emails that confirm a purchase, or update someone about their account or subscription, as transactional. If the subject line or the opening reads like a promotion, the email can count as marketing, which comes with extra rules such as an opt-out. Leave promotions out of these emails.

How do you automate emails with Claude Code?

Connect an email service once. Then describe each email to Claude Code in plain English: what it says, who gets it and when it goes out. Claude Code builds it into your project and sends you a test.

Your SaaS can't send email by itself, so it needs a transactional email service. SimpleSends connects to Claude Code through a connector, which uses MCP, a standard way for AI tools to work with other services. Like any email service, it needs a verified sending domain, and your live project uses a secret API key, a kind of password that lets your project use the service.

To connect SimpleSends:

  1. Sign up on the SimpleSends website and follow the steps there to set up the email address you'll send from. To send from your own domain, this includes adding a few DNS records (settings that tell the internet how your domain works) where your domain is registered.
  2. In Claude Code, open Customize, then Connectors, choose Add, then Add custom connector. Name: SimpleSends. MCP server URL: https://mcp.simplesends.com/mcp
  3. When Claude prompts you to connect, log in to SimpleSends.
  4. Back in the Claude Code chat, tell Claude Code: "I've connected SimpleSends for all transactional email." It takes it from there, including adding what your project needs to send email.

Next, ask for a plan before anything gets built:

Tell Claude Code

Please set up the automated emails my SaaS needs. Start with a plan: list each email, what makes it send and when it goes out. Wait for my OK before you build anything.

You'll get a list you can edit and approve. Then work through the emails one at a time:

Tell Claude Code

When someone signs up, send them a short, friendly welcome email with one clear next step: create their first project. Show me a preview, then send a test to me.

Claude Code writes and designs the email, connects it to the sign-up step in your project, and sends a test to your inbox. Test emails can go out from the chat while you build. Once your project is live, real emails send from the project itself, through SimpleSends, even when Claude Code is closed.

For the whole journey from plan to live emails, see transactional emails in Claude Code.

How do scheduled sends work for digests and reminders?

Scheduled emails run on a scheduled job, often called a cron job: a small task your hosting runs at set times. Each time it runs, it checks who should get an email and sends it.

Where the job lives depends on where your project is hosted. On Vercel, cron jobs are available on every plan, but how often they run depends on the plan:

Vercel planScheduled jobs per projectRuns at mostTiming
Hobby (free)100Once a dayAny time within the hour you pick
Pro100Once a minuteTo the minute

Limits checked October 2026. Vercel runs these jobs in UTC, a standard world time, so ask Claude Code to convert from your local time. A daily or weekly email works fine on Hobby; anything more frequent needs Pro.

If your project uses Supabase, Supabase Cron is built into its database. Jobs can run anywhere from every second to once a year, and each run is recorded, so you can see whether it happened.

Here's a brief for a weekly digest:

Tell Claude Code

Every Monday at 8am New York time, send each active user a short summary of their week: what they created and anything waiting for them. Skip people with nothing to report, and add a setting so users can switch the summary off.

Claude Code sets up the scheduled job, tells you when it will run in UTC, and sends you a sample. For what to put in a digest, see how to send a weekly summary email.

Some reminders don't need your own schedule. If you take payments with Stripe, Stripe can tell your project when a trial is about to end: three days before, by default, and you can change that in Stripe's settings. Claude Code can send your reminder when that message arrives. Stripe can also send its own reminder seven days before a trial ends, so pick one to avoid doubling up. The trial ending email guide covers what to say.

Sample email

How do you keep an eye on automated emails?

Ask Claude Code. With SimpleSends connected, Claude Code can read your send logs and delivery status, so it can tell you whether an email went out and help work out why one didn't.

Three habits keep automations healthy:

  1. Test each email before launch. Ask Claude Code to send you a test of every automated email, with realistic names and details.
  2. Check in after launch. A quick weekly question catches problems early:
Tell Claude Code

Check last week's automated emails. Did the welcome emails and the Monday summary all go out? Tell me about anything that failed or bounced, and why, in plain English.

  1. Look at the schedule when a whole batch is missing. If no one got Monday's summary, the job may not have run at all. Ask Claude Code to look into whether the scheduled job ran and what stopped it.

When a single user says an email never arrived, see how to check whether your emails actually sent.

Frequently asked questions

Do automated emails still send when Claude Code is closed?

Yes. Claude Code builds the automation, but once your project is live, it sends emails on its own through your email service. Claude Code doesn’t need to be open, and your computer doesn’t need to be on. Test emails are the exception: you can send those from the chat while you build.

Do automated transactional emails need an unsubscribe link?

Under US rules, emails that are purely about a person’s account or purchase are exempt from most marketing-email requirements, including the opt-out. Optional emails, like a weekly summary, should still have a clear way to switch them off. If you add promotions, the email may count as marketing. This isn’t legal advice, so check the rules where you operate.

How do I pause or turn off an automated email?

Tell Claude Code which email to pause and whether that applies to everyone or to certain users. It changes your project so the email stops sending, and it can switch it back on later. Ask it to show you how it checked the change, so you know the pause worked.

What time zone do scheduled emails use?

It depends on your hosting. Vercel runs scheduled jobs in UTC, a standard world time that ignores daylight saving. Tell Claude Code the local time you want, such as 8am New York time, and it can work out the matching UTC time. If your SaaS stores each user’s time zone, it can also send at their own local time.

How many automated emails is too many?

Send an email when it helps the person do something, or tells them something about their account they’d want to know. If two emails often land on the same day, ask Claude Code to combine them. For small, frequent events, a weekly summary usually works better than one email per event.

Sources (6)