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

# Transactional vs marketing email

> When to use transactional email, when to use marketing email, and how Loops keeps the two separate so neither hurts the other.

Misclassifying an email (sending marketing content through the transactional API, or a slow transactional message through a marketing path) hurts both deliverability and user expectations. This guide covers when each path is appropriate, what Loops does to keep them separate, and how to pick when you are not sure.

For an overview of the three sending types in Loops (Campaigns, Workflows, Transactional), see [Types of emails](/types-of-emails).

## Quick answer

| Send it as...                          | When the email is...                                                                                          |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [Transactional](/transactional)        | Triggered by a specific user action, expected by that user, and contains only content relevant to that action |
| [Workflow](/workflows)                 | Triggered by an event or property change, part of an ongoing lifecycle sequence                               |
| [Campaign](/types-of-emails#campaigns) | A one-off send to a segment of your Audience                                                                  |

Loops and Campaigns are both marketing email. Transactional is its own category.

## What counts as transactional

[Transactional email](/transactional#transactional-vs-marketing-emails) is 1-to-1 and triggered by the user. Clear examples:

* Password resets and magic links
* Email verification and OTP codes
* Receipts, invoices, and payment confirmations
* Shipping updates
* Account creation and deletion confirmations
* Security alerts ("new login from Chrome on macOS")
* Scheduled report exports the user requested

Less clear examples, with the typical call:

| Email                                                                       | Typical classification                                                                                                                               |
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Welcome email right after signup                                            | Marketing. Send as a [Workflow](/workflows) on **Contact added**. The user signed up, but the email is relationship-building, not action-completing. |
| Weekly [scheduled digest](/guides/scheduled-digest-email) of their activity | Marketing, even though it is personalized                                                                                                            |
| "Your trial ends in 3 days"                                                 | Marketing, it is promoting renewal                                                                                                                   |
| "Your trial ended, data will be deleted in 30 days"                         | Usually transactional, because it reflects account state and deletion timing the user needs                                                          |
| [Team invitation](/account/team-members) email                              | Usually transactional, the invitee took no action yet but it completes the inviter's action                                                          |
| Re-engagement email                                                         | Marketing                                                                                                                                            |

When in doubt: if the user would reasonably be surprised to receive it, or if it contains any promotional content, send it as marketing. For individual cases you are unsure about, email [help@loops.so](mailto:help@loops.so).

## Why the distinction matters

### Sender reputation

Transactional email has high engagement by default because the recipient is actively waiting for it. That engagement boosts your [sender reputation](/deliverability/sending-reputation). Marketing email has lower engagement, and sending marketing content through a transactional path mixes the two signals and can hurt deliverability for the messages that matter.

Loops sends transactional and marketing email from your verified sending domain and a small shared pool of Loops IPs by default, so the reputation signals are connected. This is usually helpful because high transactional engagement can support overall deliverability. It also means marketing content sent through a transactional path can weaken the same reputation profile that your operational messages depend on.

### Legal and compliance

Marketing email must include an unsubscribe link and honor opt-outs. Transactional email is exempt because it is operationally required. Loops enforces this automatically:

* Campaigns and Workflow emails include an unsubscribe link in the Loops footer, or you add `{unsubscribe_link}` when [uploading custom emails](/creating-emails/uploading-custom-email#add-an-unsubscribe-url).
* Transactional emails do not include an unsubscribe link.

### Unsubscribe vs suppression

These are two different states in Loops, and the distinction matters when deciding classification:

| State                                                                                  | What it means                                    | Transactional still sends? | Marketing still sends? |
| -------------------------------------------------------------------------------------- | ------------------------------------------------ | -------------------------- | ---------------------- |
| **Unsubscribed** ([`subscribed` property](/contacts/properties#subscribed) is `false`) | The contact opted out of marketing               | Yes                        | No                     |
| **Suppressed** ([suppression](/contacts/suppression))                                  | Hard bounce or complaint, Loops blocks all sends | No                         | No                     |

So "transactional bypasses unsubscribes" is true. "Transactional bypasses suppression" is not, see [contact suppression](/contacts/suppression).

### Tracking

By default, Loops does not track opens or clicks on transactional email. This is deliberate, see [the note in the transactional guide](/transactional#metrics). Marketing email tracks both.

This means `email.opened` and `email.clicked` [webhook events](/webhooks) do not fire for transactional sends.

## How Loops keeps them separate

| Behavior                                    | Campaigns and Workflows                              | Transactional                                                                |
| ------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------- |
| Unsubscribe link                            | Required (auto-added or `{unsubscribe_link}` tag)    | Not added                                                                    |
| Open and click tracking                     | On                                                   | Off                                                                          |
| Added to Audience                           | Yes, on signup or contact creation                   | Only with `"addToAudience": true`                                            |
| Triggers "Contact added" workflow           | Yes                                                  | No                                                                           |
| Honors `subscribed: false`                  | Yes, does not send                                   | No, still sends                                                              |
| Honors [suppression](/contacts/suppression) | Yes                                                  | Yes                                                                          |
| Sent via                                    | Editor, [workflows](/workflows), scheduled campaigns | [Send transactional email API](/api-reference/send-transactional-email) only |

Full behavior reference: [Transactional email overview](/transactional).

## Common mistakes

### Sending a "welcome" email as transactional

The user technically took an action (signing up), but a welcome email is usually promotional or onboarding content. Send it as a [workflow](/workflows) with a "Contact added" trigger so it respects unsubscribes and contributes to your marketing engagement signal.

For examples of what to include, see [Your first onboarding emails](/guides/onboarding-emails).

### Sending marketing content through the transactional API

Mixing product announcements or newsletters into transactional sends risks complaints and spam flags. Email service providers (ESPs) watch for this. The fix is to send marketing content as a [Campaign](/types-of-emails#campaigns) or [Workflow](/workflows) instead.

### Forgetting transactional still needs a [verified sending domain](/sending-domain)

Transactional uses the same domain setup as marketing. If DNS is not right, nothing sends. See [Setting up your domain](/sending-domain).

### Using marketing-style "From" names on transactional

Transactional should come from a From name the user recognizes from the app (for example, `Loops <noreply@mail.loops.so>`). Overly branded or promotional From names on receipts and security alerts confuse users and hurt engagement. See [sending settings](/creating-emails/sending-settings).

## Read more

<CardGroup>
  <Card title="Types of emails" icon="envelopes-bulk" href="/types-of-emails" />

  <Card title="Transactional email" icon="envelope" href="/transactional" />

  <Card title="Workflows" icon="arrows-rotate" href="/workflows" />

  <Card title="Sender reputation" icon="shield" href="/deliverability/sending-reputation" />
</CardGroup>
