Spec map

Home: All V2 Specs · Foundation: Data System (UVP) Mode(s): Relationship Mode Related specs: Contacts, Data System (UVP), Tribes

🎯 Goals

Six-Tab Architecture

  • Provide a sequential-but-navigable six-tab flow with validation gates and persistent credit visibility. Dashboard
  • Drive repeat sending with an email list, performance snapshot, and fuel/action bar. Creative Canvas
  • Provide a responsive drag-and-drop email builder with AI assist and accessibility-aware blocks. Sender Information
  • Provide a light trust/deliverability layer over SES with verified domains and authenticated sending. Recipients
  • Select audiences strictly from opt-in contacts with segmentation while enforcing the voter-roll wall. Send & Automate
  • Launch broadcasts, sequences, and triggers with mandatory cost transparency and credit guardrails. Statistics
  • Report per-email and aggregate performance including reply tracking and write engagement back to the UVP. Deliverability Dashboard
  • Monitor sustained sender reputation, per-domain health, and compliance exports with actionable alerts. Block System & Media Library
  • Provide a typed block contract and sanitized, optimized, CDN-delivered media asset management. AI Architecture
  • Give every customer ungated AI assistance across the email workflow under fair-use limits. Fuel System Integration
  • Make Broadcast Credit consumption transparent and guardrailed across all surfaces. Data Model & UVP Writeback
  • Define email entities and write all engagement events back to the UVP with defined retention. Compliance & Security
  • Enforce CAN-SPAM, CASL, GDPR, and 2024 sender requirements with sanitization and audit logging. Relationship/Campaign Wall
  • Preserve the strategic wall by blocking live roll querying and Campaign Mode IP in Relationship Mode.

Conceptual Specification (V1)

Product: Politogy VRM Mode: Relationship Mode Document type: Conceptual specification Status: Draft for review Version: V1 spec (V2 scope flagged inline)


1. Purpose & Strategic Position

The Email Engine is Relationship Mode’s primary outbound communication channel. It exists to make sending email so easy that customers send more of it — which directly drives revenue through Broadcast Credit consumption — while serving as the relationship-building, list-warming, engagement-scoring foundation that prepares customers (and their contacts) for the higher-value Campaign Mode upgrade during campaign season.

Strategic role in the VRM stack:

  • Revenue engine. Every email sent consumes Broadcast Credits. Friction in production = lost revenue. The product’s job is to remove friction.
  • Engagement data factory. Every send produces opens, clicks, survey responses, form submissions, and unsubscribes — all of which write back to the Unified Voter Profile (UVP) and feed Relationship Mode segmentation, scoring, and downstream Campaign Mode intelligence.
  • Upgrade funnel. Relationship Mode emails are the warm-up; Campaign Mode is the closer. Strong wall between modes preserves Campaign Mode’s premium positioning while letting Relationship Mode customers experience the platform’s quality.
  • Trust layer. Branded, deliverable, compliant email is table stakes for any CRM. Failure here destroys credibility for the entire VRM platform.

What the Email Engine is not:

  • Not a voter-roll-targeted broadcast tool. That’s Campaign Mode.
  • Not a transactional email service for application notifications. That’s a separate infrastructure concern.
  • Not a SMS/text platform. Signal Credits and the text engine are a parallel system, out of scope here.

2. Scope — V1 vs V2

