← All projects

(Case study · 10)

TrueTerra Oils AI ChatbotAI Product Advisor Chatbot

By Md. Habibur Rahman Shohel · 2026

  • React
  • TypeScript
  • Node.js
  • Express.js
  • MongoDB
  • OpenAI
TrueTerra Oils AI Chatbot preview

An AI chatbot that recommends essential oils from the brand's own catalogue and knowledge base, in compliant language.

Terra is a chat assistant on TrueTerra Oils' site. Customers describe what they need; Terra recommends products and explains how to use them, answering only from TrueTerra's own product data — a knowledge base of 2,446 articles plus the product catalogue. Every answer follows strict FDA-compliant wording. Built with retrieval-augmented generation (OpenAI embeddings and MongoDB Atlas vector search), a Node.js and Express API, and a React and TypeScript chat interface.

Year
2026
Stack
React · TypeScript · Node.js

(How it works)

Terra · TrueTerra OilsOnline
↑

Animated illustration of the real flow, with sample data — not a live system.

(What I built)

  • 01Chat assistant 'Terra' that recommends products
  • 02Answers from 2,446 articles and the product catalogue
  • 03FDA-compliant wording on every answer
  • 04Conversation history per user
  • 05Fast repeat answers with an in-memory cache

Process

(Problem → what I did)
  1. 01

    Problem

    Turning 2,446 Markdown files into a searchable knowledge base.

    What I did

    • Built an ingestion pipeline that chunks the text and generates OpenAI embeddings.
  2. 02

    Problem

    Every answer had to use FDA-compliant language.

    What I did

    • Wrote system prompts with strict compliance rules and the brand's voice.
  3. 03

    Problem

    Recommending the right products from a large catalogue.

    What I did

    • Parsed the product catalogue spreadsheet into structured MongoDB documents for semantic matching.
Show all 5 steps
  1. 04

    Problem

    Keeping context across several conversation threads per user.

    What I did

    • Stored conversations per user, with TanStack Query managing state in the app.
  2. 05

    Problem

    Answering fast from a large vector database.

    What I did

    • Added an in-memory cache with a time limit, so repeated searches skip the database.

The product

5 screens from the real product. Click any screen to see it full size.

(Shipped)

Terra is live on chat.trueterraoils.com: customers can ask about the whole catalogue and 2,446 articles in plain conversation, and every answer stays inside the brand's compliance rules.

(Guide from this project)How an AI chatbot answers from your own documents5 min read

Next project

ETHOS

Need something like TrueTerra Oils AI Chatbot? I build web, mobile and backend — end to end.

Hiring? See my experience →