# A contact's profile

Source: https://kirora.io/docs/guides/contacts/contact-profile

See one contact's details, consent, lists, journeys, devices and everything that has happened to them.

A contact's profile is the page that shows everything Kirora knows about one person: who they are, whether you may message them, and what has happened to them. Open it by choosing a contact's name on **Contacts**, or from anywhere else a contact is linked, such as a message or an event.

Use it to answer questions such as "why didn't Ana get the newsletter?", "which journey is this customer in?" or "when did they agree to marketing email?".

## The header

The top of the profile shows the contact's name, their email address or phone number, and when they were **Added**. A badge shows when their email is stopped: **Unsubscribed**, **Bounced**, **Marked as spam** or **Blocked**.

Under the name, **Lists** shows the lists they're in. Members, admins and the owner can choose **Add to list** and type to find a list, or type a new name to create one. Choose ✕ on a list to remove them from it; their consent and other lists are kept.

The more actions button (⋯) holds **Edit** (members, admins and the owner), and **Merge a duplicate** and **Delete** (admins and the owner). See [Manage contacts](https://kirora.io/docs/guides/contacts/manage-contacts).

## Details

Alongside its tabs, the profile shows these panels:

- **About**: **Phone**, **External ID**, **Country**, **Language and region** and **Time zone**. A time zone of **Workspace default** means the contact has none of their own. See [Set a contact's time zone](https://kirora.io/docs/guides/contacts/manage-contacts#set-a-contacts-time-zone).
- **Customer group**: their purchase-based customer group (RFM), what it means, their **Transactions**, **Total value** and **Last transaction**, and their **Recency**, **Frequency** and **Transaction value** scores. See [Segments](https://kirora.io/docs/guides/contacts/segments#kinds-of-conditions).
- **Permission**: **Email consent**, **Push consent** and **Suppression**. Suppression reads **Not stopped**, or why email stops and what still sends. Stopped email overrides consent.
- **Attributes**: their custom attributes. An attribute an admin has hidden shows as **Hidden** to members, authors, developers and viewers. See [Contact attributes](https://kirora.io/docs/guides/contacts/attributes).
- **Segments**: the saved segments they match now.

## Timeline

**Timeline** shows everything that has happened to the contact in one stream, newest first and grouped by day:

- **Messages**: each campaign, journey or transactional message, with its subject, status, and when it was opened or clicked. Choose **Open message** to see the message they received.
- **Events**: what they did, such as *Order Completed*, with the event's properties. Kirora's own events read as sentences, such as *Added to list Supper club*, *Entered segment VIPs* or *Changed attribute “plan”*.
- **Consent**: each grant or withdrawal, and each topic they joined or left, with how it happened.
- **Journeys**: each journey they entered, finished or left, with the reason they left.

Use **Show** to see one kind only, for example just **Events** while you check an integration. See [Events](https://kirora.io/docs/guides/contacts/events).

## Messages

**Messages** lists every message sent to the contact: its **Source** (the campaign, journey or transactional message), **Channel**, **Status**, and when it was **Created** and **Sent**. Filter by **Status**, **Channel** or **Message type** (**Marketing** or **Transactional**).

A message that was skipped or failed shows the reason under its status, such as no consent for the channel or a suppressed address. See [Email statuses](https://kirora.io/docs/guides/messaging/email/email-statuses) and [Push statuses](https://kirora.io/docs/guides/messaging/push/push-statuses).

## Consent

**Consent** has two parts:

- **Topics**: the kinds of marketing the contact gets, on top of their channel consent. Members, admins and the owner can tick a topic to add them, which asks **How did they agree?**, or untick it to remove them.
- **Consent history**: every grant and withdrawal, with the **Channel or topic**, the **Change**, **How** it happened (for example **Opted in** or **Existing customer**, with the evidence given), **By** whom (someone in your workspace, an API key, the contact or the system) and **When**. Changes made before 26 September 2026 weren't recorded.

This is the record to use when someone asks how you got their consent. See [Consent and unsubscribes](https://kirora.io/docs/guides/contacts/consent-and-unsubscribes).

## Journeys

**Journeys** lists each journey the contact has entered, with their **Enrolment** (**In the journey**, **Finished** or **Left early**), their **Current step** and when they **Entered**.

- Choose **Steps** to see the run step by step.
- To take someone out of a journey, members, admins and the owner choose the remove button on its row, then **Remove from journey**. Their run ends at once and nothing more is sent from it.

## Devices

**Devices** lists the phones, tablets and browsers where push notifications would reach the contact, with the **App**, **Environment**, **Registered by**, **Permission** (**Allowed** or **Blocked**), **Status** (**Active** or **Inactive**) and **Last seen**. Your app or website registers devices; you can't add one from the dashboard. See [Set up push](https://kirora.io/docs/guides/getting-started/set-up-push).

A registered device doesn't give push consent. The contact needs **Push consent** for every push, transactional push included.

## Lists

**Lists** shows every list the contact is in and when they were **Added**. Choose the remove button on a row to take them out of that list, as in the header.

## Export a contact's data

To answer a request for someone's personal data, admins and the owner choose **Export data**. It downloads a file with everything Kirora holds about the contact: their profile, consent history, events, messages, lists, segments, topics, journeys, push devices, form submissions, conversions and suppressions. Data past your [retention periods](https://kirora.io/docs/guides/account/data-retention) is no longer held, so it isn't included. Each export is recorded in the [audit log](https://kirora.io/docs/guides/account/audit-log).

## Frequently asked questions

### Why didn't this contact get a campaign?

Open the campaign's **Recipients** tab and find them, or check their **Messages** tab. A skipped message shows its reason. Then check **Permission** on their profile: no email consent, or a **Suppression** reason, stops marketing email.

### Can I see a contact's opens and clicks?

Yes, on each message in their **Timeline**. Contacts in the EEA and the UK are never tracked, so their opens and clicks don't show.

### Why is an attribute shown as Hidden?

An admin or the owner has hidden it from members, authors, developers and viewers. Ask an admin if you need the value.

## Next steps

- [Manage contacts](https://kirora.io/docs/guides/contacts/manage-contacts) — edit, delete and change contacts in bulk
- [Events](https://kirora.io/docs/guides/contacts/events) — see the events your app sends
- [Consent and unsubscribes](https://kirora.io/docs/guides/contacts/consent-and-unsubscribes) — how consent and suppression decide who gets a message