Quick-service restaurants often juggle ordering across an app, website, phone line, and counter. Each channel is a separate system to build and run, and each fragments the customer’s history. The same person looks like a stranger on every channel. AWS’s Machine Learning Blog (September 4, 2026) walks through a solution that consolidates ordering into WhatsApp, using Amazon Bedrock AgentCore and Amazon Nova 2. The result is a single assistant that handles text, voice notes, and calls, with shared memory so a customer who texts today and calls tomorrow is recognized as the same person.
The Architecture: One Backend, Three Channels
The design separates three concerns: the WhatsApp layer handles conversation, three agent runtimes handle each channel, and the backend holds menu, carts, orders, and locations. Inbound traffic arrives on a single HTTPS webhook, is acknowledged with a 200 immediately, then processed asynchronously via SQS. This keeps each layer independently deployable.
The customer front door is the Meta WhatsApp Business Platform, which exposes the Cloud API webhook, Messages API, Media API, and Calling API. AWS CDK provisions everything on the AWS side, including API Gateway, Lambda, SQS, DynamoDB, and more. The backend logic is exposed as MCP tools through AgentCore Gateway, a managed MCP server. Agents call tools like GetMenu and PlaceOrder by name, keeping the channel and ordering logic separate.
Cross-Channel Memory: The Key to Continuity
AgentCore memory provides one shared, cross-channel record keyed by a hashed customer ID. When a message arrives, the worker derives a pseudonymous customer_id using a pepper stored in Parameter Store. At session start, the runtime reads the customer’s long-term insights from memory. At session end, events are written back. This means a customer can start an order by text, then finish it with a voice call, and the agent knows exactly where they left off.
Channel Flows: Text, Voice Notes, and Calls
Each channel uses a different runtime but shares the same backend tools and memory. Text messages go through the chat runtime, which streams Amazon Nova 2 Lite via the Converse API. Voice notes are decoded to 16 kHz PCM and fed into a bounded Amazon Nova 2 Sonic speech-to-speech session. There’s no transcription service in the path—it’s true voice-in, voice-out. Voice calls use WebRTC with a managed TURN relay from Amazon KVS, and only the voice-call runtime runs in a VPC.
Practical Considerations
This solution is substantial. It uses many AWS services, and the build pipeline compiles ARM64 agent images via CodeBuild. You’ll need to set up the Meta WhatsApp Business Platform as a prerequisite, and populate secrets in Secrets Manager out-of-band. The architecture is designed for production, with dead-letter queues, IAM authorization, and encryption at rest.
For product builders, the main takeaway is the separation of channels from backend logic. By exposing the backend as MCP tools, you can add or remove channels without changing the ordering system. And shared memory solves a real pain point: customers don’t want to repeat themselves. If you’re exploring multimodal agents, this post offers a concrete blueprint for handling text, voice, and calls in one system.
One limitation: the AWS post doesn’t include performance benchmarks or cost estimates, so you’ll need to test with your own traffic. But as a reference architecture, it’s a solid starting point for any business looking to meet customers where they already are.
Sources
AI-assisted summary compiled from the sources above, reviewed by a human before publishing.
