Skip to main content
Web-to-Lead Forms & Landing Pages — Embeddable JavaScript forms and drag-and-drop landing pages that push inbound web leads s — 1/1Illustrative preview

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.

What is Web-to-Lead Forms & Landing Pages?

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 $999.00 USD; request a quote for a scoped proposal.

Key Features

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
Drag-and-drop `Landing Page` DocType with block-based JSON layout, rendered through Frappe Jinja website templates so pages are SSR and SEO-crawlable on your own domain
Form-variant binding for A/B testing distinct headlines and CTAs while all submissions feed one governed Lead pipeline
Custom-field naming isolated in your app's fixtures so upgrades never collide with ERPNext core Lead fields
Role-profile-scoped permissions — marketing manages forms/pages, sales sees only assigned leads — enforced through Frappe permission rules, not UI hiding
Scheduler event for a daily lead-capture digest plus automatic retry of deferred reCAPTCHA verification and downstream webhook failures
Optional outbound webhook and Frappe REST hooks to mirror captured leads to a CRM, Slack, or marketing-automation tool on insert
Client scripts for real-time in-form validation, conditional field display, and phone/email format checks before the REST call fires
Rate limiting on the guest endpoint keyed by IP and form to blunt submission-flood and credential-stuffing attempts

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

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.

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 one working week 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.

What you get

  • Installable Frappe app source code for your version (v15 or v16), pinned to your ERPNext branch
  • On-site installation and configuration on your instance — app install, reCAPTCHA keys, routing rules, and embed keys wired up
  • Technical documentation: DocType schema, whitelisted endpoints, hooks.py doc events, server/client scripts, and permission model
  • User guide plus a live training session for your marketing and sales teams on building forms, landing pages, and reading captured leads
  • UAT on a staging site with sign-off, and a documented rollback plan before production cutover
  • Post-go-live support window for bug fixes and configuration adjustments
  • Git repository handover with full commit history and README for future maintenance
  • Embed snippets and starter landing-page templates configured for your live domains

Who this is for

Head of Marketing / Demand Gen

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.

Sales Operations Manager

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.

Marketing Ops / Web Manager

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.

ERPNext System Administrator

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.

How Web-to-Lead Forms & Landing Pages Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Embeddable on external sitesSingle-tag JS widget for any external domainPossible but you build and maintain the widgetOften iframe-only or Frappe-domain-boundWeb Form lives on the Frappe site, no external snippet
Spam protectionHoneypot + reCAPTCHA v3 scoring + rate limitingWhatever you have time to buildBasic or add-on dependentGuest permission checks only, no bot defense
UTM & referrer captureFull UTM set + landing URL + referrer as custom fieldsManual field and parsing workPartial, often not mapped to LeadNot captured
Lead routing & assignmenthooks.py after_insert rules + auto ToDo/notifyServer script you author and testRarely includedManual assignment
Landing page builderDrag-and-drop DocType, Jinja-rendered, SEO-crawlableBuild from scratchSometimes, quality variesNone
De-duplicationEmail/phone match before insertYou implement matching logicUncommonDuplicate leads created freely
Fit to your processScoped to your fields, rules, and sitesFully bespoke, higher effortFixed to the vendor's modelGeneric ERPNext defaults
Support & handoverInstall, docs, training, support window, git repoSelf-supported unless contractedVendor tier, may be limitedCommunity forum only

Frequently Asked Questions about Web-to-Lead Forms & Landing Pages

How long does delivery take?

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 one working week from confirmed scope, including staging UAT before production cutover.

How do updates and support work after go-live?

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.

Does this work with an external marketing site, or only on my Frappe domain?

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.

How is spam handled?

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.

Which ERPNext versions are supported?

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.

How do captured leads get assigned to salespeople?

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.

Can captured leads also flow to another tool?

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.

Request a quote

Web-to-Lead Forms & Landing Pages

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.

  • 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

Request a Quotation

Tell us about your Web-to-Lead Forms & Landing Pages requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.