๐Ÿช Integration Hub

Real-Time Event Delivery

Connect FlowCMS to your external services with reliable, secure, and configurable webhooks. Get notified instantly when content changes, users perform actions, or system events occur.

๐Ÿ“ก How Webhooks Work

Webhooks allow FlowCMS to send HTTP POST requests to your configured endpoints whenever specific events occur. Unlike polling, webhooks push data to you in real-time, ensuring your systems stay synchronized without unnecessary API calls.

โ„น๏ธ
All webhook payloads are signed using HMAC-SHA256. We retry failed deliveries with exponential backoff (up to 48 hours).

๐Ÿ“‹ Supported Events

Subscribe to the events that matter to your application. You can filter events by content type, workspace, or user role.

Event Type Triggered When Category
content.published A draft is published to a live channel Content
content.draft_created A new draft is saved or created Content
content.deleted Content is permanently removed Content
user.login A workspace member authenticates Auth
media.uploaded An asset is added to the media library Media
workflow.approved Content passes an approval stage Workflow
webhook.failed A webhook delivery exceeds max retries System

๐Ÿ“ฆ Payload Structure

Every webhook request contains a consistent JSON payload with metadata, the event type, and the affected resource. All payloads include an ID, timestamp, and signature verification header.

application/json
{
  "id": "evt_8xK9mP2vQw7nL4jR",
  "type": "content.published",
  "timestamp": "2025-04-12T14:32:09Z",
  "workspace_id": "ws_aB3dE5fG",
  "data": {
    "content_id": "cnt_9X2mKpLq",
    "title": "Q2 Product Launch Guide",
    "author": {
      "id": "usr_mN7pQ2rS",
      "name": "Sarah Chen"
    },
    "previous_status": "draft",
    "current_status": "published",
    "url": "https://app.flowcms.io/content/cnt_9X2mKpLq"
  }
}
โš ๏ธ
Signature Verification: Always verify the X-FlowCMS-Signature header using your webhook secret. Never process unsigned payloads in production.

๐Ÿ” Security & Verification

FlowCMS signs every webhook payload using HMAC-SHA256. Include your webhook secret to verify the signature before processing the event.

1

Extract Signature

Read the X-FlowCMS-Signature header from the incoming HTTP request.

2

Compute HMAC

Generate HMAC-SHA256 of the raw request body using your webhook secret.

3

Compare Safely

Use a constant-time comparison function to prevent timing attacks.

node.js
const crypto = require('crypto');
const secret = process.env.FLOWCMS_WEBHOOK_SECRET;

function verifyWebhook(payload, signature) {
  const hmac = crypto.createHmac('sha256', secret);
  hmac.update(payload, 'utf8');
  const digest = hmac.digest('hex');
  
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(digest)
  );
}

โš™๏ธ Configuration Guide

Set up webhooks in minutes through the FlowCMS dashboard or via our API. Configure endpoints, event filters, retry policies, and dead-letter queues.

๐Ÿ–ฅ Dashboard Setup

  1. Navigate to Settings โ†’ Integrations โ†’ Webhooks
  2. Click "New Webhook" and paste your endpoint URL
  3. Select event filters and configure retry behavior
  4. Save and copy your Webhook Secret for signature verification
๐Ÿงช
Use https://webhook.site or our built-in Event Inspector to test payloads before deploying to production.

โ“ Frequently Asked Questions

How are failed webhooks handled? โ–ผ

We retry failed deliveries up to 5 times using exponential backoff (1m, 5m, 30m, 2h, 24h). If all retries fail, the event is moved to the Dead-Letter Queue (DLQ) and triggers a webhook.failed event for manual inspection.

Can I filter webhooks by content type or author? โ–ผ

Yes. The dashboard supports dynamic filtering by content type, workspace, author role, and custom metadata. You can also use the API to define JSON rule-based filters.

What's the payload size limit? โ–ผ

Standard webhook payloads are limited to 256KB. For media-heavy events, we include reference URLs instead of inline binary data. Large attachments can be fetched via the provided CDN links.

Is there a limit on webhook requests per minute? โ–ผ

FlowCMS enforces a fair-use rate limit of 300 requests per minute per endpoint. Burst traffic is automatically queued and delivered in order. Upgrade to Enterprise for custom throughput limits.