
Welcome card
A compact welcome in a card, with one button back into the product.
A sign-up welcome with a short greeting, one button to get started and the link written out underneath.

Your {{productName}} account is ready
{{productName}}
Welcome to {{productName}}
Hey {{firstName}},
Your account is set up. One step left: confirm this address, and your workspace is ready to use.
Get started [{{getStartedUrl}}]
Or paste this link into your browser:
{{getStartedUrl}}
If you did not sign up, you can ignore this message and nothing further happens.
The {{productName}} team
You are getting this because this address was used to create a {{productName}} account.Shown with sample values. The HTML and plain-text tabs keep the placeholders.
About
Send it as soon as someone creates an account. It greets them by first name, points at the single next step, and repeats the link as text in case the button does not work. The footer says why the email arrived.
Values
Required values have to come with every send. The rest fall back to the default shown here.
| Placeholder | Kind | Required | Default |
|---|---|---|---|
{{firstName}} | Text | Optional | there |
{{getStartedUrl}} | Link | Required | None |
{{productName}} | Text | Optional | OpenEmail |
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: 'Welcome', starter: 'welcome', publish: true,}) const sent = await openemail.templates.send(template.slug, { from: 'Northwind <[email protected]>', to: '[email protected]', props: { firstName: 'Maya', getStartedUrl: 'https://example.com/start', }, slots: { productName: 'Northwind', },}) console.log(sent.id, sent.status)Accounts and access

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.

A reset email that names the account and says plainly that nothing has changed yet.

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.