
Welcome
A sign-up welcome with a short greeting, one button to get started and the link written out underneath.
A reset email that names the account and says plainly that nothing has changed yet.

Reset your {{productName}} password
Reset your password
Someone asked to reset the password for {{email}}. Use the button below to choose a new one. It expires in {{expiryMinutes}} minutes.
Choose a new password [{{actionUrl}}]
Or paste this into your browser: {{actionUrl}}
If this was not you, your password has not changed and no action is needed. The link above is the only way to change it, and only you have it.
{{footerNote}}Shown with sample values. The HTML and plain-text tabs keep the placeholders.
About
A card-style alternative to the password reset. It names the address the request was made for, gives a button and a pasteable link, and tells anyone who did not ask that their password is unchanged.
Values
Required values have to come with every send. The rest fall back to the default shown here.
| Placeholder | Kind | Required | Default |
|---|---|---|---|
{{productName}} | Text | Required | None |
{{email}} | Text | Required | None |
{{actionUrl}} | Link | Required | None |
{{expiryMinutes}} | Text | Optional | 60 |
{{footerNote}} | Text | Optional | You are receiving this because a password reset was requested. |
API
Create a template from this design once, then send it with the values for each message.
import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const template = await openemail.templates.create({ name: 'Password reset card', starter: 'reset-password', publish: true,}) const sent = await openemail.templates.send(template.slug, { from: 'Northwind <[email protected]>', to: '[email protected]', props: { productName: 'Northwind', email: '[email protected]', actionUrl: 'https://example.com/reset/8f2c', },}) console.log(sent.id, sent.status)Accounts and access

A sign-up welcome with a short greeting, one button to get started and the link written out underneath.

A compact welcome in a card, with one button back into the product.

A one-time code set large enough to read from another screen.

Passwordless sign-in with one button and the link printed as text.

A reset email with one button, a link to paste and a clear expiry.

An invitation that names the person inviting, the workspace and the role on offer.

A sign-in notice with the time, device and place, so people can recognise themselves.
Start from one
Every template opens in the editor as blocks you can move, restyle or delete, and sends through the API with the values filled in.
Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.