Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Switchboard

A local Amazon Connect emulator — learn cloud contact centers without an AWS bill.

Amazon Connect is AWS's cloud contact center: contact flows (IVR), queues, routing profiles, agents in a browser softphone, Lambda data dips, real-time dashboards. It's also pay-per-use with no local mode. Switchboard reproduces the whole mental model on localhost — the same flow-language JSON the real console exports, the same routing rules, the same metric definitions — plus the one thing AWS can't sell you: a simulated floor of callers and agents, so the system is always alive.

No AWS account. No cloud calls. No dependencies beyond FastAPI. Restart to reset.

Unaffiliated with Amazon/AWS; Amazon Connect is a trademark of Amazon.com, Inc. All customer data is fictional (Ridgeline Outfitters, an invented outdoor-gear retailer).

Quickstart

pip install -r requirements.txt
python run.py

Open http://127.0.0.1:5250 — the simulator starts automatically at 6 calls/min with seven auto-agents staffed. Then work through LABS.md (ten hands-on labs) with LEARNING.md (the Switchboard ↔ Amazon Connect concept map) beside it.

What's inside

Instance console

Queues, routing profiles (priority + delay per queue), agents, hours of operation, claimed phone numbers mapped to flows — the layout of a real Connect instance, plus the simulator controls.

Console

Contact flows — the real flow language

Flows are stored and edited as Amazon Connect flow-language JSON (Version 2019-10-30, the exact format the real console exports). 14 block types implemented: DTMF menus, hours/staffing checks, Lambda invocations with the real event shape and flat-response rule, attribute updates with $.Attributes / $.External interpolation, loops, priority changes, queue transfers with capacity error branches. A validator flags broken transitions and a step debugger walks a test contact through block by block.

Flows

Agent workspace (CCP)

Go available, get offered contacts by the router, see the screenpop built from IVR + Lambda data, talk, wrap up with a disposition in after-contact work. Miss an offer and you're benched while the contact keeps its place in line — exactly like the real Contact Control Panel.

CCP

Metrics

Real-time queue/agent state plus historical service level, abandon rate, AHT, ASA, and occupancy — computed with Amazon Connect's definitions — and searchable contact records (CTRs) with the full flow trace per contact.

Metrics

The simulator

Synthetic callers arrive as a Poisson process, listen to prompts, press menu keys (or don't), wait with limited patience, and abandon when ignored. Auto-agents ring, answer, talk, and do after-contact work. Crank the arrival rate past capacity and watch service level collapse in real time — the queueing dynamics behind every contact-center SLA argument, reproducible on demand.

Layout

app/
  flow_engine.py    # interpreter for the Connect flow language
  routing.py        # routing order: profile priority → contact priority → wait
  simulator.py      # caller personas + auto-agents
  metrics.py        # SL / abandon / AHT / ASA / occupancy
  seed.py           # the fictional Ridgeline Outfitters instance
  main.py           # FastAPI app + REST API
flows/              # seed flows (importable Connect JSON)
lambdas/            # local "Lambda" functions (crm_lookup data dip)
static/             # zero-build UI: console, flows, CCP, metrics
tests/              # 49 tests: engine, routing, metrics, simulator, API

Run the tests:

python -m pytest tests -q

Why this exists

Amazon Connect skills show up constantly in government and enterprise work, but practicing on the real service means an AWS account, a payment method, and per-day charges for any phone number you forget to release. Switchboard is the $0 rehearsal: build the vocabulary and muscle memory here, then do the 15-minute tour of the real console (see LEARNING.md § "When you're ready for real AWS") already knowing what every screen does.

License

MIT — see LICENSE.

About

Local Amazon Connect emulator - learn cloud contact centers (flows, routing, CCP, metrics) without an AWS bill

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages