Skip to main content

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.

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.

Quick answer

Send it as…When the email is…
TransactionalTriggered by a specific user action, expected by that user, and contains only content relevant to that action
WorkflowTriggered by an event or property change, part of an ongoing lifecycle sequence
CampaignA 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 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:
EmailTypical classification
Welcome email right after signupMarketing. Send as a Workflow on Contact added. The user signed up, but the email is relationship-building, not action-completing.
Weekly scheduled digest of their activityMarketing, 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 emailUsually transactional, the invitee took no action yet but it completes the inviter’s action
Re-engagement emailMarketing
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.

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. 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. 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.
  • 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:
StateWhat it meansTransactional still sends?Marketing still sends?
Unsubscribed (subscribed property is false)The contact opted out of marketingYesNo
Suppressed (suppression)Hard bounce or complaint, Loops blocks all sendsNoNo
So “transactional bypasses unsubscribes” is true. “Transactional bypasses suppression” is not, see contact suppression.

Tracking

By default, Loops does not track opens or clicks on transactional email. This is deliberate, see the note in the transactional guide. Marketing email tracks both. This means email.opened and email.clicked webhook events do not fire for transactional sends.

How Loops keeps them separate

BehaviorCampaigns and WorkflowsTransactional
Unsubscribe linkRequired (auto-added or {unsubscribe_link} tag)Not added
Open and click trackingOnOff
Added to AudienceYes, on signup or contact creationOnly with "addToAudience": true
Triggers “Contact added” workflowYesNo
Honors subscribed: falseYes, does not sendNo, still sends
Honors suppressionYesYes
Sent viaEditor, workflows, scheduled campaignsSend transactional email API only
Full behavior reference: Transactional email overview.

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

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 or Workflow instead.

Forgetting transactional still needs a verified sending domain

Transactional uses the same domain setup as marketing. If DNS is not right, nothing sends. See Setting up your 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.

Read more

Types of emails

Transactional email

Workflows

Sender reputation

Last modified on May 11, 2026