Team Invite Email: How to Send Them From Your SaaS

How a team invite email works, what to put in it, and the exact message to send Claude Code so your SaaS sends invites that expire safely and on time.

Quick answer

A team invite email goes out when someone on a team enters a colleague’s address. It says who invited them, which team and role they’re joining, and has one button to accept. The link should be single-use and expire, often after seven days. Tell Claude Code what you want, and it builds the flow and the email.

Last checked: October 2026

On this page
  1. How does a team invite email flow work?
  2. What should a team invite email include?
  3. What to tell Claude Code
  4. Sample team invite email
  5. How long should a team invite last before it expires?

Once your SaaS has team accounts, people need a way to bring colleagues in. The usual way is a team invite email: someone enters a teammate's address, and your project sends them a link to join.

Here's how the flow works, what to put in the email, what to tell Claude Code, and how to make invites expire safely.

How does a team invite email flow work?

An admin enters an address, your project saves a pending invite with a secret link, and the email goes out. When the teammate opens the link, your project checks it and adds them to the team.

  1. An admin enters the teammate's email address and picks a role, such as member or admin.
  2. Your project saves a pending invite: who it's for, which team and role, who sent it and when it expires.
  3. Your project creates a long, random code for the link, so nobody can guess it.
  4. Your live project sends the invite email through your email service.
  5. The teammate opens the link, signs up or signs in, and joins the team. The link then stops working.

A team invite email is a transactional email: a one-to-one email your product sends because of something a person did, rather than a promotion. It sits alongside welcome and password reset emails in the full list of transactional emails a SaaS needs.

If the invited person already has an account, the link should sign them in. If not, it should take them to sign-up with their address filled in. If you verify email addresses at sign-up, ask Claude Code whether invited people need that extra step, since they've already opened a link sent to their inbox.

Some sign-in tools, such as Clerk and Supabase, send invite emails of their own. Ask Claude Code to check what your project uses, so teammates don't get two.

What should a team invite email include?

A good invite answers three questions fast: who invited me, what am I joining, and how long do I have?

PartWhat to includeWhy it matters
Subject lineThe inviter's name and the team namePeople open emails from names they recognize
Who invited themThe inviter's full nameAn invite from an unknown product looks suspicious without it
What they're joiningThe team name and their roleThey know what access they're getting
What the product doesOne plain sentenceThey may not know your product
Accept buttonOne button, with the full link underneathThe link is a backup if the button fails
ExpiryThe date the invite stops workingExplains a dead link later
"Not expecting this?"A line saying they can ignore itReassures anyone invited by mistake

What to tell Claude Code

Brief Claude Code the way you'd brief a developer on your team: who sends the invite, what the email says, how long it lasts and what admins can do with pending invites.

Before you start: connect SimpleSends

SimpleSends works through a connector, an add-on that lets Claude Code work with another service. Connectors are built on MCP, the Model Context Protocol.

  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 say who can send email for your domain) 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.

More detail: how to connect an MCP server to Claude Code.

The message

Tell Claude Code

I'm adding team accounts to my SaaS. When a team admin invites someone by email, I'd like that person to get a team invite email. It should say who invited them, which team they're joining and their role, with one button to accept. Invites should expire after 7 days and only work once. Admins should be able to see, resend and cancel pending invites. Please send it through SimpleSends and show me a preview before anything goes live.

Claude Code builds the invite form, the pending-invites list, the accept page and the email, then shows you a preview.

Tell Claude Code

Send a test invite to my email address so I can see it on my phone. Then check the link works once, and that opening it again shows a friendly message.

Tests are sent from the chat; once you're live, real invites go out from your project. If an invite never arrives, ask Claude Code to check the SimpleSends send logs and whether the email actually sent.

Sample team invite email

Sample email

The email comes from your product's address, such as hello@yourcompany.com, because your project can only send from a domain you've verified for sending email. Ask Claude Code to set the reply-to address to the inviter.

How long should a team invite last before it expires?

About a week is common; GitHub's organization invites expire after seven days. Show the date in the email and make each link single-use.

OWASP, a respected web security project, recommends that links sent by email use a long random code, are stored securely, work once and expire. It's written for password reset emails, and fits invites and magic link sign-in too.

SituationWhat should happen
Someone opens an expired linkA clear page with a way to ask the inviter for a new invite
An admin cancels an inviteThe link stops working straight away
An admin resends an inviteA new link and expiry; the old link stops working
The invite is acceptedThe link can't be used again

One snag catches many products: some work email security tools open links before the person does. Supabase's docs name Microsoft Defender's Safe Links as an example. If opening the link accepts the invite, the scanner uses it up and your teammate sees "expired". The fix is an Accept button:

Tell Claude Code

Some work inboxes check links before people click them. Make sure opening the invite link doesn't accept the invite by itself. The person should land on a page showing the team and their role, and press Accept to join.

Frequently asked questions

Should team invite emails come from the inviter’s own email address?

No. Your project can only send from a domain you’ve verified, so the email comes from your product’s address, such as hello@yourcompany.com. Put the inviter’s name in the subject and the email body, and ask Claude Code to set the reply-to address to the inviter, so any replies reach them.

What if someone accepts an invite while signed in with a different email address?

Decide on a rule and tell Claude Code. Some products only accept the invite if the address matches; GitHub, for example, requires the invite address to match a verified address on the person’s account. Others let the person accept with any account. Matching is safer, as long as the page explains what to do.

How many invites should one team be able to send?

Set a sensible daily limit so a hacked account can’t be used to send hundreds of emails. GitHub, for example, allows 50 organization invites in 24 hours for new organizations and 500 for older or paid ones. Ask Claude Code to add a limit that fits the size of the teams you expect.

Should I send a reminder before an invite expires?

One reminder a day or two before expiry is reasonable, since a busy teammate may have missed the first email. Keep it to a single reminder that repeats the inviter, the team and the button. If the invite was cancelled or already accepted, the reminder shouldn’t go out.

Should the person who sent the invite hear when it’s accepted?

It helps. A short email or an in-product notice saying the teammate has joined tells the inviter they can start working together. You can ask Claude Code to add it, and to tell the inviter when an invite expires unused, so they know to send a new one.

Sources (5)