Why Lex + Claude, not just Claude
Lex handles fast structured intents (Acknowledge, Escalate, GetDetails) without an LLM call — sub-second response, cents per turn.
Free-form questions fall through to FallbackIntent and route to Claude. Best of both: deterministic where it can be, intelligent where it needs to be.
Conversation context in session state
Lex is stateless between turns, so conversation history is serialized into session attributes and passed back to Claude on each turn via the Bedrock Converse API. No external store needed.
Severity filtering at the edge
Webhook Lambda drops info-level alerts before Connect is invoked. Saves call cost, avoids alert fatigue, keeps the system focused on real incidents.
Tradeoff: telephony region matters
Originally built in us-east-1; migrated to eu-central-1 for cheaper Israel calling and access to Israeli DID numbers. Lesson: choose the region by where calls go, not where the team sits.