Academic case study · Tec de Monterrey (ITESM)

Real-time supervision for the cloud contact center.

Agents take live calls through an in-browser Amazon Connect softphone while supervisors watch every agent's state, transcription and sentiment alerts update in real time. Powered end to end by an event-driven AWS architecture.

AWS-native Event-driven Serverless GraphQL
10+
Integrated AWS services
Live
Transcription & sentiment alerts
GraphQL
AppSync + DynamoDB data layer
Real‑time
Supervisor monitoring via WebSocket
See it running

A walkthrough of the live S2C Control Panel.

A real screen recording of the working app — narrated, ~1:50. Press play (audio on).

localhost:3000 / ControlPanel REC

The live S2C Control Panel — a full walkthrough of the agents panel, channel-saturation widget, notifications, metric cards and the frequently-used quick actions, with the built-in help chat.

The real product

The supervisor view, for real.

Where the demo walks the whole app, this is the supervisor's Agent Management screen — every agent's live state on one grid, styled after a retail-scale support operation. Academic build, not affiliated with Walmart.

Full-size view of the S2C Agent Management dashboard: a queue navigation on the left (Walmart.com Support, Walmart Express, On-site Client Support, Walmart Pass), a grid of roughly forty color-coded agent headset icons in the center — black idle, blue on-call, red with a warning triangle for needs-help — and a live Agent Overview feed on the right listing long-call, sentiment-analysis and availability alerts.
Agent Management — one glanceable grid of every agent's live state across four support queues, with a real-time alert feed on the right.
Idle · offlineBlack headset — logged in but not currently handling a contact.
On a callBlue headset — the agent is live on a customer call right now.
Needs help · alertRed headset — flagged by a long-call or sentiment-analysis trigger.

Long-call detection, live sentiment flags and availability all push to the Agent Overview feed in real time.

Capabilities

Built for the floor and the booth.

Everything an agent needs to take a call, and everything a supervisor needs to run the room.

Agent Control Panel

An in-browser Amazon Connect softphone with a live call timer, per-call documentation, team chat and an in-app AI assistant. Agents toggle Available / Offline — state that propagates to the roster in real time.

Live transcription & sentiment alerts

Call audio streams through Kinesis Video Streams to Amazon Transcribe, turning both sides into real-time transcript segments scored for sentiment positive sentiment negative sentiment. Per-call negative sentiment is flagged straight to supervisors.

Supervisor Control Panel

A live agent grid, channel-saturation gauges for the online and physical-store queues, KPI metric cards, real-time notifications and quick actions. Mid-call, an agent's "needs help" flag surfaces here instantly.

Call management & real-time sync

Manage individual calls — each logged with its Connect ARN and timestamps — and review historic metrics and reports. Agent↔supervisor team chat and live updates ride a WebSocket API (API Gateway + Lambda) over AppSync and DynamoDB.

System design

An AWS-native, event-driven architecture.

The team's own diagrams: audio flows from Amazon Connect through Kinesis Video Streams and a chain of Lambdas into Transcribe, DynamoDB and S3 — every hop a managed AWS service.

The team's detailed AWS system architecture diagram. A customer calls into Amazon Connect, whose contact flow starts media streaming, sets contact attributes and invokes AWS Lambda. The kvsTrigger Lambda writes to the contactDetails DynamoDB table. Amazon Kinesis Video Streams feeds the kvsTranscriber Lambda, which calls Amazon Transcribe and writes transcriptSegments and transcriptSegmentsToCustomer to DynamoDB and audio to the to-from-audio-files S3 bucket. A processContactSummary Lambda and an overlay-audio Lambda then produce a combined-audio recording in S3.
System architecture — Connect → Kinesis Video Streams → Lambda → Transcribe, with DynamoDB persistence and S3 audio summary + overlay.
The team's original flow diagram, in Spanish. A customer makes a call (Cliente hace una llamada), an agent answers (Agente atiende), and Amazon Connect feeds Kinesis Video Stream. Python Lambdas (trigger and transcriber) call Amazon Transcriber, results go through a WebSocket API in API Gateway to a React front end, and a supervisor monitors (Supervisor monitorea).
Original flow diagram (ES) — customer call to real-time supervisor monitoring over a WebSocket API and React front end.
A real Amazon Connect contact flow in the visual flow editor: an entry point leads to Start media streaming, Set contact attributes, Invoke AWS Lambda, Set working queue (BasicQueue), Transfer to queue and Disconnect, with Spanish error-handling prompts on the failure branches.
Under the hood — the real Amazon Connect contact flow: media streaming, Lambda invoke, queue routing and error handling.
type Supervisor
nameString
emailString
profilePicString
type Agent
nameString
emailString
needsHelpBoolean
calls[Call]
type Call
ARNID
phoneString
callStartAWSDateTime
callEndAWSDateTime
agentAgent

The AppSync GraphQL schema behind it. The whole stack is provisioned as infrastructure-as-code with AWS Amplify + CloudFormation and validated with Cypress end-to-end tests — reproducible from a single deploy.

Two experiences, one platform

Agent view vs. Supervisor view.

Cognito groups gate each role into the interface built for it — the same data layer, two very different jobs.

Agentcognito group · agent
  • Log in and load the embedded Amazon Connect softphone
  • Toggle Available / Offline and take calls in-browser
  • Raise a "needs help" flag mid-call for a supervisor
Supervisorcognito group · supervisor
  • Monitor every agent's live status on one dashboard
  • Receive real-time "needs help" and sentiment flags
  • Review calls linked to each agent by Connect ARN

The stack behind S2C

Next.js 14 React 18 AWS Amplify UI amazon-connect-streams Amazon Cognito AWS AppSync (GraphQL) Amazon DynamoDB AWS Lambda (Python) Amazon Connect Kinesis Video Streams Amazon Transcribe Amazon S3 API Gateway (WebSocket) Cypress E2E Amplify + CloudFormation
Archived academic case study

A documented architecture, not a live app.

S2C was built by Equipo 5 — Summit Services & Consulting — at Tecnológico de Monterrey. The original AWS backend ran on the university's account, decommissioned when the course ended, so the live environment no longer exists. What remains is the full product design and a complete, AWS-native, event-driven, real-time architecture — read it as a case study in wiring a browser softphone to a serverless GraphQL backend, end to end.