Amira AI lead assistants
I worked on a WhatsApp lead-handling system for a real-estate team. It joined customer conversations, property context, staff notifications and follow-up records. The central problem was ownership: automation should help a lead move forward without competing with the person already handling it.
Two conversations, one channel
Customer messages and staff replies needed different interpretations. A customer asking about a viewing should enter the conversation flow; a staff member responding to an assignment should update the handoff. I designed the routing and logging around that distinction, including the interval in which an assigned person could respond before assistant fallback.
The words used for staff actions mattered. A brief acknowledgement such as 'OK' does not establish that someone contacted a customer. I worked on explicit claim, defer and contact signals so the recorded state reflected an actual action rather than an optimistic interpretation.
Keeping replies grounded
I connected listing and CRM context to the assistant's responses and worked through failures involving mismatched listings, incomplete property information and requests for viewings. The assistant needed to distinguish an enquiry from a confirmed appointment, and a requested handoff from one that had actually happened.
A request is not a confirmation. That distinction belongs in both the conversation and the records used by the team.
Making changes without losing the thread
The work grew to include workflow audits, database and event-log structure, provider behavior, and controlled release packages. Repeated messages, interrupted actions and uncertain delivery results needed deliberate treatment: retrying blindly could duplicate the very notification the team was waiting for.
I kept the later redesign separate from the existing operational workflows while testing its import and runtime behavior. That redesign exposed further platform integration work and did not complete a production cutover. Testing exposed where the platform behaved differently from the workflow specification, giving the next iteration a concrete set of problems to resolve.