LeadMove Docs
Pipelines

Sources & posting URLs

Give each supplier its own posting URL, and map the field names they send to the fields your pipeline expects.

A source is one supplier feeding one pipeline. Each source has its own posting URL and its own field mapping:

POST https://app.leadmove.io/api/i/{source_key}

Find them on the pipeline canvas: click the Intake node, then click a source to open it. Every pipeline starts with one source named Default; Add a source creates another (rename it to the supplier's name — that's how leads are attributed).

The key in the URL is the authentication — no header, no separate API key. Full request/response details: Webhook API reference.

A source editor: the supplier's name, its own POST URL with a copy button and a Regenerate key link, then the field mapping turning e_mail, phone_number, fname and lname into email, phone, firstName and lastName, with already-matching names tagged auto.

Field mapping

Each source keeps its own map of what they sendwhat your pipeline calls it.

Row showsMeaning
email_address → emailRenamed on arrival.
phone → phone with an auto tagThe name already matches one of your fields exactly.
utm_term → — ignore (don't import) —Dropped at intake, never stored on the lead.
A row with a warning borderNever decided. The field still arrives, under its own name.

Fields are discovered automatically: every key a source posts is remembered and gets a row the next time you open it. You can also type a field name in the box at the bottom and add it before the first lead ever arrives. Removing a row is temporary — the field reappears if a future lead posts it.

Undecided fields are counted for you: the source list shows ⚠ N to map, and the source editor shows ⚠ N unmapped. It's a to-do list, not an error — those leads were accepted. Map them or mark them ignored to clear the counter.

Save with Save source. Mappings apply to leads arriving after the save.

The source field

A supplier can also send a source field in the body — the traffic origin (facebook, google-ads, a sub-id). It's kept on the lead, shows on the lead detail, can be filtered on in the leads list, and is what buyers receive in the source field of their delivery.

It's independent from the source (supplier) the posting URL belongs to: the URL says who sent it, the source field says where they got it. Leave it out and buyers receive direct.

Per-source volume & quality

The source list and the source editor show what each supplier actually sent, over the period selected at the top of the canvas (24h / 7d / 30d / All). Change the period and every number follows.

Each row shows the lead count, plus a counter for anything that didn't come through clean:

CounterMeaning
invalidAccepted and stored, but a required field was missing or badly formatted. Not routed to buyers.
spamCaught by the pipeline's spam rules on arrival. Quarantined, not routed.
dupMatched an earlier lead inside the deduplication window.

Counters are hidden when they're at zero — a clean supplier shows only its volume.

These buckets never double-count. A lead lands in exactly one of them, by precedence: spam first, then duplicate, then invalid. A spam duplicate is counted once, as spam. So invalid + spam + dup is always at most the row's total, and the rest is what reached distribution.

Sources are sorted by volume, busiest first. Past six sources the list scrolls on its own so the rest of the Intake panel stays reachable. The list header tells you how many sources you have and which period you're looking at.

Below the sources you may see extra rows for leads that didn't come from a supplier URL: CSV imports, Manual entries, Forwarded in (from another pipeline), Legacy webhook (posted to the old pipeline-level endpoint, no source attribution) and Deleted sources (leads from a source you've since removed — the leads stay, the URL is gone). Those rows appear only when they're non-zero and aren't clickable: there's nothing to configure.

Need a supplier's URL in a hurry? The copy icon on the right of each row copies its posting URL without opening the editor.

Duplicating a source

Duplicate source… in the source editor creates a copy of the source you're looking at, with its field mapping already filled in. Use it when a new supplier sends the same field names as one you've already mapped.

The copy gets its own posting URL — a fresh key, never the original's. The supplier feeding the original keeps posting to the same URL and isn't affected.

What you choose in the dialog:

FieldWhat it does
Target pipelineWhere the copy lands. Defaults to the pipeline you're in; pick another to reuse a mapping across pipelines.
NameDefaults to Copy of …. Rename it to the new supplier — that's how leads are attributed.

The whole mapping comes across: the renames, the rows you set to ignore, and the field list itself — so the copy opens with the same rows as the original instead of waiting for its first lead. Only the lead counters start empty; volume, invalid, spam and duplicate are always counted from real leads.

If you send the copy to another pipeline, any field that reaches a canonical field here but has no equivalent there is listed before you confirm. That covers renamed fields and fields that simply match by name — the ones that never appear in the mapping because they need no rule. It's a warning, not a block: nothing is dropped from the copy. Add the missing field under Intake → Canonical fields in the target pipeline and it works as-is — or re-map those rows in the copy. See Fields & validation.

Pausing a source

Each source has an Active / Paused switch at the top of its editor.

  • Active — the posting URL accepts leads, as usual.
  • Paused — posts to that URL are rejected with a 401, immediately. The source, its key and its field mapping are all kept.

Use it to stop a supplier that's sending junk, or to freeze an integration during a migration, without deleting anything and without touching your other suppliers. Flip it back on and the same URL works again — the supplier never has to change anything. A paused source is marked paused in the source list, with a grey dot.

Pausing is the reversible option; Delete source is the permanent one.

Why one URL per supplier

  • Attribution. You can see which supplier sent which lead, and cut one off without touching the others.
  • Isolation. One supplier's odd field names (Phone1, E-Mail) are mapped in their source only.
  • Rotation. Regenerate key on a leaked URL kills that URL alone. Give the supplier the new one first — the old one starts returning 401 immediately.
  • Clean shutdown. Pause a source to reject its posts temporarily, or Delete source to stop that URL for good.
  • Measurement. Volume, invalid, spam and duplicate counts are per source, so you can tell a good supplier from an expensive one.

Common questions

Do all my suppliers have to use different URLs? No, but you lose attribution and per-supplier mapping if they share one. Adding a source takes seconds.

My leads come from Meta lead ads. What do I put the URL into? Meta doesn't post to a URL on its own — a bridge (Zapier, Make, your CRM) forwards each instant-form lead to the source's posting URL. Step by step: Meta lead ads.

A supplier sends fields I don't want. What do I do? Set them to ignore in the mapping. They're dropped at intake and never stored on the lead.

Do CSV imports and manual leads belong to a source? No. Those are one-time entries — the links are at the bottom of the Intake panel, and they're counted on their own rows under the source list. See CSV import and manual entry.

Where do the leads go when I delete a source? Nowhere — they stay in the pipeline, with their history. They're regrouped under a Deleted sources row in the Intake panel, since there's no source left to open.

A supplier added a new field. Do I have to tell them to stop? No. The new field arrives, is stored on the lead, and shows up in the mapping list flagged as unmapped so you can decide what it is.

Does a duplicated source share the original's posting URL? No. Every copy gets its own key, so the two URLs are independent — pause, regenerate or delete one and the other keeps working.

Can two sources map different names onto the same field? Yes — that's the point. email_address from one and Email from another can both land on email.

On this page