Answers with citations
Every reply would link the doc, ticket or file it came from.
In design · open-source Rust core and hosted agent, both planned
SupportGenius is a planned AI support agent. It would answer from your docs, tickets and files, by text or voice, and turn anything it cannot answer into a ticket for support, a lead for sales, or a GitHub issue with reproduction steps for engineering. You would embed a widget, drop the iOS or Android SDK into your app, connect a phone number, call the API, or let your own agents use it as a tool.
<script src="https://supportgeni.us/w.js" data-key="sg_live_…"></script>
planned
The intended one-line embed. It does not work yet: there is no w.js and there are no keys.
An animated illustration of three sample conversations. On a web widget, a customer asks how to change a billing address and is answered from the billing docs. In an iOS app, a customer reports that the export button returns a 500 on large CSVs; with no fix in the docs, the agent files a GitHub issue with reproduction steps and severity high, and the same escalation is shown landing in Jira, Linear, Zendesk and with an on-call person. On a phone call, a customer asks about volume pricing for 50 seats, and the agent passes a lead to Salesforce.
HOW IT WOULD WORK planned
Docs URL, help center, uploaded files, past tickets, indexed and kept in sync.
One script tag would add the widget, with text and voice. Native iOS and Android SDKs for your apps. A phone number, yours or a new one, that the agent answers. The API, from your own UI. Or an MCP tool, so your own agents can answer and escalate too.
Engineering bugs to GitHub, Jira or Linear. Support tickets to Zendesk. Leads to Salesforce. A person on the mobile app or through the API. Or the built-in open-source ticketing.
FEATURES
What SupportGenius is being designed to do. None of it is built; every card is a plan.
Every reply would link the doc, ticket or file it came from.
Customers would talk instead of type, and the agent would reply with speech.
Connect your existing number or get a new one. The same agent would answer calls, escalate and hand over to a person, with the call transcribed into the ticket.
Title, steps, expected versus actual, environment and a severity label.
The same bug should never be filed twice: a match would link to the existing issue instead.
It would answer only when it is sure, and otherwise ask a question or hand off.
A person could take over any chat from the mobile app or through the API, with the full transcript attached.
Answers in the language the customer uses, in text or voice.
What customers ask, what gets answered, what gets escalated.
With one tap of approval, the SDK would attach the client-side stack trace, console errors, device and app version, and on mobile a short, capped screen recording, deleted after the retention period.
Optional response and resolution targets per severity or plan. Timers would start on filing; a target at risk nudges the tool, and a breach pages a person.
Plain-language status updates to the customer as the ticket moves, until it is resolved and confirmed.
The ticketing and routing core is planned in Rust, as one static binary you could self-host.
An MCP server and tool schema, so Claude, GPT or your own agents could search sources, answer and file issues.
HOW AN ESCALATION WOULD HAPPEN planned
The design rule: nothing reaches your tools on a single model's say-so. A drafting model would turn the conversation into a structured ticket; an independent judge model would validate it and decide whether, where and with what priority it is filed. From then on, the customer would be kept informed until the issue is closed. The panels show sample output, not a real run.
Text or voice. The agent would try to answer from your sources first, and ask a clarifying question when it needs one.
"The export button returns a 500 on large CSVs." retrieval: 0 fixes confidence: 0.31 → escalate
It would extract a title, reproduction steps, expected versus actual behaviour, environment and a proposed severity from the transcript.
title: Export returns 500 on CSV > 50 MB steps: [3 extracted] env: Chrome 129, EU attachments (approved): stacktrace.txt screen.mp4 0:42 severity: high (proposed)
An independent model would score the draft: is it a real defect, is it reproducible, is it a duplicate, is the severity justified, is any customer data leaking?
is_defect: 0.94 ✓ reproducible: 0.88 ✓ dup of #311: 0.12 ✗ severity_ok: ✓ high pii_scrubbed: ✓ verdict: FILE
Bugs to GitHub, Jira or Linear. Support cases to Zendesk. Leads to Salesforce. A person on the mobile app when the judge says so.
destination: github repo: acme/app labels: [bug, severity:high] → acme/app#482 created ← link posted in chat
The ticket would stay linked to the conversation. Status changes in your tools would trigger plain-language updates to the customer, in chat or by email, until it is closed.
acme/app#482
triaged
→ "An engineer is
on it"
in review
→ "A fix is being
tested"
released
→ "Fixed in v2.14.
Try the export?"
closed
← customer confirms
Response and resolution targets per severity or per plan. The agent would set the timer when it files, nudge the destination when a target is at risk, page the on-call person on breach, and tell the customer what to expect.
| SEVERITY | FIRST RESPONSE | RESOLUTION | ON BREACH |
|---|---|---|---|
| critical | 15 min | 4 h | page on-call, notify customer |
| high | 1 h | 1 business day | page on-call |
| normal | 4 h | 3 business days | nudge destination, Slack |
| low | 1 business day | next release | weekly digest |
HUMAN IN THE LOOP planned
The agent would handle the conversation. Your team would watch, approve, take over and hand back, from a mobile app or through the API, and every handover would keep the full context.
By chat, by voice, or inside your mobile app. The agent would answer from your sources where it can.
Retrieval and an answer with citations, or a structured ticket scored by the judge model.
The judge is unsure, the customer asks for a person, the account is flagged, an SLA is about to breach, or your policy requires approval before anything is filed. The on-call person would be notified.
From the phone: read the transcript, edit the draft issue, approve, reject, link a duplicate, or join the chat live, while the agent keeps suggesting replies.
The conversation returns to the agent, which would own the follow-ups and the lifecycle updates to the customer.
The person's answer or edit would be stored as a reviewed source, so the next customer with the same question gets it without a handoff.
Hi, this is Maria from support. I've seen the 500 on your export. Could you tell me roughly how many rows the file has?
INTEGRATIONS
None of these connectors exists yet. They are the destinations and surfaces the product is being designed around.
Issues with labels, repro steps and a link back to the chat
Bugs and tasks into a project, with priority mapped
Issues into a team's triage inbox
Tickets with the transcript and customer attached
Conversations and human handoff
Tickets with the transcript attached
Leads and cases with intent and account context
Contacts and deals from qualified chats
Escalation posts to a channel, claimed with one click
A person takes over the chat from their phone
Port your number or get a new one; calls answered by the agent and transcribed into tickets
A signed JSON payload per event, or pull over REST
Native chat and voice in your Swift app, with opt-in stack traces and screen recording
Native chat and voice in your Kotlin app, with opt-in stack traces and screen recording
Answer, search and escalate, exposed as tools to your agents
An open-source Rust core, planned as one self-hostable binary
PRICING planned
Nothing is for sale and no price is set. These are the tiers being planned, without numbers, so none can be quoted before launch.
For trying it on a small site.
For teams shipping a product.
For high-volume support.
Run the Rust core yourself.
Voice, including phone calls, is planned to be billed per minute beyond an included allowance. No figure is set for that either.
Nothing is built yet. Leave your address and you will get one email, when there is something to use.
Email [email protected] and you will be added by hand.