V1 (this spec)

  • Six-tab navigation: Dashboard, Creative Canvas, Sender Information, Recipients, Send & Automate, Statistics
  • Drag-and-drop responsive HTML email builder with block library
  • Media asset library with upload, organization, CDN delivery
  • Rich text inline editing
  • Template system (Politogy starters, account templates, save-from-sent)
  • Survey block (native, ties to existing Surveys feature)
  • Form block (forward-compatible contract for upcoming Forms feature)
  • Recipient selection from Relationship Mode opt-in contacts only, with tag/field/engagement-based segmentation
  • VRM Verified tag exposed in segment filters (metadata only, no roll querying)
  • Sender Information: connect-your-domain UX over AWS SES, guided DNS setup (SPF, DKIM, DMARC), from-name/address/reply-to management; replies route to the From address by default with optional Reply-To override
  • Send & Automate: send now, schedule, send-time optimization, linear drip sequences, trigger-based sends
  • Full AI scope from launch, no tier gating — every customer gets every AI capability
  • Statistics: opens, clicks, CTR, bounces, complaints, unsubscribes, reply tracking, click heatmap, A/B testing, cost reporting
  • Deliverability Dashboard: dedicated surface for account-level sender reputation, per-domain health, bounce/complaint trends, warm-up status, SES warnings
  • Compliance reporting exports: CAN-SPAM/CASL audit trails, unsubscribe processing audit, suppression list exports, per-send and aggregate
  • Fuel integration: Broadcast Credit meter in header, pre-send cost preview, sequence credit estimator, runtime guardrails
  • Compliance: CAN-SPAM, CASL, Gmail/Yahoo 2024 sender requirements, one-click unsubscribe

V2 (flagged, out of scope for V1)

  • Full visual journey builder (multi-branch, conditional logic, A/B splits inside journeys, goal exits, re-entry rules)
  • Optional Message Lane tagging in Relationship Mode emails (open strategic question — see Section 17)
  • Forms feature integration (Form block goes live when Forms ship)
  • Cross-account benchmarking (Enterprise tier)
  • AMP for Email support
  • Multi-language send variants

Out of scope (always or other spec)

  • Voter-roll-based recipient selection (Campaign Mode)
  • SMS / Signal Credits (separate engine)
  • Transactional/system email (infrastructure)
  • In-app notifications (separate notification system)

3. The Six-Tab Architecture

Tab-based navigation matches VRM’s existing IA pattern. Tabs are sequential for the create-an-email flow but freely navigable once a draft or sent email exists.

#TabPrimary PurposeEntry Point
1DashboardList, performance, drafts, copy/editDefault landing tab
2Creative CanvasBuild/edit the email contentFrom “New Email” or “Edit/Copy”
3Sender InformationFrom-name, from-address, reply-to, domainInherited from defaults; editable per send
4RecipientsSegment and select opt-in contactsRequired before send
5Send & AutomateSend now, schedule, drip, triggerFinal step before launch
6StatisticsPerformance after sendAvailable post-send and historical

Navigation rules:

  • Persistent Broadcast Credit meter in tab header (all tabs).
  • Validation gates: cannot reach Send & Automate without verified Sender Information and at least one recipient segment.
  • Draft auto-save on tab change and every 30 seconds inside a tab.
  • “Send Test” button available from any tab once Creative Canvas has content.

4. Tab 1: Dashboard

The Dashboard is the email engine’s home and the surface that drives repeat sending behavior.

Top region — Fuel & action bar:

  • Broadcast Credit balance (prominent), sends this billing period, projected burn at current pace, low-balance warning state with “Buy More” / “Toggle Auto Top-Off” CTAs.
  • Primary CTA: “New Email” (creates blank draft, opens Creative Canvas).
  • Secondary CTA: “New from Template” (template gallery modal).

Main region — Email list table:

Columns: Email Name | Status (Draft / Scheduled / Sending / Sent / Paused) | Subject | Recipients | Sent Date | Opens | CTR | Credits Spent | Actions.

Filters: Status, date range, sender, tag/lane (V2), automation vs broadcast. Search: Email name, subject line. Sort: Any column.

Per-row actions:

  • View Statistics (jumps to Statistics tab for that email)
  • Edit (drafts only)
  • Copy & Edit (any email; creates new draft pre-populated from source)
  • Duplicate (exact copy as draft)
  • Archive
  • Delete (drafts only; sent emails archived, never deleted, for compliance/audit)

Secondary panels:

  • Recent drafts (quick resume)
  • Top performers (last 30 days, by CTR)
  • Automations status (active drip sequences, paused, error states)

5. Tab 2: Creative Canvas

