Inspiration

During a payment outage, the first evidence almost never arrives from a monitoring dashboard. It arrives from customers — five of them, within thirty seconds, each describing the same failure in completely different words. "Checkout is spinning." "UPI failed." "My card was rejected." "I was debited but there's no order."

Ticket by ticket, those look unrelated. Five support agents open five investigations, collect the same information five times, and give five inconsistent updates. The systemic issue gets recognised only once volume spikes or engineering raises an alert — by which point customers have already retried, repeated context, and lost confidence.

That gap is what CrisisCrew is built for. Our core insight: incoming support tickets aren't only support requests. Together, they are incident telemetry.

What it does

CrisisCrew is a multi-agent orchestration layer that sits on top of Freshworks conversations and continuously watches for emerging incident patterns.

Detect → A read-only Pattern Agent correlates incoming tickets on semantic similarity, timing, product surface, entities, and operational context. In our demo scenario the correlation score reaches 89%, crossing the incident threshold.

Investigate → Incident Commander creates one coordinated incident (INC-2026-081) instead of five independent investigations, then activates specialists. The Investigator Agent queries external systems through MCP: payment-gateway health comes back healthy, ruling out the obvious external cause; the deployment tool returns checkout-service v4.21.7, shipped 14 minutes before the first complaint; service telemetry shows an 8.6× error-rate spike after that release. Root-cause confidence: 91%.

Recover → The Recovery Agent links 8 related tickets, identifies 15 additional customers affected but silent, and prepares consistent proactive updates. ElevenLabs can voice-call selected high-impact customers while the swarm continues in the background.

Hand off → A proposed ₹11,500 recovery-credit crosses the configured financial authority threshold, so the Handoff Agent escalates to a human with root cause, affected customers, actions already taken, and the recommended resolution attached.

Five complaints → one incident → 23 customers protected → one human decision.

How we built it

The architecture is Freshworks-native with a controlled MCP tool layer:

Freshworks Agent Studio runs the customer-facing and orchestration workflows, supplies conversation and ticket context, executes approved actions, and manages human handoff. MCP tool layer gives each specialist agent typed, permission-scoped, auditable access to operational systems: get_payment_health(), get_recent_deployments(), get_service_status(), link_ticket_to_incident(), identify_affected_customers(), send_customer_update(), request_human_approval(). ElevenLabs handles proactive voice recovery for high-impact customers — deliberately scoped so the product doesn't collapse into a voice bot.

The five agents are separated by enterprise trust boundaries, not by task convenience. Diagnosis is read-only. Investigation uses controlled MCP tools. Recovery holds limited write access. High-risk actions go to a human. Autonomy is proportional to business risk, across four levels: automatic reads, limited writes, customer consent, human approval.

For Stage 1 we deliberately built one polished end-to-end scenario rather than simulating every enterprise incident class. The goal was to make the agentic workflow legible, not to fake breadth.

Challenges we ran into

Correlation without false positives. The whole product dies if it declares an incident every time two people mention checkout. Tuning the threshold meant weighting timing and entity overlap alongside semantic similarity, so that coincidental language matches don't trigger a swarm.

Deciding where autonomy stops. The tempting design is one general agent with broad access. It's also the one no enterprise will deploy. Splitting agents by permission scope cost us orchestration complexity but bought explainability — you can always answer "which agent did this, and what was it allowed to do?"

Keeping the customer in the loop, not the loop. It's easy to build incident tooling that optimises for engineering and leaves customers waiting. We inverted it: customer language triggers detection, customer context guides recovery, and Freshworks coordinates communication.

Latency and cost at incident volume. An agent swarm that's elegant at one ticket and unaffordable at five hundred isn't a product. This shaped how aggressively we cache and scope retrieval.

Accomplishments that we're proud of

CrisisCrew recognises that "checkout is spinning" and "my card was rejected" are the same failure — with no shared keywords, no shared channel, and no human connecting them. That inference is the whole project, and it works.

We're also proud that the system knows when to stop. It doesn't approve the ₹11,500 credit. It builds the complete case and hands a human the decision.

What we learned

The hardest problem in agentic systems isn't capability — it's calibrated authority. Getting an agent to propose a compensation amount is straightforward. Getting it to reliably recognise which decisions aren't its to make is the part that determines whether anyone ships it.

We also learned that treating unstructured customer conversation as a first-class telemetry stream changes what "monitoring" means. Customers detect failures your dashboards haven't instrumented yet.

What's next for CrisisCrew — Autonomous Customer Incident Swarm Broaden beyond payments to shipping, auth, and API-partner incident classes Learn correlation thresholds per-organisation from confirmed and rejected incidents Post-incident synthesis: auto-drafted RCA documents from the agent evidence trail Full audit logging surface for compliance review of every autonomous action

Built With

  • agentic-ai
  • elevenlabs
  • fastapi
  • freshworks
  • freshworks-agent-studio
  • llm
  • mcp
  • model-context-protocol
  • multi-agent-systems
  • python
  • react
  • tailwindcss
  • typescript
  • vite
Share this project:

Updates