Inspiration

Shopping conversations often break when customers switch messaging apps. Product questions stay in SMS, cart details are lost in another channel, and order confirmations arrive without the context that led to the purchase. Customers have to repeat themselves, while businesses maintain disconnected conversations across messaging and email.

What it does

OmniLoop is an agentic commerce prototype that keeps one conversation history per customer across SMS, RCS, WhatsApp and email. Its agent can search a product catalog, update a cart, place an order and send a receipt through another channel. The reproducible offline demo begins with an SMS product search, continues on RCS with two powerbanks added to the cart, places a 298 PLN order and sends an email receipt with the same order ID and total.

How we built it

AWS Communication Developer Services form the live communications backbone: AWS End User Messaging sends SMS and RCS through AWS SDK v3, AWS End User Messaging Social sends WhatsApp messages through a SigV4-signed API request, and Amazon SES v2 delivers email. In live mode, Amazon Bedrock Converse supplies model responses and tool calls. TypeScript, an Express webhook server and shared in-memory conversation state connect these components. The offline demo uses mock delivery and a deterministic scripted model; live AWS delivery requires provisioned identities, permissions and model access. This prototype does not include an AgentCore deployment.

Try it out

Requires Node.js 22 or newer. From the project directory:

  • npm install
  • npx tsc --noEmit
  • npm test
  • npm run demo

Expected: TypeScript passes, four tests pass, and the demo prints SMS search, RCS cart, RCS order, email receipt. Order IDs vary per run. See the README for live configuration and the architecture doc for the design.

Accomplishments and what we learned

Keeping a single conversation identity across channels with different identifiers (phone numbers, WhatsApp IDs, email addresses) taught us to design the conversation state as the source of truth, with delivery channels as pluggable transports. The mock/live gateway pattern let us build and test the full agentic flow offline before provisioning AWS resources.

Built With

Share this project:

Updates

Submission history