Email Marketing
Overview

Email Marketing

Gordon CRM includes a complete email system with two complementary tools: Campaigns for automated drip sequences and Broadcasts for one-time mass sends. The system supports both marketing and transactional email categories, with a first-party tracking engine for click and open analytics.

How It Works

All emails in Gordon CRM flow through a unified pipeline:

  1. Compose — Write your email using the built-in HTML editor with merge fields for personalization.
  2. Target — Select your audience (campaigns use automation triggers; broadcasts use tag/event-based audiences).
  3. Send — Emails are dispatched by background CRON sweepers that run on a schedule, checking for due enrollments and scheduled broadcasts.
  4. Track — Every email is logged in the email_sends table. Status progresses through pending → sent → delivered → opened → clicked. Click and open events are recorded by Gordon CRM's first-party tracking engine; delivery, bounce, and complaint events are received via Resend webhooks.

Email Categories

Every campaign and broadcast has a category that determines its compliance behavior:

MarketingTransactional
PurposePromotional content, newsletters, drip sequencesReceipts, confirmations, critical notifications
Consent requiredis_subscribed must be true❌ Bypasses consent gate
Unsubscribe header✅ Required (List-Unsubscribe)❌ Omitted
TrackingConfigurable (on by default, can disable)Always off
Default✅ All new campaigns/broadcasts default to marketing

Transactional emails bypass the is_subscribed gate and omit unsubscribe headers entirely. Use this category only for emails that recipients expect to receive regardless of their marketing preferences — such as order confirmations, appointment reminders, or account notifications.

Campaigns vs. Broadcasts

CampaignsBroadcasts
PurposeMulti-step automated sequencesOne-time mass emails
TriggerAutomation rules (form submission, tag applied, etc.)Manual or scheduled
StepsMultiple emails with delays between themSingle email
PersonalizationFull merge field supportFull merge field support
AudienceIndividual contacts enrolled via automationsBulk audience by tags, events, or all contacts
Lifecycledraftactivepausedarchiveddraftscheduledsendingsent

Email Eligibility

Before any marketing email is sent, Gordon CRM checks three conditions:

  1. ✅ The contact's is_subscribed must be true
  2. ✅ The contact's unsubscribed_at must be null
  3. ✅ No active suppression record (bounce, complaint, etc.) exists

If any check fails, the email is skipped and logged. See Subscriptions & Consent for details.

Transactional emails bypass condition 1 (is_subscribed) and condition 2 (unsubscribed_at). Only active suppressions (bounces, complaints) prevent a transactional email from being sent.

Sender Identities

Every email must be sent from a verified sender identity. This is a verified subdomain + email address configured in your workspace settings, with a separate reply-to address on your root domain.