Independent product work · Conversational commerce · 2025 – 2026
WhatsApp Sales Agent
A WhatsApp sales agent whose catalog, price and stock come from Shopify. The model does not invent a number. A human takes over when the conversation leaves the tools.
WhatsApp · Shopify · Tool calling · OpenAI · DeepSeek · Failover
Context
The store already lived in Shopify. Buyers were already on WhatsApp. The failure mode of a naive bot is well known: it invents a price, confirms stock it does not have, and a human has to unwind the mess.
My ownership
- Agent on WhatsApp wired to Shopify as the source of truth.
- Tools for live catalog, price and inventory.
- Draft orders instead of a hallucinated checkout.
- OpenAI / DeepSeek failover.
- Human handoff when the tools cannot answer or the buyer needs a person.
Constraints
- Never invent price or availability.
- WhatsApp is the interface. Answers about price and stock come from Shopify tools.
- If the model provider fails, fail over or hand off. Sales does not stop on one API.
Architecture
WhatsApp message → agent → tools: Shopify catalog / price / stock → tool: create draft order → OpenAI, fail over to DeepSeek → reply on WhatsApp → human handoff on tool failure, unsupported intent, or an explicit escalation rule
AI architecture
- The model is not the catalog. Price and stock come from Shopify tool calls.
- Vision when the buyer sends a photo of a product.
- Failover across providers.
- Handoff runs on a tool failure, an unsupported intent, or an explicit escalation rule.
Tradeoffs
The model does not create the charge. It opens a Shopify draft order. Payment stays with a human or the existing checkout.
Impact
The agent reads Shopify for catalog, price and stock, opens a draft order, and hands off to a human when the tools cannot answer.
What I learned
- Catalog, price and stock are tool results. The model does not invent them.
- OpenAI and DeepSeek are both in the request path, with failover.
- Human handoff is a branch in the same flow as the draft order.
Example exchange
Illustration of the tool path. Not a customer transcript.
Buyer: Do you have the 2kg bag? Agent: Shopify shows 14 in stock. I can open a draft order. Buyer: Yes. Agent: Draft order is open. A person on the team confirms payment.