Banfi.

Budapest

01 / Work

Keyhold

A CRM and customer portal for a residential property developer: every unit, sale, loan and handover in one place, in step with Salesforce.

Type
Web app: CRM, customer portal, AI assistant
Client
A residential property developer in Hungary
Role
Lead developer
Year
2026
Status
In production
Keyhold dashboard: available, reserved and sold units, bookings, open tickets, revenue against plan, and units per project.
The dashboard, in the team’s own language
Keyhold data import: pick the project, switch on the team’s own sales workbook, drop the file, and preview before anything changes.
Imports that read each team’s own workbook
Keyhold Salesforce screen: connection status, a sync log per object and the daily schedule.
Salesforce, in sync and on record

Screens from the design, with sample data. The client’s names and colours are changed.

01

The problem

A residential property developer needed one system for its apartments, sales, bank loans, handovers and buyers, in step with Salesforce and with the status spreadsheets each building’s sales team already kept. The first in-house portal could not grow that far.

02

What I built

A CRM for the staff and a portal for the buyers on one backend. Staff run projects and units, sales, loan cases, viewings, handovers, meeting rooms and support tickets; buyers see their apartment, documents, bookings and tickets. Salesforce stays in sync both ways as records change. Spreadsheet imports read each building’s own workbook, show a preview first and can be undone. An AI assistant answers questions about the data through an MCP server, and any change it suggests waits for a person to confirm it.

03

What changed

The old portal’s data moved across in one migration, files included. Before launch, every property in Salesforce was checked against the new database field by field, and the differences were fixed in one reviewed step. Keyhold is in production, guarded by about 4,000 automated tests.

Client work. The names are changed, everything else is as built.