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
Default: $0.027 (Zapier standard pricing)
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
- In Zapier, create a Zap
- Choose Webhooks by Zapier as the trigger, event Catch Hook
- 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 runidleTimeoutMs: 60000: deliver after one minute without new eventsmaxWaitFromFirstMs: 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_zapier4. 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