Dashboard
Sending health and audience at a glance — last 30 days.
Sends & engagement
Deliverability
HealthyRecent campaigns
View all →Newsletters
Each newsletter is a list with its own opt-in policy, from-address and compliance footer.
| Newsletter | Opt-in | Subscribers | From address | Cadence | Access | Signups | |
|---|---|---|---|---|---|---|---|
| The Morning Ledger | Double opt-in | 96,204 | ledger@northwindtimes.example | Daily · 6am ET | Free | Open | |
| Market Signal | Double opt-in | 8,410 | signal@northwindtimes.example | Weekly | Paid | Open | |
| Field Notes | Double opt-in | 54,880 | notes@northwindtimes.example | Weekly · Thu | Free | Open | |
| Weekend Long Read | Double opt-in | 61,300 | read@northwindtimes.example | Weekly · Sat | Free | Open | |
| Product Dispatch | Single opt-in | 12,940 | product@northwindtimes.example | Ad-hoc | Free | Closed |
Subscribers
Every subscriber is a Cognito account (shared pool) keyed by sub. Click a row to view, manually unsubscribe, or suppress.
| Subscriber | Status | Entitlement | Lists | Last open | Cognito sub |
|---|---|---|---|---|---|
JR Jordan Reyes jordan.reyes@gmail.com | Confirmed | Paid | 3 | 2h ago | a1f3…9c2 |
MO Mei Okafor mei@okafor.studio | Confirmed | Free | 2 | 1d ago | 7be0…14a |
TS Tomás Silva tsilva@proton.me | Pending | Free | 1 | — | c40d…8f1 |
AH Aisha Hassan aisha.h@outlook.com | Confirmed | Paid | 4 | 5h ago | 2d99…30b |
DK Daniel Kim dan.kim@gmail.com | Unsubscribed | Free | 0 | 12d ago | 5aa1…7e4 |
Segments
Saved filters over attributes and engagement. Resolved at send time via GSIs + materialized tags.
| Segment | Size | Basis |
|---|---|---|
| Engaged — opened last 30d | 71,220 | engagement |
| Paid subscribers | 14,860 | entitlement = paid |
| Lapsed — no open 90d | 18,940 | engagement |
| NYC metro | 9,410 | attribute · city |
Lapsed — no open 90d
Campaigns
Ongoing series aggregate their editions for trend reporting; one-offs report individually. Recurring sends run on EventBridge Scheduler.
| Campaign | Type | Status | Audience | Open | Click | When | |
|---|---|---|---|---|---|---|---|
| The Morning Ledger — Jul 20 | Ongoing · Daily | Sent | 96,204 | 44.1% | 8.3% | 2h ago | |
| Market Signal — Weekly Brief | Ongoing · Weekly | Sent | 8,410 | 61.7% | 14.2% | Yesterday | |
| Weekend Long Read — Jul 20 | Ongoing · Weekly | Scheduled | 61,300 | — | — | Sat 8:00 ET | |
| Product Dispatch — v4 launch | One-off | Draft | — | — | — | 3d ago |
New campaign
Compose → choose audience → review & send.
- Newsletter
- The Morning Ledger
- Audience
- Engaged — opened last 30d · 71,220
- Suppressed
- 1,204 (bounces + complaints)
- From
- ledger@northwindtimes.example
- Unsubscribe
- One-click (RFC 8058)
- Send
- Now — throttled to 340 msg/s
Templates
Three authoring modes — pick the right one per team. All render through the same responsive pipeline and get the compliance footer + one-click unsubscribe injected automatically.
Drag-and-drop blocks (GrapesJS → MJML). For editors & ad reps building polished sends without touching code. Open →
Responsive markup + merge tags with live preview. Full control over layout.
Paste advertiser-supplied HTML as-is. Footer + unsubscribe injected; sanitized for safety.
<mj-section>
<mj-column>
<mj-text font-size="17px">
Good morning, {{ first_name }}.
</mj-text>
<mj-button href="{{ editorial_url }}">
Read today’s lead
</mj-button>
<mj-text>{{ unsubscribe_footer }}</mj-text>
</mj-column>
</mj-section>
Good morning, Jordan.
The one chart that explains this week’s market — and three things to watch before Monday.
Northwind Times · 500 Market Street, Metro City, USA · Unsubscribe
Automations
Trigger-based drip sequences, orchestrated by Step Functions.
| Automation | Trigger | Status | In flow |
|---|---|---|---|
| Welcome series | Subscription confirmed | Live | 1,840 |
| Re-engagement | No open · 60d | Live | 6,210 |
| Paid onboarding | entitlement → paid | Paused | 0 |
Analytics — The Morning Ledger, Jul 20
Every generic email is archived, so clicks overlay onto the real message.
The one chart that explains the market
Good morning, Jordan. Futures slipped overnight after the jobs print. Here’s the chart everyone’s sharing3,204 and why it matters.
In markets: rates642, energy418, and a deal to watch1,090.
Northwind Times · 123 Main Street, Anytown, USA · Unsubscribe54
Top links
editorial only| Link | Clicks | CTR |
|---|---|---|
| the chart everyone’s sharing | 3,204 | 3.4% |
| a deal to watch | 1,090 | 1.1% |
| rates | 642 | 0.7% |
| energy | 418 | 0.4% |
| Unsubscribe | 54 | 0.1% |
All links
editorial only| Link | Clicks | Unique | CTR |
|---|---|---|---|
| the chart everyone’s sharing | 3,204 | 2,981 | 3.4% |
| a deal to watch | 1,090 | 1,004 | 1.1% |
| rates | 642 | 598 | 0.7% |
| energy | 418 | 402 | 0.4% |
| Unsubscribe | 54 | 54 | 0.1% |
Opens by client
Settings
Deployment configuration for this addressium account.
| Domain | DKIM | SPF | DMARC | Tracking |
|---|---|---|---|---|
| northwindtimes.example | Verified | Pass | p=reject | click.northwindtimes.example |
| news.northwindtimes.example | Verified | Pass | p=none | click.northwindtimes.example |
- Signing
- Asymmetric · ES256 (KMS)
- JWKS
- /.well-known/jwks.json
- Placement
- URL fragment #tok=
- Scope
- content:read
- TTL
- 14 days
- Redemption
- Reusable · stateless
- Last sync
- 4 min ago · 212 updated
- Values
- free paid
Point alerts at an SNS topic — fan out to email, SMS, Slack, PagerDuty, or a Lambda.
Export or erase a person by email. Erasure removes the profile + events and writes a hashed tombstone to suppression so they’re never re-added.
- Consent capture
- timestamp · IP · source URL
- Event retention
- Right to be forgotten
- Automated
- Data residency
- us-east-1 · your account
Admin team
Staff in the separate admin user pool. Each member has a role, scoped to one or more organizations.
| Member | Role | Org access | MFA | Last active |
|---|---|---|---|---|
DA Dana Alvarez dana@northwindtimes.example | Developer Admin | All orgs | TOTP | Now |
PW Priya Walsh priya@northwindtimes.example | Editor | Northwind · Lakeside | TOTP | 1h ago |
RB Ruben Ba ruben@northwindtimes.example | Analyst (Sales) | All orgs | TOTP | 3d ago |
MC Marco Cruz marco@northwindtimes.example | Support | Northwind | Pending | — |
Import endpoints, segments and the opt-out list from a Pinpoint export or CSV. Runs as a dry-run first.
endpoints · segments · suppression
- Source
- pinpoint-export-0719.csv
- Created
- 12,204
- Updated
- 3,880
- Skipped (dupes)
- 418
- Suppressed
- 96
- Errors
- 0
Feeds
Pull articles from RSS / Atom / JSON feeds to auto-build campaigns. Feed fields map to merge tags.
| Feed | Maps to | Last pulled | Items | Status |
|---|---|---|---|---|
Homepage RSS northwindtimes.example/feed.xml | The Morning Ledger | 6 min ago | 28 | Active |
Markets JSON api…/markets.json | Market Signal | 14 min ago | 12 | Active |
Features Atom northwindtimes.example/features.atom | Field Notes | 1 h ago | 6 | Paused |
- <title>
- → {{article_title}}
- <link>
- → {{editorial_url}} + token
- <description>
- → {{article_excerpt}}
- media:thumb
- → {{article_image}}
Merge tags
In-email replacement variables and where each value comes from at send time.
| Tag | Source | Scope | Example | Fallback |
|---|---|---|---|---|
| {{first_name}} | Profile attribute | per-recipient | Jordan | there |
| {{editorial_url}} | Feed link + magic token | token | …/article#tok=… | — |
| {{entitlement}} | Profile · synced | token claim | paid | free |
| {{article_title}} | Feed field | per-campaign | The one chart… | — |
| {{unsubscribe_url}} | System | per-recipient | …/u/… | — |
| {{unsubscribe_footer}} | System · list address | per-campaign | Northwind Times · 123 Main Street… | — |
Ad tags
LiveIntent ad HTML per slot. For recurring newsletters the fills are set once at the series level and reused by every edition; one-off blasts set them per campaign. Inserted as-is — never tokenized or click-tracked.
Slots in this template
7 slots| Slot | Position | This edition |
|---|---|---|
| {{ad_top}} | Above the fold | Filled |
| {{ad_inline_1}} | After story 1 | Filled |
| {{ad_inline_2}} | After story 2 | Filled |
| {{ad_inline_3}} | After story 3 | Filled |
| {{ad_native}} | Native unit | Filled |
| {{ad_sidebar}} | Sidebar | Empty |
| {{ad_footer}} | Below footer | Empty |
Identity & pools
Per-organization Cognito pools, app clients and magic-link signing. Stored in SSM; scoped to Northwind Times.
Data & exports
Import from Pinpoint / CSV and export subscriber lists or segments — scoped to this organization.
endpoints · segments · suppression
Recent jobs
| Job | Type | Rows | Status | When |
|---|---|---|---|---|
| export-ledger-0720.csv | Export | 96,204 | Ready | Just now |
| pinpoint-export-0719.csv | Import (dry run) | 16,502 | Reviewed | Yesterday |
| suppression-0715.csv | Import | 1,204 | Committed | 5 days ago |
Jordan Reyes Paid
jordan.reyes@gmail.com
- Cognito sub
- a1f3b8c0-…-9c2
- Organization
- Northwind Times
- Status
- Confirmed
- Entitlement
- paid · asof 4 min ago
- Source
- Signup form · homepage
- Consent
- 2025-11-04 · IP 73.x · double opt-in
- Suppression
- None
List subscriptions
Recent activity
Suppression
Addresses that are never sent to. Hard bounces and complaints are added automatically.
How the do-not-send list is shared across your organizations. Set once per deployment; override per org if needed.
| Address | Reason | Scope | Added |
|---|---|---|---|
| bounce@olddomain.com | Hard bounce | Global | 2h ago |
| angry@example.com | Complaint | Global | Yesterday |
| dan.kim@gmail.com | Unsubscribe | Northwind Times | 12d ago |
| test@spamtrap.net | Manual | Global | 1 mo ago |
Organizations
Each organization is an isolated silo. Manage the subscriber-pool ↔ org ↔ domain links and per-org setup here.
| Organization | Domain | Subscriber pool ID | Time zone | Sending IP | Suppression | Setup |
|---|---|---|---|---|---|---|
| Northwind Times | northwindtimes.example | us-east-1_Smt7Rp4Wq | America/Denver | Shared | Hybrid | Verified |
| Lakeside Ledger | lakesideledger.example | us-east-1_Lakeside3Kp9x | America/Denver | Dedicated | Hybrid | Verified |
| Copperline Courier | copperlinecourier.example | us-east-1_Asp2Qw8v | America/Denver | Shared | Per-org | DMARC pending |
A fresh addressium deploy runs the setup wizard once: verify a domain in SES (DKIM / SPF / DMARC), then create the first organization and link a Cognito subscriber pool. Every org after that repeats this checklist.
API & webhooks
Programmatic access for entitlement sync, subscriber events and integrations — scoped per organization.
API keys
| Name | Key | Scope | Last used |
|---|---|---|---|
| Stripe entitlement sync | sk_live_9f2c…a1 | entitlement:write | 4 min ago |
| CMS integration | sk_live_2b7d…c4 | subscribers:read | 1h ago |
Outbound webhooks
| Endpoint | Events | Status |
|---|---|---|
| northwindtimes.example/hooks/addressium | subscribed · unsubscribed · complained | Healthy |
| ops.northwindtimes.example/deliverability | bounce · complaint | Healthy |
Usage & cost
addressium is free software — this is your AWS spend, attributed per organization for chargeback across publications.
By organization
| Organization | Emails (mo) | SES cost | Dedicated IP | Storage | Est. total |
|---|---|---|---|---|---|
| Northwind Times | 268,400 | $26.84 | — | 1.2 GB | $27.90 |
| Lakeside Ledger | 112,900 | $11.29 | $24.95/mo | 0.6 GB | $37.10 |
| Copperline Courier | 30,700 | $3.07 | — | 0.3 GB | $3.40 |
| Total | 412,000 | $41.20 | $24.95 | 2.1 GB | $96.40 |
Visual builder
Drag-and-drop email builder (GrapesJS → MJML). Outputs the same responsive MJML as hand-authored templates; the compliance footer is added on send.
Good morning, {{first_name}}
Roles & access
What each admin role can do. Assign roles per member and scope them to specific organizations.
| Capability | Developer Admin | Editor | Analyst (Sales) | Support |
|---|---|---|---|---|
| View reports & analytics | ✓ | ✓ | ✓ read-only | ✓ |
| Schedule / resend / modify send times | ✓ | ✓ | — | — |
| Create / edit / send campaigns | ✓ | ✓ | — | — |
| Manage templates & segments | ✓ | ✓ | — | — |
| Manage individual subscribers | ✓ | ✓ | — | ✓ |
| Manually unsubscribe someone | ✓ | ✓ | — | ✓ |
| Delete contacts | ✓ | — | — | — |
| Close / reopen newsletters | ✓ | — | — | — |
| Manage suppression & alerts | ✓ | — | — | — |
| Identity, pools, organizations | ✓ | — | — | — |
| API keys, webhooks & feeds | ✓ | — | — | — |
| Manage team & roles | ✓ | — | — | — |
Audit log
Every admin action, immutable. Filter by member, organization or action type.
| When | Member | Action | Org |
|---|---|---|---|
| 2m ago | Dana Alvarez | Sent campaign “The Morning Ledger — Jul 20” | Northwind Times |
| 1h ago | Priya Walsh | Closed newsletter “Product Dispatch” | Northwind Times |
| 3h ago | Dana Alvarez | Manually unsubscribed dan.kim@gmail.com | Northwind Times |
| Yesterday | Ruben Ba | Exported 96,204 subscribers (CSV) | Northwind Times |
| 2d ago | Dana Alvarez | Provisioned organization “Copperline Courier” | — |
| 3d ago | Priya Walsh | Rotated magic-link signing key | Lakeside Ledger |