Inspiration

Traditional customer support is slow and repetitive

Customers often wait too long or repeat information multiple times

We wanted to build an intelligent system that automates ticket analysis, identifies similar issues, and escalates only when necessary

The idea was to combine LLMs, vector search, and voice AI into one streamlined escalation system

What it does

Accepts support tickets through an API

Uses Amazon Bedrock to analyze and classify the issue

Creates vector embeddings and checks for similar past tickets

If a similar solution exists, it generates a response with a confidence score

If the confidence is low or no match is found, it triggers a voice call to a Level 1 agent using Twilio

Conducts a natural, multi-turn conversation to gather more information

Logs and stores all responses in MongoDB

How we built it

Flask-based backend handling REST API and Twilio webhooks

NLX for the MCP server and Claude desktop for the MCP client

Amazon Bedrock for issue classification and AI-generated solutions

SentenceTransformers to generate ticket embeddings

S3 for storing embeddings and MongoDB for storing all ticket metadata

Twilio Voice API with Polly voices for natural speech and Gather for speech input

Thread-safe memory handling for active calls and their state

Challenges we ran into

Making Twilio voice flows sound natural while handling no-input or unclear responses

Thread-safe handling of concurrent voice calls and live response data

Embedding generation and retrieval with consistent similarity scoring

Integrating Bedrock, embeddings, and Twilio smoothly into a real-time pipeline

Managing multiple webhook callbacks during and after the voice interaction

Accomplishments that we're proud of

Built an end-to-end smart escalation system from ticket submission to voice support

Integrated vector search and LLM-based solution generation

Created a voice flow that dynamically adjusts based on responses

Automated the decision to escalate based on confidence scores and past tickets

Successfully launched real phone calls and tracked responses in real time

What we learned

How to build a scalable AI-driven support system

Effective use of Bedrock and vector similarity in real-world flows

How to handle speech input, call states, and fallbacks in Twilio

The value of voice-based interfaces in support escalation

How to structure threaded voice call processing with shared state

What's next for AgenSupport

Add a dashboard for agents to view active calls and ticket histories

Use LLMs to summarize multi-turn call transcripts

Add support for other channels like SMS or Slack

Introduce learning loops from past resolved tickets to improve matching

Let customers directly interact with the AI before any human escalation

Built With

Share this project:

Updates