The dashboard nobody logs into
Every agency has built the beautiful lead dashboard and every agency has watched the client not open it. This is not a design failure. It is that a business owner already has a place they look at leads — their CRM, their inbox, their phone — and asking them to add a second place is asking them to change a habit in exchange for no benefit they can see.
The consequence is worse than an unused feature. If the leads only exist in your system, they are not being worked in the client's system, which means follow-up depends on somebody manually copying them across. Manual copying happens for about three weeks. After that it happens on busy days and not on busier ones, which is precisely backwards since the busiest days produce the most leads.
And it destroys the feedback loop the agency needs most. Cost per qualified lead, close rate by channel, return on ad spend — all of these require somebody to record what happened to the lead. That recording will happen in the CRM, because that is where the sales process lives. If the lead never reached the CRM, the outcome never comes back, and the agency is permanently stuck reporting volume while the client quietly judges them on revenue.
Delivery inverts the arrangement. The lead lands where the client already works, with everything the agency knows about it attached. The client does what they were going to do anyway. The outcome they record flows back, and suddenly the agency can measure the thing that actually matters — without having asked anybody to change how they work.
Where leads can go
Most clients want one CRM and one instant notification. The rest exists because client stacks vary more than anybody expects.
The major CRMs
Salesforce, HubSpot, Pipedrive, Zoho, GoHighLevel and others, through their own APIs, with field mapping you control rather than a fixed shape you have to accept.
Slack
A message in the channel the sales team already watches, with the source, the number and a link. The fastest way to get a five-minute callback habit started.
SMS
For clients whose sales team is in a van. An email that arrives while somebody is on a roof is an email read at six o'clock; a text is read at the next break.
To an individual, a shared inbox or a distribution list, formatted so the source is visible without opening anything.
Outbound webhooks
A signed POST to any endpoint, for bespoke systems, job management software and the industry-specific tools every trade has one of.
Google Ads offline conversions
A qualified lead pushed back as a conversion, so the bidding algorithm optimises towards leads that were actually worth having.
What travels with the lead, and why it matters
Most CRM integrations deliver a name, a phone number and an email address. That is the minimum viable payload and it throws away the part that makes the lead useful to anybody analysing it later.
What should travel with the record is everything the tracking knows: the source, medium and campaign; the keyword where the platform provided one; the landing page and the pages read before the enquiry; the device; whether this was a call, a form or a tap; and for a call, the recording and the transcript. All of it, mapped into fields the client's CRM already has or custom fields created for the purpose.
The immediate payoff is at the point of contact. A salesperson ringing back somebody who searched "emergency boiler repair Croydon" at eleven at night and read the pricing page twice is having a different conversation from one working a list of names. That context costs nothing to deliver and materially changes conversion.
The larger payoff is at the end of the pipeline. When the CRM record carries its source, the client's own reporting on won deals can be split by channel — which means the client discovers for themselves which of your channels produces revenue rather than taking your word for it. Agencies are occasionally nervous about this. They should not be: a client who can independently verify that your work produces revenue is a client who stops treating your invoice as a cost.
And it is what makes the loop close in the other direction. A lead marked won, with a value, flowing back from the CRM turns cost per lead into return on ad spend and, where you push offline conversions to Google Ads, teaches the bidding algorithm which clicks were worth buying. That is one of the highest-leverage automations available in paid search and it depends entirely on the lead having reached the CRM with its identifier intact.
How a delivery is made, and what happens when it is not
The interesting engineering in lead delivery is not the happy path. It is what happens at three in the morning when the destination is down.
The lead lands and delivery is queued
Immediately on arrival, not on a schedule. Speed of response is the strongest single predictor of whether an enquiry becomes a job, and a fifteen-minute batch throws that away for no reason.
Fields are mapped and the push is attempted
To the destination's own API, with the mapping you configured. The response is recorded — not just success or failure, but what the destination actually said.
Failures retry with backoff
A CRM that is briefly down, rate limiting, or having a bad afternoon does not cost the client a lead. Retries space out rather than hammering a system that is already struggling.
Persistent failures become visible
After retries are exhausted the lead sits in a failure queue with the error attached, and you are told. It is not marked delivered and it is not silently dropped.
Anything in the queue can be replayed
Once the destination is fixed — a credential renewed, a required field added — the queued leads are pushed again. Nothing has to be re-entered by hand.
Why delivery health is a feature rather than a detail
Integrations break, constantly and quietly. An OAuth token expires. Somebody at the client revokes an app they did not recognise. A required field is added to the CRM and every push starts failing validation. An API version is retired. A rate limit is lowered. None of these announce themselves, and all of them produce the same symptom: leads stop arriving in the client's system.
The dangerous property of that symptom is that it looks exactly like a quiet month. The client notices fewer leads coming through, which is what a slow fortnight also looks like, so nobody investigates. Three weeks later somebody finally compares the agency's lead count to the CRM's and discovers a hundred and forty enquiries that never arrived. Every one of them is now cold. This is not a hypothetical failure mode; it is the single most common serious failure in agency lead workflows.
So delivery status is per lead and it is visible. Every lead shows whether it was delivered, to where, when, and what the destination said. A connection that has started failing is reported as failing rather than showing an empty list. And the failure queue is a queue rather than a log, which means the leads in it can be recovered instead of merely mourned.
It is worth understanding what this costs to build properly, because it explains why so many integrations do not have it. Fire-and-forget delivery is an afternoon's work. Delivery with per-record status, bounded retries, a replayable queue and connection health monitoring is a subsystem. Vendors skip it because it never appears in a demo, and agencies discover the omission at the worst possible moment.
Delivery routes and what each is good at
Most accounts use two: one CRM and one instant alert. Adding more is usually a sign that nobody has decided where leads actually live.
| Route | Latency | Best for | Limitation |
|---|---|---|---|
| Native CRM push | Seconds | The system of record where deals are worked | Depends on the client granting and maintaining access. Tokens expire. |
| Slack | Seconds | Teams already living in Slack; fast callback habits | Not a record. Great for prompting action, useless for pipeline reporting. |
| SMS | Seconds | Field teams, trades, anyone not at a desk | Costs per message and irritates if over-used. Reserve it for real leads. |
| Seconds | Shared inboxes and clients with no CRM at all | Easily buried. Fine as a backup, weak as the only route. | |
| Outbound webhook | Seconds | Bespoke systems and industry-specific software | Somebody has to build the receiving end, and that somebody is usually you. |
| Google Ads offline conversions | Batched | Teaching bid strategies which leads were worth having | Needs the click identifier and an outcome recorded. Nothing to send until the client marks leads. |
The things that make delivery trustworthy
These are the details that separate an integration you can build a client relationship on from one that will embarrass you.
- No duplicates. A retry that succeeds after a timeout must not create a second record. Delivery is idempotent against the lead, so an ambiguous first attempt does not double the client's pipeline.
- Field mapping is yours. Which tracking field lands in which CRM field, including custom fields. A fixed mapping always fights the client's existing configuration.
- Failures are loud. A destination that has stopped accepting leads produces an alert, not an empty list that resembles a quiet week.
- Payloads are signed. Outbound webhooks carry a signature so the receiving end can verify the request came from you and was not tampered with.
- Only what you chose is sent. Field-level control over what leaves the platform, which matters when a form captures information the client would rather not have propagated onward.
- Delivery is scoped to the client. A destination belongs to one client. There is no configuration in which one client's leads can reach another client's CRM.
Getting access to a client's CRM without a three-week delay
The technical work of connecting a CRM takes minutes. Getting permission to do it frequently takes weeks, and understanding why saves a great deal of frustration.
The CRM is usually the client's most sensitive system. It holds their entire customer base, their pipeline, and in many cases their pricing. An agency asking for API access is asking for something the client instinctively guards, and the person who can grant it is often not the person you deal with. On a mid-sized client it may be an IT contractor who takes a fortnight to reply and then asks what data you intend to write.
The way through is to ask for the narrowest thing that works. You need to create records, not read the client's customer base. Most CRMs support a connection scoped to exactly that, and being able to say "create-only, no read access to your existing contacts" turns a difficult request into an easy one. It is also simply true, which helps, and it means the connection cannot become a liability during a security review.
Where access genuinely cannot be granted — a regulated client, a locked-down enterprise CRM, an IT department that says no — the webhook is the fallback. The client's own developer receives a signed POST and writes the record from inside their perimeter, which is a request nobody has ever refused. It costs them an afternoon and it removes the objection entirely.
And where the client will not do any of it, deliver by email and SMS and be honest about the consequence: outcomes will not flow back, so cost per acquisition and offline conversions are off the table for that account. Saying that clearly at the start is much better than discovering at month six that the return-on-spend reporting you promised was never possible.
What it does not do
It does not make somebody follow up. A lead delivered into a CRM that nobody opens is a lead in a different database. Where a client's sales process is genuinely broken, delivery makes the problem visible — leads arriving, nothing being marked — but it cannot fix it, and an agency that promises otherwise is setting up a disappointment.
It does not do two-way sync of everything. Outcomes and values flow back where the CRM exposes them, which is enough for cost per acquisition and offline conversions. It is not a bidirectional replica of the client's pipeline, and building one would be a different and much larger product.
It does not replace the client's CRM, and should not be sold as though it might. The lead pipeline here exists so that leads can be triaged and marked when a client has no CRM at all. For a client who has one, the CRM wins every time and the correct move is to deliver into it and get out of the way.
And it cannot deliver what it was never given. If a client's form captures only an email address, that is what reaches the CRM. Attribution travels automatically; the contact details are whatever the enquiry provided. This is worth checking before promising a client rich records, because a three-field form produces three-field leads no matter how good the delivery is, and the fix is a conversation about the form rather than about the integration.
Where it sits
Delivery is the last step of the capture chain and the first step of the measurement loop. Calls and forms produce leads; delivery puts them where work happens; the outcome recorded there comes back and turns volume metrics into revenue metrics.
That loop is why this matters more than a feature list suggests. Everything upstream — dynamic numbers, form capture, attribution — produces a count. Only the returned outcome turns a count into a business result, and the outcome is recorded by a salesperson in a system the agency does not own. Delivery is the only mechanism by which the agency's data and the client's reality ever meet.
It is also the step most often left until last and most often left half-finished. An agency will invest weeks in tracking every enquiry accurately and then forward the results as a weekly email, which throws away the returning half of the loop for the sake of an afternoon's configuration. If you do one thing after getting capture working, make it this one.
Practically, an account with delivery configured well tends to look different within a quarter. The client stops asking for lead lists. The sales team responds faster because the notification arrives where they already are. And the monthly conversation moves from "how many leads" to "how many turned into work", which is a considerably better conversation to be having when the retainer comes up.
Common questions
Which CRMs are supported?
Salesforce, HubSpot, Pipedrive, Zoho, GoHighLevel and others through their own APIs, with field mapping you control rather than a fixed payload shape. For anything not natively supported there is a signed outbound webhook, which covers bespoke systems and the industry-specific job management software most trades have one of.
Does the attribution data go into the CRM too?
Yes, and it is the main reason to do this rather than forward an email. Source, medium, campaign, keyword, landing page, device and lead type all travel with the record, into fields the CRM already has or custom fields created for the purpose. That is what lets the client split their own won-deal reporting by channel.
How fast are leads delivered?
Within seconds of the lead landing, not on a batch. Speed of response is the strongest single predictor of whether an enquiry becomes a job, and a fifteen-minute batch gives that away for no benefit.
What happens if the CRM is down?
The delivery retries with backoff. If it still fails after retries, the lead lands in a visible failure queue with the error attached and you are alerted — it is never marked delivered and never silently dropped. Once the destination is fixed, queued leads can be replayed without re-entering anything.
Could a retry create a duplicate record?
No. Delivery is idempotent against the lead, so an attempt that timed out but actually succeeded does not produce a second record when it retries. Duplicate leads in a client's pipeline are the fastest way to lose trust in an integration.
Can leads go to Slack or SMS as well as the CRM?
Yes, and most accounts use exactly that combination: one system of record plus one instant nudge. Slack suits desk-based teams, SMS suits field teams who are up a ladder when the enquiry arrives. Adding a third and fourth route usually means nobody has decided where leads actually live.
Can I control which fields are sent?
Yes, field by field. That matters when a client's intake form captures information you would rather not propagate into another system — a field you do not send is one you do not have to worry about downstream.
What are Google Ads offline conversions and do I need them?
They are a way of telling Google which of the clicks it charged you for became a real, qualified lead, so bid strategies optimise towards those. They need the click identifier — captured automatically — plus somebody marking outcomes. Where a client will mark leads, it is one of the highest-leverage automations in paid search.
How do I know an integration is still working?
Every lead shows its delivery status, destination, timestamp and the destination's response, and a connection that has started failing raises an alert. This exists because a broken integration looks identical to a quiet month, which is how agencies end up discovering a hundred undelivered leads three weeks late.
What if the client has no CRM at all?
Then use the built-in lead pipeline — new, contacted, qualified, won, lost — plus email or SMS notification. It is deliberately simple and exists for exactly this case. For a client who does have a CRM, the CRM wins and the right move is to deliver into it and get out of the way.