Hand off AI chats to your team, Zendesk or Gorgias
Refund exceptions, complaints, and questions the AI cannot support need a teammate. Handoff is the mechanism that makes that transition smooth for both sides: the shopper gets a clear promise of follow-up, and your team gets a real case record with full context.
What triggers a handoff
- The shopper asks for a human - Zubby detects explicit phrases like “talk to a person”, “contact support”, “open a ticket”, or “file a complaint”.
- Money-action requests - “cancel my order”, “I want a refund”, chargeback threats. By default the AI never performs these itself, so they route to a human (see the callout below).
- Low confidence - the AI’s per-exchange confidence score from reply enrichment fell below the service threshold (currently 0.4); the automatic low-confidence path uses high priority. This is distinct from an ungrounded-answer knowledge gap, which uses medium priority when human handoff is enabled.
- Knowledge gap - the AI couldn’t ground an answer in your catalog or knowledge base and would otherwise dead-end. Controlled by the Human handoff switch inSettings → Behavior → AI Setup. This switch governs knowledge-gap handoff; the enrichment-score path is a separate automatic trigger.
- Manual escalation - a teammate clicks Escalate on any conversation in the inbox.
Money actions are opt-in
Settings → AI, all off by default. When off, a refund request always becomes a human ticket. When you enable one, supported Shopify actions require verified ownership, eligibility, and a later-turn confirmation. WooCommerce cancel, edit, and refund requests still become tickets. Address changes are separate: on by default, supported on Shopify and through the WooCommerce plugin. Unsupported or failed writes become tickets. See the platform action matrix.The email-first flow
A handoff is only useful if your team can reach the shopper, so Zubby anchors every handoff to an email address:
- The shopper asks for a human (or requests a money action the AI isn’t allowed to perform).
- If Zubby already knows their email - from a verified login, an earlier lead capture, or a prior message - a support ticket opens immediately and the AI confirms that the team will follow up at that address.
- If not, the AI reassures the shopper and asks for their email in one short question - anonymous handoffs are how follow-ups get lost.
- When the shopper replies with an email, it’s recorded on their profile and the ticket opens. If they decline after being asked once, the ticket opens anyway (without an email) rather than nagging.
Repeat requests never spawn duplicates - one open ticket per conversation.
What happens on escalation
A single escalation fans out everything your team needs:
- The conversation is flagged and a system line is written into the transcript so the context is visible in the thread.
- A native ticket is minted with priority set by trigger: automatic low-confidence and widget shopper requests start high; the knowledge-gap path explicitly starts medium. Messaging-channel human requests normally start medium, while money actions and complaints start high.
- An in-app notification links straight to the conversation.
- Slack and email alerts fire if configured under
Settings → Notifications. - A
conversation.escalatedoutbound webhook fires for custom integrations. If you’ve connected Zendesk or Gorgias, the ticket is mirrored there (see below); a connected Intercom workspace gets a conversation for low-confidence escalations. - The AI drafts a suggested reply in the background for your team to review - it is never auto-sent.
Handing off to Zendesk or Gorgias
If your team already works in Zendesk or Gorgias, keep working there. This is included from the Growth plan up. Every Zubby ticket opens one ticket in your helpdesk: AI handoffs, shopper requests for a human, refund or cancel requests, teammate escalations, and handoffs from WhatsApp, Instagram, Messenger, and SMS. Each one carries the shopper’s name and email, the full transcript with card and bank details redacted, and store and recent order context.
- Open
Integrations, choose Zendesk or Gorgias under More connectors, and enter the account details: for Zendesk your subdomain, agent email, and API token; for Gorgias your domain, user email, and REST API key. - Save, then use Test connection on the same page to confirm Zubby can reach your helpdesk account.
- For two-way sync, follow the steps shown on the page to add a webhook in your helpdesk that points at the store’s webhook URL, then save the webhook secret in Zubby. Until the secret is saved, incoming helpdesk events are rejected and sync is one-way.
With two-way sync on, public agent replies reach WhatsApp, Instagram, Messenger, and SMS shoppers through Zubby, and are added to the Zubby transcript for web chat and email tickets (the helpdesk emails those shoppers itself). Internal notes stay internal. Status changes in the helpdesk update the Zubby ticket: in Zendesk, open, pending, on-hold, solved, and closed map across; in Gorgias, closing resolves the Zubby ticket and reopening reopens it.
What the human sees
Opening the conversation shows the full transcript, an AI summary with intent and sentiment, tags, the shopper’s profile and memory (lifecycle stage, past context), and any internal notes. The reply composer offers the AI-suggested draft (“Use AI draft”, then edit before sending) and your canned replies - type /shortcut to expand one inline.
Replying as a human
Your reply is labeled as coming from the team and appears in the shopper’s widget thread; if their email is on file, it’s emailed to them as well - shoppers who asked for a human have often already left the site. The AI stays available in the same thread for follow-up product questions; your messages become part of the context it sees. When the issue is resolved, set the ticket to resolved and close the conversation from the inbox.
Worked example: verify a helpdesk handoff
Illustrative test with a synthetic shopper, alex@example.test: after saving a test helpdesk connection, ask the widget to speak to a person and provide that test address. Confirm one native ticket links to the conversation, carries the expected source and priority, and appears in the connected helpdesk with a redacted transcript. A connection test alone does not verify ticket creation or a return reply.
Where you have authorized a test reply, send a public response from the helpdesk and verify the documented destination. An internal note should stay internal. If no mirrored ticket appears, check plan access, integration credentials, and connection status. If the ticket appears but replies do not return, check the helpdesk webhook URL and saved secret. Preserve the native ticket and inspect notifications before creating duplicates. Do not promise a response time unless your team has committed to it; configured SLA targets are internal operational goals.
Adjacent
- Inbox - where replies happen
- Support tickets - the case record around a handoff
- Training - turn escalations into answers the AI handles next time