Skip to content

Applied AI operations

From an AI Conversation to a Confirmed Handoff

A helpful conversation is not permission to send someone’s details to a sales team. I built a separate, editable confirmation step and kept its data path distinct from chat analytics.

3 min read

Senior AI Engineer · M.S. Computer Science, Tsinghua University · See the products I built

In this article · 5 sections
A conversation can produce a proposed summary, which the visitor edits and confirms before the lead system receives contact details. Redacted analytics follow a separate consent path.
How it works. Answer generation, analytics consent and contact submission are independent decisions.Open full size ↗

The engineering decisions

  • Keep local chat, redacted analytics and submitted contact details in separate data paths.
  • Let the visitor edit and explicitly confirm the handoff summary.
  • Measure actual lead delivery separately from generating an answer or opening the chat.

The handoff needed its own product flow

The assistant could explain products and point to approved sources, but some questions still needed a person. The tempting shortcut was to send the conversation to the team as soon as the model classified a visitor as interested. That would have conflated conversational assistance with an intentional contact request.

I made the handoff a separate form. It showed an editable summary, separate email and phone fields, product and solution categories, optional room dimensions and the visitor’s message. The interface explained that the team would receive the information only after the visitor selected Confirm and send. The model could help prepare context, while the visitor controlled what was submitted.

Three stores, three purposes

The first version kept recent conversation history in the browser for seven days, capped at 24 messages, with a Clear action. The application server did not retain full conversations or AI answers. Contact details and the confirmed summary entered the lead system only through the submitted handoff form.

Analytics had a different purpose and a smaller payload. With analytics consent, redacted question-level events recorded the result type, page, source identifiers, latency and model. Full conversations, generated answers, names and contact details were excluded. The documented retention cap was 30 days. These are implementation policies, not a claim that every possible downstream system has the same retention behavior.

Keep the purposes separate
PathContentTrigger
Browser historyRecent conversationLocal use, with clear and expiry
Question analyticsRedacted event and outcomeAnalytics consent
Human handoffContact details + confirmed summaryExplicit form submission

Model availability must not gate contact

Provider failure or the daily call limit should not leave the visitor at a dead end. The assistant still returned the closest verified sources and offered human follow-up. The lead form remained useful independently of whether a model answer had just succeeded.

This also made operational failure easier to explain. A generated answer, a saved lead and a notification accepted by the receiving service are different events. Counting chat openings as conversions would hide failures between those steps.

GolfJoy U.S. storefront with the Ask GolfJoy entry point
In the product. Public storefront preview. The visitor opens the assistant deliberately, rather than receiving an automatic sales interruption.Open full size ↗

Evaluate the path, not just the prose

The July acceptance work separated deterministic routing checks from live model-answer checks. The handoff itself used a deliberately labeled test lead and verified that the receiving team channel accepted the expected fields. That establishes a tested integration path, not an increase in sales or a customer conversion rate.

Operational reporting tracked no-source answers, fallback outcomes, explicit feedback, actual lead records and notification delivery separately. Those observations can identify whether the knowledge is incomplete or the handoff is broken. A single answer-quality score would not locate either problem.

Make the transfer legible to the visitor

The reusable decision was to make each boundary visible: what stays in the browser, what is measured, what the visitor is sending and whether delivery succeeded. That gave the assistant a useful role in customer support without letting a conversational inference stand in for the visitor’s action.

Project context and evidence

Written from my July 2026 U.S. assistant implementation and test-acceptance records. Public links below support the product and attribution context. Internal project records are summarized, with customer records, credentials, and employer source code omitted.

All articles ↗