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_message for 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

  1. WABA verification delays: Meta business verification took days, so we mocked the WhatsApp channel with a local replay harness until approval.
  2. Duplicate inbound events: SNS retries caused double replies; we added an idempotency key on message_id in DynamoDB.
  3. 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
Share this project:

Updates