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

# Email Compliance: unsubscribe link and headers

> Turn on the unsubscribe link, write an opt-out message containing {url}, and add the one-click List-Unsubscribe headers Gmail and Yahoo look for.

export const UiPath = ({children}) => {
  const parts = String(children).split(/\s*(?:→|>)\s*/).filter(Boolean);
  return <span className="pl-path">
      {parts.map((part, index) => <span key={`${index}-${part}`}>
          {index > 0 && <span className="pl-path__sep">→</span>}
          {part}
        </span>)}
    </span>;
};

export const Screenshot = ({id, alt, caption, frame = 'browser', url, marks = [], lang = 'en', workspace = 'northwind-outbound'}) => {
  const src = `/images/screenshots/${lang}/${id}.png`;
  const chrome = url ? `app.pipelime.ai/${workspace}${url}` : 'app.pipelime.ai';
  return <figure className={`pl-shot pl-shot--${frame} not-prose`}>
      <div className="pl-shot__frame">
        {frame !== 'bare' && <div className="pl-shot__bar">
            <span className="pl-shot__dots">
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
            </span>
            <span className="pl-shot__url">{chrome}</span>
          </div>}
        <div className="pl-shot__media">
          <img src={src} alt={alt} loading="lazy" />
          {marks.map(mark => <span key={mark.n} className="pl-shot__mark" style={{
    left: `${mark.x}%`,
    top: `${mark.y}%`
  }} aria-hidden="true">
              {mark.n}
            </span>)}
        </div>
      </div>
      {caption && <figcaption className="pl-shot__caption">{caption}</figcaption>}
    </figure>;
};

When you finish, the email your accounts send to leads carries the one-click List-Unsubscribe headers Gmail and Yahoo act on, plus a visible opt-out message in the body if you write one.

<div className="pl-availability">
  <div className="pl-availability__row">
    <div className="pl-availability__label">Where</div>
    <div className="pl-availability__value"><span className="pl-path">Settings<span className="pl-path__sep">→</span>Email Compliance</span></div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">Your role needs</div>
    <div className="pl-availability__value">Update access to Email Compliance <code>update-companies</code>. Admin have it by default.</div>
  </div>

  <div className="pl-availability__note">If you cannot find this in your sidebar, your workspace may have a custom menu configuration. Contact support and we will check it for you.</div>
</div>

## Before you begin

* Nothing beyond the permission above. This is one workspace-wide switch, not a per-account or per-campaign one. Turn it on once and every email account in the workspace sends with it.

## Turn it on

<Steps>
  <Step title="Open Email Compliance">
    Go to <UiPath>Settings → Email Compliance</UiPath>. Above the switch sits a banner headed **Why this matters**: the product's own summary of why Gmail and Yahoo want a visible unsubscribe option.
  </Step>

  <Step title="Turn on Unsubscribe Link">
    Switch **Unsubscribe Link** on. The label beside it changes from **Disabled** to **Enabled**, and the section expands.

    That alone covers the automatic side. Once you save, every email sent afterwards carries the `List-Unsubscribe` and `List-Unsubscribe-Post` headers, which is what Gmail and Yahoo read to put their own one-click Unsubscribe button in the toolbar.
  </Step>

  <Step title="Add an opt-out message (optional)">
    If you also want opt-out wording in the body, type it in **Opt-out Message** and put the literal token `{url}` where the link should sit. The field takes HTML (its own placeholder example wraps the token in an anchor tag), and what you type is appended to the bottom of the email body as written.

    Leaving the field empty is a valid choice: the one-click button comes from the headers, not from this message, so it works either way. An empty field just means no footer text goes out. Text in the field that does not contain `{url}` fails validation and blocks saving.

    <Screenshot id="settings-team/email-compliance--enabled" url="/settings/email-compliance" alt="The Unsubscribe Link switch turned on, the section expanded to show the info box, and an Opt-out Message containing the {url} token" caption="{url} is the one part you do not write yourself. It is swapped for that email's own opt-out address as the message goes out." />
  </Step>

  <Step title="Save your changes">
    Choose **Save Changes**. It only appears once something differs from what is saved, and it stays disabled while the opt-out message has text in it but no `{url}`. **Cancel** puts both fields back to the saved values.

    <Note>
      Saving with **Unsubscribe Link** switched off clears the stored opt-out message along with the headers. Switch it back on later and the field starts empty.
    </Note>
  </Step>
</Steps>

## What happens next

<Check>
  A confirmation reads "Email compliance settings saved successfully".
</Check>

From then on, every email account in the workspace adds the List-Unsubscribe headers (and your opt-out message, if you wrote one) to the email it sends. Warm-up traffic between mailboxes is the one exception and carries neither, by design. Anyone who opts out, through the provider's button or through your link, is marked unsubscribed and their lead moves to Closed, and campaign sending skips them from then on, not just for the campaign that reached them. See [How unsubscribe works](/en/security/unsubscribe-and-list-unsubscribe) for the full mechanism.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Save Changes stays disabled">
    The opt-out message has text in it but no `{url}`. Type the token exactly like that where you want the link, or clear the field completely. An empty message is valid too, and unlocks the button.
  </Accordion>

  <Accordion title="Recipients aren't seeing my opt-out message">
    A blank field sends no footer text, on purpose: the one-click button in Gmail and Yahoo comes from the headers, not from this message, so it keeps working with nothing typed. If you did write a message, confirm you chose **Save Changes**: navigating away discards unsaved edits.
  </Accordion>

  <Accordion title="An email I already sent has no unsubscribe link">
    Headers and message are built as each message is sent, from the setting as it stands at that moment. Turning this on changes email that goes out afterwards; it does not touch anything already delivered. Warm-up messages between mailboxes never get either one.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="How unsubscribe works" icon="list-checks" href="/en/security/unsubscribe-and-list-unsubscribe">
    The one-click headers, the footer link, and what an opt-out does to the lead.
  </Card>

  <Card title="The unsubscribe page your recipients see" icon="mail" href="/en/security/unsubscribe-page-for-recipients">
    The confirmation form and success state behind your opt-out link.
  </Card>

  <Card title="Acceptable use for outreach" icon="shield" href="/en/security/acceptable-use-for-outreach">
    What you may not send, and how fast an opt-out has to be honoured.
  </Card>
</CardGroup>
