Skip to content
· Vol. I · No. 3 · 3 min read

Forward a customer email and it shows up in Monday's briefing.

Every Herald Product gets an inbox address at creation. Mail that reaches it becomes a feedback signal the Monday briefing reads.

The Herald desk

Every Herald Product gets an inbox address. Forward a customer email there and it becomes a feedback signal the next briefing reads — no OAuth, no webhook setup, no ticketing tool in between.

The address is stamped on the tenant when the Product is created. It looks like fwd+<slug>@inbox.withherald.co, where <slug> is the lowercase name you picked during onboarding. It’s the first row of the Sources panel on your dashboard, labelled Email forward, marked Ready, with a Copy button next to it.

When you’d use it

You get a good email from a customer on Tuesday. It’s honest, specific, exactly the kind of thing that would have made Monday’s briefing better — but it landed in your personal inbox, or in a shared support inbox no tool in your stack is reading yet. By Friday you’ve scrolled past it twice. By next Monday you’ve forgotten the account’s name.

Forward it to the Herald address. One keystroke in Gmail. It arrives the same week, it’s dated the same week, and it shows up in Monday’s briefing next to everything Intercom and Stripe fed in.

What to do, in three steps

Open your Sources panel. The first row is Email forward — marked Ready from day one, no configuration required. Copy the address.

Forward the thread. In Gmail, hit Forward, paste the address, send. The original sender’s address and subject ride along in the envelope; Herald pulls them off the From: and Subject: headers, not from whatever Gmail prepends to the forwarded body.

Check the briefing next Monday. Subjects like “Export is still broken” or “We’d pay more for a team plan” land under feedback, credited to the customer address that sent them — not yours.

Two ways in

Two paths reach the same signal in the same table. Skip this section if you’re content forwarding by hand from Gmail.

Path one is Cloudflare Email Routing. We run the MX on inbox.withherald.co. A message to fwd+<slug>@inbox.withherald.co hits an Email Worker, which pulls the slug off the + subaddress, resolves it to a productId, parses the MIME tree with postal-mime, and RPCs a Signal into your Durable Object. If the slug is unknown the Worker rejects the message so the sender gets a bounce — Herald never silently drops mail.

Path two is the HTTP forwarder. If you already pipe inbound email through Postmark, Mailgun, CloudMailin, or a Gmail+Apps-Script relay, point it at POST /v1/webhooks/email/:productId and sign the body with HMAC-SHA256 under the X-Herald-Signature: sha256=<hex> header. Same Signal shape, same DO, same briefing.

Zero OAuth. Zero webhook setup. Just forward.

What Herald does with it

Each inbound email is stored with kind: ‘feedback’ and source: ‘email_forward’. The bodyPreview is the subject plus the first 999 characters of the plain-text part — the full body stays out of the DO, as all long text does. Sender address, received-at timestamp, and subject are pinned in metadata.

Every Monday the FeedbackAgent queries the signals table for the last 14 days of feedback and conv_message rows, up to 500. Forwarded emails sit in the same pile as Intercom conversations. The agent groups them into a Recent feedback cluster — up to five quoted previews, plus the list of sources they came from — and hands it to the Composer, which writes the paragraph.

The acceptance test is this: forward one email on a Tuesday afternoon, open the briefing the following Monday, and see the subject line quoted back at you, attributed to the actual sender. If that doesn’t happen it’s a bug.

Copy your address from the Sources panel and forward one thing this afternoon.

Liked this? Get the briefing in your inbox.

Magic link. No password, no credit card.

By submitting, you agree Herald can email you the briefing and occasional product updates. See our Privacy Policy and Terms. Unsubscribe any time.