All releases

Webhooks — react to your workspace from any service

Webhooks — react to your workspace from any service

Simple Product now supports outbound webhooks. Subscribe a URL from your service to Simple Product events, and we'll POST you a signed payload every time something happens — a release publishes, a customer sends feedback, a card moves to Done.

Use it to send emails, post to Slack, revalidate caches, mirror content on your own site, or kick off any other workflow you'd otherwise need to poll for.

📖 Full documentation: simpleproduct.dev/docs/webhooks — receiver templates for Node / Next.js / Python, signature verification code, retry semantics, and the full payload format.

What you can subscribe to

Twelve events at launch:

  • doc.created, doc.updated, doc.published, doc.unpublished, doc.deleted
  • release.published — convenience alias that fires when the doc is a release
  • feedback.created — customer feedback received (widget, REST, in-app form)
  • card.created, card.updated, card.moved — includes previousStageId so you can detect "moved to Done" without a follow-up query
  • person.created, org.created — for CRM sync

Subscribe to specific events, or pass ["*"] for everything.

How to subscribe

Get a secret API key from Settings → API Keys, then:

curl -X POST https://simpleproduct.dev/api/v1/webhooks \
  -H "Authorization: Bearer sk_ws_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-service.example.com/webhooks/sp",
    "events": ["doc.published"]
  }'

The response includes a secret (shown once) — you'll use it to verify incoming requests are from us via the X-SP-Signature header.

Using an AI agent to set it up

If you've installed the Simple Product MCP in Claude Code, Cursor, or another agent, just say: "set up webhooks so I get an email when a release publishes."

The agent calls get_setup_guide({ feature: "webhooks", framework: "nextjs" }) (or node / python) and gets back a complete copy-pasteable receiver template — signature verification included.

What this unlocks

  • Email customers when you ship a release. Subscribe to doc.published, filter on data.type === "release", fetch the content via the public docs API, send the email from your own service.
  • Mirror SP content on your own site with surgical cache revalidation. No polling — your ISR pages update the moment something publishes or unpublishes.
  • Cross-tool automations. When feedback arrives, trigger your support workflow, customer success tool, or AI categorizer.
  • Slack / Discord / wherever. Push events to where your team already is.

Also in this release

  • Switch workspaces directly from Claude (web, mobile, desktop). If you've added Simple Product as a custom connector, you can now say "switch to my Acme workspace" and the connector handles it server-side. Previously this only worked via the CLI install — connector users were stuck on whichever workspace they first auth'd with.

  • list_workspaces actually lists your workspaces. Before this fix, the tool returned just the count and current workspace name — Claude had no way to discover the other workspaces you have access to. Now you get the full list with slugs, so the agent can pick one and switch into it.

  • Feedback recovery. Feedback submitted between May 13 and May 19 wasn't appearing in the feedback list because of a metadata field that got left off at insert time during a recent refactor. Fix shipped, and a one-shot backfill recovered every affected item. If your feedback list looked empty during that window — sorry, it's all back now.

What's next on the webhooks side

A few things will land as customers ask:

  • A UI for managing subscriptions in Settings (today: REST API only — fine for technical setup, less fine for non-engineers)
  • More event types — release.*, person.updated, custom-type events
  • Server-side filtering (today: subscribe by event type, filter further in your handler)
  • Self-service secret rotation

Full reference + receiver templates: simpleproduct.dev/docs/webhooks.

Questions, requests, or new event types you'd like to see? Send feedback in-app.