> ## 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.

# Consent and opting out

> Which messages need a customer's consent, how a customer opts out by e-mail or SMS, and what Omnilinker does when a message can't be sent.

Customer service sends two kinds of message, and treats them differently.

| Kind | Examples | Needs marketing consent? |
| - | - | - |
| **Service message** | A delay notice, "ready for pickup", a quote, a note about the customer's own order | No |
| **Marketing message** | A request for a review | Yes |

A service message is about the customer's own order. A marketing message asks for something or promotes you. Omnilinker
sends one-to-one and service messages only: it has no newsletter or campaign tool.

## What is checked before every message

Whoever sends the message (you from an order, a bulk run or an automation), the same checks run:

1. **Does the order's source allow it?** Allegro and OLX buyers are reached through their marketplace only. See
   [What Customer service does today](https://docs.omnilinker.pl/customer-service/overview#who-can-be-reached).
2. **Is there an address?** An e-mail address, or a phone number that can receive an SMS.
3. **Did the customer ask not to be contacted?** **Do not contact** on the contact stops everything: service messages and
   marketing messages, by e-mail and SMS.
4. **Is the address or number on the suppression list?** See [below](#the-suppression-list).
5. **For a marketing message: is marketing consent in force for this channel?**

The message is checked when you prepare it, so the panel can show why a channel is unavailable, and again at the moment it
is sent. A message that fails a check is **Skipped**, never sent, with the reason in
[Sent messages](https://docs.omnilinker.pl/customer-service/sent-messages):

| Skipped because | Shown as |
| - | - |
| No address on the channel | No address to send to |
| No marketing consent | No marketing consent |
| Do not contact | Asked not to be contacted |
| Suppressed address or number | Address on the suppression list |
| The marketplace's rules | Not allowed on this channel |
| The customer chose another channel for updates about the order | The customer chose another channel for updates |
| Staff chose not to notify the customer about the order | Staff chose not to notify the customer |

The last two come from the choice made for one counter order, not from the customer's consent. See
[Keep a counter customer informed](https://docs.omnilinker.pl/customer-service/counter-orders). They narrow an order's updates (a delay notice,
"ready for pickup", a note about the order) and nothing else: a reply, a thank-you, a review request, an invoice and a quote
ignore them. When you write a message by hand from the order, they appear as a note and don't block you.

## Where a customer's choices live

They live on the contact, in **Contact preferences**: **Service messages** and **News and offers** for **E-mail** and for
**Phone · SMS**, with the consent history. You can record or withdraw marketing consent, and switch **Do not contact** on
and off, with the **Manage consent and do-not-contact** permission. See [Contacts](https://docs.omnilinker.pl/sales/contacts.md#contact-preferences).

Each consent belongs to the address it was given for; changing a contact's e-mail or phone number means the consent must be
recorded again. A consent entry is never edited or deleted: a change of mind is a new entry.

> [!NOTE]
>
> The consent wording in the app is a draft that hasn't been approved by a lawyer. A consent recorded under the draft
> wording doesn't count, and no marketing message is sent on it. Until a wording is approved, review
> requests are not sent. Omnilinker doesn't give legal advice: check your wording with your lawyer.

## How a customer opts out

* **By SMS.** The customer replies STOP. Omnilinker puts the number on the suppression list and withdraws the contact's SMS
  marketing consent. Nothing more is sent to the number by SMS. See [Text messages (SMS)](https://docs.omnilinker.pl/customer-service/sms-senders#stop-replies).
* **By e-mail, with the unsubscribe link.** A thank-you or a review request carries a link at the bottom. See
  [Unsubscribe links](#unsubscribe-links). A service e-mail (a delay notice, "ready for pickup", a quote) carries none.
* **By marking an e-mail as spam, or when the address bounces.** The address is put on the suppression list for e-mail.
* **By telling you.** Switch **Do not contact** on, or withdraw the consent, on the contact.

## Unsubscribe links

The e-mails that Omnilinker sends as a **Thank you** or a **Review request** end with a sentence and a link: "Don't want
e-mails from us? Unsubscribe here: … You will then get no more e-mails from us, order updates included." The sentence is
in the language of the conversation, or your organization's default language. The e-mail also carries the standard
unsubscribe header, so a mail program can show its own **Unsubscribe** button. Omnilinker adds both itself: you don't write
them into the template. If this server can't issue a link, the e-mail isn't sent, and **Sent messages** says: "Nothing was
sent: thank-you and review-request e-mails must carry an unsubscribe link, and this server can't issue one yet."

What the customer sees:

1. They open the link. The page **Unsubscribe from e-mails** asks "Stop all e-mails to this address, order updates
   included?" Opening the link changes nothing yet, because mail scanners open links too.
2. They click **Unsubscribe**. The page says "Done. We won't send e-mails to this address any more, order updates
   included." A mail program's own button does the same at once.

An unsubscribe stops **all** e-mail to that address, not only thank-yous and review requests. Omnilinker keeps one
suppression list per channel and address, so a delay notice or a quote to that address is **Skipped** as well
("Address on the suppression list"), and the contact's **Contact preferences** reads "E-mail stopped (unsubscribed)". Text
messages are not affected. It works for an address that is not a contact, too. A link stops working after a year; an old one
says "This link is no longer valid. Use the link in a more recent e-mail."

To let e-mails reach that address again, see [Allow messages again](#allow-messages-again).

## The suppression list

The suppression list stops messages to an address or a number on a channel. Omnilinker adds to it by itself when:

| Reason | Happens when |
| - | - |
| **Bounce** | An e-mail bounced: the address doesn't receive mail. |
| **Complaint** | The customer marked an e-mail as spam. |
| **STOP reply** | The customer replied STOP to an SMS. |
| **Unsubscribed** | The customer used the unsubscribe link of a thank-you or a review request. |

A suppressed address blocks that channel only, service messages included. The contact's **Contact preferences** then
reads "E-mail stopped" or "SMS stopped" with the reason, and the contact keeps working on the other channel.

The list stores a fingerprint of the address, not the address itself, so it holds when the contact is erased, and it covers
an address that was never a contact.

### Allow messages again

A customer who unsubscribed by mistake, or whose mailbox works again after a bounce, can be allowed again. You need the
**Manage consent and do-not-contact** permission.

**1. Open the contact**

Open the contact and look at **Contact preferences**. A stopped channel reads, for example, "E-mail stopped
(unsubscribed)", with a button **Allow messages again** beside it. The button isn't shown on an anonymized contact, or
for a channel that isn't stopped.

**2. Say why**

Click **Allow messages again**. The dialog repeats what was stopped and why. Under **Why are messages allowed again?**
write the reason, up to 500 characters. The button **Allow messages again** stays off until you do.

**3. Confirm**

Click **Allow messages again**: "Messages are allowed again." Messages to that address are sent again from now on.

Allowing messages again only removes the block. It doesn't give marketing consent: a review request still needs a consent
in force, and a customer who replied STOP has to agree to SMS marketing again. The record isn't deleted: the contact shows
"Allowed again on … by … Reason: …". A new bounce, complaint, STOP reply or unsubscribe stops the address again. To lift
**Do not contact**, switch it off on the contact.

> [!NOTE]
>
> For an address that bounced or whose owner marked an e-mail as spam, the e-mail provider (Amazon SES) also keeps its own
> list of addresses it won't deliver to. Allowing messages again in Omnilinker doesn't clear that list, so such an e-mail may
> still not arrive. If it doesn't, ask Omnilinker support to remove the address there too. This has not been checked against
> the provider yet.

An address that isn't a contact has no screen to do this on. If a customer who is not a contact asks to be written to again,
create the contact with that address first.

## When a customer is erased

When you anonymize a contact or an order, Omnilinker erases what Customer service holds about them: the text and subject of
their messages, their e-mail address and phone number. A message that hasn't left yet is cancelled. **Sent messages** then
shows "Erased customer" and "The text was erased with the customer's data." The suppression list and **Do not contact**
stay, so messages don't start again. See [Contacts](https://docs.omnilinker.pl/sales/contacts.md#anonymize-a-contact) and
[Orders](https://docs.omnilinker.pl/sales/orders.md#anonymize-an-order).


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