The build surface. Drag-and-drop, responsive by default, dead simple.

Layout:

  • Left rail: Block library (drag sources)
  • Center: Email canvas (live preview, drop target, inline edit)
  • Right rail: Block settings (when block selected) / Email settings (when nothing selected)
  • Top bar: Email name, Send Test, Preview (Desktop / Mobile / Dark mode toggle), Save, Next Tab

Block library:

  • Structural blocks: Section, Column (1/2/3/4-col layouts), Spacer, Divider
  • Content blocks: Heading, Text (rich text editor), Image, Button, Video (thumbnail + link, since most clients block video), Social Icons, Footer
  • Interactive blocks: Survey (V1), Form (V1 contract, lights up when Forms ships), Poll/Vote (V2 — flagged)
  • Dynamic blocks: Personalization tokens (first name, custom fields), Conditional content (V2)

Rich text editor: WYSIWYG with markdown shortcuts, bold/italic/underline/strikethrough, headings H1–H4, link with UTM auto-tagging, lists, alignment, text color, background color, font family (curated list), font size.

Responsive behavior: Mobile-first rendering with desktop fallback. Mobile preview always one tap away. Blocks reflow automatically; advanced users can set mobile-specific overrides (hide on mobile, mobile font size, stack columns).

Dark mode preview: Toggle in preview bar. Inverted color rendering simulating Apple Mail/Gmail dark mode behavior.

Media in canvas: Drag from Media Library panel or drop file directly onto canvas (uploads, optimizes, inserts). Alt text required for accessibility and deliverability (warning if missing, not blocking).

Template operations: Save as Template (account-wide), Load Template, Reset to Blank.

AI assist (Creative Canvas surface):

  • Subject line generator (3–5 variants, regenerate)
  • Preview text generator
  • Copy rewrite (selected text → tone variants: punchy, professional, urgent, conversational)
  • Generate full draft from prompt (“Welcome email for new donors thanking them for joining”)
  • Image alt text auto-generation
  • Spam-trigger word check
  • Deliverability score with actionable fixes

AI capability surface detailed in Section 12.


6. Tab 3: Sender Information

The trust and deliverability layer. Light UX over heavy AWS SES infrastructure.

Per-email fields:

  • From Name (defaults from account, editable per send)
  • From Email Address (must be from verified domain) — this is where replies go by default
  • Reply-To Address (defaults to from, overridable when a customer wants replies routed elsewhere)
  • Pre-header / Preview Text (inherited from Creative Canvas if set)

Reply handling (V1):

  • Replies route directly to the From address — or to the Reply-To address if set.
  • No Politogy reply inbox surface in V1. Customers receive replies in their own inbox (Gmail, Outlook, whatever they use).
  • Reply events are still captured for tracking — see Statistics tab. Politogy detects when a reply arrives at the From/Reply-To address (via SES inbound or VERP-style tracking) and logs the event without intercepting the message content.
  • V2 may add a unified Politogy reply inbox if customer demand surfaces it.

Domain management (account-level, surfaced here):

  • Connected domains list with verification status (Verified / Pending / Failed)
  • “Connect New Domain” flow:
    1. Enter domain
    2. System generates DNS records (SPF, DKIM, DMARC) — copy-paste ready, with provider-specific guides (GoDaddy, Cloudflare, Namecheap, Route 53)
    3. “Verify Now” button polls DNS
    4. Recommended: dedicated sending subdomain (e.g., mail.benedtl.com) to protect root domain reputation
  • Per-domain reputation indicators (bounce rate, complaint rate, SES sending status)

Sender profile rules:

  • Must use a verified domain — no free-provider sends (Gmail/Yahoo/Outlook from-addresses blocked per modern deliverability standards)
  • Physical mailing address required at account level (CAN-SPAM), auto-appended to footer
  • Unsubscribe link and one-click List-Unsubscribe header injected automatically (Gmail/Yahoo 2024 compliance)

SES abstraction: Users never see “SES.” The infrastructure is invisible. If Politogy migrates email infrastructure later, the UI doesn’t change.


