Product
One pipeline from inbound message to confirmed resolution
Admin Shortstop is not a chatbot bolted onto an inbox. It is the operational layer between your communication channels and your CRM, with every step inspectable and every decision recorded.
Open tickets
12
+3
Pending
11
−2
Urgent
4
+1
Follow-ups due
8
6:15 AM
Unmatched
11
+4
Failures
3
1 dead
| # | Customer | Subject | Status | Age |
|---|---|---|---|---|
| 10428 | Ramirez, Yolanda | Charged twice for the July application | Urgent | 12m |
| 10435 | Prescott, Miles | Brown patches spreading across the back lawn | Open | 38m |
| 10442 | Okonjo, Adaeze | Nobody showed up for the scheduled visit | Urgent | 1h |
| 10449 | Lindqvist, Annika | Quote for aeration and overseeding this fall | Pending | 2h |
| 10456 | Bergstrom, Curtis | Please stop service after this season | Pending | 3h |
| 10463 | Nakamura, Hideo | Weeds coming back three weeks after treatment | Open | 4h |
- Gmail inbound → ticket16 processedjust now
- Dialpad SMS ingestion4 processed2m
- ServiceAutopilot syncHTTP 401 · retrying6m
- Routing AI decisionexisting_ticket · 0.948m
AI suggested reply ready
Drafted from 2 approved knowledge-base answers · confidence 0.87
Five steps, every single message
The same path runs whether a request arrives by email, phone, or text — which is what makes the queue predictable.
- 01
Ingest
Gmail push, Dialpad webhooks, and scheduled reconciliation write every event to a durable inbox before anything is processed.
- 02
Match
Senders resolve to an account or lead across email, phone, and normalized name, with a refresh-and-retry pass before giving up.
- 03
Route
Recent active tickets are compared against the new message to decide whether it continues a thread or starts a new one.
- 04
Assist
Urgency, closure, and suggested-reply decisions run independently, each with its own threshold and audit record.
- 05
Resolve
Follow-ups ask the customer directly, escalate on repeat dissatisfaction, and close tickets on confirmation.
Unified communications
Channels stop being separate inboxes
Gmail, Dialpad calls, voicemail, and SMS land in one queue, cleaned and attributed before a person reads them.
- Push and webhook ingestion first, scheduled reconciliation only as a safety net.
- Quoted history, signatures, tracking pixels, and form envelopes removed deterministically.
- Attachments deduplicated by content hash so a reply never re-uploads the whole thread.
- Excluded senders and domains filtered before any work is created.
- Ramirez, YolandaGmailCharged twice for the July application12m
- Okonjo, AdaezeDialpad callMissed visit · AI recap attached38m
- Lindqvist, AnnikaDialpad SMSNew gate code is 44171h
- Prescott, MilesWeb formQuote for aeration and overseeding2h
Ticket routing
Fewer duplicate tickets, cleaner threads
Routing is a single, narrow decision: does this message belong to an existing ticket, or is it a new issue?
- Only active, non-closed tickets from the recent window are considered.
- Assignment and category stay with your team unless you explicitly configure otherwise.
- Every routing decision records the candidates, the choice, and the confidence.
- Deterministic fallback keeps the queue moving when the model is unavailable.
Inbound email
“The weeds along the driveway are back again after the last visit.”
- #10463 · Weed control follow-upAppended as a note · confidence 0.94
- #10391 · Billing questionDifferent issue — not selected
AI assistance
Bounded by a knowledge base you control
Suggestions are drafted only from approved answers, and never sent without a person in the loop.
- Approved answer, internal action, and do-not-say on every knowledge-base entry.
- Closed tickets generate training suggestions that require review before promotion.
- Urgency detection is separate from routing and separate again from closure.
- Provider, model, prompt version, latency, and cost captured per decision.
“Creeping charlie is one of the tougher broadleaf weeds and almost always needs a second application. Re-treatments are included at no charge under your program — I have queued a free service call for the driveway strip within 5 business days.”
Never sent automatically. A person reviews, edits, and sends — the draft just removes the blank page.
Follow-up and resolution
A lifecycle, not a status field
Pending tickets are chased, escalated, or closed on evidence rather than left to age quietly.
- Seven-day prompt with three outcomes behind secure, expiring, single-use links.
- A short change window absorbs mis-clicks before anything is applied.
- Repeat dissatisfaction escalates automatically and notifies management.
- Outbound-only tickets follow a silent lifecycle with no customer prompt.
Day 0
Ticket moves to Pending
Day 7
Follow-up email sent with three outcomes
Day 7
Customer selects Resolved Normally
Day 7
Ticket closed, resolution logged for training
Day 9
Auto-close if nothing is heard back
Operational visibility
Built to be audited, not trusted blindly
Correlation IDs, retries, dead letters, and a manual queue for anything the system could not resolve on its own.
- Durable event inbox means a downstream outage delays work instead of dropping it.
- Failed events retry with backoff, then dead-letter with the full request and response.
- Unmatched senders queue for a person and can be resolved and replayed.
- Connection health surfaces expiring credentials before they break the pipeline.
Events processed today
1,284
+18% vs last Tuesday
Median time to ticket
14s
Gmail push to CRM write
Matched automatically
94.2%
5.8% to manual review
Retries succeeded
27 / 29
2 in dead-letter queue
Every decision carries a correlation ID. Open any ticket and trace it back through the exact event, match, and model call that produced it.
See it against your own queue
We will connect a sandbox, run your last week of messages through it, and show you exactly what would have been automated.