Armakuni Contact us
← All case studies

Its own leaders rated the platform 4 out of 10.
Medicare enrollment season was coming anyway.

A 600-person U.S. Medicare enrollment contact center had inherited an Amazon Connect platform with no failover, no live visibility and no release discipline, and outbound campaigns that stopped whenever a list ran out. We started with a four-week assessment that gave leadership its first honest picture, then a retained Connect team and an outbound engine that keeps every call's state outside the call.

Before

No live view for supervisors and no control over changes.

Outbound ran on people remembering.

After
4 weeksto the first honest baseline of the contact center
  • Live supervisor dashboards and automatic Medicare disclaimer monitoring with Contact Lens.
  • An outbound engine where attempt limits, cooldowns and do-not-call rules run automatically.

Months of work, decided in a few weeks

Medicare's Annual Enrollment Period puts months of work into a short window. For this outsourcer, 600 people handled Medicare enrollment calls for several health-plan clients, each with its own program settings, scripts and reporting requirements. Every call is subject to federal rules, and every system that touches a caller's data needs an audit trail.

The platform already ran on Amazon Connect, built by a previous vendor. The company's own leadership rated it 4 out of 10. There was no failover, so an outage during enrollment season meant missed enrollments, regulatory exposure and lost revenue, with no way to recover.

No live view for supervisors and no control over changes

Contact flows and queues had been stretched far past their design. Supervisors had basic metrics but no live view of queue depth, people's performance or compliance risk, so they learned about problems after callers had. Missed Medicare disclaimers went unnoticed until later.

Changes went out without pull-request reviews, CI/CD or an audit trail, in an environment holding protected health information (PHI) where production access had to stay onshore.

And outbound ran on people remembering

Outbound work added a daily burden. Staff recycled lists, checked suppression and do-not-call rules and reconciled call outcomes by hand. When a campaign used up its list, it stopped until someone noticed. And the dispositions people entered didn't match what actually happened on the calls, so the reports didn't reflect reality.

An assessment first, then fixes in order of risk

The company ran a competitive selection among several AWS partners and chose an assessment first, to trace every dependency, size the work on evidence and then fix the platform in the order that cuts the most risk.

How we built it

4 decisions, in the order we made them. Each one says what we did and why, with what it did drawn beside it.

  1. Follow a change through the whole call
  2. Use the platform the company already paid for
  3. Every change reviewed, and PHI never offshore
  4. Outbound keeps its state outside the call

Follow a change through the whole call

Built withLambdaConnect
One change, traced Failover1Deployments2Client config3Release audit4 the desktop roadmap
The engineering

A routing change can break the agent desktop or a downstream integration, so the assessment couldn't look at contact flows alone. We traced contact flows, queues, Lambda functions, CRM dependencies and the agent desktop together, reviewed against AWS best practices and DORA benchmarks:

  • Engineers reviewed failover readiness, deployment practices and protected-data handling, then sequenced remediation by impact and effort.
  • Program configuration data differed across health-plan clients, so we mapped those differences before restructuring the data used for reporting.
  • A release audit identified the missing PR workflows, CI/CD steps and audit trails needed to trace a change from review to deployment.
  • The compliance posture was mapped against HIPAA, SOC 2, ISO 27001/27002 and HITRUST R2.
  • The desktop replacement roadmap, from the third-party agent desktop to Amazon Connect's own, recorded dependencies and the work needed to keep each client separate during migration.

The four weeks produced a current-state report, a risk-mitigation plan, an architecture diagram, a configuration workbook and an execution plan, and confirmed the team structure on evidence.

Use the platform the company already paid for

Built withConnectContact LensCloudWatch
Paid for already Contact LensQueue dashboardsClient reporting
The engineering

Many of Amazon Connect's capabilities had simply never been switched on. The retained Connect pod improved inbound, outbound, task and guided contact flows. Agent Workspace Views with dynamic data bindings and HTML sections bring each client's information onto the desktop during enrollment calls, so people type less mid-call.

We connected the operation to the platform's supervision tools:

  • Contact Lens supplies in-call and post-call analysis to check the required Medicare disclaimers, as the call happens rather than after.
  • CloudWatch dashboards show queue depth, handling times, people's performance and escalation patterns while the operation runs.
  • Restructured program configuration gives consistent reporting across clients, so supervisors can compare activity without first reconciling different data definitions.

Every change reviewed, and PHI never offshore

Every changeReviewedPHI kept onshore
The engineering

The fixes only stay fixed if the next change can't undo them. Every change now goes through PR review, version control and CI/CD, with an audit trail. Development and testing are separated from production access: offshore engineers develop and test, and designated onshore engineers perform production deployments under the customer's protected-data controls, so PHI never reaches the offshore environment.

