Dispatch

DOCUMENTATION

Your PR, on autopilot

How Dispatch researches, writes, and distributes — from brand profile to press room.

Overview

Dispatch researches your space, writes every PR asset in your brand voice, and distributes it — on a schedule. Set your brand once; everything else runs on autopilot.

Content types

Dispatch produces six content types from one brand profile:

  • Blog articles — researched, written, webhook-delivered on schedule.
  • Press releases — headline, subhead, dateline, lede, spokesperson quote, boilerplate, media contact.
  • Media advisories — short notices flagging an insight or development to journalists.
  • Announcements — benefit-led product/business news for your own site.
  • Thought leadership — first-person op-eds in your voice, backed by cited facts.
  • Case studies — customer stories built strictly from facts you provide.
  • Social posts — LinkedIn and X posts and threads derived from each piece.

Brand profile

In Brand settings you set your company name, voice, spokesperson, media contact, boilerplate, and product facts. Every piece Dispatch writes uses this. Quotes are never invented — they're templated around your spokesperson. Case studies require product facts you provide.

Media lists & outreach

Add journalists to your Media list (or import a CSV), generate a piece, then draft a pitch. Dispatch researches each journalist's recent coverage and personalizes the opener. Pitches are queued and sent on schedule within your daily limit, with automatic follow-ups. Mark replies and placements as they come in.

Press room

Every release, advisory, and announcement is published to your public press room at /press/:your-slug. The room shows your boilerplate and media contact. Share the link with journalists instead of attaching files.

Coverage briefs

Daily, Dispatch searches for recent coverage and mentions of your company and summarizes what's happening in your space, plus next steps. Run one any time from the Outreach page.

Webhook delivery

For blog articles and CMS integration, Dispatch POSTs each piece to your webhook URL. Payload is JSON with event = "{content_type}.created".

{
  "event": "press_release.created",
  "project_id": "65f2…ab9",
  "post": {
    "title": "The title",
    "headline": "PR headline",
    "subhead": "Supporting line",
    "excerpt": "Two to three sentence summary",
    "body_html": "<h2>Section</h2><p>Full HTML…</p>",
    "tags": ["pr", "ai"],
    "category": "ai",
    "date": "2026-09-15T08:00:00.000Z",
    "sources": [{ "title": "Source", "url": "https://…" }],
    "keywords": ["pr autopilot"],
    "pr": { "headline": "…", "boilerplate": "…", "contactBlock": "…" }
  }
}

Authenticating requests

Protect your webhook endpoint with a custom header. Configure header name and value in your campaign settings.

// Example: verifying a request header in Express
if (req.headers['x-dispatch-key'] !== process.env.DISPATCH_KEY) {
  return res.status(401).json({ error: 'unauthorized' });
}

Using the API

Manage campaigns, media, and posts programmatically. Authenticate with your API key (Authorization: Bearer <key>).

curl -X POST https://dispatch.neoned71.com/api/generate \
  -H "Authorization: Bearer ab_…" \
  -H "Content-Type: application/json" \
  -d '{ "contentType": "press_release", "title": "Vector databases in 2026" }'