7. Tab 4: Recipients

Where the audience is selected. Strict Relationship Mode wall — opt-in contacts only.

Selection modes:

  • All contacts (opt-in to email only)
  • Saved segment (pre-built, reusable)
  • Ad-hoc segment (build inline, optionally save)
  • Specific list (manually selected contacts or uploaded inclusion list cross-referenced against opt-in status)

Segment builder:

  • Field-based: any contact field (tags, custom fields, signup date, lifecycle stage, etc.)
  • Engagement-based: opened last X emails, clicked last X emails, has not opened in Y days, replied, unsubscribed (excluded by default), survey/form respondent
  • Tag-based: includes VRM Verified tag as a filterable attribute (metadata only — no voter-roll query)
  • Boolean composition: AND / OR / NOT, nested groups
  • Live count preview as filters change
  • Save segment with name and description

Wall enforcement:

  • Voter-roll data is not queryable from this tab under any circumstance
  • VRM Verified appears only as a yes/no/unknown tag attached to the contact record
  • Hard error if any segment definition attempts to reach roll fields

Suppression handling:

  • Account-level suppression list (unsubscribed, hard-bounced, complaint-flagged) automatically excluded from every send
  • Per-email additional suppression (exclude segment X from this send)
  • Suppression list export/import for cross-platform hygiene

Recipient preview:

  • Final count after suppression
  • Sample of 10 contacts (for spot-check)
  • Personalization preview (token substitution shown for sample contacts)

AI assist (Recipients surface):

  • Segment suggestion based on email content (“This email looks like a re-engagement message — try the ‘Not opened in 60 days’ segment”)
  • Audience size optimization warnings (“Segment too narrow — consider broadening filter X”)

8. Tab 5: Send & Automate

The launch surface. Cost transparency is non-negotiable here.

Send modes:

One-time broadcast

  • Send Now — immediate dispatch
  • Schedule — date/time picker, timezone selection
  • Send-time optimization — AI determines optimal send time per recipient based on historical engagement; send window defined by sender (e.g., “Deliver within the next 24 hours”)

Linear drip sequence

  • Sequential emails with wait steps between them
  • Entry: enroll segment, auto-enroll new matches (toggle), allow re-entry (toggle)
  • Steps: Email → Wait (hours/days/until specific date) → Email → Wait → … → Exit
  • Exit conditions: completed all steps, met goal (e.g., clicked link, submitted form), unsubscribed, manually removed
  • Pause/resume sequence at any time
  • Edit sequence (changes apply to contacts who haven’t yet hit edited step)

Triggers

  • Contact created
  • Tag added / removed
  • Custom field changed (to specific value or any change)
  • Date-based (birthday, anniversary, custom date field +/- N days)
  • Survey submitted (any survey or specific survey)
  • Form submitted (when Forms ships)
  • Link clicked in prior email
  • Email opened / not opened
  • Lifecycle stage change

Trigger fires the email (or sequence) immediately, on delay, or at a scheduled time-of-day relative to the trigger event.

Cost preview (always visible, pre-send)

This send: 4,287 recipients × 1 Broadcast Credit = 4,287 credits. Current balance: 12,500. Balance after send: 8,213. [Send Now] [Schedule] [Save as Draft]

For sequences/triggers, projected credit burn over rolling 30-day window based on current enrollment rate and historical conversion patterns.

Runtime guardrails

  • Hard stop if credits insufficient at send time (broadcast) or step time (sequence)
  • Sequence pauses, admin notified, “Buy More” CTA
  • Auto top-off (org settings) prevents most stoppages
  • Sends in flight when credits run out complete; new sends blocked

A/B testing

  • Subject line A/B (split %, winner criterion: opens / clicks, hold-out duration, auto-send winner to remainder)
  • From-name A/B
  • Content A/B (full creative variant)
  • Send-time A/B
  • Statistical significance display

9. Tab 6: Statistics

Performance reporting per email and aggregate.

