Case study · Residential, commercial & agricultural projects
A Sydney developer group running residential releases of 200+ apartments alongside commercial storage and agricultural land holdings. Serious volume, serious spend, and a contact database that had grown one campaign at a time for two years.
Contact counts come from the CRM. The $750M+ figure estimates potential property value associated with campaign enquiries, not confirmed sales or total development value. Project names appear only where already public.
$750M+
estimated property pipeline, not settled sales
5,000
contacts restructured
890
leads on the flagship project
0
failed records in the migration
What the database looked like
What it does now
What we built
Five thousand contacts collected across two years of Meta campaigns, each with its own question set, were normalised into one structure: canonical project tags, canonical source tags, and Meta form answers written to consistent fields instead of buried in campaign-specific blobs. A lead from a 2024 campaign and a lead from last week now answer the same questions in the same place.
A 0–100 score built from contactability, stated budget and timeframe, project fit, and recency. The point is not the number — it's that the list can be sorted, so the first call of the day goes to the person most likely to buy.
The developer's sales platform holds the truth about deposits and approvals. Its available feed lacks reliable buyer contact identifiers, so stage reporting stays separate from CRM contacts until a match can be reviewed by a person. Automatic buyer-level updates remain blocked on that access.
The client works from ChatGPT. They ask for an audience in plain English — a project, a stage, a recency window — get counts back, then a fully branded email preview rendered server-side. Nothing sends without explicit approval, DND is respected, bulk sends need confirmation, and every send is logged with its sender identity.
Two brands run out of one system. The project determines the brand, the brand determines the sending identity, and an address that would embarrass the client is rejected outright rather than silently substituted.
A weekly performance draft — spend, leads, appointments, stage movement — generated on a schedule and delivered for review, instead of rebuilt by hand every Monday morning.
The part most agencies skip
Anyone can run the ads. The expensive problem is what happens to the lead afterwards: which project it belongs to, whether anyone has spoken to it, whether the person has already paid a deposit somewhere else in the business. That is a data problem before it is a marketing problem, and it is why every campaign here starts from a database that can actually answer a question.
Every destructive change in the clean-up was reversible, previewed before it ran, and recorded with an undo. Nothing was applied to five thousand records on a hunch.
Start with a paid working session. We map your lead path, your CRM stages and the handful of automations worth building first.