Why: in a regulated contact center, how a change gets released is something the compliance team has to be able to show.

Outbound keeps its state outside the call

Built withConnectS3LambdaDynamoDB
Campaign records validatedLimits, cooldowns, do-not-callEligible calls pickedEvery attempt tracked
The engineering

A call can end without the business knowing whether the work is done. An unanswered attempt may need a retry, a suppression rule may make the next attempt ineligible, and an incomplete disposition may need reconciling. The previous design used Amazon Connect as both the phone system and the campaign manager, which is where the fragility came from.

We gave every outbound item a persistent lifecycle outside the individual contact flow. Amazon Connect handles dialing, routing and agent availability. The orchestration layer decides which work is eligible and what happens after each attempt:

  • Campaign records enter through S3, Lambda and DynamoDB, with schema validation, phone normalization, client and program identification, suppression checks and idempotent deduplication before a record becomes eligible work.
  • A state machine and policy matrix represent attempt limits, cooldowns, do-not-call rules, time zones, holidays, state-level dialing rules and contact-fatigue limits, applied to the work item across all its attempts.
  • The scheduler picks eligible items by client and program, and a lease-and-lock mechanism coordinates concurrent campaign processes, cutting duplicate-dial risk.
  • Attempt metadata drives the next state, and a reconciliation job handles incomplete or missing outcomes, so the record no longer depends on manually entered dispositions alone.
  • Reporting follows items through ingested, ready, attempted, completed and suppressed states.

Because the rules live in a state machine, they hold on the busiest day whoever is on shift.

One outbound contact, end to end

  1. A client's campaign list lands in S3. Lambda validates each record, normalizes the number, identifies the client and program, checks do-not-call and suppression, and drops duplicates.
  2. Each record becomes a work item in DynamoDB, in the "ready" state.
  3. The scheduler picks it when it's eligible: inside the caller's time zone, outside a holiday, past its cooldown, under its attempt limit. A lease stops two campaigns dialing it at once.
  4. Amazon Connect dials and routes it to an available person, with the client's information on the Agent Workspace View.
  5. Contact Lens checks the Medicare disclaimer as the call happens.
  6. The attempt's outcome moves the item on: completed, retry later or suppressed. If the outcome is missing, reconciliation fills it in, and the dashboard shows where every item stands.

What we'd tell another CTO

1Assess before you fix. Four weeks of evidence changed what the business invested in and how the team was shaped, and it showed how much of the platform it already paid for, such as workspace views and Contact Lens, had never been switched on.
2Keep campaign state out of the phone system. Amazon Connect dials and routes; the orchestration layer decides what is eligible, and reporting follows each work item's lifecycle rather than what someone typed as a disposition.

What else changed

  • A steadier platform for 600 people, with contact-flow features and workspace views the previous build never used.
  • Consistent reporting across the health-plan clients.
  • A traceable release process, with PR review, CI/CD, audit trails and onshore-only production deployment.
  • An outbound engine where attempt limits, cooldowns, do-not-call rules, time zones and fatigue limits run automatically, with reporting on real outcomes.

What comes next

Full migration to Amazon Connect's own agent desktop (the Contact Control Panel), further dial-rate optimization, and automated onboarding and offboarding of the people taking calls through the HR system.

How we'd do it today

This project came before our current accelerators. Here's how we'd approach the same work now.

Our Connect accelerators fit this operation. The Compliant Connect Accelerator, an eight-step wizard, would build Amazon Connect in the company's own AWS account in about 25 to 45 minutes, with each control mapped to its rule (HIPAA and TCPA included), and where two rules overlap, the strictest wins. ComplianceGen would turn the Medicare scripts and rules into cited rules that appear in the workspace during the call, so a supervisor sees a missed disclaimer as it happens and the QA form fills itself in. Sonic would score every call from 0 to 100, not a sample, and pick the calls worth a coaching conversation each night. Any AI agent on routine enrollment questions would follow AK AI Factory's six jobs, with a golden set of real past calls gating every change.

The 12-month Connect retainer is the managed service in part. Today it would be all of it, from one team: production, with failover and live visibility built in and watched by what callers feel; the applications, with a contact-flow or Lambda bug fixed in the code, with a test, through the release discipline the work put in place; security, with PHI kept onshore and patches and certificates on a calendar; and the AI agents on enrollment questions, each on one register, with every model call through Agent ControlPlane and every step on a trace. A named service lead would answer for all four.

Have a problem like this one?

A free workshop: a few hours with the architects who'd do the work, on your own systems. No cost.

Book a free workshop