Per-email view:

  • Headline metrics: Sent, Delivered, Opens (unique + total), CTR (unique + total), Bounces (soft/hard split), Complaints, Unsubscribes, Replies (count + reply rate), Forwards (where detectable)
  • Conversion goals: link click goals, survey/form submission goals, custom field changes
  • Cost metrics: Credits spent, cost per open, cost per click, cost per goal
  • Time series: opens and clicks over first 72 hours, 7 days, 30 days
  • Click heatmap: visual overlay of where recipients clicked in the email
  • Device breakdown: mobile / desktop / tablet / webmail client
  • Geographic breakdown: by region (where derivable)
  • Engagement-by-segment: which segments performed best
  • A/B test results with significance
  • Individual recipient drill-down: who opened, who clicked, who replied, who bounced (links back to contact records)

Aggregate view (account-wide):

  • Sending volume over time
  • Average open rate, CTR, bounce rate, complaint rate (with deliverability health warnings)
  • Top-performing templates, subject lines, sender profiles
  • Credit consumption trends
  • List growth vs unsubscribe rate

Sequence/trigger view:

  • Per-step performance
  • Funnel conversion through sequence
  • Time-in-sequence distribution
  • Exit reason breakdown

Data export: CSV export of all metrics. API access (Enterprise tier).

Writeback to UVP: All engagement events (open, click, unsubscribe, survey submit) write to the contact’s Unified Voter Profile, available for future segmentation and Campaign Mode intelligence (only after explicit cross-mode permission — Campaign Mode upgrade or VRM Verified flow).


10. Deliverability Dashboard

A dedicated surface accessible from the Email Engine header. Aggregate deliverability and sender reputation health, separate from the per-email Statistics tab.

Why a dedicated surface: Per-email Statistics shows how one send performed. Deliverability is a sustained health question — domain reputation, IP reputation, complaint trends, bounce trends, warm-up status — that customers need to monitor at the account level. Burying it in Statistics buries it.

Top region — Account sender reputation:

  • Composite reputation score (0–100) — Politogy-computed from SES signals, complaint rate, bounce rate, engagement quality, and authentication compliance
  • Status indicator: Healthy / Caution / At Risk / Quarantined
  • Trend line: reputation over the last 90 days
  • Threshold lines marking deliverability danger zones

Per-domain health (one row per verified sending domain):

  • Authentication status: SPF ✓ / DKIM ✓ / DMARC ✓ (or specific failure callout)
  • Reputation status
  • Send volume (last 7 / 30 / 90 days)
  • Bounce rate (with industry benchmark)
  • Complaint rate (with Gmail/Yahoo 0.3% threshold marker)
  • Open rate (with industry benchmark)
  • Unsubscribe rate
  • Warm-up status (for new domains: gradual ramp progress, current daily limit, days until full volume)
  • SES warnings (specific issues SES flags: high bounces, suspected spam, etc.)

IP pool status:

  • Pool type (shared / dedicated)
  • IP reputation indicators
  • (Dedicated IPs are an infrastructure decision per account; surfaced here as status, configured at platform level)

Trends and alerts:

  • Bounce rate trend, complaint rate trend, unsubscribe rate trend
  • Threshold alerts: bounce >2%, complaint >0.1%, complaint >0.3% (Gmail/Yahoo danger zone)
  • Sudden volume changes (could indicate compromised account or list quality drop)
  • New domain warm-up incomplete warning
  • Authentication failures (SPF/DKIM/DMARC drift)

Actionable surface:

Each warning includes a specific next action — “Bounce rate elevated. Suggested: clean inactive contacts last engaged >180 days ago. [Build segment]” — not just a red dot.

Compliance reporting exports (lives here at aggregate level):

  • CAN-SPAM audit export: all sends with sender address, physical address footer, unsubscribe link verification, date/recipient/subject
  • CASL audit export: consent timestamp and source per recipient on any send
  • Unsubscribe processing audit: every unsubscribe event, timestamp, source (one-click header, in-email link, manual), processing time
  • Suppression list export: full account suppression list with reason codes (unsubscribed, hard-bounced, complaint, manual)
  • Per-send compliance exports also available from Statistics tab

