Open source · Self-hosted · Free

Open-source lead capture for field teams

Reps add a lead in seconds on their phone, or let the customer scan a WhatsApp QR. Every lead reaches your CRM, even when the CRM is down. Run it on your own server, under your own brand.

$ git clone https://github.com/isaee-xyz/fieldleads.git && cd fieldleads && ./setup.sh

The repository opens soon. Ask for early access and we'll send it to you first.

Sign-in screen in the FieldLeads brand
Rep home: verified, pending and total leads, add by QR or phone
Add lead form: name, mobile number and configurable questions

Shown in a client's colours. Name, colours and logo change at runtime, without a rebuild.

Rebrand without rebuilding

Name, colours, logo, icons, sign-in options and the lead form are configuration. One build serves every client.

Any CRM

Signed webhooks with payload templates for HubSpot, Zoho and Salesforce, or your own endpoint.

Nothing gets lost

An outbox retries through outages and rate limits. Unverified leads still arrive, clearly marked.

Product

Built for the street, not the desk

Capture

A lead in under ten seconds

Name, number, a few taps. Confirm the number with a one-time code, or save it now and let the customer verify later on WhatsApp.

  • Your own questions, defined in JSON
  • WhatsApp QR: customers message in and the lead is credited to the rep
  • Installable app for Android and iPhone, sessions renew on open
Add lead form
CRM connector

Every lead, delivered and signed

Each event is posted to your CRM with an HMAC signature. Map fields with a template; failed deliveries retry with backoff and show in the admin log.

  • lead.created and lead.verified events
  • Templates for HubSpot, Zoho CRM and Salesforce
  • De-duplicate on the event id
POST https://your-crm.example.com/hooks/leads
X-FieldLeads-Event: lead.created
X-FieldLeads-Signature: sha256=…

{
  "type": "lead.created",
  "lead": {
    "name": "Asha Rao",
    "phone_e164": "+919876543210",
    "verified": true,
    "verification": "otp",
    "fields_text": "Interested in: Product demo",
    "location": { "city": "Bengaluru" }
  },
  "rep": { "name": "Ravi", "employee_code": "EMP1024" }
}
Teams

Two kinds of users, one app

Team members sign in with a work email; field partners with their phone. First sign-in asks for a name and employee code, so every lead is attributed.

  • Email codes and one-tap links for staff
  • WhatsApp or SMS codes for partners, via any gateway
  • Optional rewards: a voucher every few verified leads
Sign-in choices: work email for team members, phone for field partners
Integrations

Send leads where your team already works

Built-in templates for the big CRMs, and a plain signed webhook for everything else.

CRMs

HubSpotZoho CRMSalesforceAny webhook

Automation

ZapierMaken8n

Codes and WhatsApp

GupshupAny SMS/WhatsApp gatewayWhatsApp QR

Stack

Node.jsReact PWAMongoDBDocker
Self-host

Running in about two minutes

The setup script asks five questions, writes a private .env with every secret, and starts the app, the API and MongoDB.

  1. Run setup

    It asks for your URL, brand name, colour, allowed email domains and admin email. Or --yes for a local trial.

  2. Connect your CRM

    Add a webhook URL and pick a template. Send a test lead and watch it in the delivery log.

  3. Hand it to your reps

    Share the link; they install it on their phone home screen and sign in.

terminal
# on a server with Docker
git clone https://github.com/isaee-xyz/fieldleads.git
cd fieldleads && ./setup.sh

✓ Secrets written to .env
✓ web · api · mongo up
✓ Open https://leads.example.com
1 GB serversmall and cheap to run
Docker Composeweb, API and MongoDB
setup.shupdate · backup · doctor
FAQ

Questions

Is it really free?

Yes. FieldLeads is open source and self-hosted. You pay only for your server and any SMS or WhatsApp codes you send.

Is there a hosted version?

No. FieldLeads is self-hosted only.

Can I change the lead form?

Yes. Questions, options and which ones are required live in a JSON file. No rebuild needed.

What if the CRM is down?

Leads wait in an outbox and are retried with backoff. Nothing is dropped, and the admin log shows every attempt.

Does it work offline?

Reps need a connection to save a lead. Sessions last 30 days and renew whenever the app is opened.

Put it in your reps' pockets this week

Install it, brand it, connect your CRM and send the link to your team.