Built specifically for public works, utilities, and municipal operations teams.
🤖
AI Photo Analysis
Residents upload a photo and Claude AI instantly identifies the issue type from your SR templates. Top matches shown with confidence scores.
Claude AI
📍
ESRI Geocoding
Every address geocoded via ESRI World Geocoder. For Cityworks users, coordinates are projected into your coordinate system and the SR is pinned on the map.
ArcGIS
🔌
Cityworks & Trimble Unity
Direct REST API integration creates SRs, attaches photos, and adds comments in one transaction. No manual entry.
API
✉️
Email Delivery
No Cityworks? CivicBot packages each submission into a clean, actionable email — SR type, description, address, photo — delivered straight to your team.
No CW needed
🏷️
Custom SR Aliases
Rename any SR type to plain language residents understand. "POTHOLE-REPAIR-ASPH" becomes "Report a Pothole."
Admin
📱
Embed Anywhere
One script tag on your city website. Or share the standalone link on social, in emails, or as a QR code on city vehicles and signs.
No-code
🚨
Emergency Routing
Flag categories like sewer overflows or main breaks as emergencies. The bot stops the form and shows click-to-call buttons for your business-hours and after-hours numbers — with the right number highlighted based on the current time.
New
📥
Pending Review Queue
Optional triage workflow. Staff approve (or reject with a reason) every submission before it reaches Cityworks. Single approve, batch approve up to 100 at once, customizable resident-facing message, and inline reason capture.
New
📧
Closed-Loop Notifications
Automatic emails to residents on submission, approval, and rejection — with reference number and Cityworks SR number. Cuts the "did you get my request?" callbacks dramatically.
New
🔎
Resident Status Lookup
Residents type their CB-2026-XXXXX reference — or any Cityworks SR number from your system — into the chatbot to see live status (Open / In Progress / Closed). Works for SRs your staff created over the phone, too. No login required.
New
🔁
Bi-Directional Cityworks Integration
Most 311 platforms only push to your CMMS. CivicBot also reads back — auto-polling Cityworks every 30 minutes for status updates so residents always see the current state without you lifting a finger.
Bi-directional
🤖
Smart Category Narrowing
Resident types in plain English ("trash can busted") and the AI surfaces only the 2-3 most likely categories with confidence scores. No more scrolling past 28 buttons.
New
🧭
Intent-Aware Conversation
The bot decides on every message whether the resident is asking a question or reporting an issue. Questions route to Answers; reports start a service request. Even mid-conversation: ask about hours, then say "I have a pothole" — the bot pivots seamlessly.
New
⏩
Auto-Skip Answered Questions
If a resident says "pothole at Main and 5th" in their opening message, the bot recognizes both the category AND the location — and skips re-asking. No "I just told you that" frustration. Fewer steps to submit.
New
🕷️
Automatic Website Crawl
Point CivicBot at your city website and it crawls, chunks, and indexes the content automatically. Initial crawl runs on activation; weekly re-crawls keep it current.
Firecrawl
🔍
RAG-Powered Q&A
Retrieval-Augmented Generation: AI searches your indexed content before generating an answer. Responses are grounded in your actual city pages — not AI training data.
OpenAI + RAG
📎
Source Citations
Every answer includes links to the source pages on your website. Residents can click to read more. Staff can verify accuracy at a glance.
Transparency
📋
Unanswered Q Log
Every question CivicBot can't answer is logged in your admin dashboard. Use it to identify content gaps on your website and improve resident self-service over time.
Admin