11. Block System & Media Library

Block contract

Every block declares:

  • Schema (typed fields with defaults)
  • Renderer (responsive HTML output)
  • Mobile override rules
  • Inline edit affordances
  • Settings panel UI

This contract is the extension point for V2 blocks (Polls, Conditional Content, AMP interactive) and for the Form block to light up when Forms ships.

Media library

  • Centralized account-level asset store
  • Upload: drag-drop, file picker, paste from clipboard
  • Supported: JPG, PNG, GIF, WebP, SVG (sanitized), MP4 (thumbnail use), PDF (download links)
  • Auto-optimization: resize, compress, format conversion, retina variants
  • CDN delivery
  • Organization: folders, tags, search by filename/alt text
  • Per-asset usage tracking (where it’s been used, last used)
  • Storage quota by tier
  • Alt text editing (accessibility + deliverability)
  • Direct insertion from canvas

12. AI Architecture

AI uses the shared Politogy model layer — the same brain that powers VRM Polls’ AI question generation and the Strategic Analyst. Cross-product investment compounds. Every customer gets every AI capability — no tier gating. The strategy is volume, not feature licensing: AI lowers the cost of producing every email, every customer sends more, Broadcast Credit consumption scales, revenue scales with it.

AI capability surface

CapabilityWhere it livesWhat it does
Subject line generationCreative Canvas3–5 variants per request, regenerable, with predicted open-rate scoring
Preview text generationCreative CanvasInbox preview line generation matched to subject + content
Full draft generationCreative CanvasPrompt-to-draft (“Welcome email for new donors thanking them for joining”)
Copy rewriteCreative Canvas (selected text)Tone variants — punchy, professional, urgent, conversational, on-brand
Brand voice tuningAccount settings (surfaced in Canvas)Customer trains voice profile from past emails; AI matches
Image alt text auto-genMedia Library, CanvasAccessibility + deliverability
Spam-trigger word checkCreative CanvasPre-send scan with rewrite suggestions
Deliverability scoreCreative Canvas0–100 score with actionable fixes
Segment suggestionRecipients”This email looks like a re-engagement message — try the ‘Not opened in 60 days’ segment”
Audience size optimizationRecipientsWarns on too-narrow or too-broad segments
Send-time optimizationSend & AutomatePer-recipient optimal send time from historical engagement
Performance summary narrativeStatisticsNatural-language readout of what happened and what to do next

Rate limiting: Per-account fair-use limits on AI calls to protect infrastructure, generous enough that no normal user hits them. No per-capability gating, no per-tier quotas.


13. Fuel System Integration (Broadcast Credits)

Display surfaces

  • Persistent header meter (all six tabs): balance, sends this period, projected burn at current pace, low-balance warning at <10% of recent burn rate.
  • Send & Automate cost preview (mandatory pre-send): per-recipient × cost = total credits, balance before, balance after.
  • Sequence/trigger estimator: projected burn over rolling 30-day window based on current enrollment + historical conversion.
  • Statistics tab cost reporting: credits spent, cost per open / click / goal.
  • Dashboard cost columns: credits spent per email in main list.

Behavioral rules

  • 1 recipient = 1 Broadcast Credit (V1 baseline; pricing surface, not technical limit).
  • Credits consumed on dispatch, not on schedule. Scheduled sends reserve credits at send time, not at schedule time.
  • A/B test holdouts and re-sends consume credits per recipient touched.
  • Test sends (Send Test button) do not consume credits (capped at N per email).
  • Bounced emails: credit consumed (already paid for the attempt); subsequent suppression prevents future spend on the same address.

Auto top-off

  • Org-level setting (referenced, not configured here)
  • When balance falls below threshold, auto-purchases configured bundle
  • Surfaces in Email Engine as a status indicator only (“Auto top-off enabled — sends will not be interrupted”)

