CLIENT: Stonecutter Lane Property Partners🇭🇰Hong Kong

Kaito - Meeting Notes to CRM Assistant with Field-Level Review

Meeting Assistant for a Hong Kong Property Brokerage

Designed and built a clickable meeting assistant for a Hong Kong commercial property brokerage: it transcribes brokers' meetings and calls in Cantonese, English and Mandarin, proposes CRM changes as a field-level diff with evidence from the transcript, flags likely duplicate contacts, and writes nothing to Salesforce until the agent approves.

Scope of Work
Product design, UI build and clickable demo
Industry
AI Agents & Automation / Meeting Notes to CRM
AIEnterprise
Compliance & Certifications
PDPO (Cap. 486)PCPD AI Model FrameworkEstate Agents Ordinance (Cap. 511)AMLO (Cap. 615)

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Inbox, meetings list, meeting detail with audio player and transcript, review and approve, and duplicates. Every meeting that has finished processing opens its own transcript and review.

3 Languages
In one transcript

The Tai Hang Trading meeting mixes Cantonese, English and Mandarin (58%, 38% and 4%), with the language shown on every speaker turn and evidence lines highlighted.

60% Threshold
Low confidence starts unticked

Each proposed change carries a confidence chip. Rows under 60% start unticked, and fields set to never overwrite, such as a mobile number already in the CRM, go in as a note only.

23 Meetings
Realistic demo data

Meetings from mobile recordings, Teams, Zoom and uploads, 12 duplicate cases, 7 staff users in 3 teams, 6 tasks, 2 failed CRM writes and a 23-district picklist in English and Chinese.

The Problem

Stonecutter Lane's 140 or so agents meet occupiers in taxis, lift lobbies and meeting rooms, and their notes lived in their heads, WhatsApp chats and phone notes apps. Management's own review found fewer than half of occupier meetings had a CRM activity logged within a week, requirement fields were blank on most active occupier records, and the same person often existed three times under different spellings of their English and Chinese names.

Our Solution

Kaito turns a recorded meeting or a Teams or Zoom call into proposed CRM updates: people, company, the occupier's requirement, tasks and a meeting note. The agent reviews each change as a diff against the current Salesforce record, with the quoted transcript lines behind it, settles likely duplicates, and approves, edits or rejects line by line. The CRM stays the system of record.

The Challenge: Meeting Notes a CRM Can Trust

A Hong Kong brokerage meeting switches between Cantonese, English and Mandarin, quotes space in gross or saleable square feet, and names people in English, Chinese and romanised forms. An extracted value is a guess until a person confirms it, and the PDPO expects personal data to be accurate.

Three Languages in One Meeting

Agents and clients code-switch mid-sentence: a size said in English, districts in Cantonese, a board update in Mandarin. Districts such as 鰂魚涌 have to land on the firm's picklist value Quarry Bay, and the area basis must be recorded as said, never assumed.

One Person, Three Names

Contacts carry an English name, a Chinese name and a romanised Chinese name. Duplicate detection has to compare all three plus mobile and email, and it must never merge records on its own: merges happen in the CRM by the research team.

Personal Data Under the PDPO

A recording, its transcript and the contacts extracted from it are personal data. By the firm's policy agents announce recording at the start of every meeting, no extracted contact is ever added to a marketing list, and Kaito records which providers processed each recording.

Writes That Must Not Overwrite

The CRM is the system of record. A field edited in Salesforce since Kaito read it, a phone number already present or a validation rule can all block a write, and each one has to return to the agent instead of failing silently.

Our Approach: From Brokerage Rules to a Clickable Review

01

Spec and Rules Research

Mapped 7 roles from agent and team head to the data protection officer and the meeting counterparty, 28 screens across the mobile app, the web app and 2 public notice pages, and the data model for recordings, transcripts, extracted items, contact matches, change sets, field mappings and privacy requests. Wrote down the rules the design follows: the PDPO and its data protection principles, Part 6A on direct marketing, the PCPD's AI model framework, the Estate Agents Ordinance and Hong Kong market practice on area and rent.

02

Clickable Demo on a Production UI Kit

Built 5 key web screens on a production dashboard kit: the inbox with review age colours, processing pipeline and failed CRM writes, the meetings list with status filters, meeting detail with waveform, bookmarks and a transcript by speaker turn, the review screen with field-level diff, evidence panel and duplicate choice, and the duplicates queue with a side-by-side match panel. Approvals, rejections, retries and duplicate decisions update local state.

03

What a Production Build Adds

Speech-to-text for Cantonese, English and Mandarin (such as Azure AI Speech), a language model for extraction and email drafts, Salesforce or HubSpot writes with a conflict check just before writing, Microsoft Graph and Zoom for call recordings, calendar and mailbox drafts, Entra ID sign-in and hosting in a Hong Kong region. Plus the mobile recorder that works offline, bulk approval, field mapping, privacy requests, retention jobs and an append-only audit log.

Why It Works: A Person Approves Every Write

A Diff, Not a Summary

Each CRM record that would change gets its own section, with the current value struck through beside the proposed one, the change type and a confidence chip. The footer counts the changes selected and records affected before anything is written.

Evidence Behind Every Value

Selecting a row shows the quoted transcript lines with their timestamp and the reason the value was chosen, such as a client saying "around nine thousand feet, maybe ten". The activity note logs the summary and next steps, never the full transcript.

Duplicates Decided by People

A likely match shows on the contact section with Use existing or Create new, and the duplicates queue compares candidates side by side with the fields that matched and the CRM owner. Kaito never merges; merges happen in Salesforce.

Failures Come Back to the Agent

Meetings that failed processing show the reason with Retry or Reprocess with language, and approved changes the CRM rejected show the CRM's message with Fix and retry. Reviews turn amber after 24 hours and red after 72.

Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab