Connects to Postgres, MySQL, and your knowledge base
AI support agent that intelligently resolves customer tickets
Your ResolveIQ agent answers customers from live rows in your production database — not a stale copy of your docs.
Hi — where’s my order #4821? It was supposed to arrive yesterday.
Sorry for the delay! Your order shipped Tuesday via UPS and is out for delivery today — it should arrive by 6 pm. Here’s your tracking link.
How it works
Safe by construction: the agent never writes SQL and never replies without grounding.
- 1
Connect your data
Upload docs, crawl your help site, and connect Postgres or MySQL over a read-only connection.
Data sources- production-dbread-only
- help.acme.com214 pages
- refund-policy.pdfindexed
- 2
Approve lookup templates
You define a reviewed set of parameterized queries. At runtime the agent picks a template and fills in the parameters — it never writes SQL.
Lookup templates- orders.lookup_by_id(order_id)approved
- subscriptions.by_email(email)approved
- refunds.status(order_id)in review
- 3
Resolve with live context
The agent drafts answers grounded in your docs and live data. Your team approves in one click, or the ticket escalates to a human.
Ticket #3182draft readyHi Maya — your refund of $42.10 was issued yesterday and should reach your card in 3–5 business days.
refunds.status · liveApprove & sendEdit
Safe by design
Production access your security team will approve
Giving an AI agent your database is scary — so we designed the scary parts out. Three guarantees hold on every single lookup.
The agent never writes SQL
At runtime the model can only pick one of your reviewed lookup templates and fill in its parameters. There is no code path where model-written SQL reaches your database.
- “Where’s my order #4821?”
- orders.lookup_by_id(4821)approved template
- SELECT * FROM orders WHERE…no SQL authoring
Tenant isolation is cryptographic
Identity-scoped lookups run only for visitors your server signed (HMAC). An unsigned chat can never fill an identity parameter — customers only ever see their own rows.
- maya@acme.comHMAC verified
- subscriptions.by_email(email)from verified identity
- Unsigned visitoridentity params withheld
Read-only, allowlisted, audited
Connections run in read-only sessions against tables you allowlisted, and every query is logged with parameters, timing, and row count.
- orders.lookup_by_id1 row · 38 ms
- refunds.status1 row · 41 ms
- subscriptions.by_email2 rows · 45 ms
- Read-only enforced per session
- Credentials encrypted at rest
- TLS verification, bring your own CA
- Row caps and query timeouts
Honest AI
Your team approves every resolution
We don’t auto-close tickets on an uncalibrated confidence score. The AI drafts the answer — grounded in your docs and live data — and a person sends it.
- Drafts are grounded in your knowledge base and live database rows — with the sources shown on every draft.
- Your team approves in one click, edits before sending, or escalates — nothing reaches a customer unapproved.
- Every edit is tracked, so you can watch the share of drafts sent untouched climb before trusting more automation.
- Approve & send
Refund hasn't arrived
#3182 · draft ready
Change billing email
#3181 · sent · unedited
Duplicate charge
#3179 · escalated to human
Inline chat block
Drop the agent into any page — not just a corner bubble
The same agent that answers your support widget embeds as a block element: an Ask HR desk in your intranet, a help block in your docs, or front and center on your landing page.
- One script tag with data-mode=“inline” — no SDK, no build step, sized to fit its container.
- Signed visitor identity works the same everywhere: an employee asking about PTO only ever sees their own rows.
- Floating bubble, standalone help page, inline block, REST API — one agent, every surface.
<div id="ask-hr"></div> <script src="https://resolveiq.app/embed.js" data-agent-id="…" data-mode="inline" data-target="#ask-hr" async></script>
How many PTO days do I have left this year?
You have 15 of 24 PTO days left this year. Heads-up: 5 of those are carried over and expire Sep 30 — here’s the request form if you want to book them.
Everything a support team needs
From first connection to resolved ticket — with a human in the loop the whole way.
Live database answers
Answers “where's my order?” from the actual row in your database, not a stale doc.
Grounded in your docs
Upload files, crawl your site, or add Q&A pairs to build the agent's knowledge base.
Human-in-the-loop drafts
The AI drafts the resolution; your team reviews and sends. Nothing goes out unapproved.
Read-only and audited
Read-only connections, table allowlists, and an audit log of every query the agent runs.
Escalation built in
When the agent isn't confident, it hands off to a human with full conversation context.
Deploy anywhere
Floating bubble, inline chat block, standalone help page, or the REST API — one agent, every surface.