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.
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
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
Upload your contact list
Import a CSV with any columns — firstName, company, customField — Pingovo maps them automatically.
Insert variables in your email
Add {{firstName}} or any column name directly in your subject line, body, or HTML template.
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}}.
Hi Alice, your Pro Plan at Acme Corp renews on 15 May 2026.
Hi Ben, your Starter Plan at Northwind renews on 2 June 2026.
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.