Skip to content
Maple Leads

How it works

The engine behind every lead.

Maple is a real-time routing engine wrapped in a marketplace. Here's exactly what happens between a consumer pressing submit and the lead landing in your CRM — and how we keep it fair.

The pipeline

Six stages. Under fifty milliseconds.

Every lead runs the same deterministic pipeline, and its routing and delivery history is visible in your portal.

  1. 1POST /v1/leads

    Ingest

    A supplier posts the lead the instant the consumer submits a form. Age — and therefore price — is measured from the submission timestamp.

  2. 2TCPA · TrustedForm

    Verify

    Phone, email, state and ZIP are validated and normalized. TCPA consent language, timestamp, IP and TrustedForm certificate are attached.

  3. 330-day window

    Deduplicate

    If the same phone number arrived in the same vertical within 30 days, the lead is recorded as a duplicate and never sold.

  4. 4Hot 1 · $110

    Price

    The lead is placed on the 9-tier ladder. Its tier sets the price and the maximum number of buyers allowed to share it.

  5. 5< 50 ms

    Match & rank

    Every active campaign is checked for eligibility; matches are ranked by VIP routing, account priority and round-robin fairness.

  6. 6lead.delivered

    Charge & deliver

    Your wallet is debited at the locked tier price and the lead is pushed to your webhook, CRM and inbox — and appears in your portal live.

Eligibility

Which campaigns can receive a lead.

A campaign is a candidate only when every check passes. Nothing is ever charged to you that your campaign didn't ask for.

  • Filters matchVertical, lead type, state, ZIP and attribute filters (loan amount, credit, timeline…).
  • Tier opted inThe campaign buys the tier the lead is currently in.
  • Within scheduleInside the campaign's delivery days and hours, in your time zone.
  • Under capsDaily and monthly lead caps haven't been reached.
  • Wallet covers itYour balance covers the current tier price.
  • Not already yoursYour organization hasn't already bought this lead.

Routing priority

Who gets it first — and why it's fair.

Eligible campaigns are ranked in a strict, transparent order until the lead's share cap is filled.

  1. 01VIP ZIP routingEnterprise

    Enterprise accounts can reserve ZIP codes. Matching leads go only to the VIP buyer for an exclusive window (15 minutes by default) before reaching the general pool — and fall through immediately if the VIP can't take them.

  2. 02Account priorityEnterprise

    Volume agreements can carry a priority weight that moves an account up the queue among otherwise-equal candidates.

  3. 03Round-robin fairnessEveryone

    Among equal candidates, whoever has waited longest since their last lead goes first. Nobody is starved; nobody gets every lead because they signed up first.

Share caps

Scarce when it matters. Shared when it's cheap.

A lead can be sold to a limited number of buyers in total. The cap rises only after the lead has cooled off, when its price has dropped by over 80%.

Hot

Under 45 min

3 buyers max

Warm

45 min – 8 h

3 buyers max

Cold

8 – 24 h

5 buyers max

Age is honest

Suppliers send the original submission time, so a lead that sat in someone else's queue is priced as the old lead it is.

Dedupe before sale

Repeat submissions within 30 days are caught before pricing, so you never pay for the same consumer twice.

Marketplace for the rest

Leads with open share slots appear in the live marketplace, where you can buy on demand at the current tier price.

Delivery

Signed webhooks to any CRM.

Each campaign can post leads to your webhook as JSON, form-encoded or XML — the formats Zapier, GoHighLevel, Salesforce, HubSpot, Follow Up Boss and Pipedrive accept — plus instant email alerts.

  • Every request is signed with HMAC-SHA256 in the X-Maple-Signature header
  • Custom headers per campaign for CRM API keys
  • Failed deliveries retry automatically with exponential backoff
  • Every attempt — status code, latency, response — is logged in your portal
  • Send a test lead to your endpoint before going live

Headers: X-Maple-EventX-Maple-Signature

verify-signature.tsTypeScript
import { createHmac, timingSafeEqual } from "node:crypto";

// Express / Next.js route handler — use the raw request body.
export function verifyMapleSignature(rawBody: string, header: string, secret: string) {
  // Header format: X-Maple-Signature: t=1760540000,v1=5f2c…
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const timestamp = Number(parts.t);

  // Reject replays older than 5 minutes.
  if (!timestamp || Math.abs(Date.now() / 1000 - timestamp) > 300) return false;

  const expected = createHmac("sha256", secret).update(`${timestamp}.${rawBody}`).digest("hex");
  const a = Buffer.from(expected, "hex");
  const b = Buffer.from(parts.v1 ?? "", "hex");
  return a.length === b.length && timingSafeEqual(a, b);
}
lead.delivered payload (excerpt)JSON
{
  "event": "lead.delivered",
  "lead_number": 48213,
  "vertical": "mortgage",
  "lead_type": "FHA",
  "tier": "HOT_1",
  "price": 110,
  "first_name": "Jordan",
  "phone": "+12145550142",
  "state": "TX",
  "zip": "75201",
  "source": "facebook",
  "lead_age_minutes": 0.4,
  "attributes": { "loanAmount": 318000, "creditScore": "Good (680-739)", "propertyType": "Single Family" },
  "consent": { "trustedFormCertUrl": "https://cert.trustedform.com/…" }
}

Plug Maple into your CRM in ten minutes.

Create an account, fund your wallet and switch on a campaign. Your first lead can land in your CRM within minutes.

No subscription · No setup fee · Pay only for leads you receive