
Welcome
A sign-up welcome with a short greeting, one button to get started and the link written out underneath.
6 stylesPasswordless sign-in with one button and the link printed as text.

Your sign-in link for {{productName}}
Sign in to {{productName}}
Use the button below to sign in. The link works once and expires in {{expiryMinutes}} minutes.
Sign in [{{actionUrl}}]
Or paste this into your browser: {{actionUrl}}
If you did not ask to sign in, you can ignore this. Nobody can use the link but you.
{{footerNote}}Shown with sample values. The HTML and plain-text tabs keep the placeholders.
About
Send it when someone signs in without a password. The link works once and its expiry is stated up front, and printing it as text as well as on the button means it still works when the button does not.
5 values to fill
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 |
{{actionUrl}} | Link | Required | None |
{{expiryMinutes}} | Text | Optional | 15 |
{{footerNote}} | Text | Optional | You are receiving this because somebody asked to sign in. |
{{unsubscribeUrl}} | Link | Optional | None |
API
Create a template from this design once, then send it with the values for each message.
import { init, nextmail } from '@nextmail/sdk' init({ apiKey: process.env.NEXTMAIL_API_KEY }) await nextmail.templates.create({ name: 'Magic link', slug: 'magic-link', starter: 'magic-link', publish: true,}) const sent = await nextmail.templates.send('magic-link', { from: 'Northwind <[email protected]>', to: '[email protected]', props: { productName: 'Northwind', actionUrl: 'https://example.com/sign-in/7d1f3a', },}) 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.
6 styles
A compact welcome in a card, with one button back into the product.
6 styles
A one-time code set large enough to read from another screen.
6 styles
A reset email with one button, a link to paste and a clear expiry.
6 stylesStart 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.
Fifteen minutes on video with the people who build Nextmail. Free, at a time you choose.