Webbu Docs

Reduce Zapier Costs with Webbu

Batch webhooks before they trigger Zapier so many events use one task.

Overview

Zapier counts tasks per Zap run, so every webhook that triggers a Zap costs at least one task. With Webbu in front, many events reach Zapier as one batch: 100 events can trigger one Zap run instead of 100.

Estimate your savings

Calculator Inputs

10,000

Default: $0.027 (Zapier standard pricing)

50:1

How many webhooks are batched into one automation trigger

Cost Analysis

Today

10,000 events × $0

$270/mo

With Webbu

Platform: 200 events × $0 = $5

Webbu plan: Starter (10K credits/month)

$5/mo

Platform Savings

$265/mo

98% reduction • $3,175/year

Excludes the Webbu plan price. Assumes payloads up to 1 KB (1 credit per webhook); each started KB of payload uses 1 credit.

The default of $0.027 per task is an example; check your Zapier plan for your actual cost per task. Each step that runs inside a loop still counts as tasks, so savings are largest when the Zap acts on the batch as a whole.

Setup

1. Create a Zapier webhook trigger

  1. In Zapier, create a Zap
  2. Choose Webhooks by Zapier as the trigger, event Catch Hook
  3. Copy the webhook URL (e.g. https://hooks.zapier.com/hooks/catch/123456/abcdef/)

2. Create a Webbu buffer

curl -X POST https://webbu.dev/api/v1/admin/buffers \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $WEBBU_API_KEY" \
  -d '{
    "bufferId": "b_zapier",
    "projectId": "p_automation",
    "name": "Zapier batch",
    "groupKey": { "mode": "jsonpath", "path": "$.userId" },
    "batch": { "maxItems": 100, "maxBytes": 262144, "idleTimeoutMs": 60000, "maxWaitFromFirstMs": 300000 },
    "delivery": { "url": "https://hooks.zapier.com/hooks/catch/123456/abcdef/" }
  }'
  • groupKey: batch per user (use any field your events share)
  • maxItems: 100: up to 100 events per Zap run
  • idleTimeoutMs: 60000: deliver after one minute without new events
  • maxWaitFromFirstMs: 300000: never hold events longer than five minutes

3. Point your webhook source to Webbu

Replace the Zapier URL in your source with the ingest URL:

https://webbu.dev/api/v1/ingest/p_automation/b_zapier

4. Process batches in the Zap

Zapier receives:

{
  "webbu": { "bufferId": "b_zapier", "groupKey": "user_abc123", "segment": 0, "…": "…" },
  "window": { "firstItemAt": 1767225600000, "lastActivityAt": 1767225660000, "itemsCount": 3 },
  "items": [
    { "messageId": "…", "receivedAt": 1767225600000, "payload": { "userId": "user_abc123", "action": "page_view", "page": "/pricing" } },
    { "messageId": "…", "receivedAt": 1767225630000, "payload": { "userId": "user_abc123", "action": "button_click", "button": "signup" } },
    { "messageId": "…", "receivedAt": 1767225660000, "payload": { "userId": "user_abc123", "action": "form_submit", "form": "contact" } }
  ]
}

Use the batch as a whole (e.g. one CRM update per user with webbu.groupKey and the item count), or use Looping by Zapier or Code by Zapier to go through items and read each payload.

Architecture

Webhook source ──▶ Webbu (groups and batches) ──▶ Zapier Catch Hook (1 run per batch)

What Webbu adds

  • Fewer Zap runs: one per batch instead of one per event
  • Retries: failed deliveries to Zapier are retried with backoff and recorded in the DLQ
  • Deduplication: events resent with the same message ID aren't stored twice
  • Analytics: see the compression ratio (events per delivery) in the dashboard

Common use cases

  • WhatsApp and chat automation: batch messages per conversation before triggering a reply flow
  • E-commerce: group order events per customer
  • Lead scoring: aggregate a user's activity before updating your CRM
  • Analytics pipelines: batch tracking events before writing to a spreadsheet or warehouse

On this page