Out-of-credit behavior

  • Broadcast: hard block at Send & Automate, inline “Buy More” / “Enable Auto Top-Off” CTAs.
  • In-flight broadcast: completes the batch in progress.
  • Sequence/trigger mid-run: pauses sequence, admin notified, “Buy More” CTA in dashboard automations panel.

14. Data Model & UVP Writeback

Email engine entities

  • Email (draft, scheduled, sent, archived)
  • Template (account, Politogy starter)
  • Segment (saved, ad-hoc)
  • Sequence (linear drip configuration)
  • Trigger (event listener + action)
  • Send (one execution of an email to a recipient — the event row)
  • Engagement event (open, click, bounce, complaint, unsubscribe, forward)
  • Media asset
  • Sender profile (domain, from-name, from-address)

Writeback to Unified Voter Profile

Every engagement event writes to the contact’s UVP record:

  • Open count, last open timestamp, opens by email
  • Click count, last click, clicks by URL
  • Bounce status, bounce type
  • Complaint flag
  • Unsubscribe flag and timestamp
  • Survey/form submission events
  • Engagement score (derived, updated on each event)

This data is available for Relationship Mode segmentation immediately. Cross-mode availability (Campaign Mode aggregate intelligence) gated by explicit permission flow at mode upgrade time, consistent with the Relationship/Campaign wall.

Data retention

  • Sent emails: retained indefinitely (compliance, audit, “Copy & Edit” workflow)
  • Engagement events: retained per account data retention policy (default 7 years)
  • Drafts: retained until deleted by user
  • Test sends: not stored as Sends

15. Compliance, Deliverability, & Security

Regulatory

  • CAN-SPAM (US): Physical mailing address in footer (auto-appended from account settings), accurate from/subject, working unsubscribe processed within 10 business days (Politogy processes within minutes).
  • CASL (Canada): Express or implied consent required; consent timestamp and source stored at contact level (Relationship Mode opt-in already enforces this).
  • GDPR / state privacy laws (CCPA, etc.): Right to access, delete, port. Handled at platform level; Email Engine respects suppression and deletion.
  • Gmail / Yahoo 2024 sender requirements: Authenticated sending (SPF + DKIM + DMARC), one-click List-Unsubscribe header, complaint rate <0.3%.

Deliverability

  • AWS SES backbone with shared IP pools by default and dedicated IPs available per account on request
  • Warm-up for new domains (gradual volume ramp, system-managed)
  • Reputation monitoring per sending domain (surfaced in the Deliverability Dashboard — Section 10)
  • Engagement-based throttling if complaint or bounce rates spike
  • Suppression sync with SES (auto bounce/complaint handling)
  • Pre-send deliverability score with actionable fixes

Security

  • Asset sanitization (SVG, uploaded files scanned)
  • HTML sanitization in custom code blocks (V2 if introduced; V1 keeps users in block editor)
  • Domain verification required for sending
  • Audit log of sends, edits, sender profile changes
  • Rate limiting on AI calls per account

Compliance reporting

CAN-SPAM, CASL, and unsubscribe processing audit exports are produced from the Deliverability Dashboard (account-level aggregate) and from the Statistics tab (per-send). Suppression list exports are available on demand. Full detail in Section 10.


16. The Relationship / Campaign Mode Wall

This is the strategic architecture point. Worth stating explicitly.

The wall is about live voter-roll querying and Campaign Mode IP — not about every piece of data that has any roll origin. A consented opt-in contact who has been VRM Verified carries roll-sourced enrichment (address, demographics, district, voting history fields) as their contact information. That information lives on the contact record and is queryable in Relationship Mode segments because it’s contact data — the customer has a consented relationship with that person. What’s walled off is the ability to query the voter roll itself, and the proprietary intelligence layer Campaign Mode adds on top.

