Conversational analytics & customer activation

Production Document Chat

A multi-tenant AI assistant that gave winery teams a natural-language interface to their customer, club, order, and sales data—then let them turn answers into charts, exports, tags, and customer messages without leaving the conversation.

Business problem

The challenge

A winery SaaS company held valuable customer and commerce data, but its customers still needed reports, technical queries, or operational help to use it. The information was available, yet answering everyday questions about sales, club members, tasting-room activity, and customer segments remained slow and inaccessible.

A useful chatbot needed more than generic document search. It had to keep every winery’s data isolated and current, preserve conversational context, generate trustworthy analysis, and safely connect recommendations to real actions in external customer systems.

Technical solution

Our approach

The architecture joined a predictable nightly data pipeline with tenant-specific AI assistants and guarded operational tools, giving users fresh answers without exposing cross-winery data or treating every prompt as permission to act.

  1. 01

    Refresh each winery’s data nightly

    A scheduled pipeline compiled current customer, club membership, order header, and order-line data for every tenant. The latest datasets were attached to that winery’s dedicated assistant so answers reflected a consistent, recently synchronized snapshot.

  2. 02

    Create a tenant-aware chat experience

    Authenticated users were scoped to authorized wineries and could switch context explicitly. Persistent threads, chat history, sync timestamps, prompt validation, and suggested questions made the assistant approachable while keeping conversations tied to the correct business.

  3. 03

    Turn data into answers and artifacts

    OpenAI Assistants and Code Interpreter analyzed the winery datasets to answer natural-language questions, calculate segments and summaries, create charts, and produce downloadable customer lists directly inside the chat workflow.

  4. 04

    Connect insight to action

    Guarded function calls integrated with Commerce7 and RedChirp, allowing users to look up or create tags, apply tags to customers or orders, and send targeted customer messages. Validation and queued processing kept consequential actions controlled and observable.

Results & impact

From stored data to a working conversation.

The product made winery data self-service: users could explore performance, build an audience, and activate that audience from the same interface.

$24K

annual recurring revenue

The production assistant became a paid SaaS capability that made customer data directly useful to winery operators.

Nightly

tenant data refresh

Each winery’s assistant received a consistent, up-to-date view of customers, memberships, orders, and sales activity.

3-in-1

analytics workflow

One conversational interface combined business Q&A, visual and downloadable analysis, and operational customer actions.

Visual assets

Ask, analyze, download, and act.

Tech stack

Built for production.

Built and operated as a production, multi-tenant AI product across two applications: a responsive React chat client and a Node/Express service responsible for authentication, tenant authorization, assistant orchestration, conversation persistence, streaming updates, data access, tool execution, and third-party integrations.

React 18TypeScriptMaterial UINode.jsExpressOpenAI Assistants APICode InterpreterSocket.IOSequelizeMySQLMicrosoft SQL ServerCommerce7 APIRedChirpSendGridLDAPJWTAWS EC2PM2