Realty Positioning System
  • How It Works
  • Showroom
  • Free Tools
  • Contact
  • Insights
πŸ“§

Newsletter Infrastructure

Status: 🟑 Building | Owner: ARCH | Created: S158 | Decision: D112 (pending)
Hidden from public site via Super.so page settings. Operator action required.
Subscriber DB

Architecture Overview

Stack: Notion Form (capture) β†’ Subscriber DB (storage) β†’ GEN/ARCH session (composition) β†’ Gmail MCP (draft creation) β†’ Operator (send)

Zero external SaaS. Fully internal to existing tool ecosystem.

How It Works

Layer 1: Email Capture

  • Notion Form linked from every Type 1 (CLP) and Type 2 (TAC) Insights post
  • Form contains one visible field: Email
  • One form per exemplar β€” the form identity carries the RV_Class + Geography tag (visitor never sees these)
  • Submissions land as rows in the Subscriber DB below

Layer 2: Subscriber Storage

  • Subscriber DB (inline database on this page β€” see below)
  • Each row = one subscriber, tagged by RV_Class + Geography derived from Source_Form
  • Multi-select tags support subscribers who enter through multiple exemplar forms
  • Deduplication by email: first submission creates the record; subsequent submissions from different exemplar forms append tags

Layer 3: Newsletter Composition

  • Type 6 Newsletter Entry content is already produced by WEB-BP-PRV during Stage 27
  • GEN session loads the Type 6 content + queries Subscriber DB for the target segment
  • GEN composes HTML email using subject line template and CAN-SPAM footer

Layer 4: Draft Creation & Delivery

  • GEN calls gmail_create_draft with:
    • to or bcc: subscriber batch (≀100 per draft to avoid spam flags)
    • contentType: text/html
    • subject: per STEP-008-WEB template β€” [Market_Geo] [Crisis_Label]: What the Latest Data Shows
    • body: HTML email with Type 6 content + CAN-SPAM footer
  • Operator reviews draft in Gmail β†’ clicks Send
  • GEN updates Subscriber DB: Last_Newsletter_Sent, Newsletter_Count

Layer 5: Prospect DB Sync

  • GEN periodically queries new subscribers (Prospect_Synced = unchecked)
  • Creates Prospect DB record with Source = "Inbound: Newsletter"
  • Checks Prospect_Synced on subscriber record
  • Deduplicates against existing Prospect records by email

Cadence Rules

Type
Trigger
Content
Max Frequency
Triggered
New exemplar completes Stage 27
Type 6 Newsletter Entry for that exemplar
As needed
Monthly Digest
1st of month
Aggregated Type 6 entries from all exemplars published that month
1/month
Cap
β€”
β€”
Max 2 emails/subscriber/month

Email Compliance (CAN-SPAM / GDPR)

  • Every email includes unsubscribe instruction (reply "UNSUBSCRIBE" or mailto: link)
  • Physical mailing address in email footer
  • Unsubscribe honored within 10 business days
  • GEN session searches Gmail for unsubscribe replies β†’ updates Subscriber DB Status = Unsubscribed
  • Unsubscribed addresses are never re-added, even on new form submissions

Gmail Send Limits

Account Type
Daily Limit
Implication
Gmail (free)
500/day
Fine until ~500 subscribers
Google Workspace
2,000/day
Fine until ~2,000 subscribers

BCC batch size: ≀100 per draft to avoid spam classification.

Upgrade Trigger

Migrate to dedicated ESP (Mailchimp, ConvertKit, Beehiiv) when:

  • Subscriber count exceeds 500 (free Gmail) or 2,000 (Workspace), OR
  • Exemplar count exceeds 10, OR
  • Segmentation complexity requires automated workflows beyond manual GEN sessions

At migration: update form embed URLs in all WEB-BP blueprints (one-time edit).

Form Inventory

Exemplar
Form Name
Form URL
RV_Class
Geography
Status
FL-MIA-001
TBD
TBD
RV-04
Miami-Dade
Not created
FL-NAP-001
TBD
TBD
RV-04
Naples/Collier
Not created
CA-LOS-001
TBD
TBD
RV-02
Los Angeles
Not created

HTML Email Template

Subscriber DB Schema

See inline database below. Fields:

  • Email (title) β€” subscriber address
  • RV_Class (multi-select) β€” risk vector tags, derived from Source_Form
  • Geography (multi-select) β€” market area tags, derived from Source_Form
  • Status (select) β€” Active / Unsubscribed / Bounced
  • Source_Forms (text) β€” which Notion Form(s) they submitted through
  • Subscribed_Date (date) β€” first submission date
  • Last_Newsletter_Sent (date) β€” most recent email sent
  • Newsletter_Count (number) β€” total emails sent to this subscriber
  • Prospect_Synced (checkbox) β€” whether Prospect DB record exists

Open Items (Future Sessions)

Create Subscriber DB (inline database on this page)
Create first Notion Form (FL-MIA-001 β€” active Stage 27 exemplar)
Test Super.so rendering of Notion form link on Insights posts
Build HTML email template
Update STEP-008-WEB Β§Newsletter Pipeline to reference this architecture
Update WEB-BP-CLP + WEB-BP-TAC form placeholders with actual form URLs
Add "Inbound: Newsletter" option to Prospect DB Source field (coordinate T203)
Log D112
Operator: hide this page in Super.so site settings
Realty Positioning System

Terms

[TEMPLATE β€” TO BE BUILT IN FUTURE SESSION]

Subject: [Market_Geo] [Crisis_Label]: What the Latest Data Shows

Body structure:
- Header: RPS logo/wordmark (optional)
- Lead paragraph: 2-3 sentence hook from Type 6 content
- Body: remaining Type 6 Newsletter Entry content
- Primary CTA: "Read the full analysis β†’" (links to CLP)
- Secondary CTA: "Preview the complete positioning system β†’" (links to PRV)
- Footer: Physical address, unsubscribe instruction, RPS branding