A build-to-order Frappe app that sends batched multi-record webhooks, schedules reports as webhook payloads, and streams ERPNext document events to external consumers with payload templating, filtering, and retry-with-backoff plus a dead-letter queue. ECOSIRE builds, installs, and supports it around your exact DocTypes and downstream contracts. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $249.00 USD; request a quote for a scoped proposal.

A build-to-order Frappe app that sends batched multi-record webhooks, schedules reports as webhook payloads, and streams ERPNext document events to external consumers with payload templating, filtering, and retry-with-backoff plus a dead-letter queue. ECOSIRE builds, installs, and supports it around your exact DocTypes and downstream contracts.
لا حاجة للدفع الآن. يؤدي هذا إلى إرسال طلب عرض سعر إلى فريقنا — وسنتواصل معك عبر البريد الإلكتروني بالأسعار والخطوات التالية.
ERPNext's native "Webhook" DocType fires one HTTP request per document event, with a fixed JSON body and no built-in batching, throttling, or failure recovery. That is fine for a handful of notifications, but it falls apart the moment you need to sync thousands of Sales Invoices to a data lake, push a nightly report to a microservice, or guarantee that a Stock Ledger Entry event reaches a downstream consumer even if the endpoint is briefly down. Integration engineers end up hand-rolling hooks.py doc events, frappe.enqueue background jobs, and ad-hoc retry logic that nobody documents and nobody trusts. When the endpoint returns a 503 at 2am, events are silently lost and no one notices until the numbers in the warehouse don't reconcile.
`Event Stream` DocType binds a source DocType and selected doc events (`after_insert`, `on_submit`, `on_update`, `on_cancel`, `on_trash`) to a destination endpoint via registered `hooks.py` doc_events
Batched multi-record delivery: matching documents accumulate and flush as a single JSON array on a configurable size threshold or scheduler interval, collapsing thousands of saves into a few POSTs
Report-as-webhook scheduling: register any Query Report or Report Builder report against a `scheduler_events` cron entry and ship the rendered result set on your cadence
Deliveries run on Frappe background workers via `frappe.enqueue` on a dedicated queue, so document saves never block on slow or unreachable endpoints
Jinja payload templating evaluated in the Frappe sandbox — flatten child tables, rename fields, inject computed values, or emit newline-delimited JSON
Filter expressions per stream so only documents matching a condition (e.g. `doc.company == 'X' and doc.grand_total > 1000`) are dispatched
ECOSIRE builds a proper Frappe app that turns webhook delivery into a reliable, observable streaming pipeline. At its core is an Event Stream DocType where you configure a source (a DocType plus the doc events you care about — after_insert, on_submit, on_update, on_cancel), a filter expression, a destination endpoint, and a delivery mode. We register the corresponding doc_events in hooks.py so every change enqueues a delivery job on the Frappe background workers rather than blocking the user's save. A separate Batch Webhook mode accumulates matching records and flushes them as a single array payload on a size threshold or a scheduler tick, so a bulk import of 5,000 rows becomes 50 batched POSTs instead of 5,000 stampeding requests.
Payloads are shaped with Jinja templates evaluated in the Frappe sandbox, so you control the exact schema each consumer expects — flatten child tables, rename fields, inject computed values, or emit newline-delimited JSON for a Kafka/Kinesis-style ingest. A Report Webhook Schedule DocType lets you register any Query Report or Report Builder report against a scheduler_events cron entry and ships the rendered result set as a webhook on your cadence. Every delivery is signed (HMAC-SHA256 over the raw body, verifiable at the consumer), logged in a Webhook Delivery Log DocType with request/response/status, and retried with exponential backoff; exhausted attempts land in a Dead Letter Queue DocType that an operator can inspect, edit, and manually replay. A whitelisted method (@frappe.whitelist()) exposes replay and health-check endpoints over the Frappe REST API, and all DocTypes ship with role-based permissions so only your integration role can edit stream config.
Because this is build-to-order, nothing ships blind. We start with a scoping call to map your source DocTypes, downstream contracts, payload schemas, auth model, and throughput expectations, then build the app against Frappe/ERPNext v15 or v16 to match your bench. You get the installable source, a staging install for UAT, and a git repository handover — not a black box. Typical delivery is 2 to 4 weeks from confirmed scope, and we support it after go-live.
Needs to stream Sales Invoice, Stock Ledger Entry, and Delivery Note events into S3/BigQuery/Snowflake reliably. Wants batched newline-delimited JSON, guaranteed delivery with a dead-letter queue, and signed payloads they can trust for downstream reconciliation.
Owns the event bus feeding order-fulfillment, pricing, and notification microservices. Needs ERPNext to publish document events without coupling saves to endpoint availability, with per-stream filtering so each service only receives the events it subscribes to.
Responsible for a busy ERPNext instance where the native single-request Webhook DocType causes worker pressure and lost events during bulk imports. Wants throttling, batching, retry, and an audit log of every delivery attempt they can show in an incident review.
Needs nightly and hourly report result sets pushed to an ingestion endpoint instead of pulled by fragile cron scripts. Wants to register existing Query Reports as scheduled webhooks with the exact payload schema their pipeline expects.
قم بشراء الترخيص من موقع ecosire.com وقم بتنزيل تطبيق Bulk Webhook & Event Streaming ZIP من لوحة تحكم حسابك.
قم باستخراج ملف ZIP إلى مجلد تطبيقات مقعدك، أو قم بتشغيل "bench get-app" مع المسار إلى التطبيق المستخرج.
قم بتشغيل `bench --site SITE_NAME install-app APP_NAME` متبوعًا بـ`bench migrate` لتثبيت Bulk Webhook & Event Streaming وتطبيق مخططه.
افتح إعدادات ترخيص ECOSIRE على موقعك وقم بتنشيط مفتاح الترخيص الخاص بك. يتطلب تطبيقي ecosire_connect وecosire_license_client المجانيين.
| المعيار | ECOSIRE | بناء مخصص | منافس | أودو الأصلي |
|---|---|---|---|---|
| Batched multi-record delivery | Configurable size/interval batching into a single array payload | Possible but you build and maintain the accumulator logic | Rarely supported; most send one request per event | |
| Retry & dead-letter recovery | Exponential backoff plus a dead-letter queue with manual replay | Hand-rolled retry logic, often incomplete and undocumented | Basic retry at best, seldom a replayable DLQ | |
| Report-as-webhook scheduling | Register Query Reports against scheduler cron and ship results | Custom scheduler script per report | Not a typical marketplace feature | |
| Payload shaping | Per-stream Jinja templates, sandboxed, incl. NDJSON output | Whatever you code and keep in sync with consumers | Fixed or lightly configurable JSON | |
| Delivery observability | Full delivery log DocType: status, attempts, latency, response | You build logging and dashboards yourself | Limited or no per-attempt log | |
| Worker safety under load | Background jobs, concurrency limits, per-endpoint rate limiting | Risk of blocking saves unless carefully engineered | Varies; often synchronous on save | |
| Fit to your DocTypes & contracts | Built to your exact sources, schemas, and auth on scoping | Fully tailored but on your engineering time | Generic; you adapt your systems to its shape | |
| Ownership & support | Full source + git handover plus post-go-live support window | You own it and you alone maintain it | Vendor-controlled, subscription and roadmap risk |
ERPNext core fires one HTTP request per document event with a fixed body and no batching, throttling, retry, or dead-letter handling. This app adds batched multi-record payloads, report-as-webhook scheduling, Jinja payload templating, exponential-backoff retry, a dead-letter queue with manual replay, HMAC signing, and a full delivery log — all running on background workers so saves never block.
This is a build-to-order Frappe app, not an instant download. Typical delivery is 2 to 4 weeks from confirmed scope. The clock starts once we agree on your source DocTypes, payload schemas, destination endpoints, and auth model on the scoping call. Complex multi-consumer streaming or unusual throughput needs may extend that, and we tell you before we start.
We build and test against Frappe/ERPNext v15 and v16, matching your bench. Tell us your exact version on the scoping call and we target it. If you run both a production and a staging version, we confirm compatibility on both.
Every delivery runs as an enqueued background job with configurable retry and exponential backoff. Transient failures (timeouts, 5xx) are re-attempted; once max attempts are exhausted, the event lands in a Dead Letter Queue DocType with full request/response context, where an operator can inspect, correct, and replay it. Nothing is silently dropped.
Yes. Each stream uses a Jinja template evaluated in the Frappe sandbox, so you decide the field names, flatten child tables, inject computed values, or emit newline-delimited JSON for data-lake ingestion. Different streams can send different schemas from the same source DocType.
Every build includes a post-go-live support window for defect fixes and configuration help. Because you receive the full source and git repository, your team can extend it independently. We also offer ongoing support and version-upgrade engagements (for example, moving from v15 to v16) as a separate arrangement.
You own it. We hand over the installable source and the git repository with commit history. It is a standard Frappe app on your bench with no license phone-home or vendor lock-in — you can audit, modify, and self-host it however you like.
A build-to-order Frappe app that sends batched multi-record webhooks, schedules reports as webhook payloads, and streams ERPNext document events to external consumers with payload templating, filtering, and retry-with-backoff plus a dead-letter queue. ECOSIRE builds, installs, and supports it around your exact DocTypes and downstream contracts.