Customer support · Ticketing
Answer the routine.Escalate the rest.
ResolveAI puts an assistant grounded in your support policies on the front line. When a customer needs a person, it opens a ticket with the whole conversation attached, so agents start with context instead of questions.
- Assistant cover
- 24/7
- Assistant cover
- Ticket statuses
- 4
- Ticket statuses
- Issue categories
- 7
- Issue categories
- DeliveryWhere is my order?
- AccountReset my password
- PaymentI was charged twice
- OrderChange my delivery address
- RefundStart a return
- DeliveryDo you ship internationally?
- OrderCancel before dispatch
- PaymentWhich cards do you accept?
- DeliveryMy parcel hasn't moved
- OrderAn item arrived damaged
How it works
One conversation, two possible endings.
Most questions never need a person. The ones that do arrive with everything an agent needs to act on them.
- 01
Customers ask
Any hour, in plain language. The assistant answers from the FAQs, hours and order and payment policies you configure.
- 02
The assistant decides
Routine questions are answered on the spot. Duplicate charges, refunds, lost parcels or a request for a human become a ticket.
- 03
Your team resolves
Agents pick tickets up from a filtered queue, reply in the thread, and move each one through to resolved and closed.
Features
Everything between the first message and the last reply.
Payment policy
- Cards are authorised at order and charged at dispatch.
- Duplicate charges are always handled by a human agent.
- Pending holds clear in 3–5 business days.
Grounded in your policies
Answers come from the support hours, FAQs and rules you write. When the assistant can't see or change something, it escalates instead of guessing.
- Subject
- Duplicate charge on recent order
- Category
- Payment
- Priority
- High
- Reason
- Customer reports two charges
Escalation with context
Each ticket carries a subject, category, priority and the reason it was escalated, plus the chat that led to it.
- Ticket marked as In progress by Dana
- Ticket marked as Resolved by Dana
- Ticket marked as Closed by Dana
A clear lifecycle
Open, in progress, resolved, closed. Status changes are recorded in the thread so everyone sees what happened and when.
Reply Customer sees this
I've refunded the second charge. It will show in 3–5 days.Internal note Staff only
Gateway retried the capture. Flagged to payments.Internal notes
Agents can talk to each other on a ticket without the customer ever seeing it. Public replies and notes are visually distinct.
We've received your request [Ticket #128]
To Customer
[HIGH] New ticket #128: Duplicate charge
To Support team
New reply on your ticket #128
To Customer
Email at the right moments
Customers get an acknowledgement when a ticket opens and a message when an agent replies. Your team is alerted to new tickets.
Customer
- Chat with the assistant
- Track own tickets
- Reply in thread
Agent · Admin
- Work the full queue
- Reply or add notes
- Set status, priority, owner
Separate customer and staff access
Customers only ever see their own tickets. Staff sign in separately, and staff accounts are never created through public sign-up.
Workflow
Follow a message through the system.
The assistant calls a single tool, create_ticket, when a conversation needs a person. Everything downstream is the queue your team already understands.
- 01
Customer
Asks in /chat, any hour
- 02
Assistant
Reads your policies
- 03
Answered
Resolved in the chat
- 04
Ticket
When a person is needed
- 05
Agent
Replies, notes, resolves
For support teams
A queue built for triage.
By the time a ticket reaches your team, the easy questions are gone. What's left is sorted, labelled and ready to work.
- Metrics at a glance
- Total, open, high or critical, and resolved, at the top of the queue.
- Filters you can share
- Filter by status, priority and category. Filters live in the URL, so a view can be bookmarked.
- Full control of a ticket
- Change status, priority, category and owner from the ticket page.
Under the hood
Built on dependable parts.
No proprietary runtime. A standard web stack your engineers can read, run locally and extend.
- Application
- Next.js 16 and React 19
- Server-rendered pages and Server Actions
- Assistant
- OpenAI
- Function calling for create_ticket
- Data
- PostgreSQL on Neon
- Drizzle ORM and versioned migrations
- Accounts
- Better Auth
- Email and password, three roles
- Resend
- Transactional notifications
FAQ
Questions, answered.
What does the assistant know?
Exactly what you give it: support hours, FAQs, and your order and payment policies. It is instructed to escalate rather than guess when a question falls outside them.
When does a conversation become a ticket?
When it needs a person: duplicate or unrecognised charges, refunds, lost or damaged orders, or whenever a customer asks for a human. The assistant then confirms the ticket number in the chat.
Can customers see internal notes?
No. Internal notes are only visible to agents and admins. Customers see public replies and status changes in their ticket thread.
How do customers follow up?
From My tickets, customers see every ticket they've opened with its current status and full thread, and can reply until the ticket is closed.