What crosses the wall (V1):

  • VRM Verified contact enrichment. Roll-sourced fields land on the contact record at the time of verification — address, demographics, district, party registration, voting history, and other roll-derived attributes. These behave as contact data going forward. Filterable in segments. Usable in personalization tokens. Tied to the consented contact, not to a live roll lookup.
  • Engagement data (one-way, with gate). Opens, clicks, unsubscribes, survey responses, form submissions all write to the UVP. Available to Campaign Mode only after explicit cross-mode permission flow at Campaign Mode upgrade. Engagement data is behavioral, not roll-derived, but the permission flow keeps the customer in control of the cross-mode handoff.

What does not cross the wall:

  • Live voter-roll querying from inside Relationship Mode. Recipients tab cannot search the voter roll. Cannot segment “all registered Republicans in District 37.” Roll data is only present on contacts the customer has already brought into their Relationship Mode contact list and verified.
  • Campaign Mode proprietary IP:
    • Message Lane taxonomy (REINFORCE/PERSUADE/MOBILIZE/INOCULATE/ENGAGE)
    • Four-dimension voter scoring model (Support/Confidence/Intensity/Volatility)
    • Cross-account aggregate intelligence and propensity products
    • Strategic Analyst Heavy-Prescription Next Moves
    • Classification migration events and longitudinal voter tracking
  • Voter-roll-derived analytics, audiences, and intelligence products that aren’t tied to a specific consented contact in the customer’s Relationship Mode list.

Why the wall matters:

  • Preserves Campaign Mode’s premium positioning as the campaign-season upgrade. Customers see a meaningful step up, not a feature flag.
  • Defensible standalone Relationship Mode. CRM-style customers who never run a campaign get full value from Relationship Mode without ever touching Campaign Mode mechanics.
  • Compliance surface area. Voter file usage is regulated. Live roll querying gated to Campaign Mode keeps the legal and audit surface area smaller and clearer.
  • Trust. Opt-in contacts know they’re being communicated with based on the relationship they consented to. Their enriched profile data exists because they’re already in the customer’s list — not because the customer scraped the roll for them.

17. Open Questions & V2 Backlog

V1 open questions (for engineering)

  1. Block schema versioning. When a block’s schema evolves, how do we render historical emails sent with the old schema? Proposed: pin block version to email at draft creation; renderer keeps backwards-compat for all shipped versions.
  2. A/B test minimum audience. Statistical significance requires audience size. Below what threshold do we disable A/B testing in the UI? Proposed: 1,000 recipients per variant.
  3. Send-time optimization cold start. New contacts have no engagement history. Proposed: default to account median engagement time until contact accumulates 3+ engagement events.
  4. Sequence enrollment caps. Hard cap on contacts in flight per sequence to protect credit burn from runaway enrollment? Proposed: configurable per sequence, default unlimited with high-burn warning.
  5. Forms feature contract. Form block needs the Forms data contract finalized before block ships. Sequencing dependency.

V2 backlog (flagged for revisit)

  1. Visual journey builder. Multi-branch, conditional logic, A/B inside journeys, goal exits, re-entry rules. The drag-canvas equivalent of linear drip. (User-requested V2 priority.)
  2. Optional Message Lane tagging in Relationship Mode. Strategic question: tagging Relationship Mode sends with Campaign Mode’s lane taxonomy would give Campaign Mode richer historical context once a customer upgrades. Trade-off: violates the strict wall, exposes Campaign Mode IP in lower tier. Default position: keep wall absolute unless data shows clear upgrade-conversion lift from exposing lanes earlier.
  3. AMP for Email. Interactive email content. Limited client support; revisit when adoption justifies build cost.
  4. Multi-language send variants. One email, multiple language renderings selected per recipient preference field.
  5. Cross-account benchmarking (Enterprise). Anonymized aggregate performance vs. comparable accounts. Data product, requires privacy review.
  6. Custom HTML / code blocks. Power-user escape hatch. Deferred to keep V1 in safe rails.
  7. Advanced personalization. Conditional content blocks (show different content to different segments within the same send).
  8. Inbox preview integration (Litmus / Email on Acid). Render-testing across clients.

End of conceptual specification — V1 draft.