# Message library

Source: https://kirora.io/docs/guides/messaging/message-library

Find every campaign and journey message in one place, and look up any message sent to a person to see what happened to it.

The **Message library** is where you find every message your workspace sends: each campaign message and journey send step, and a log of every individual email and push notification that went out or was skipped. Go to **Message library** in the sidebar, under **Send**.

It has two tabs:

- **Messages**: what your campaigns and journeys send, one row per message, with its results.
- **Sent messages**: one row per person per message, from every source, newest first.

Everyone in the workspace can open it, viewers included.

## Messages

**Messages** lists each campaign message and each send step in a journey. Each row shows the **Subject** (a push notification's title), the **Channel**, where it's **Used in**, the campaign's or journey's **Status**, and lifetime counts: **Sent**, **Opened**, **Clicked**, **Bounced** and **Failed**.

- **Search subjects and where they are used** finds a message by its subject or title, or by the campaign or journey name.
- **Sent by** narrows to **Campaigns** or **Journeys**.
- **Channel** narrows to **Email** or **Push**.

Choose a subject to open the campaign or journey it belongs to. Change the message there; the library doesn't edit it.

Transactional messages your app sends aren't listed here, since each one goes to one person. Find them under **Sent messages**, or on the **Transactional** page. Reusable designs live in **Templates**.

## Sent messages

**Sent messages** is the workspace's send log. Every campaign, journey, transactional send and push notification adds a row: **When**, **Recipient**, **Source**, **Channel** and **Status**. Messages skipped for consent, suppression or another reason are listed too, with the reason under the status.

Use it to answer questions such as "did Maya get her order confirmation?" or "why didn't this contact get the spring newsletter?".

### Find a message

- **Recipient**: type a full email address to find messages sent to that address, or part of an address or name to match the contact.
- **Status**: for example **Delivered**, **Bounced** or **Skipped**. See [Email statuses](https://kirora.io/docs/guides/messaging/email/email-statuses#statuses) and [Push statuses](https://kirora.io/docs/guides/messaging/push/push-statuses#message-statuses) for what each means.
- **Channel**: **Email** or **Push**.
- **Sent from** and **Sent to**: a date range, in your own time zone. **Sent to** includes the whole of that day.

Choose **Clear filters** to start again. The status, channel and date filters stay in the page's address, so you can share a filtered view with a teammate.

A message skipped before sending never had an address, so its row shows the contact's address today, marked **Current contact address**.

## Inspect a message

Choose **Inspect message** on a row. The message opens with:

- Its status and source: the outcome, the channel and the campaign or journey it came from, linked. A transactional send or a push notification sent from your app shows **Transactional** or **Marketing** instead.
- Why, when something went wrong: the reason it was skipped, failed or bounced, such as *No consent for this channel* or *Rejected by the receiving server*. A bounce also shows its type, such as *The address doesn't exist*, and the receiving server's own words under **Server's reply**, such as `550 5.1.1 user unknown`. [Why a message was skipped](https://kirora.io/docs/guides/messaging/email/email-statuses#why-a-message-was-skipped) lists every reason.
- **Sent to** and **Contact**: the address it went to, and a link to the contact as they are now. Their address may have changed since.
- **Template**: for a message sent from a saved template, the template and which published version.
- **What happened**: a timeline of each step that took place, such as **Created**, **Due**, **Accepted by the provider**, **Delivered**, **Opened** and **Clicked**. A push notification shows **Sent** instead of the provider step, since phones send no delivery receipt. If a security scanner followed a link, the message says so; that isn't counted as a click.

A message to a reserved test address shows *Simulated: not handed to the provider*.

### See what was sent

For a transactional message, choose **Show what was sent** to see its subject, sender, preview text and body, or a push notification's title and message. Merge tags show as written, not filled in, and remote images are blocked.

Campaign and journey messages don't keep their own copy. To see their content, open the campaign or the journey from the message's source.

If the content is gone, the message says *Content not kept: it's past the workspace's retention period, or it was a password reset, a verification code, or sent without keeping content.*

There's no resend from the library. To send a message again, send a new campaign, or ask your developer to send the transactional message again.

## How long messages are kept

Messages follow your plan's history period, from 90 days on Free to two years on Growth. After that each message is anonymised: its **Sent to** reads *Not recorded* and searching by address won't find it, but campaign and journey totals stay. What a transactional message said is kept for 30 days by default; admins and the owner can change that in **Settings › Workspace › Data retention**. See [Data retention](https://kirora.io/docs/guides/account/data-retention).

## Next steps

- [Email statuses and metrics](https://kirora.io/docs/guides/messaging/email/email-statuses)
- [Push statuses and metrics](https://kirora.io/docs/guides/messaging/push/push-statuses)
- [Troubleshoot email](https://kirora.io/docs/guides/messaging/email/troubleshoot-email)