Personalisation

Make every recipient feel like the email was written just for them

Pingovo's email personalisation software lets you inject dynamic content into every email at scale — names, companies, custom fields, and more — using simple Handlebars variables.

Subject

Hi Alice, your Acme Corp trial is ending

Dear {{firstName}} {{lastName}},

Your {{planName}} trial at {{company}} expires on {{expiryDate}}.

Don't lose access to your campaigns and contacts.

Upgrade my plan →

Highlighted text = personalised per recipient

+26%

higher open rates with personalised subject lines

+41%

average click rate lift

Unlimited

custom variables per campaign

10,000+

unique emails rendered per campaign

Common personalisation variables

VariableExample output
{{firstName}}Alice
{{lastName}}Sharma
{{company}}Acme Corp
{{planName}}Pro Plan
{{expiryDate}}15 May 2026
{{ctaUrl}}https://app.example.com/upgrade

Why email personalisation drives results

Per-recipient substitution

Every email in a campaign is rendered individually with each recipient's data — zero manual work.

Unlimited custom variables

Add any column from your CSV as a variable. Product name, order ID, city — anything you want.

Higher open & click rates

Personalised subject lines alone increase open rates by up to 26%. Dynamic content drives clicks.

How personalisation works in Pingovo

1

Upload your contact list

Import a CSV with any columns — firstName, company, customField — Pingovo maps them automatically.

2

Insert variables in your email

Add {{firstName}} or any column name directly in your subject line, body, or HTML template.

3

Personalised emails sent at scale

Pingovo renders a unique email for each recipient. 10,000 contacts = 10,000 personalised emails.

Where merge tags come from, and where they go

A merge tag — sometimes called a merge field — is a placeholder such as {{firstName}} that is replaced with each recipient's own value at send time. Set a default for every merge field you use, so a contact with a missing value never receives an email addressed to a blank space.

There are two kinds of merge field in a Pingovo campaign, and the difference matters for exactly one reason — what happens when they collide.

Your own, from the list

Every column in the CSV you upload becomes a merge tag named after it. There is no fixed vocabulary to learn and no limit on how many you use.

{{firstName}}{{lastName}}{{company}}{{city}}{{orderId}}{{renewalDate}}

System tags, always available

Two tags need no column and are filled in for you per recipient — the genuine opt-out link, and the date the message went out.

{{unsubscribe_url}}{{current_date}}

System tags are applied after your own, and that order is a safety property rather than an implementation detail. A CSV column that happens to be called unsubscribe_url cannot overwrite the real opt-out link with whatever was in that column — the genuine link wins, every time. An unsubscribe link that silently points somewhere else is a compliance failure you would not discover until someone complained.

Merge tags work anywhere the recipient will read them: the subject line, the preview text, a text block in the drag-and-drop builder, raw markup in the HTML editor, even inside a link's href so each recipient gets their own destination. One thing to watch when authoring: apply bold or italic formatting to half a tag and the braces end up split across markup, which breaks the tag. Pingovo catches that on save and tells you to re-insert the field unformatted rather than letting it ship.

One template in, one rendered message per recipient out

Personalisation is not a find-and-replace over a finished email. The template is rendered separately for every recipient, with that contact's own values, immediately before their message is handed to the sending server — which is why a list of ten thousand produces ten thousand genuinely different messages rather than ten thousand copies of one.

It also means a broken tag is caught as a template problem rather than a send problem. A variable name that does not resolve, or braces split apart by stray bold formatting, is reported with a plain explanation of which field to fix — before anything leaves.

Rendering happens per message, so the same template can serve a five-contact test and a six-figure campaign without being duplicated or re-edited.

template

Hi {{firstName}}, your {{planName}} at {{company}} renews on {{expiryDate}}.

rendered per recipient

to: [email protected]

Hi Alice, your Pro Plan at Acme Corp renews on 15 May 2026.

to: [email protected]

Hi Ben, your Starter Plan at Northwind renews on 2 June 2026.

to: [email protected]

Hi Priya, your Scale Plan at Wavelength Media renews on 30 May 2026.

Frequently asked questions

There's no limit. Add as many Handlebars variables as you need — {{firstName}}, {{company}}, {{customField1}}, {{expiryDate}}, {{ctaUrl}} — as long as the corresponding column exists in your CSV, Pingovo will substitute it.

Give the variable a default value in the template and that is what renders when a contact has nothing for it — "Hi there" instead of "Hi ,". Without a default, a missing value renders as empty rather than breaking the send, so the email still goes out; it just goes out with a gap where the name should be. Setting defaults on every merge field you use is the one-minute habit that prevents that.

Same thing, different vocabulary. A merge field or merge tag is a placeholder you write into the email — {{firstName}} — that is replaced with each recipient's own value as the message is rendered. It is mail merge applied to a campaign: one template in, one uniquely rendered message per recipient out.

Two are always available. {{unsubscribe_url}} inserts that recipient's real one-click opt-out link, and {{current_date}} inserts the send date. Both are applied after your own variables, deliberately — so a CSV column that happens to be named unsubscribe_url cannot overwrite the genuine opt-out link with something else.

Yes. Handlebars variables work in the subject line, preview text, and email body. A personalised subject line like 'Hi {{firstName}}, your trial at {{company}} is ending' can increase open rates by 26% or more.

Yes, both editors support Handlebars variables. In the drag and drop builder, type {{variableName}} anywhere in a text block. In the HTML editor, use it anywhere in your HTML markup.

Start for free

Build your first personalised campaign in minutes. No credit card required — add credits or a plan when you are ready to send.

We use essential cookies to run this site, and optional functional/analytics cookies to improve it. See our Privacy Policy for details.