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
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.
- An admin enters the teammate's email address and picks a role, such as member or admin.
- Your project saves a pending invite: who it's for, which team and role, who sent it and when it expires.
- Your project creates a long, random code for the link, so nobody can guess it.
- Your live project sends the invite email through your email service.
- 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?
| Part | What to include | Why it matters |
|---|---|---|
| Subject line | The inviter's name and the team name | People open emails from names they recognize |
| Who invited them | The inviter's full name | An invite from an unknown product looks suspicious without it |
| What they're joining | The team name and their role | They know what access they're getting |
| What the product does | One plain sentence | They may not know your product |
| Accept button | One button, with the full link underneath | The link is a backup if the button fails |
| Expiry | The date the invite stops working | Explains a dead link later |
| "Not expecting this?" | A line saying they can ignore it | Reassures 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.
- 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.
- In Claude Code, open Customize, then Connectors, choose Add, then Add custom connector. Name: SimpleSends. MCP server URL: https://mcp.simplesends.com/mcp
- When Claude prompts you to connect, log in to SimpleSends.
- 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
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.
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
SubjectPriya Shah invited you to join the Marketing team on Yourcompany
Hi there,
Priya Shah has invited you to join the Marketing team on Yourcompany as an editor.
Yourcompany helps teams plan and schedule their social media posts in one place.
This invite expires on Monday, October 12. If the button doesn't work, paste this link into your browser: https://yourcompany.com/invite/7f3k9q2m
Weren't expecting this? You can ignore this email. Nobody gets an account unless you accept.
The Yourcompany team
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.
| Situation | What should happen |
|---|---|
| Someone opens an expired link | A clear page with a way to ask the inviter for a new invite |
| An admin cancels an invite | The link stops working straight away |
| An admin resends an invite | A new link and expiry; the old link stops working |
| The invite is accepted | The 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:
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)
- Forgot Password Cheat Sheet(checked October 5, 2026)
- Inviting users to join your organization(checked October 5, 2026)
- Invite users to your Organization (Clerk Docs)(checked October 5, 2026)
- Email Templates (Supabase Docs)(checked October 5, 2026)
- Get started with custom connectors using remote MCP (Claude Help Center)(checked October 5, 2026)
Keep reading
More on Task guides →Transactional Email Examples: 12 Every SaaS Needs
12 transactional email examples every SaaS needs, from welcome and password reset to receipts and payment failed, with when to send each and what to include.
9 min read
Payment Failed Email: How to Send One Automatically
A payment failed email tells customers their card was declined and how to fix it. Learn when to send one, what to say, and how to build it with Claude Code.
6 min read
Trial Ending Email: How to Send Trial and Renewal Reminders
When to send a trial ending email, what to say, and how to have Claude Code build trial and renewal reminders for your SaaS, with sample emails to adapt.
6 min read