2. Your audience — contacts and customers
Contents
- Two pools of people
- Which pool should you use?
- The Contacts page
- Adding and editing a contact
- Tags — the workhorse
- Merge fields — your own custom data
- Contact status: Subscribed, Unsubscribed, Bounced
- POS customers — what you can target
- When the same person is in both pools
- Limits worth knowing
Two pools of people
NX can email two completely separate groups, and understanding the split saves a lot of confusion.
Pool 1 — Marketing Contacts
People you put into Marketing by hand. A catering enquiry, a business card from the bar, a newsletter sign-up you typed in yourself.
- Live on the Contacts page.
- You control their name, tags and custom fields.
- They can be hand-picked into Static lists or matched by rules in Dynamic lists.
Pool 2 — POS Customers
The guests your restaurant already knows: online-ordering accounts, loyalty members, anyone attached to a check. This is usually hundreds or thousands of times bigger than your contact pool.
- Managed in the Customers area of the portal, not in Marketing.
- Marketing can read and target them, and knows their visit count, lifetime spend, last visit date, VIP flag and tags.
- You reach them with a Customer Query list (§3) or by searching for one of them in Quick Send.
- Marketing never edits a customer record — with one exception: if a guest clicks Unsubscribe, NX flips their email opt-out, because that's their explicit request.
Each pool keeps its own opt-out flag. A contact who unsubscribes is suppressed as a contact. A customer who unsubscribes is suppressed as a customer. See When the same person is in both pools.
Which pool should you use?
Start with POS customers. They're already there, they've actually eaten at your restaurant, and they carry the data that makes good segments possible (last visit, spend, visits, VIP). A brand-new venue with an empty contact pool can still run the win-back campaign in §9 on day one.
Add contacts for people the POS doesn't know: catering leads, event enquiries, corporate accounts, paper sign-up sheets, and your own team's test addresses.
There is no CSV import today. Contacts are added one at a time through the form. If you're holding a spreadsheet of a few thousand addresses, talk to NX support before typing — and in the meantime check whether a Customer Query list already covers those people.
The Contacts page
Marketing → Contacts. A table with:
| Column | Notes |
|---|---|
| Name | First + last, or —
|
| Sorted alphabetically by default | |
| Source |
MANUAL (typed into the form) or IMPORT (created by a bulk process) |
| Tags | Blue chips |
| Status | Subscribed / Unsubscribed / Bounced |
Quick Filter at the top searches everything in the table at once. The column menus give you per-column filters — Status is a tick-list, so "show me every Bounced contact" is two clicks.
Row actions:
| Action | Does |
|---|---|
| Edit | Opens the contact form |
| Send Email | Jumps to Quick Send with this person pre-selected |
| Unsubscribe | Suppresses them from every future send. Asks first |
| Resubscribe (only on suppressed rows) | Clears the unsubscribe and the bounce flag |
| Delete | Removes the contact record |
Unsubscribe vs. Delete. Unsubscribe is almost always the right answer. It keeps a record that this person asked not to be emailed, so they can't be re-added by accident. Delete throws that record away — and if the same address comes back in later, nothing remembers they opted out.
Adding and editing a contact
New opens a panel on the right:
| Field | Required | Notes |
|---|---|---|
| Yes | The only required field | |
| First Name | No | Used by {{firstName}} in your emails — worth having |
| Last Name | No | |
| Source | — | Read-only, shown on edit only. NX sets it |
| Tags | No | Type and press Enter for each. See below |
| Merge Fields | No | Key/value pairs. See below |
Tags are stored lower-cased and de-duplicated, so VIP, vip and Vip are all the same tag. Don't worry about how you type them.
Tags — the workhorse
A tag is a plain label you attach to a contact: catering, locals, wine-club, birthday-march. They matter for two reasons:
-
Dynamic lists match on them. One list called "Wine club" with the rule
tag = wine-club, and from then on tagging a contact adds them to that audience automatically. -
They're available in your email as
{{tags}}(rendered as a comma-separated list) — rarely useful, but there.
Tag conventions that pay off later:
- Use one style, lower-case with hyphens:
wine-club, notWine Club. - Tag by interest and source, not by what you're about to send —
catering-leadages well,march-promodoesn't. - A handful of broad tags beats fifty precise ones. You have to remember them at send time.
Merge fields — your own custom data
Merge fields let you store anything you like on a contact and then use it in an email or as a list rule. They're key/value pairs, e.g.:
| Key | Value |
|---|---|
city |
Austin |
favoriteDish |
the short rib |
birthMonth |
03 |
In an email, {{city}} renders Austin for that contact. In a Dynamic list, the Custom Fields rule city = Austin matches them. That's the pair of features that makes the birthday-month playbook possible with no extra tooling.
Rules of the road:
-
Keys are case-sensitive and matched exactly.
cityandCityare different fields, and a list rule forCitywill not match a contact carryingcity. -
Values are compared as text.
10does not match10.0. - A blank value renders as nothing in the email — no error, no placeholder.
-
Only contacts have merge fields. POS customers don't, so a template built around
{{city}}will render blank for every customer-sourced recipient.
Contact status: Subscribed, Unsubscribed, Bounced
| Status | What it means | Do they receive campaigns? |
|---|---|---|
| Subscribed | Normal | Yes |
| Unsubscribed | They clicked Unsubscribe (or you suppressed them) | No |
| Bounced | Their address hard-failed — closed mailbox, invalid domain | No |
Both non-Subscribed states are suppressions: NX drops them when it works out who a campaign goes to, and checks again immediately before each individual message. You cannot email a suppressed contact, from a campaign or from Quick Send.
Bounced is not a punishment, it's protection. Repeatedly mailing dead addresses is the fastest way to get your domain treated as a spam source, which hurts delivery for the guests who do want your email.
Resubscribe clears both flags. Only use it when you have real, explicit consent — the guest signed up again, or you can see it was your own typo. Re-mailing someone who opted out is the one mistake in this module with legal consequences (§8).
POS customers — what you can target
You don't edit these in Marketing, but you should know what NX can see, because these are the fields you build segments from:
| What NX knows | Use it for |
|---|---|
| Email address | Required — customers without one are silently skipped |
| First / last name |
{{firstName}}, {{lastName}}
|
| Visit count | "First-timers", "regulars" |
| Lifetime revenue | "Spent over $250 with us" |
| Last visit date | Win-backs, "active in the last 90 days" |
| VIP flag | VIP-only invitations |
| Tags | Whatever your team tags guests with |
| Email opt-out | Their suppression flag |
Three of these are also available in your email copy: {{visitCount}}, {{revenueTotal}} and {{isVIP}}. Read the warnings in §4 before you use them — {{revenueTotal}} in particular renders raw cents (12500, not $125.00).
When the same person is in both pools
Alex ordered online last month (a customer) and you typed their address in from a catering enquiry (a contact). What happens?
On a normal send: nothing bad. NX de-duplicates by email address across every list in the campaign, so Alex gets exactly one message.
On unsubscribe: be careful. The opt-out is recorded against whichever pool the email was sent from. So if Alex unsubscribes from a contact-based campaign, the contact is suppressed — the customer record is untouched. A later Customer Query campaign could still reach them if the customer version happens to be the one NX picks up first.
What to do about it: when a guest asks to be removed — by replying to your email, or in person — suppress them in both places:
- Marketing → Contacts → find them → Unsubscribe.
- Customers → find them → set their email opt-out.
Guests who use the Unsubscribe link in the email are handled automatically for whichever pool the message came from; this manual step is for the ones who ask you directly.
Limits worth knowing
- The Contacts page loads up to 200 contacts at a time. If your pool is bigger, the Quick Filter is searching only what's loaded. Manage large audiences with lists and rules rather than by scrolling this table.
- The Add Contacts picker inside a Static list offers up to 500 contacts, already-added members excluded.
- Quick Send searches across up to 500 contacts and 500 customers.
- No CSV import, no bulk tagging, no bulk delete.
Next: §3 Lists & segments