Case studyComputer visionVoice AI agents
Visual product search and cart-recovery calls for an ethnic-wear brand
By Sagar DavaraPublished
In productionIn short
Mirai Minds built two AI add-ons for an ethnic-wear e-commerce brand in India. Staff photograph a product, or a marketing reel playing on a screen, and get matching catalog products back from an image-embedding index. A separate service checks abandoned checkouts every 5 minutes and triggers a recovery call from our Voice Agents platform.
The story
The problem
The brand sells ethnic wear online, and its staff use an in-house app. Two gaps stood out. Staff needed a fast way to find a product from what a customer shows them, which is often a photo or a reel rather than a product name. And abandoned checkouts were going without any follow-up.
What we built
- Visual product search. A staff endpoint takes a photo and sends it to a separate search service that holds the image-embedding index. The index scores two kinds of material with the same query: catalog product photos and frames from the brand's marketing reels. Each product keeps its best score across both, results are de-duplicated, and the top 10 come back with direct product links. Every failure, from missing credentials to an unreachable index, returns one clear "visual search unavailable" message instead of a raw error.
- Reel indexing. Reels are processed incrementally on AWS Fargate, frames are indexed once, and reel matches map to the products tagged in that reel.
- Cart recovery. A small FastAPI service polls the store's abandoned checkouts every 5 minutes through the Shopify Admin GraphQL API, skips carts it has already handled, adds the cash-on-delivery charge and asks our Voice Agents platform to place a call with the cart as context. Phone numbers are masked in its logs.
How it works in production
Visual search went live for staff in July 2026. It is connected privately to the production API but runs apart from the production database, so search load stays off the store's database. Uploads are capped at 300 KB, which keeps the round trip short from a phone on a shop floor. Cart recovery runs on its 5-minute schedule; the voice agent handles the conversation, and call outcomes land in the platform's call history. The underlying work is described under computer vision and voice AI agents.
What we'd change
- Measure recovery with a holdout group from the first week. Without one, the effect of a call can't be separated from customers who would have come back anyway, so we don't publish a recovery rate.
- Use webhooks where the checkout supports them. A 5-minute poll is simple and dependable, but a webhook would let the call go out sooner after the cart is abandoned.
Stack
What it runs on
- Visual search
- Image-embedding indexAWS LambdaAWS Fargate for reel processing
- Store
- Shopify Admin GraphQL APIFastAPISQLAlchemy
- Voice
- Mirai Minds Voice Agents platform
- Scheduling
- APScheduler