Owner: Tiana (Head of Content + Training) — primary screener
Quote authority: Jonathan Sullivan (Founder) — only authorized quote source unless he delegates explicitly per inquiry
Compliance review: Ayisha "Balboa" Oglivie (regulatory-sensitive topics)
Legal review: Outside counsel (any litigation-adjacent inquiry)
Author: Workflow Architect (Amena) — for Chief of Staff team
Status: Draft v0.1 — pending sign-off from Tiana, Jonathan, Ayisha, Lola
Effective: TBD — after sign-off + §16 routing live + tier-1 outlet list locked
Pairs with: §16 Channel Routing Map, §17.4 §8.3 (media inquiries edge case), docs/marketing/PRESS_CONTACTS.md
Supersedes: §17.4 §8.3 (this SOP supersedes the inline edge-case with a full workflow)
Front door per §16. Press contacts HempDash through:
press@gethempdash.com — primary intended landing zone. Routing owner Tiana; quote authority Jonathan.press_voicemail.Actor: Tiana.
Action: Receive the inquiry. Triage on three axes:
Timeout: Tiana acknowledges within 4 business hours. Tier-1 outlets within 1 business hour (because she will already have been auto-DM'd by Amena per §16 §8).
Output on SUCCESS: Screened + classified → GO TO STEP 2 (engage) or STEP 1a (decline) or STEP 1b (escalate).
Output on FAILURE:
FAILURE(no_outlet_signature): Tiana asks for outlet, deadline, topic; clock pauses until reporter responds.FAILURE(suspected_competitor_in_press_clothing): Decline politely; flag in #press-monitor for awareness.When to decline:
Template (Tiana sends from press@):
Hi {reporter_name}, thanks for reaching out and for thinking of HempDash. We're not in a position to participate in this particular piece, but I appreciate you considering us. If you're working on future coverage of hemp commerce, regulated commerce infrastructure, or related topics, feel free to keep me in your contacts.
— Tiana, Head of Content, HempDash
Decline audit row written.
Always escalate if:
Escalation channel: Mattermost DM to Jonathan + Ayisha (+ counsel if litigation-adjacent). Tiana keeps owning the back-and-forth; Jonathan / Ayisha / counsel review drafts before send.
Actor: Tiana.
Action: Identify the request type:
| Type | What they want | Default posture |
|---|---|---|
| Quote on the record | Verbatim statement attributable to a named person | Jonathan-only quote authority; he approves verbatim |
| Interview | Scheduled live conversation with a HempDash spokesperson | Jonathan or Ayisha as substantive; Tiana coordinates |
| Background | Off-the-record context for a story | Tiana provides; no quotes |
| Fact-check | Reporter has a claim about HempDash; wants confirm/deny | Tiana confirms or denies factually; escalates if sensitive |
| Comment on a claim | Reporter says X happened; wants us to respond | Tiana drafts; Jonathan reviews; possible decline if X is misframed |
| Photo / b-roll | Visual assets request | Tiana provides from approved press kit; no on-site shoots without Lola coordinating logistics |
| Founder profile | Reporter wants to write about Jonathan personally | Jonathan-only; Tiana coordinates schedule and topic boundaries |
Actor: Tiana (draft); Amena (suggests language, drafts proposed-quote candidates as private notes only).
Action: Draft the proposed response or talk-track. Match HempDash voice per feedback_amena_voice.md. For quote-bearing responses, draft a candidate quote.
Anchor messaging (refresh quarterly with Jonathan):
project_hempdash_is_infrastructure_not_compliance.md).project_identity_positioning.md).user_jonathan.md).Actor: Jonathan (sole quote authority unless he delegates per inquiry).
Action: Tiana sends the candidate quote to Jonathan via Mattermost DM. Jonathan returns "approved as-is" or edits and approves.
Hard rule: Anyone quoted in the press as a HempDash representative must be Jonathan OR an explicit Jonathan-designated speaker for that piece (e.g., Ayisha on compliance, Tiana on content, Purple on quality). No one else speaks on-record on behalf of HempDash without explicit per-piece authorization from Jonathan.
Timeout: Quote approval within 4 business hours of Tiana's send to Jonathan, faster for deadline-pressure inquiries.
Default-quote-decline fallback: If a quote is requested and Jonathan can't respond inside the reporter's window, Tiana defaults to: "Jonathan Sullivan, founder of HempDash, was unavailable for comment at press time. The company can be reached at press@gethempdash.com." No quote is better than the wrong quote.
Actor: Ayisha.
Action: If the topic is regulatory-sensitive (DSHS / TABC / FDA / state law / litigation), Ayisha reviews the draft response. She can edit, clear, or block.
Topics that always trigger compliance check:
project_tx_hemp_coalition_disbanded.md — never recommend disbanded orgs; mention THBC as primary if asked)Timeout: Ayisha reviews within 4 business hours; faster for deadline-pressure.
Actor: Tiana sends from press@gethempdash.com (or her named email if the reporter is in her direct thread). Jonathan personally sends if a personal-quote-bearing piece — but Tiana CCs press@ for archive.
Action: Send the cleared response.
Actor: Tiana.
Action:
press_coverage table.#press-monitor Mattermost channel for team awareness.If misquote is material:
A reporter notifies us they're about to publish a piece with specific claims about HempDash. Treat as a comment-on-claim with elevated urgency. Tiana + Jonathan + Ayisha (if regulatory) decide:
If the claim is materially false and damaging, counsel reviews. Pre-publication correction requests are time-sensitive — same-day response required.
A reporter appears to have a fixed negative narrative. Default posture:
Major outlet picks up a story we didn't expect (e.g., DSHS action against us, security breach, recall). This is a crisis-comms posture:
Anything about a HempDash employee (positive or negative) routes Jonathan-direct. We do not confirm or deny employment of individual team members on the record without their explicit consent and Jonathan's clearance. This applies especially to:
feedback_katie_medical_never_leaves_dm.md) — never confirm Katherine's employment; reroute generically.user_purple.md confidential sections) — never confirmed externally.If a reporter wants to talk to a specific vendor, customer, or driver — refer them directly to that party. We do not introduce reporters to our vendors / customers / drivers; we let them reach out independently. Forward the press contact to the relevant party so they know it's coming.
If a reporter DMs Jonathan personally (LinkedIn, X, email), Jonathan forwards to Tiana and the workflow resumes at STEP 1. Tiana takes over the back-and-forth unless Jonathan wants to keep direct.
In-person ambush (conference, demo day, etc.): polite redirect. Approved script: "Happy to talk — let me hand you to Tiana, our head of content. She can get you on the right schedule with the right context." Tiana then resumes STEP 1.
HANDOFF: Inbound press signal -> Tiana
PAYLOAD: {
inbound_id: str,
channel: enum('email:press','phone:ivr:4','chatwoot','sms','founder_forward'),
sender_name: str,
sender_outlet: str?,
sender_email: str,
inquiry_summary: text, // Amena's 1-paragraph summary
outlet_tier: enum('1','2','3','unknown'), // Amena's auto-classify
topic_sensitive: bool,
deadline_signal: text? // "filing today", "by Friday", etc.
}
SUCCESS RESPONSE: { acknowledged: true, ack_by: 'tiana' }
FAILURE RESPONSE: { ok: false, error: str }
TIMEOUT: 4 business hours (1 business hour for Tier-1)
ON FAILURE: Auto-escalate to Lola, then to Jonathan
HANDOFF: Tiana -> Jonathan (quote request)
PAYLOAD: {
matter_id: uuid,
outlet: str,
reporter: str,
deadline_ts: timestamptz,
inquiry_context: text,
candidate_quote: text,
fallback_decline_template: text // if Jonathan can't respond
}
SUCCESS RESPONSE: {
decision: enum('approved','approved_with_edits','declined','delegated'),
final_quote: text?,
delegate: str? // if delegated
}
FAILURE RESPONSE: { ok: false }
TIMEOUT: 4 business hours; faster on deadline
ON FAILURE: Use fallback_decline_template
HANDOFF: Tiana -> Ayisha (compliance review)
PAYLOAD: {
matter_id: uuid,
draft_response: text,
sensitivity_reason: enum('regulator','recall','litigation','tx_hemp_policy','other'),
deadline_ts: timestamptz
}
SUCCESS RESPONSE: {
cleared: bool,
edits: text?,
block_reason: text?
}
FAILURE RESPONSE: { ok: false }
TIMEOUT: 4 business hours
ON FAILURE: Default to most conservative wording or decline; escalate to Jonathan
| Stage | Reporter sees | Operator sees | Database |
|---|---|---|---|
| Inbound | Nothing (no auto-ack on press@) |
Mattermost DM to @tiana + @jonathan |
press_inquiry row |
| Tiana ack | Tiana's first reply | Status acked |
Row updated |
| Classified | Same | Status classified + tier/topic tags |
Row updated |
| Drafted | Same | Status drafted |
Row updated draft_uri |
| Jonathan approval pending | Same | Status awaiting_quote_approval |
Row updated |
| Compliance review pending | Same | Status awaiting_compliance_review |
Row updated |
| Sent | Tiana / Jonathan's response | Status responded |
Row updated responded_at |
| Published | Coverage in outlet | Status published, URL captured |
press_coverage row |
| Closed | n/a | Status closed |
Row updated closed_at |
| Step | Internal SLA |
|---|---|
| Intake ack (STEP 1) | 4 business hours (1 business hour for Tier-1) |
| Classification (STEP 2) | Within initial ack |
| Draft (STEP 3) | Inside reporter's deadline minus 50% buffer |
| Quote authorization (STEP 4) | 4 business hours (faster for deadline pressure) |
| Compliance check (STEP 5) | 4 business hours |
| Send (STEP 6) | Inside reporter's deadline with at least 1-hour buffer |
| Coverage tracking (STEP 7) | Same-day at publication; weekly rollup in #press-monitor |
External deadlines: Always the reporter's stated deadline. If reporter doesn't state, ask. If reporter is at-deadline-pressure when they reach us, we either respond fast or decline; we do not stall.
Lola covers. If Lola also unreachable, Jonathan can self-handle for Tier-1 only.
Tiana uses the fallback-decline template ("Jonathan Sullivan was unavailable for comment at press time"). No quote is published. Tiana does not improvise a quote.
If we don't reply in time, the piece publishes with whatever they have. Tiana monitors publication; if the piece is materially wrong, follow §1.9.1 correction-request branch. If accurate, log and move on.
Tiana sends correction request to outlet. Ayisha or counsel if defamatory. Document the misquote and the correction process in press_coverage.misquote_flag.
Tiana stays measured. Document everything. Counsel reviews any outbound. Do not match hostile tone.
Should be impossible per §16 §4. If it happens: P0 incident; reporter informed Amena's reply was unauthorized; Tiana sends formal correction; counsel reviews exposure.
A piece quotes a HempDash employee who wasn't authorized. Tiana investigates: did the employee actually speak on record? Did the reporter attribute incorrectly? If employee did speak unauthorized: internal coaching, possibly disciplinary if serious. If reporter attributed wrong: correction request.
If Jonathan is at a courthouse (per feedback_courthouse_laptop_security.md), press contact via phone or in-person is handled by Jonathan in the moment with extreme caution. Default: "I can't comment now; please email press@gethempdash.com." Tiana resumes workflow.
CREATE TABLE press_inquiry (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
inbound_channel TEXT NOT NULL,
reporter_name TEXT NOT NULL,
reporter_email TEXT,
outlet TEXT,
outlet_tier TEXT, -- '1','2','3','unknown'
inquiry_type TEXT, -- 'quote','interview','background','fact_check','comment_on_claim','photo','founder_profile'
topic_summary TEXT NOT NULL,
sensitive_flag BOOLEAN DEFAULT false,
received_at TIMESTAMPTZ NOT NULL,
reporter_deadline TIMESTAMPTZ,
screen_decision TEXT, -- 'engage','decline','escalate'
draft_uri TEXT,
final_quote TEXT,
quote_approved_by TEXT,
compliance_cleared BOOLEAN,
responded_at TIMESTAMPTZ,
closed_at TIMESTAMPTZ,
notes TEXT
);
CREATE TABLE press_coverage (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
inquiry_id UUID REFERENCES press_inquiry(id),
outlet TEXT NOT NULL,
url TEXT,
publish_date DATE,
quote_as_printed TEXT,
misquote_flag BOOLEAN DEFAULT false,
correction_requested BOOLEAN DEFAULT false,
correction_outcome TEXT,
notes TEXT
);
CREATE INDEX idx_press_inquiry_outlet ON press_inquiry(outlet);
CREATE INDEX idx_press_coverage_outlet ON press_coverage(outlet);
press_inquiry and press_coverage retained 3 years from publish or close. Litigation-touching pieces retained 7 years.
#press-monitor for whole team.| # | Question | Owner | Why it matters |
|---|---|---|---|
| Q1 | Tier-1 outlet list — confirmed default: AP, Reuters, Bloomberg, NYT, WaPo, WSJ, FT, Forbes, CNBC, NPR + major TV networks. Add/remove? | Tiana + Jonathan | Drives the founder-pull threshold per §16 §8. |
| Q2 | Quote-delegation pattern — does Jonathan want to pre-authorize Ayisha for any compliance-only quotes, Purple for quality-only, etc.? Or per-piece? | Jonathan | Affects STEP 4 default. |
| Q3 | Press kit — is one assembled with approved photos, founder bio, anchor messaging, factsheet? | Tiana | Required for STEP 1.4 / STEP 3 draft. |
| Q4 | press_inquiry and press_coverage tables — new migrations, Katherine reviews. |
Rep | Migration gate. |
| Q5 | Press-monitor RSS / news-alert tool — what feeds the #press-monitor channel? Google Alerts? Specific tool? |
Tiana | Affects how we catch published coverage. |
| Q6 | Anchor-messaging refresh cadence — quarterly, monthly, ad-hoc? | Jonathan + Tiana | Quote consistency depends on this. |
| Q7 | Litigation-disclosure default — what's our public-comms position on active litigation? "Don't comment on pending matters"? | Counsel + Jonathan | Common default; codify. |
| Q8 | Crisis-comms playbook for §1.9.3 Tier-1 breaking news — separate doc or expanded section here? | Tiana + Jonathan + Ayisha | Currently sketched in §1.9.3; may need its own SOP §17.7b. |
press_inquiry and press_coverage tables exist; Katherine reviewed.#press-monitor Mattermost channel created with team membership.gethempdash.com/press with auto-routing to Tiana.| Version | Date | Author | Change |
|---|---|---|---|
| 0.1 | 2026-05-11 | Workflow Architect (Amena) | Initial draft. Supersedes §17.4 §8.3 inline. |
SOP index · Regulator Direct Contact · Communication Standards · Home