Embeddable JavaScript forms and drag-and-drop landing pages that push inbound web leads straight into ERPNext with honeypot/reCAPTCHA protection, UTM capture, and rule-based routing. Built, installed, and supported by ECOSIRE on request. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $199.00 USD; request a quote for a scoped proposal.

Embeddable JavaScript forms and drag-and-drop landing pages that push inbound web leads straight into ERPNext with honeypot/reCAPTCHA protection, UTM capture, and rule-based routing. Built, installed, and supported by ECOSIRE on request.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
Marketing teams running ERPNext know the gap well: your campaigns generate inbound interest, but the path from a website visitor to a clean, assigned Lead DocType is broken. The native ERPNext Web Form is a serviceable admin tool, but it lives on your Frappe site's domain, offers no embeddable snippet for an external marketing site, has no built-in spam defense beyond basic guest permission checks, and drops UTM parameters and referrer context on the floor. So teams paper over it with Typeform, HubSpot forms, or Google Sheets, then re-key leads into ERPNext by hand — losing attribution, duplicating records, and delaying follow-up past the window where the lead is still warm.
Embeddable JavaScript widget served from your Frappe site, dropped onto any external page with a single script tag and a form key — no iframe lock-in
Guest-facing submission endpoint via `@frappe.whitelist(allow_guest=True)` with strict payload validation and field allowlisting to prevent parameter injection into the Lead DocType
Honeypot decoy field plus server-side Google reCAPTCHA v3 score verification, with a configurable score threshold and silent rejection of bot submissions
Full UTM and attribution capture — `utm_source/medium/campaign/term/content`, first landing URL, and HTTP referrer persisted as custom fields on the Lead
De-duplication against existing `Lead` and `Contact` records by email or phone before insert, with configurable merge-or-flag behavior
Rule-based auto-assignment via a `hooks.py` `after_insert` doc event and server script — round-robin, territory, campaign, or product-interest routing that creates a Frappe Assignment (ToDo) and notification
We build a proper Frappe app that closes that gap end to end. The core is a lightweight embeddable JavaScript widget you drop onto any external site (WordPress, Webflow, a static landing page) with a single <script> tag; it renders your configured form, validates client-side, and posts to a @frappe.whitelist(allow_guest=True) method over the Frappe REST API. On the server, a Lead Capture DocType and controller normalize the payload, enforce a honeypot field plus Google reCAPTCHA v3 verification, de-duplicate against existing Lead/Contact records by email or phone, and write a first-class ERPNext Lead with the full UTM set (utm_source, utm_medium, utm_campaign, utm_term, utm_content), landing-page URL, and HTTP referrer stored as custom fields. A hooks.py doc event on Lead after_insert runs your routing rules — round-robin, territory, product interest, or campaign-based assignment — via a server script so hot leads land in the right salesperson's queue instantly, with an Assignment (ToDo) and notification created automatically.
Landing pages are handled by a drag-and-drop builder implemented as a Landing Page DocType with a block-based layout stored as JSON, rendered through Frappe's Jinja website templating so pages are SEO-crawlable, served on your own domain, and version-controlled. Each landing page binds to a form variant so you can A/B test copy and CTAs while every submission still flows into the same governed Lead pipeline. Permissions are wired through Frappe role profiles — marketing users manage forms and pages, sales users see only their assigned leads — and a scheduler event runs a daily digest and retries any deferred reCAPTCHA or webhook failures.
Because this is build-to-order, nothing is a one-size download. We start with a short scoping call to map your form fields, routing logic, reCAPTCHA keys, and the sites you'll embed on, then build against your Frappe/ERPNext v15 or v16 instance. Typical delivery is 2–4 weeks from confirmed scope. You receive the installable app source, staging UAT, and a git repo handover — ECOSIRE builds it, installs it, and supports it after go-live.
Runs paid and organic campaigns and needs every inbound web lead to land in ERPNext with intact UTM attribution, so pipeline and campaign ROI are measurable without exporting from a third-party form tool.
Owns lead routing and SLA. Wants deterministic auto-assignment rules on the Lead DocType so hot inquiries reach the right rep in minutes, with de-duplication keeping the pipeline clean.
Embeds forms across WordPress, Webflow, and standalone landing pages. Needs a lightweight snippet that works off the Frappe domain, plus spam protection so the Lead table isn't polluted by bots.
Responsible for the instance's upgrade path and security. Wants a clean Frappe app with isolated custom fields, scoped role permissions, and a guest endpoint that is validated and rate-limited rather than a bolted-on script.
Buy the license on ecosire.com and download the Web-to-Lead Forms & Landing Pages app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install Web-to-Lead Forms & Landing Pages and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Embeddable on external sites | Single-tag JS widget for any external domain | Possible but you build and maintain the widget | Often iframe-only or Frappe-domain-bound | |
| Spam protection | Honeypot + reCAPTCHA v3 scoring + rate limiting | Whatever you have time to build | Basic or add-on dependent | |
| UTM & referrer capture | Full UTM set + landing URL + referrer as custom fields | Manual field and parsing work | Partial, often not mapped to Lead | |
| Lead routing & assignment | hooks.py after_insert rules + auto ToDo/notify | Server script you author and test | Rarely included | |
| Landing page builder | Drag-and-drop DocType, Jinja-rendered, SEO-crawlable | Build from scratch | Sometimes, quality varies | |
| De-duplication | Email/phone match before insert | You implement matching logic | Uncommon | |
| Fit to your process | Scoped to your fields, rules, and sites | Fully bespoke, higher effort | Fixed to the vendor's model | |
| Support & handover | Install, docs, training, support window, git repo | Self-supported unless contracted | Vendor tier, may be limited |
This is a build-to-order app, not an instant marketplace download. After a short scoping call to confirm your form fields, routing logic, and target sites, typical delivery is 2–4 weeks from confirmed scope, including staging UAT before production cutover.
Every engagement includes a post-go-live support window for bug fixes and configuration tweaks. Because you receive the full git repository and source, your team can maintain it, or ECOSIRE can provide ongoing support and version upgrades under a separate agreement. When you move from ERPNext v15 to v16, we test and adjust the app for the new branch.
Both. The embeddable JavaScript widget is designed to run on any external site — WordPress, Webflow, or a static page — via a single script tag, posting to a guest-whitelisted endpoint on your Frappe instance. The drag-and-drop landing pages are served from your Frappe site's own domain through Jinja website templates for SEO.
Two layers: a honeypot decoy field that traps naive bots, and server-side Google reCAPTCHA v3 score verification with a configurable threshold. The guest endpoint is also rate-limited by IP and form, and every submission is validated against a strict field allowlist before a Lead is created.
We build against Frappe/ERPNext v15 and v16. The app ships as a proper Frappe app with custom fields delivered as fixtures, so it installs cleanly and survives core upgrades without colliding with the standard Lead DocType.
A hooks.py after_insert doc event runs your routing rules through a server script — round-robin, territory, campaign, or product-interest based. It creates a Frappe Assignment (ToDo) and notification so the right rep is alerted immediately, after de-duplication against existing Lead and Contact records.
Yes. We can wire optional outbound webhooks or Frappe REST hooks on insert to mirror leads into a CRM, Slack channel, or marketing-automation platform, with retry handling via a scheduler event if a downstream call fails.
Embeddable JavaScript forms and drag-and-drop landing pages that push inbound web leads straight into ERPNext with honeypot/reCAPTCHA protection, UTM capture, and rule-based routing. Built, installed, and supported by ECOSIRE on request.