Field dispatch on AWS Communication Developer Services

Many reports. One incident. The right crew, in one tap.

For any organization that sends crews: roadside assistance, home assistance for insurers and utilities. FrontBox folds the many reports of one outage into one incident, lets a tenant policy decide when a person must approve, and offers the job to the right crew as a one-tap WhatsApp message.

The console requires sign-in. The demo video opens on YouTube.

One live journey, seven steps

LIVE-CURRENT
  1. ReportPortal intake with a GPS pin
  2. Bedrock triageP1, electrical hazard, skill HIGH_VOLTAGE_LINE
  3. One incidentA paraphrased second report merged by the agent
  4. Tenant policyReturned REQUIRE_APPROVAL
  5. Human approvalA Commander approves in the portal
  6. WhatsApp offerOn the crew phone about 6 s after approval
  7. Accept ASSIGNEDOne tap on the crew phone

Final live run, 2026-10-28, synthetic tenant. One run, not a benchmark.

Proven live, labelled honestly

Two live runs reached a one-tap Accept on a real phone.

Report intake, Commander approval, the WhatsApp offer, one-tap Accept and ASSIGNED ran on the 2026-10-28 release, twice. Every figure carries its evidence level.

LIVE-CURRENT
ran on this release
LIVE-OLD
ran on an earlier runtime
CI-ONLY
hosted tests with fakes
SOURCE-ONLY
implemented, never run

The citizen side, every SMS send and every SES send are CI-ONLY. The released source passed 2,810 JavaScript and TypeScript tests, 916 Python tests and 48 Playwright tests in hosted CI (CI-ONLY).

Watch the 2 minute 59 second demo video on YouTube (opens an external site)

The demo, 2:59

Watch the final live run, from report to Assigned.

The run on screen is LIVE-CURRENT: one run, not a benchmark. Other scenes are labelled CI-only or illustrative. The narration uses a synthetic voice.

Watch on YouTube

The problem

One storm. Hundreds of calls. Crews outside the system.

Nikolaos, a delivery driver in Marousi, Athens, is stuck in his car with a live 20kV line lying across it. A phone tree takes 47 minutes to find help. With FrontBox, a grid line crew accepts in 43 seconds, and 15 reports -> 1 incident.

Scripted fixtures and a narrative comparison. The skill HIGH_VOLTAGE_LINE sends a grid line crew, not a tow truck. Real figures are in Proven live.

How it works

From the first report to a crew on the way.

  1. Report

    By the web widget (live), WhatsApp (CI-ONLY) or SMS (CI-ONLY; an SMS has no location, so a person takes it over), with a photo and a location. Faces and number plates are masked first (LIVE-OLD).

  2. Triage

    One Amazon Bedrock call returns severity, domain and hazards. Safety rules and a guardrail check it.

  3. One incident

    Duplicates fold into one incident by distance, time and wording. Across different callers, only grid-outage reports merge (Titan embeddings and a bounded agent); other domains merge reports from the same caller only.

  4. Policy

    A versioned tenant policy decides: dispatch now, ask a Commander, require two reviewers, escalate, or deny.

  5. Match

    Amazon Location ranks the qualified crews within 35 km by travel time.

  6. Offer

    The crew gets a WhatsApp message with one-tap Accept and Decline. No app and no account: a zero-seat worker.

  7. Close the loop

    Accept resumes the workflow and the crew gets a progress request. The reporter gets a status update (CI-ONLY).

Fail closed If no crew accepts, the case becomes Escalated, unassigned and a dispatcher takes over. Never a fake success. LIVE-CURRENT, observed once

The crew moment

One tap on WhatsApp resumes the workflow.

  • Zero-seat worker. No app and no account in the dispatch system.
  • The tap resumes AWS Step Functions. The private task token stays in DynamoDB; the buttons carry only an opaque callback ID.
  • The right message type per worker. Interactive buttons inside the worker's own 24-hour window (LIVE-CURRENT, 2 runs), else the approved template (CI-ONLY). With neither, nothing is sent and the next crew is tried.
  • Resume once. The callback is resolved server-side and consumed, so one answer wins.

