Webbu Docs

Step 4: Verify Delivery

Confirm that your batched webhooks reached your destination.

When a flush condition is met (with the defaults: 5 seconds without new items, 15 seconds after the first item, or 50 items), Webbu sends the group to your destination URL.

Expected delivery

Your endpoint receives one POST (or PUT, if configured) with Content-Type: application/json and a body like:

{
  "webbu": {
    "customerId": "c_your_account",
    "projectId": "p_shop",
    "bufferId": "b_orders",
    "groupKey": "cus_001",
    "groupHash": "9a1c0b7e3d5f2a48",
    "segment": 0
  },
  "window": {
    "firstItemAt": 1767225600000,
    "lastActivityAt": 1767225604000,
    "itemsCount": 3
  },
  "items": [
    { "messageId": "5b0c6f0e-…", "receivedAt": 1767225600000, "payload": { "event": "order.created", "customerId": "cus_001", "orderId": "ord_100", "amount": 49.99 } },
    { "messageId": "c2d8e1a0-…", "receivedAt": 1767225602000, "payload": { "event": "order.paid", "customerId": "cus_001", "orderId": "ord_100" } },
    { "messageId": "7f4b9e22-…", "receivedAt": 1767225604000, "payload": { "event": "order.shipped", "customerId": "cus_001", "trackingId": "TRK123" } }
  ]
}

Items are in the order they were received. The request also carries an idempotency header (x-idempotency-key: grp:<groupId>:v<n> by default). Respond with any 2xx status within 10 seconds to acknowledge the batch.

Check analytics

curl -H "X-API-Key: $WEBBU_API_KEY" \
  https://webbu.dev/api/v1/analytics/summary
{
  "today": {
    "ingestCount": 3,
    "deliveryCount": 1,
    "deliverySuccess": 1,
    "deliveryFail": 0,
    "dlqCount": 0,
    "avgBatchSize": 3,
    "compressionRatio": 3
  },
  "trend": { "ingestDelta": 0, "deliveryDelta": 0, "successRateDelta": 0 },
  "counts": { "projects": 1, "buffers": 1 }
}
  1. Open Dashboard for today's requests, deliveries, success rate and compression ratio
  2. Open Analytics and filter by project or buffer for trends over 7 or 30 days
Try it in the API reference

Check the dead letter queue

If delivery keeps failing, the batch is recorded in the dead letter queue:

curl -H "X-API-Key: $WEBBU_API_KEY" \
  "https://webbu.dev/api/v1/dlq?bufferId=b_orders"

An empty array ([]) means nothing has failed.

Open DLQ in the sidebar to see failed batches with the reason and last error.

Try it in the API reference

What just happened?

You sent three webhooks to the ingest endpoint and each was answered with 202.

Webbu read $.customerId from each body. All three had cus_001, so they went into the same group.

After 5 seconds without new items (batch.idleTimeoutMs), the group was flushed.

Webbu sent one request to delivery.url with all three items.

Your endpoint answered 2xx, so the items were removed from the buffer and the delivery was counted as a success.

If your endpoint had failed, Webbu would have retried with exponential backoff (3 attempts in total by default) and then moved the batch to the DLQ. See Delivery & Retries.

On this page