Property developer·2019 to present
An end-to-end property sales and operations platform
Sales were split across SAP, an outgrown CRM, and a lot of spreadsheets. I led the build of one platform covering the work from lead to turnover.
- Sector
- Real Estate, PropTech
- My role
- Led discovery, architecture, full-stack delivery, deployment, and production support.
- Stack
- Laravel, Vue.js, Tailwind, MySQL, REST APIs, queued workers, AWS
In 2019, I started working with a property developer whose residential sales operation was split across SAP, a CRM they had outgrown, and a lot of spreadsheets. I led the build of a platform that now covers the process from the first lead through to property turnover.
Three systems, three versions of a sale
Inventory and contracts lived in SAP. Leads sat in the CRM. Most of the work between them happened in spreadsheets.
The CRM could store a lead and their contact details, but it could not follow them from the campaign that produced them, through qualification, to an opportunity against a particular unit and then a sale. The client's process had its own rules around holds, reservation fees, signed contracts, requirements, and approvals. Those rules ended up in a spreadsheet beside the CRM, so sellers worked in both and neither held the full story.
There was no buyer-facing system either. Buyers asked their seller whether their contract was ready, which requirements were missing, whether a payment had posted, or where the loan application stood. Managers had the reverse problem: they assembled the pipeline by hand from whatever sellers reported.
The duplicated work was frustrating, but the conflicting data was worse. The answer to “is this unit available?” could change depending on which system someone checked.
Working out the workflow while it was changing
I led discovery with my team and the client's stakeholders. Their sales process was still being refined as we built, so stages moved, approval rules changed, and new document requirements appeared during the project. Hard-coding the whole journey would have made every operational change an engineering rewrite.
We worked through it one stage at a time and wrote down what had to be true before a sale could move forward. A lead has to be qualified and assigned before it becomes an opportunity. A hold expires if the reservation fee is not paid within its window, returning the unit to inventory. A reservation becomes a booking only once the contract to sell is signed and the buyer's requirements are complete. Turnover waits for the loan account and the construction work.
Those rules became an explicit state model. Leads, units, and sales each have a current state, and the different parts of the platform read from the same data. Configurable requirements meant that when the client later added another booking document, we could add a row instead of shipping a new release.
We migrated the leads and retired the old CRM. SAP stayed as the source for inventory, contracts, and finance data, with the platform reading from it rather than writing back.
Growing from a sales tool into an operations platform
We released the work in stages. The first release covered the part spilling into spreadsheets every day: leads, opportunities, and sales contracts. We left workflows that were still changing until the client had settled them, then expanded into billing and finance, loans, and turnover.
A sale now starts with the campaign that produced the lead. Once qualified, the lead is assigned to a seller and becomes an opportunity against a unit. The unit moves through hold, reservation, and booking, then through billing, the loan application, acceptance, and turnover.
Three applications use that same flow:
- The buyer mobile app shows buyers their stage, requirements, payments, and loan progress.
- The seller portal gives agents a place to work their leads and opportunities, while managers can see the pipeline without assembling it by hand.
- The admin portal covers campaigns, inventory, contracts, bookings, billing, loans, turnover, and reporting.
The original brief was sales, but more of the operation moved in over time. Later phases added sales kits, commissions and incentives, and company announcements. Because the portals use the same records, a number in a director's report and the one on a buyer's phone come from the same place.
What I still own
The engagement has continued since 2019. When the client finds another workflow sitting outside the platform, I help work out whether and how it belongs in the existing system.
I still lead that work from discovery and technical decisions through delivery and production support.