
New listing match
A new property that matches a saved search, with a photo, the price and the rooms.
6 stylesInvites buyers to an open house, with the time window, the address and a reply link.

Drop in any time between {{startTime}} and {{endTime}}.
{{agencyName}}
Open house at {{propertyAddress}}
{{propertySummary}}
{{openHouseMonth}}
{{openHouseDay}}
{{startTime}} to {{endTime}}
{{openHouseDate}}
Asking price
{{listingPrice}}
Come and look around, no appointment needed. {{agentName}} will be there to show you the home and answer questions.
I will be there [{{replyUrl}}]
See the full listing [{{listingUrl}}]
Cannot make it? Reply to this email and we will arrange a private viewing at a time that suits you.
You are receiving this because you asked {{agencyName}} to tell you about homes for sale.
{{senderAddress}}
Unsubscribe [{{unsubscribeUrl}}]Shown with sample values. The HTML and plain-text tabs keep the placeholders.
About
Send it to buyers on your list a week or so before an open house. It describes the home, puts the time window on a calendar tile with the asking price, and asks for a one-click reply. The footer carries your postal address and an unsubscribe link.
14 values to fill
Required values have to come with every send. The rest fall back to the default shown here.
| Placeholder | Kind | Required | Default |
|---|---|---|---|
{{agencyName}} | Text | Required | None |
{{propertyAddress}} | Text | Required | None |
{{propertySummary}} | Text | Required | None |
{{openHouseDate}} | Text | Required | None |
{{openHouseMonth}} | Text | Required | None |
{{openHouseDay}} | Text | Required | None |
{{startTime}} | Text | Required | None |
{{endTime}} | Text | Required | None |
{{listingPrice}} | Text | Required | None |
{{agentName}} | Text | Required | None |
{{replyUrl}} | Link | Required | None |
{{listingUrl}} | Link | Required | None |
{{senderAddress}} | Text | Required | None |
{{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: 'Open house invitation', slug: 'open-house-invitation', starter: 'open-house-invitation', publish: true,}) const sent = await nextmail.templates.send('open-house-invitation', { from: 'Northwind <[email protected]>', to: '[email protected]', props: { agencyName: 'Brookfield Homes', propertyAddress: '9 Kirkgate Mews, Leith', propertySummary: 'A two-bedroom mews house with a courtyard garden, a short walk from the Shore.', openHouseDate: 'Sunday 15 November', openHouseMonth: 'Nov', openHouseDay: '15', startTime: '11:00 am', endTime: '1:00 pm', listingPrice: 'Offers over £365,000', agentName: 'Callum Reid', replyUrl: 'https://example.com/open-house/9-kirkgate-mews/reply', listingUrl: 'https://example.com/listings/9-kirkgate-mews', senderAddress: 'Brookfield Homes, 61 Harbour Lane, Edinburgh', unsubscribeUrl: 'https://example.com/unsubscribe', },}) console.log(sent.id, sent.status)Real estate

A new property that matches a saved search, with a photo, the price and the rooms.
6 styles
Confirms a property viewing with the address, the agent meeting you and a reschedule link.
6 styles
Tells a buyer their offer was accepted, with a progress track and the next steps.
6 styles
A receipt for a single gift, with the amount, the date and a tax statement.
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.