> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omnilinker.pl/llms.txt
> Use this file to discover all available pages before exploring further.

# Sent messages

> See every message Omnilinker sent or tried to send to your customers, what happened to each, and what to do with the ones that didn't go.

**Customer service** > **Sent messages** lists every message Omnilinker sent or tried to send: by you from an order, in a
bulk run, or by an automation. It is the place to check that a notice reached the customer, and to find the ones that
didn't. You need the **See sent messages** permission.

## What the page shows

At the top, a line of figures counts the messages of the chosen period by state, for example "42 sent · 3 queued · 1
failed".

**Needs you** comes first. It holds the messages that didn't reach the customer, or of which nobody knows whether they
did: "3 messages didn't reach the customer". Each card says what happened and what to do, with a button when there is
one: **Send again** or **Open order**. Messages skipped in the same bulk run are grouped on one card, "5 skipped in one
run".

Below it is the **Message log**, newest first, by day. A bulk run is one row for the batch with its counts, for example "30
sent · 1 failed · 1 skipped"; click it to see the messages in it, and **Show … more** for the rest. Each row shows the
**Time**, the **Customer**, the **Purpose**, the **Channel**, **Sent by** and the **State**. **Show more** at the bottom
loads older messages.

### Filters

| Filter | Choices |
| - | - |
| **State** | Any state, **Delivered**, **Sent**, **Queued**, **Failed**, **Blocked**, **Skipped**, **Unknown** |
| **Sent by** | Anyone, Me, Automatic messages |
| **Period** | Today, Last 7 days, Last 30 days |
| **Purpose** | Any purpose, or one purpose: Free text, Reply, Delay notice, Ready for pickup, Quote, Problem with the order, Other service message, Order update, Thank you, Review request, Invoice or Tracking |
| **Channel** | Any channel, E-mail, SMS, Allegro, OLX |

**Clear filters** resets them. **Refresh** reloads the page.

## States

| State | Meaning |
| - | - |
| **Queued** | Waiting to leave: its turn, a retry, or the end of quiet hours for an SMS. |
| **Sent** | The e-mail service or SMS provider accepted the message. |
| **Delivered** | The customer's mail server or phone operator accepted it. Omnilinker doesn't track opens or clicks. |
| **Failed** | It didn't reach the customer: the address bounced, the customer marked it as spam, the sender isn't verified or the service refused it. |
| **Blocked** | The channel refused it, so the customer got nothing. |
| **Skipped** | Omnilinker didn't try: there was no address, the customer opted out, asked not to be contacted, the address is suppressed, the channel isn't allowed for this order, or the choice made for this counter order rules it out. |
| **Unknown** | Nobody knows whether it went: the provider didn't answer in time. |

For how e-mail moves through these, and what **Unknown** means, see
[What happens to an e-mail you send](https://docs.omnilinker.pl/customer-service/email-delivery). An SMS becomes **Delivered** when the provider
reports it to Omnilinker; if no report arrives it stays **Sent**.

## Open a message

Click a row to open the **Message details** panel:

* **From** and **To**: the sender and the address or number.
* **As sent**: the text that went out, with the subject, the template it came from or "Written by hand", and any
  attachments. If the customer's data was erased, the text is gone too: "The text was erased with the customer's data."
* **Delivery**: each step with its time: Queued, Sending, Sent, Delivered, Failed, Bounced, Marked as spam and so on. A
  waiting SMS says "Waits until …: no SMS at night." and a failure shows the code the channel answered.
* **Why we could send it**: the rule that allowed the message, for example "A service message about the order: no marketing
  consent needed." A message that was refused says which rule refused it. If the customer has withdrawn a consent since,
  it says so.
* **Conversation**: the conversation the message belongs to, and the order.
* **What to do**: the fix for a message that went wrong.

## What to do with a message that didn't go

| You see | What to do |
| - | - |
| **Failed**, "It wasn't sent (code)." | Check the address, then use **Send again**. |
| **Failed** with a bounce: "… doesn't receive messages." | The address doesn't exist. Check the address or number on the order. A bounced address is also put on the suppression list. |
| **Failed** after the customer marked it as spam | Reach the customer another way. The address is suppressed. |
| **Unknown** | Check whether the customer got it first (ask, or look for their reply), then **Send again** only if it didn't arrive. |
| **Blocked** | Change the text and send it again. |
| **Skipped**, no contact detail | Add a phone number or an e-mail address on the order, then send it again. |
| **Skipped**, no consent, suppressed or not allowed on this channel | Reach the customer another way. |
| **Skipped**, the customer asked not to be contacted | Nothing to send. Respect the choice. |
| **Skipped**, "The customer chose another channel for updates" or "Staff chose not to notify the customer" | The choice for this counter order. Change it on the order card if it is wrong; see [Keep a counter customer informed](https://docs.omnilinker.pl/customer-service/counter-orders). |
| **Skipped**, "Address on the suppression list" after an unsubscribe | The customer unsubscribed. To write to them again, see [Allow messages again](https://docs.omnilinker.pl/customer-service/consent-and-opting-out#allow-messages-again). |

**Send again** is offered on **Failed** and **Unknown** messages, and needs the **Send messages to customers** permission.
Omnilinker asks **Why send it again? (saved with the message)** and records who sent it again and why. Send it again only
when you are sure the first one didn't arrive: the customer would otherwise get it twice.

A customer who was erased from Omnilinker shows as "Erased customer".


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.