Illustrative mock-up. The real crew phone is below.

Crew phone with the WhatsApp offer and the progress request
The crew offer on WhatsApp. 1-Tap Accept and Decline, then the progress request (On the way, On scene, Completed). LIVE-CURRENT
Contractor tab with the persisted assignment next to the crew phone
Assigned after one tap. The case header shows "Report to accept: 144 s"; the phone shows the Accept reply and the progress request. LIVE-CURRENT

One platform, four domains

Triage picks the domain. A fixed rule picks the crew skill.

An electrical hazard in any domain needs HIGH_VOLTAGE_LINE. The live runs used one synthetic grid tenant, so dispatch in the other three domains is CI-ONLY.

Agentic, with guardrails

The model proposes. Fixed rules and people decide.

Evaluation against a keyword and lexical baseline

LIVE-OLD, 2026-10-18

Earlier runtime. 150 synthetic reports and 60 single-annotator pairs, English and Greek. The FrontBox figures are the model plus deterministic rules.

Domain accuracy
0.8470.553 keyword
Severity band accuracy
0.7000.420 keyword
Electrical-hazard recall
1.00, 0 false negatives0.473 keyword
Duplicate recall, in-sample
0.892, 33 of 37 merged0.00 lexical

Disclosure: duplicate precision was 1.00 (0 wrong merges) and F1 0.943, in-sample. The first live run on the same 60 pairs scored recall 0.162 and F1 0.279; the prompt and the routing to the agent were then tuned on those pairs. No clean held-out result exists.

Agent trace of the merged report
A second report in other words, merged by the bounded agent. AGENT ADJUDICATED, DUPLICATE OF, similarity 0.61, three tool calls. The report joined the open incident, so no second dispatch started. LIVE-CURRENT, n = 1

Built on AWS

25 AWS services, wired together in one CDK app.

The three AWS Communication Developer Services channels carry every participant-facing step. All 25 are deployed in the current release; which steps ran live is in Proven live.

Messaging (CDS)

  • AWS End User Messaging Social WhatsApp offer and Accept, LIVE-CURRENT
  • AWS End User Messaging SMS CI-ONLY
  • Amazon SES v2 CI-ONLY

AI

  • Amazon Bedrock guardrail, Titan embeddings, Converse agent
  • Amazon Transcribe
  • Amazon Rekognition

Workflow

  • AWS Step Functions
  • AWS Lambda
  • Amazon EventBridge
  • Amazon SQS
  • Amazon SNS

Data and location

  • Amazon DynamoDB
  • Amazon S3
  • AWS KMS
  • Amazon Location Service

Access, web and security

  • Amazon Cognito
  • Amazon API Gateway
  • Amazon CloudFront
  • AWS Certificate Manager
  • AWS Secrets Manager

Release and operations

  • AWS CloudFormation
  • AWS CodePipeline
  • AWS CodeBuild
  • AWS CodeDeploy
  • Amazon CloudWatch

What is live today

Honest limits.

  • LIVE-CURRENT Report intake, triage, the agent merge, the tenant policy, approval, Amazon Location ranking, the WhatsApp offer and one-tap Accept (triage, the merge, the policy and the ranking on the final run, n = 1).
  • CI-ONLY The citizen side, every SMS and SES send, the offer template and the SMS nudge.
  • Pending No approved offer template yet, so an offer reaches only a crew whose own 24-hour window is open. SES is in its sandbox.
  • Illustrative The 43 seconds stays illustrative until a live median over at least 10 acceptances exists.

AWS CDS Agentic AI Hackathon -Sept. 2026.

See the right crew accept, in one tap.

Two live runs. One tap. ASSIGNED. LIVE-CURRENT

Watch the final live run, then open the console.