Inspiration
What it does
How we built it## Inspiration
Online shoppers lose patience waiting on hold for order status updates. We asked a simple question: what if a customer could just WhatsApp "where is my order?" and get an instant, grounded answer — 24/7, in their own language? That sparked OrderMate, an agentic customer-communication assistant built entirely on AWS Communication Developer Services.
What it does
A customer messages a business's WhatsApp number asking about an order. OrderMate receives the message via AWS End User Messaging Social, an agent retrieves the real order status from DynamoDB, drafts a reply with Amazon Bedrock, and sends it back over the same WhatsApp channel — within ~3 seconds end to end. Escalations to a human are routed automatically.
How we built it
- Inbound: WhatsApp message → End User Messaging Social → SNS → Lambda webhook
- Agent: Python Lambda orchestrating Bedrock tool-calling (order lookup, refund policy RAG)
- Channel APIs:
send_whatsapp_messagefor outbound replies and delivery receipts - State: DynamoDB session store keyed by WhatsApp user id
- Dev workflow: Kiro specs drove the message-schema and retry logic design, which cut our iteration loop from hours to minutes
Challenges we ran into
- WABA verification delays: Meta business verification took days, so we mocked the WhatsApp channel with a local replay harness until approval.
- Duplicate inbound events: SNS retries caused double replies; we added
an idempotency key on
message_idin DynamoDB. - Cold-start latency: Bedrock calls + Lambda init exceeded 8s initially. Provisioned concurrency and prompt trimming brought p95 under 3s.
What we learned
End User Messaging removes the burden of maintaining a raw WhatsApp Business API integration — message status callbacks land directly in our AWS environment, which made observability (CloudWatch + delivery receipts) first-class instead of a bolt-on [64][65].
What's next for OrderMate
- Multi-channel failover (WhatsApp → SMS) using End User Messaging SMS
- Sentiment-based human takeover scoring
- Analytics dashboard for resolution rate per campaign
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for quitedob
Built With
- chinese
Log in or sign up for Devpost to join the conversation.