Rick's Cleaners Ops Ticketing Agent
A printer goes down at a store. Someone calls or texts a personal cell. The request lives in memory. The person forgets it en route to another location. The store team stops asking for help because requests disappear.
A printer goes down at a store. Someone calls the work number or texts it. The agent records the call, transcribes it, decides it is a ticket, labels it as IT/urgent, assigns it to the right owner, and posts a Slack notification. If the owner does not resolve it in 24 hours, the agent nudges them. The request is tracked, assigned, and visible to the whole team.
Requests disappear across phone calls, texts, Slack, and email
When a printer fails at a store or an item arrives damaged at a plant, staff call, text, Slack, or email someone on your ops team.
No central record means nothing gets tracked, load-shared, or held accountable.
When requests disappear, teams stop asking for help.
One person carries the mental load of every open issue across all locations.
One board captures every request automatically
Calls, texts, Slack messages, and emails become tickets automatically without anyone typing them into a system.
A single Slack-connected board shows every open, critical, and stale ticket across all stores and plants.
After three months, labeled ticket history reveals recurring problem types by location and actual workload distribution.
The agent listens to your work number, reads Slack channels, monitors Outlook, and captures inbound texts. It decides what is actually a request, labels it by type and urgency, assigns it to Pete, Dylan, Cheryl, Eddie, Daniel, or the pool, and nudges owners when tickets age past 24 hours. After three months, the labeled history shows you where the work actually is and what kinds of problems recur by location.
How the agent captures and routes requests
The agent monitors four channels simultaneously. When a request arrives, it decides if it is actually a ticket, extracts which store or plant it came from, labels it by type and urgency, and assigns it to the right person or queue.
A dedicated work number records calls and texts. The agent reads your per-store and per-plant Slack channels. It monitors your Outlook inbox. Staff forward stragglers from personal numbers to the work number.
Not every Slack message or call is a request. The agent filters out everyday chatter and surfaces only actual work: a printer down, an item damaged, a piece missing, a customer escalation.
The agent figures out which store or plant the request came from. It labels the ticket by type (IT, damaged item, missing item, customer escalation, etc.) and urgency so important ones surface first.
The ticket auto-assigns to the person who received it, or routes to the pool if unassigned. Slack notifies the owner. A Railway cron nudges owners when tickets age past 24 hours.
Recorded phone calls and transcripts +
Inbound calls to the dedicated work number are auto-recorded, transcribed, and sent as text to the agent for classification.
Inbound SMS text messages +
Text messages to the work number are captured and sent to the agent for classification.
Slack channel messages +
Messages in per-store and per-plant Slack channels are read by the bot and sent to the agent for classification.
Outlook email messages +
Emails to your team's mailbox are monitored via Microsoft Graph and sent to the agent for classification.
Classify is-this-a-ticket +
The agent filters out everyday chatter and decides whether the message is an actual request needing action.
Extract branch and store/plant +
The agent derives which of your 15 stores or 3 plants the request came from using inbound number, Slack channel, email metadata, or message content.
Label by type and urgency +
The agent categorizes the request (IT, damaged item, missing item, customer escalation, etc.) and assigns an urgency tier so critical issues surface first.
Assign to owner or pool +
The agent auto-assigns the ticket to the person who received it, or routes it to the manual-triage queue if ownership is unclear.
Labeled ticket on the board +
A single ticket record showing source channel, originating store/plant, category, urgency, assignee, and age.
Slack notification to owner +
The assigned owner receives a Slack message with the ticket details and a link to the board.
Stale-ticket nudge after 24 hours +
If the ticket is not resolved, the agent sends a Slack reminder to the owner and escalates to Pete or Dylan if it ages further.
Labeled ticket history in Supabase +
Every ticket is persisted with channel, branch, category, urgency, assignee, timestamps, and resolution state for future analysis.
Is this for you?
- + Multi-location service businesses - Any company with 10+ stores, plants, or service locations where non-standard requests come in across phone, text, Slack, and email and need to be routed to a small central ops team.
- + Teams with 5-10 ops owners - The assignment model works best when a small, known group of people resolves requests and anyone can take most tickets.
- + Companies already on Slack and Microsoft 365 - The agent integrates into your existing stack. No new app to live in. All notifications flow through Slack.
- + Teams that want to understand actual workload - After three months, the labeled ticket history shows you recurring problem types by location and helps you rebalance responsibilities before key people leave.
- - Single-location businesses - If you have one store or plant, the branch-attribution and load-distribution benefits do not apply.
- - Teams with no Slack or Microsoft 365 - The agent requires at least Slack for notifications and ideally Outlook for email monitoring. If you use neither, integration cost rises.
- - Requests that need AI auto-resolution - This build captures and routes requests. Humans resolve them. If you need the agent to handle requests end-to-end, that is a future phase.
Scoped build plus usage-based runs
The build is quoted as hours at $50/hr rather than flat credits because it is larger than a standard MVP. Expect approximately 20 hours of engineering to set up the four-channel ingestion, the LLM classification pipeline, the Slack-native board, and the stale-ticket escalation logic. After launch, you pay for each request the agent processes (call transcript, text, Slack message, email) based on the LLM tier you choose.
- Build cost is quoted in hours at $50/hr, not flat credits, because this is a larger-than-usual project.
- Usage cost depends on request volume and the LLM tier (standard or SoTA). Estimate your monthly request volume before launch.
- The prototype is included in the build cost and ships with synthetic data so you can test the intake and board before connecting live channels.
- You provide the dedicated work number (your choice of telephony provider), Slack bot token, Microsoft 365 app registration, and Supabase project URL. No additional software licenses required.
How do requests get captured without manual entry?
The agent monitors four channels simultaneously: a dedicated work number that records calls and texts, your per-store and per-plant Slack channels, and your Outlook inbox via Microsoft Graph. When a request arrives, the agent decides if it's actually a ticket, extracts which store or plant it came from, labels it by type and urgency, and creates a ticket automatically. Staff who receive requests on personal numbers simply forward them to the work number.
What happens when a ticket is assigned to someone?
The agent auto-assigns the ticket to the person who received the request, or routes it to the owner pool if ownership is unclear. The assigned owner receives a Slack notification with the ticket details and a link to the board. If the ticket isn't resolved within 24 hours, the agent sends a Slack reminder to the owner and escalates to Pete or Dylan if it ages further.
Will this work if our team uses Slack and Microsoft 365?
Yes. The agent integrates directly into your existing Slack and Microsoft 365 stack. All notifications and reminders flow through Slack, so there's no new app to learn or live in. The agent reads your per-store and per-plant Slack channels and monitors your Outlook inbox automatically.
What if we have a single location instead of multiple stores and plants?
This build is designed for multi-location operations where requests come in across distributed teams and need to be routed to a central ops group. If you have one store or plant, the branch-attribution and load-distribution benefits don't apply, and a simpler ticketing approach may be more cost-effective.
Can the agent resolve requests automatically, or do humans handle them?
Humans resolve requests in this build. The agent captures requests from all four channels, labels them by type and urgency, and routes them to the right person on your ops team. Your team members then handle the actual resolution. This approach ensures accountability and gives you full control over how each request is handled.
How does this help us understand our actual workload and team capacity?
After three months, the labeled ticket history shows you what kinds of problems recur by location and how much work each type generates. This data reveals your actual workload distribution and helps you rebalance responsibilities across your team before key people leave. You can see which stores or plants generate the most requests and what types of issues consume the most time.
What's the difference between this build and a standard ticketing system?
Standard ticketing systems require manual entry. This agent captures requests automatically from phone calls, texts, Slack, and email without anyone typing them in. It also routes everything through Slack so your team doesn't have to switch tools. The focus is on eliminating the manual work of logging requests and keeping everything visible in the tool your team already uses.
What do we need to provide to get started?
You'll need to provide a dedicated work number (your choice of telephony provider), a Slack bot token with access to your store and plant channels, Microsoft 365 app registration details for Outlook monitoring, and your Supabase project URL. You'll also want to share a sample of recent real requests across all channels (calls, texts, Slack messages, emails) so we can tune the agent before launch. No additional software licenses are required.
shared_pattern
shared_pattern
shared_pattern
Stop requests from disappearing across your distributed team.
Book a call to confirm the four-channel setup, define your urgency tiers, and provide a sample of real requests so we can tune the agent before launch.