Dream Games keeps HelpShift as the system of record for player support. Ada sits inside that conversation as the AI layer — it doesn't replace HelpShift, it resolves what it can and writes the outcome straight back into the ticket.
The moment a player sends a message, HelpShift's SDK fires a webhook that lands in Ada's Conversations API. From there, Ada's reasoning engine takes over — searching the knowledge base, triggering the right playbook, and calling out to the CRM for account, purchase, and inventory data — before replying back through the same channel. The steps panel on the Live Chat page shows this full sequence as it happens, straight from Ada's own conversation log.
When a playbook resolves (or needs to escalate), Ada calls a single action — UpdateHelpShiftIssue — to write the outcome back into the ticket. This is what keeps HelpShift as the system of record even when Ada resolved the issue end-to-end.
PUT /issues/{issue_id}
Content-Type: application/json
{
"state": "resolved" | "needs_human" | "legal_escalation",
"tag": "auto_resolved" | "needs_human" | "legal_escalation"
}
Three real call sites in the current build:
1. Missing Reward/Purchase Recovery (resolved automatically) → state: "resolved", tag: "auto_resolved" 2. Challenging Level Complaints — repeat contact after a tip didn't help → state: "needs_human", tag: "needs_human" → followed by RUN → Handoff (transfers the conversation to a human agent) 3. Legal or Threat Escalation — detected legal/unauthorized-charge language → state: "legal_escalation", tag: "legal_escalation" → zero generative reply, immediate RUN → Handoff
This same action points at HelpShift's Issue Update API, keeping the ticket state and tag in sync with what Ada just resolved or escalated.