Webhooks logo

Integration

Webhooks

Real-time event notifications via HTTP

Receive real-time HTTP callbacks when Zesuss publishes content. Webhooks deliver signed JSON payloads to your endpoint so you can build custom workflows, sync content to internal tools, or trigger downstream automation — all with Standard Webhooks compliant signing.

Best for: Custom workflows, internal tooling, and real-time content syncing

Key Features

Standard Webhooks spec for payload signing (HMAC-SHA256)
Signed payloads with webhook-id, webhook-timestamp, webhook-signature headers
Real-time delivery when articles are published, updated, or deleted
Per-webhook event filtering (article.published, article.updated, article.deleted)
Unique integration key (whk_*) for each webhook endpoint
Rotatable secret (whsec_*) for credential management
Delivery logging with status codes and response bodies
Manual test endpoint for validating your receiver
Automatic retry on failure
Up to 20 webhooks per account

Setup Guide

1

Create a Webhook Endpoint

Build or use an HTTP server that accepts POST requests with JSON bodies. Your endpoint must return a 2xx status to confirm receipt.

2

Generate a Webhook in Dashboard

Inside your Zesuss Dashboard → Webhooks, click 'Add Webhook'. Enter your endpoint URL and select which events to subscribe to (article.published, article.updated, article.deleted).

3

Verify Your Integration Key & Secret

After creation, copy the Integration Key (whk_...) and Secret (whsec_...). The secret is shown once — store it securely. Use the secret to verify incoming payload signatures on your end.

API Integration

Quick Start

javascript
// Example: Receive and verify a Zesuss webhook
import express from 'express';
import { Webhook } from 'standardwebhooks';

const app = express();
app.use(express.json());

// Your webhook secret from the dashboard
const webhookSecret = 'whsec_your_secret_here';

app.post('/webhooks/zesuss', (req, res) => {
  const wh = new Webhook(webhookSecret);
  
  try {
    // Verify the signed payload
    const payload = wh.verify(
      JSON.stringify(req.body),
      req.headers
    );
    
    console.log('Event:', payload.event);
    console.log('Title:', payload.title);
    console.log('Post URL:', payload.post_url);
    
    // Handle the event
    if (payload.event === 'article.published') {
      // Sync to your CMS, send Slack notification, etc.
    }
    
    res.status(200).json({ received: true });
  } catch (err) {
    console.error('Invalid signature:', err.message);
    res.status(401).json({ error: 'Invalid signature' });
  }
});

app.listen(3001);
Content Creation

Webhook Payload Structure

Every webhook delivers a standardized JSON payload with the full article metadata. The payload is signed using the Standard Webhooks specification — verify the signature on your end before processing.

Article ID, title, HTML content, and plaintext excerpt
Thumbnail URL and alt text for social cards
SEO metadata — meta description, primary keyword, language
Publication details — post URL, CMS name, and timestamp
Event type distinguishes publish, update, and delete actions
Payload signed with HMAC-SHA256 for tamper-proof delivery
Z

Zesuss AI

Just now

Researched topic
Outlined structure
Wrote 1,200 words
Optimized for SEO
Added featured image
Formatted for Webhooks
Completed in 28 seconds
Workflow Analytics

Webhook Delivery Analytics & Monitoring

Monitor every webhook delivery Zesuss sends to your endpoints. Track delivery success rates, response times, and payload contents to ensure your integrations are running smoothly.

Trigger
Process
Publish
Notify
Per-webhook delivery log with full request and response history
HTTP status code and response body capture for debugging
Delivery duration tracking to monitor endpoint performance
Success/failure rate analytics per webhook endpoint

Pro Tips for Webhooks

1

Always verify the webhook signature using the Standard Webhooks library before processing the payload

2

Return a 2xx status quickly (< 5s) to avoid timeout retries — process the payload asynchronously

3

Use the webhook-id header for idempotent processing and deduplication

4

Rotate your webhook secret periodically via the regenerate feature in the dashboard

Ready to get started?

Explore all features and start publishing today.

Connect Webhooks