TIP — PERMISSIONS
Comms runs on manage_comms with the comms feature. Submitting drafts needs submit_for_approval; signing off needs approve_comms; building pipelines needs manage_approval_pipelines.
Email blasts
A full-screen block composer — headings, images, buttons, columns, social rows, a footer block with the legally required one-click unsubscribe — with merge fields like {{first_name}} and light/dark previews. Start from a template, blank, or a duplicate of last week's blast.
Recipients pull from multiple sources at once — voter universes, donor segments, volunteer rosters, pasted lists — with a live deduplicated count that shows suppressed, previously bounced, and unsubscribed exclusions before you send. The sender health review checks SPF / DKIM / DMARC on every verified domain plus suppression size, bounce rate, and complaint rate; fix anything red before sending.
Send now, schedule, or test-send. Delivery tracks per recipient — sent, delivered, opened, clicked, bounced, complained, unsubscribed — and Resend to failed drafts a new blast pre-filtered to delivery failures. Double hard-bounces, unsubscribes, and spam complaints land on the suppression list automatically.
SMS blasts
Same recipient model, tighter rules. The composer counts segments and characters as you type (attach an image and it becomes MMS), and shows estimated cost before sending — segments × deduplicated recipients × your Twilio rate. Opt-outs are enforced platform-wide: STOP, UNSUBSCRIBE, CANCEL, END, or QUIT adds the number to the opt-out list permanently, and numbers without consent are excluded by default.
COMPLIANCE
Romulus enforces the platform-side rules; the legal layer is yours — TCPA consent, 10DLC registration through Twilio, and honoring cross-channel opt-outs (someone who asks by phone gets added manually).
Press releases & blog
A rich-text editor with auto-save, Markdown shortcuts, and AP-style AI drafting — describe the topic in a sentence and get a structured draft (headline, dateline, lead, quotes, boilerplate, contact) using your campaign's real details; then iterate with Revise with AI, every version preserved in the audit trail. Releases move draft → pending approval → approved → published, and Download as PDF produces a letterhead PDF with your logo and press contact for reporter attachments.
Press releases and blog posts co-edit live — two staffers in the same draft see each other's cursors and changes in real time, the way a shared document works, so the comms director and the writer aren't emailing versions back and forth. The body is Markdown underneath, which means it round-trips cleanly to the website, the PDF, and back into the editor without losing formatting.
Blog posts are their own channel, separate from press releases — write them here and a published post flows straight to the news feed on your campaign website, no re-paste.
Rapid response & approvals
When something hits the news cycle, flag it fast — headline, source URL, priority, topic — even before drafting; a flagged item is visible to the team and starts the clock. Draft the statement (with AI assist if you want), pick target reporters from the CRM, and submit for approval. The lifecycle: flagged → drafting → pending approval → approved → sent.
Approval pipelines are configured per artifact type (press release, email blast, rapid response) with one or more steps — each with eligible approvers, a quorum, and serial or parallel execution. The approval bar on any draft shows the current step, each approver's status, and whether quorum is met; rejections require a comment. Pipelines support watchers (notified, but not gating) and an SLA that flags breaches and alerts watchers — catching the approver who's on a plane.
- Pre-build pipelines before you need them — mid-crisis is the worst time to pick approver lists.
- Keep pipelines short; add legal review when you need it, not on every artifact.
- Use watchers liberally — keep the candidate in the loop without making them a bottleneck.
Reporters, briefings & the message framework
The reporter CRM tracks outlet, beat, geographic scope, relationship warmth, preferred contact method and timing — filter it into reusable pitch lists, and every logged outreach updates the reporter's last-contact date. Around it sit the rest of the earned-media operation: briefings (Markdown prep docs, plus an AI-assembled daily briefing from the last 24 hours), the message framework (pillars with draggable, approved-or-alternative talking points your surrogates can pull up on a phone), the surrogate roster with logged appearances, an LTE / op-ed pipeline, media clips with sentiment, and a correspondence log that feeds pitch-to-placement conversion in comms analytics.
Log every press call — the correspondence log is what turns individual reporter relationships into team knowledge.
Rosie in the comms shop
Rosie, the campaign AI, reads the whole desk — every press release, blast, blog post, social post, editorial, and rapid response — and can tell you what's gone out and how it performed. Ask her to draft to any channel and she writes a real draft, on message with your pillars and brand, and hands it back as a card you can open and edit.
She never sends. A drafted item sits at draft until a person with the right permission presses Approve on the card — and Approve only ever does the single safe transition for that channel:
Internal briefings have no next state, so Rosie will draft one but there's nothing to approve — it simply lands in the briefing list. Every card's button says exactly what it will do, so "approve" never means more than you expect. The Rosie guide covers the rest of what she can reach.
Social media
Post directly to Facebook, Instagram, and X with AI-assisted copy tailored per platform and tone. Scheduled posts land on the social calendar — draft → scheduled → posted, with failures flagged — and a series groups a multi-day narrative (an endorsement rollout, a GOTV countdown) so you plan the arc, not one post at a time. Batch your writing: Sunday night for the week beats scrambling every morning.