HelpContacts
Contacts
Statuses, each contact's page, first names, tags and fields, segments, adding people by hand, exports and deleting.
Statuses
The Contacts page lists the open newsletter's contacts, newest signups first. Filter them by status or by tag, or search by email address. Each one shows their Gravatar photo, or else the logo of their email's domain, or their initial.
| Status | What it means |
|---|---|
| Active | Gets your issues. |
| Pending | Signed up and hasn't clicked the confirmation email yet. Gets nothing else until then. |
| Dormant | Stopped opening and didn't answer the last-chance email, was imported as dormant, or you marked them dormant. Gets no issues until you mark them active. |
| Unsubscribed | Unsubscribed, or you unsubscribed them. Back if they sign up again, or if you resubscribe them because they asked. |
| Bounced | Their address can't receive email. Never emailed again. |
| Complained | Marked one of your emails as spam. Never emailed again. |
Each contact's page
Click a contact on the Contacts page to open their page. At the top: their picture, name and address, their status, their country, their inbox and when they subscribed. Below, how many of your emails they got and the share they opened and clicked, then their activity, newest first: every email they got, when they opened it, the links they clicked, and when they signed up, confirmed or changed status. On the side are their first name, fields and tags, where they came from, the segments they're in and your other newsletters they're on.
Change their status from the badge under their name. Edit details changes their first name, fields and tags, and the trash button deletes them. Click an issue to open its report, a tag to list everyone who has it, and a segment to list its contacts.
Their activity keeps every change of their status, each with what made it: the unsubscribe link in your email or their mail app's button, a bounce or a spam complaint, the list cleanup or their answer to its last-chance email, signing up again, confirming, an import, or you. So someone who unsubscribed and came back shows both, in order. Before October 21, 2026, only the changes made by hand or through the API were kept: when one of those reveals an earlier change, that change shows dated before it.
Their country comes from where they signed up or confirmed, or for someone who joined another way, like an import, where they first clicked a link in your emails. MailCheap reads it from their connection, then keeps the country only, never the address. Opens never give one, since inboxes load images through their own servers. On a self-hosted server, countries need Vercel, which names each visitor's country.
Their picture is the one they set on Gravatar, if they did. Otherwise it shows their initial, over their company's logo when their address is on its domain. Google doesn't share Gmail pictures with other apps.
First names, tags and fields
Besides an email address, each contact can have a first name, tags and values for your own fields. Click Edit details on their page, or in their menu on the Contacts page, to change them.
- First name: what
{{first_name}}shows in your emails. Names and fields in your emails - Tags: labels a contact has or doesn't, like vip, podcast or customer, 50 per contact at most. Use them to sort people into groups: list everyone with a tag, or send to them through a segment. Tags are lowercase, up to 40 characters, without commas. Tag lists everyone the page shows with its filters, or takes a tag off them. Tags never show in emails.
- Fields: your own questions with an answer for each contact, like a last name, a birthday or a plan, as text, a number or a date, 20 at most, shared by your newsletters. Each one's tag shows the reader's answer in your emails. Adding fields, step by step
When the answer is yes or no, use a tag: is this person a customer? When it's a value that differs from one person to the next, use a field: which company do they work at? Segments can pick contacts by both.
When someone signs up again, their first name and fields only fill in what's missing, and new tags are added to theirs.
Adding fields, step by step
Fields keep what you know about each reader besides their address: a last name, a birthday, a favorite color, the plan they're on. Every contact already has a first name and tags, so those need no field.
- Make your fields. Click Fields at the top of the Contacts page. Before your list has contacts, and on a phone, it's Contact fields in the ⋯ menu there. Type a name, like Birthday, pick its type (text, a number or a date) and click the plus. Its key, like
birthday, is what imports, segments and the API call it. An import can make fields for you too, as below. - Fill them in, whichever way suits you:
- By hand: open a contact's page, or their menu at the end of their row, click Edit details, and type their first name and a value for each field. A date field opens a calendar: pick the month and year at its top, then the day, and the cross at its end clears it.
- From a CSV file: import it from the Contacts page. Each column shows where it goes: First name, one of your fields, or a new field the import makes from the column. Check before you import
- From your signup form: turn on First name in Form for your site, and new readers can type theirs as they sign up. The form asks for nothing else.
- From your code or an AI assistant: add_contact, update_contact and import_contacts take a first name and fields by key, like
"fields": { "birthday": "1990-04-12" }, with dates as YYYY-MM-DD, and create_contact_field makes new fields. API and AI assistants
- Use them in your emails. In an issue, type / and pick a field under Contact fields, or click the person icon at the end of the subject, to add its tag, like
{{birthday}}. Each reader gets their own value, and a fallback after a bar, like{{plan|free}}, shows for readers without one. Pick a contact in the preview to see the email with their values. Names and fields in your emails - Pick readers by them. Segments pick contacts by their fields, like everyone on the Pro plan.
A value has to fit its field: a number field takes a number, and a date field a day. Clear a value to remove it. Deleting a field hides its values on every contact, and adding it again brings them back.
Segments
A segment picks some of your contacts with a few conditions, and keeps up to date as they change. The Contacts page shows each one as a card with its count: click it to list its contacts, and the export follows. New segment opens the editor, with a few starting points:
- Engaged: opened in the last 30 days.
- New: signed up in the last 30 days.
- Inactive: missed at least 5 issues in a row.
- Never opened: never opened and signed up more than 30 days ago.
Conditions can be on opens and clicks, issues missed in a row, the number of emails opened, the signup date, where they signed up (your website's signup form, the form on your own site, an import, by hand or the API), the email address, a tag, whether they have a first name, and your own fields, 10 at most. A segment matches all of its conditions, or any of them. In the send step, pick one to send an issue to its contacts only. Who gets it
Counts are of active contacts, the ones an issue goes to. Conditions on dates count back from now, so “opened in the last 30 days” follows time, and a send reads its segment when it goes out. A segment that a scheduled or sending issue goes to can't be deleted until that issue goes elsewhere.
Adding someone by hand
On the Contacts page, click Add contact, type their email address and tick that they agreed to get your emails. They join at once, without a confirmation email, and get your welcome email if it's on. Once your list has 3 contacts, Add contact is in the ⋯ menu at the top of the page.
For a whole list, import a CSV file instead: Importing contacts.
Changing a status, and deleting
Each contact's menu, at the end of their row, has what applies to them, and so do the badge and the buttons at the top of their page:
- Edit details changes their first name, tags and fields.
- Mark as active brings back a dormant contact: they get your next issue. On a pending contact, it skips the confirmation email, once you confirm they asked for your emails.
- Mark as dormant stops issues to an active contact without unsubscribing them, as the list cleanup does. Mark them active again any time.
- Unsubscribe stops every email to them.
- Resubscribe brings back someone who unsubscribed. Do it only when they asked: MailCheap asks you to confirm it, and keeps who did it and when. Someone who unsubscribed can't be marked dormant, so they only come back this way or by signing up again.
- Delete contact removes them with their dates and engagement, and can't be undone. For someone who unsubscribed, bounced or complained, MailCheap keeps a scrambled trace of the address, so adding it again never emails it. Anyone else can be added again like a new contact.
Bounced and complained contacts keep their status: their address can't receive email, or they marked one of your emails as spam. No email goes out when you change a status. The API and AI assistants can change statuses too, with the same rules.
Exporting
Export, in the ⋯ menu at the top of the Contacts page, downloads the contacts that match your filters as a CSV file, with their first name, tags and a column per field. Its columns go back in through the import as they are, so it's also a backup.
Addresses no one can reach
When an address hard bounces or turns out to be a spam trap, MailCheap remembers it for every sender: imports and signups leave it out, and sends skip it, showing the contact as bounced. A bounced address is remembered for 180 days, a spam trap for good.
MailCheap also checks in the background that your contacts' domains can receive email. Contacts on one that can't show as bounced, marked “No mail server”, and come back on their own once it can. Domains that can’t receive email