A contact is one person in your workspace: their email address, phone number or your own ID for them, with their details, consent and history. You manage contacts on the Contacts page, under Audience in the sidebar.
Find contacts
Contacts lists everyone in your workspace. Each row shows the contact’s Email, Phone, Email consent, Lists and when they were Added. Sort by Contact, Email or Added by choosing the column heading.
- Search by name or email in the search box. Search covers every contact, not just the page you’re on.
- Filter with the row of filters under the search box:
- Consent: Email consent, Push consent, or Email and push consent
- Suppression: Email stopped, any reason or Email not stopped
- List and Segment: members of one list, or contacts in one segment as of its last count
- Added on or after: a date
- Choose Clear filters to see everyone again.
The count above the table shows how many contacts match. Past 10,000 it reads 10,000+. Filters are kept in the page’s address, so you can bookmark or share a filtered view.
A contact whose email is stopped has a badge beside their address: Unsubscribed, Bounced, Marked as spam or Blocked. See Suppression.
Add a contact by hand
Members, admins and the owner can add contacts. To add one person, for example a customer who signed up in person or a teammate for a test:
- On Contacts, choose Add contacts, then Add one contact.
- Enter at least one way to identify them: Email, Phone or External ID (your own ID for them). The other fields are optional.
- Optionally, set Time zone, Country and Language and region, and add Custom attributes such as
loyalty_tier. - Under Marketing consent, tick only what they agreed to: This person agreed to receive marketing email or This person agreed to receive push notifications.
- If you tick either, say How did they agree?: They opted in or They’re existing customers, then describe Where and how. Optionally, add When they agreed and What they agreed to.
- Choose Create contact.
Consent comes only from these boxes: adding a contact doesn’t give it. Allowing notifications on a device isn’t consent either, and consent doesn’t lift suppression.
A phone number without a country code is read as a number in your workspace’s country. An email address at example.com is a test contact: it goes through every step of a campaign or journey, but nothing is delivered to it.
Add contacts also offers Import a CSV, Collect with a signup form and Send from your app. See Import contacts and Create a signup form.
If the email, phone or external ID already belongs to another contact, the contact isn’t created and you see A contact with this email already exists in this workspace (or phone or externalId). Open the existing contact instead.
Edit a contact
- Open the contact from Contacts.
- Choose the more actions button (⋯) at the top of their profile, then Edit.
- Change what you need, then choose Save changes.
Members, admins and the owner can edit contacts. Each change is recorded on the contact’s timeline, and changing an attribute can start journeys that begin when it changes. To remove an attribute, remove its row under Custom attributes.
If an admin or the owner has hidden an attribute, members don’t see its value and their edits keep it as it is. See Hide sensitive attributes.
Granting consent. Ticking a consent box asks How did they agree?, as when you add a contact. Unticking one withdraws consent at once. For an existing customer whose consent is still held, Restate how they agreed records it again. In Canada, existing-customer consent lapses two years after it was last stated, so restate it after a new purchase.
Country. Left blank, Kirora works it out from the phone number, otherwise from the time zone. Country decides which privacy rules apply.
Set a contact’s time zone
A contact’s time zone decides when time-based messages reach them. It’s set in one of these ways:
- By hand: edit the contact and pick a Time zone.
- By import: map a column to Time zone. Use a time zone name such as
Europe/LondonorAmerica/Toronto; anything else fails the row with Invalid IANA timezone. - From your app: a developer sets
timezonewhen they create or update the contact through the API.
Workspace default means the contact has no time zone of their own, and your workspace’s time zone is used instead. It follows the workspace’s setting if that changes later. Keep the default unless you know where the person is.
Kirora uses the contact’s time zone for:
| What | How it’s used |
|---|---|
| Date-triggered journeys | A birthday or renewal journey starts at its set time in the contact’s time zone. See Date triggers. |
| Journey waits | Working days, set hours and Until a date are counted in the contact’s time zone. See Add steps. |
| Campaigns sent in each contact’s time zone | Each person gets the campaign at the same clock time where they are. Contacts without a time zone use the zone you choose under For contacts without a time zone. See Schedule for later. |
| Quiet hours | Marketing email and push due in quiet hours wait until they end where the contact is. See Sending rules. |
| Times in merge tags | A time is shown in the contact’s time zone, or UTC when they have none. See Format numbers, prices and dates. |
Change many contacts at once
Tick contacts on Contacts to open the actions bar. To tick everyone on the page, use the checkbox in the table’s heading.
| Action | What it does | Who can |
|---|---|---|
| Add to list | Adds them to a list. Existing members are kept | Members, admins and the owner |
| Remove from list | Removes them from a list. The contacts and their consent are kept | Admins and the owner |
| Set an attribute | Gives each contact the same attribute value, replacing any they had | Admins and the owner |
| Suppress email | Stops marketing email to them. Transactional email still sends, and consent is unchanged | Admins and the owner |
| Undo manual suppression | Lifts only blocks added by hand. Unsubscribes, bounces and spam complaints stay | Admins and the owner |
| Export | Downloads them as a CSV file | Admins and the owner |
| Delete | Deletes them for good (see below) | Admins and the owner |
Adding contacts to a list doesn’t give consent, but it can start journeys that begin when someone joins the list. Setting an attribute works as an edit does, so journeys that start when that attribute changes start for these contacts.
For ticked rows, one suppression change covers up to 100 contacts and one export up to 500. Changing the search, filters or page clears the selection.
Select every matching contact
Admins and the owner can act on more than one page. Tick every contact on the page and, when more match on later pages, choose Select all matching (or Select all contacts when no search or filter is set). The action then covers every contact that matches the search and filters, including those on later pages, and Export becomes Export all matching.
These actions run in the background. A progress window shows how many contacts have been processed; you can close it and the work carries on. When it finishes, it says how many contacts changed, for example 1,180 of 1,200 contacts deleted. Contacts added while it runs may be included.
Members can act only on the contacts ticked on the current page.
Delete contacts
Only admins and the owner can delete contacts. Deleting can’t be undone.
To delete one contact, open their profile, choose the more actions button (⋯), then Delete, then Delete contact.
To delete many, tick them on Contacts (or use Select all matching), choose Delete, tick the box to confirm you want to delete them permanently, then choose Delete contacts.
When a contact is deleted:
- They leave every list and journey, and their events, consent history, topics and devices are deleted.
- Messages already sent to them, and conversions credited to your campaigns and journeys, are kept without their details, so totals and revenue stay correct.
- Their form submissions are kept, but no longer linked to them.
- An address that bounced, marked your email as spam or unsubscribed stays blocked. If you add the same person again, Kirora still won’t send them marketing email.
A contact with a message being sent to them at that moment can’t be deleted. Deleting one shows A message to this contact is being sent right now and cannot be recalled. Try again once delivery finishes. When you delete many, those contacts are skipped and not counted.
Merge a duplicate contact
If one person ends up as two contacts, merge them rather than deleting one. Only admins and the owner can merge. Open the contact to keep and choose Merge a duplicate, then pick the Duplicate to merge in and choose Merge and delete the duplicate.
- Where both have a value, the contact you opened keeps its own. The duplicate fills in what it lacks, attributes included.
- The duplicate’s messages, events, devices and consent history move across, and its lists and suppressions are added.
- The duplicate is then deleted, which ends its journeys. A merge can’t be undone.
Export contacts
Admins and the owner can export contacts as a CSV file.
- Choose Export CSV on Contacts (everyone, or those matching your filters), on a list or on a segment. For contacts you’ve selected on Contacts, choose Export in the actions bar.
- Pick only the columns you need, so the file holds less personal data.
- Choose Request export. The export’s page updates by itself while the file is prepared.
- Choose Download CSV. If the export failed or has expired, choose Request it again.
Frequently asked questions
Why didn’t a contact get a campaign at 9:00 their time?
Check their Time zone on their profile. Workspace default means they got it at 9:00 in the zone chosen for contacts without a time zone. Quiet hours can also hold a message until they end.