Virtual AI Sales Assistant for E-commerce
The client ran a Shopify-based direct-to-consumer brand with roughly seventy SKUs across two product categories and a substantial paid acquisition budget. Their analytics showed a healthy top-of-funnel but a cart abandonment rate above the category benchmark and a long tail of pre-purchase questions hitting email support, often with twelve-hour response times. By the time support replied, the buying intent had cooled.
Generative AI Solutions
Retail/E-commerce
10 weeks from kickoff to full traffic rollout
4 specialists
The full story
The specific user problem was that the product detail pages did not surface the answers customers actually needed before buying. Sizing for one category and ingredient sensitivity for the other were the two most common pre-purchase questions, and both required a back-and-forth that the existing support channels could not handle in the moment. The brand had tried a generic chatbot from a marketing tool vendor, which answered questions correctly less than half the time and was disabled within a month.
We built a product-aware sales agent that grounded every response in the live catalog, the existing knowledge base, and the customer’s session context including cart contents and browsing history. The agent recommended upsells only when an existing cart item created a natural pairing, scored against historical attach data so the suggestions did not feel arbitrary. Order follow-up emails were generated per customer rather than from a static template.
What shipped was an in-store chat surface that handled pre-purchase questions in seconds with citation back to product pages, plus a post-purchase email engine that adapted tone based on order value and lifecycle stage. The agent escalated to human support only when it lacked confidence, with the full conversation context attached so the support agent did not start cold. Attach rate and reorder rate moved in the same quarter and the brand reallocated paid budget against the new conversion baseline.
A healthy top-of-funnel was leaking out at the product page — sizing and ingredient questions had no in-moment answer.
Cart abandonment was running above the category benchmark with sizing and ingredient questions topping support inbox volume.
Email support responded in twelve-plus hours, by which point buying intent had cooled and the session was lost.
A prior generic chatbot answered correctly under half the time and was disabled within a month of launch.
Upsell suggestions in the cart were rule-based and ignored what was already in the cart, leading to low attach rates.
Post-purchase emails were template-driven, so high-LTV customers got the same nurture flow as one-time discount shoppers.
How we structured the engagement
Grounded the agent in live catalog and session context so every answer was traceable to a real product page or policy.
- 01Phase 01Weeks 1-2
Discovery
Audited six months of support tickets to taxonomize pre-purchase questions, sampled fifty session recordings, and measured drop-off points on the product detail pages. Output: a question taxonomy, a confidence threshold for human escalation, and an attach-rate model from order history.
- 02Phase 02Weeks 3-4
Architecture
Designed a RAG agent grounded in three sources — the live Shopify catalog, the existing help center, and a session context store containing cart and browsing history. Picked Postgres with pgvector for retrieval over a managed vector database to keep tenant scoping simple.
- 03Phase 03Weeks 5-8
Build
Shipped the agent, the session context store, and the upsell scorer in parallel. The upsell scorer used a gradient-boosted model trained on the historical attach data with cart contents as features. Built the email engine on top of the same grounding sources so post-purchase tone stayed consistent with pre-purchase.
- 04Phase 04Weeks 9-10
Launch
Rolled out to a single subdomain at fifty percent traffic split for two weeks, then ramped to one hundred percent after the conversion lift held outside the noise band. Tuned the escalation threshold weekly based on support agent feedback on escalated conversation quality.
What we built, component by component
- 01
Catalog sync
Pulls Shopify product, variant, and inventory data into a normalized store with change detection on every webhook.
- 02
Knowledge index
Embeds help center and policy content into pgvector with per-section metadata for grounded retrieval and citation.
- 03
Session context store
Tracks cart contents, browsing history, and prior interactions per visitor with a thirty-day rolling window.
- 04
Sales agent
LLM with tool access to the catalog, knowledge index, and session store, gated by a confidence threshold for escalation.
- 05
Upsell scorer
Gradient-boosted model on historical attach data that ranks pairings against the current cart and surfaces top suggestions.
- 06
Lifecycle email engine
Generates post-purchase emails per customer using the same grounding sources for tone and content consistency.
A visitor opens the storefront and the session context store begins tracking cart and browsing events. When the visitor asks a question, the sales agent retrieves grounding context from the catalog and knowledge index, generates a response with citation, and either escalates or routes to the upsell scorer for in-cart suggestions. The email engine consumes the same context for post-purchase outreach.
The trade-offs we made and why
Chose pgvector over a managed vector store
Tenant-scoped retrieval with row-level security was simpler in Postgres than in a separate vector service, and the retrieval volume per tenant did not justify a dedicated cluster. Operational simplicity won over a small recall improvement.
Built a separate upsell scorer rather than asking the LLM to pick
LLM-picked upsells looked plausible but did not match historical attach behavior. A gradient-boosted model on real attach data grounded the recommendations in what customers actually bought together, and the agent presented the picks rather than choosing them.
Routed escalation with full conversation context attached
Cold escalations forced support agents to restart the conversation, which customers experienced as a step backward. Passing the full transcript and the agent’s reasoning gave the support team a head start and reduced escalated-ticket resolution time.
Single grounding layer across chat and email
A separate template system for post-purchase email would have drifted from the live catalog within weeks. Reusing the same retrieval layer kept tone, product detail, and policy references in lockstep across surfaces with no extra maintenance burden.
What changed for the client
conversion rate
Measured against the holdout traffic split over the two-week ramp period, then sustained over the following quarter.
average order value
Attributable to the upsell scorer surfacing relevant pairings in-cart, with attach rate moving on top SKUs.
monthly sales lift
Incremental monthly revenue attributable to the agent and email engine across the rollout quarter.
response time
Median end-to-end response time from user question to grounded answer with citation on the storefront chat surface.
The tools behind the system
Built with a deliberate stack chosen for production reliability and operational velocity.
Lessons learned from the build
Grounding the agent in the live catalog rather than a snapshot was the single change that earned customer trust. Stale answers about inventory or pricing broke trust faster than wrong answers about policy, so we made catalog freshness the highest-priority signal.
Confidence-based escalation needed weekly tuning during the first month. The threshold that read well on synthetic queries was too eager on real traffic and produced too many escalations. Watching the escalation queue daily during ramp was time well spent.
Post-purchase email turned out to be where the LTV lift came from. We had scoped it as a secondary surface and it produced more attributable revenue per impression than the storefront chat did. Next time we would budget for it equally from week one.
Similar delivery work usually starts in these service areas
If you are exploring a similar product, workflow, or implementation challenge, these are the service tracks that usually fit best.
Where this project sits in the bigger market picture
AI use cases for retail, commerce, personalization, pricing, and customer support.
Build a result-driven AI product with a team that has shipped before
If you are exploring a similar product, workflow, or AI use case, we can help scope the right architecture, delivery model, and first milestone.
Related case studies worth reviewing next
Have an AI idea, messy workflow, or product vision? Let's make it buildable.
Bring the problem. We'll help shape the product, define the architecture, and show the fastest path to a serious first version.
A practical first roadmap in the discovery call
Architecture, timeline, and delivery options in plain English
Security, scalability, and reliability discussed upfront
Model registry
softus-rag-v4.2
187ms
Latency
128k
Context
$0.004
Cost / req
Evaluation suite
Deploy pipeline
prod / canary 25% — healthy
