Settings

Webhook

The Webhook integration is myHERALD's programmable escape hatch. Every approved content item is POSTed (or PUT) to any HTTPS endpoint you configure, with the auth scheme of your choice. Pairs cleanly with Zapier, Make, n8n, or your own backend — Slack channels, internal CMS, customer-facing newsletters, anywhere JSON can land.

Before you start

  • An HTTPS endpoint that accepts JSON.
  • Optional: a shared HMAC secret if you want to verify request authenticity on the receiving side.

Create a webhook

  1. Open Settings → Integrations → Webhook and click Add webhook.
  2. Give it a name (e.g. "Slack #content" or "Internal CMS") — useful when you have several.
  3. Pick the HTTP method (POST or PUT) and paste your endpoint URL.
  4. Choose the auth method (see below) and fill in the credentials.
  5. Optionally add custom headers and customize the JSON payload template.
  6. Click Test to verify your endpoint responds 2xx, then Save.

Auth methods

  • None — no auth header. Use only for endpoints that validate by other means (e.g. obscure URL).
  • Bearer token — adds Authorization: Bearer <token>.
  • API key — adds a custom header (you pick the name) with the key as the value.
  • HTTP Basic — username + password, sent as base64 in the standard Authorization header.
  • HMAC-SHA256 — signs the body with a shared secret and sends the signature in X-myHERALD-Signature. Recommended for self-hosted receivers; lets you verify the payload wasn't tampered with.

Payload template

The default JSON payload includes the full content item. You can override it with a custom template using {{...}} placeholders:

  • {{title}} — content title
  • {{content}} — body markdown
  • {{images}} — array of image URLs
  • {{tags}} — array of tag slugs
  • {{platform}} — destination platform slug
  • {{published_at}} — ISO timestamp
  • {{url}} — published URL (when applicable)

Test & dry-run

Each webhook has its own Test button on the configuration card. Hit it any time to send a fixture payload — myHERALD shows you the request that went out and the response that came back. If your endpoint returns non-2xx, you'll see the body so you can fix the receiver before publishing real content.

What you can do

  • Multiple webhooks per workspace — each named, each with its own auth and template.
  • POST or PUT to any HTTPS URL.
  • Five auth methods: none, Bearer, API key, Basic, HMAC-SHA256.
  • Custom headers and JSON payload templates.
  • Test/dry-run before saving.
  • Failures surface on the content item so you can retry or fix the receiver.

Troubleshooting

Test button returns 401/403. Auth credentials are wrong. For HMAC, double-check the shared secret matches exactly on both sides (no trailing whitespace).

Endpoint times out. myHERALD waits 15 seconds for a response. If your downstream pipeline takes longer, accept the request quickly and process async (return 202 immediately).

Template variable shows as literal text. Check spelling and casing — placeholders are case-sensitive ({{title}}, not {{Title}}) and must use double curly braces.

Disconnect

Each webhook has a kebab menu with Disable (pauses sends, keeps the config) and Delete (removes it entirely). Disabling is reversible; deleting is not. Already-sent webhooks aren't affected either way.

Was this page helpful?