Meta + telephony + CRM: how a lead reaches the right agent directly
When a real estate agency tells us "we want leads to reach the agent directly", there are actually three problems behind that sentence: where the leads come from, how each one enters the CRM without losing information on the way, and how it gets from there to the right person. Distribution we covered in the article on lead distribution. Here we deal with the first two. No telephony vendor names and no promises about Meta features we haven't verified on your account — we speak generically, because the details depend on what you already have.
The three sources and what each delivers, technically
| Source | What reaches the CRM | What is usually missing |
|---|---|---|
| Meta — Lead Ads and Facebook / Instagram messages | The form fields (name, phone, your own questions — area, budget), the campaign, ad set and ad names, the submission time. For messages: the conversation text and the page identifier. | Data quality depends on the form: if you didn't ask for the area, you don't have it. Phone numbers sometimes arrive without a prefix or with spaces. |
| Telephony — a phone system or IP telephony with an API / webhooks | Caller number, dialled number (useful if you run different numbers per campaign), direction, duration, who answered, time; the call recording, where the system offers it and the agency has decided to keep it. | Nothing about what the client wants — the agent learns that on the call. If the phone system offers no API or webhooks, integration isn't possible without replacing it. |
| Website — forms, viewing requests, property pages | The form fields, the page it was sent from (so the property of interest), the visit's UTM parameters, the site language. | UTMs exist only if the campaigns set them; unprotected forms bring spam. |
Each source knows something different. Meta knows the campaign. Telephony knows who called and who answered. The website knows which property drew interest. The CRM is where these pieces get stitched onto the same client.
Each source's path into the CRM
Meta Lead Ads → a lead with the campaign preserved. When someone submits the form, Meta can notify a webhook. The CRM receives the fields, creates the lead with source "Meta / campaign name", normalises the phone number and starts distribution. For Facebook or Instagram messages, the first message creates the lead (or attaches to the existing client) and the conversation stays on the card. The detail that matters: field mapping. Your form says "Which area are you looking in?", the CRM has a field called "Area" — someone has to link them explicitly, once, otherwise the answer ends up in a note nobody reads.
A call from an unknown number → new lead; from a known number → the card opens and the call is logged on it. The phone system sends an event for every call. The CRM looks up the number: if it doesn't exist, it creates a lead with source "Phone" (and, if you run different numbers per campaign, with the campaign inferred from the dialled number); if it exists, it adds the call to the card's history — who answered, how long, a link to the recording if there is one. A missed call from a new number also creates a lead, with a "Call back" task — otherwise you lose exactly the client who bothered to call.
Website form → a lead with the page and UTMs. The simplest technical path: the form sends the data to the CRM, which creates the lead with source "Website / page X" and the campaign from the UTMs, if present. A viewing request from a property page arrives with the property already attached — the agent no longer has to ask "which apartment do you mean?".
De-duplication: one person, two channels, one client
Typical scenario: the client fills in the Meta form on Tuesday and calls on Thursday. Without de-duplication the CRM has two "clients" and two agents call the same person. The rule we configure: the normalised phone number is the key. Any source that brings a number already on file doesn't create a new lead; it adds a touchpoint to the existing card — "Thursday 11:20, inbound call, 4 min, answered by agent X" — and, where relevant, notifies the agent who owns the client. The result: one client, two touchpoints, one owner.
The honest limits of this rule: two numbers belonging to the same person stay two clients until someone links them manually; a number typed wrongly in a form matches nothing; and a client who changes their number comes in as a new lead. For those cases we leave a "Merge with existing client" button in Web Admin — de-duplication is automatic for the common case and manual for the exceptions.
From lead to agent: distribution and a Telegram notification
Once the lead exists in the CRM with its source preserved, the rest is the same regardless of channel: the distribution rule applies (round-robin, by area, by transaction type, owner of the existing client), and the chosen agent receives the message with buttons in Telegram — "Take the lead", "Call now", "Not for me", "Open card" — exactly as on the real estate CRM page. Only the content changes with the source: the Meta lead arrives with the campaign and the form answers, the missed call as "called 3 minutes ago, nobody answered", the website request with the property. The agent knows why they're calling before they call.
What the manager sees
- Leads by source: how many came from Meta (per campaign), by phone, from the website, in a given period.
- Source → conversion: of each source's leads, how many reached a viewing, negotiation, contract. This is where it becomes visible if a campaign brings many leads that go nowhere.
- Response time by source: if missed calls are returned more slowly than Meta leads are taken, it shows.
- Calls per agent: inbound/outbound counts, average duration — straight from the phone system's data, with the agent writing nothing down.
Cost per lead or per source is not something we compute from the CRM. The CRM knows how many leads came from a campaign, not what you paid for it. If the agency gives us the spend per campaign — manually or through a separate integration with the ad account — it can be calculated. Without that figure, any "cost per lead" on a dashboard would be invented, and we don't do that.
The pitfalls we see most often
- Meta form fields not mapped. The form has five questions, the CRM receives only the name and phone, the rest is lost in a text field. It's fixed once, during configuration, but it has to be done — and redone when someone changes the form in Meta without telling anyone.
- A phone system with no API or webhooks. Some older phone systems don't expose call events. Then the integration can't honestly be done, and we tell you so in the first conversation, not two weeks later. The solution is usually moving to IP telephony that offers an API — the agency's decision, not ours.
- Agents answering from personal phones, outside the phone system. The most common reason "integrated telephony" shows nothing: the client calls the agent's personal mobile directly, the call doesn't pass through the phone system, the CRM never finds out. It's not a technical problem, it's a process one: the agency decides whether the published numbers belong to the phone system or to the agents.
- Phone numbers in different formats. "+373 69…", "069…", "0037369…" — for de-duplication they all have to be normalised to the same format before comparison. It sounds like a detail; it causes half the duplicates we see.
- Website forms without spam protection. Every spam submission creates a lead, which enters distribution, which reaches an agent. After a week the agents ignore the notifications. The spam filter goes in before the integration, not after.
How we approach the integration, in order
We don't connect all three sources on the same day. The usual order: the website first (simplest, most controllable), then Meta (fields mapped, tested with a real form), then telephony (after checking that the phone system offers what's needed). Each step is tested with real leads before the next. Distribution, Telegram and reports are the same for all sources and are configured once. How we build this kind of integration chain for other industries is on the process automation page; the wider context is on CRM Moldova.
Read on: CRM for real estate agencies · How to automate lead distribution.