Skip to content

Latest commit

 

History

History
73 lines (57 loc) · 2.66 KB

File metadata and controls

73 lines (57 loc) · 2.66 KB

Assistflow

An integrated support platform that combines AI chat, human support, ticketing, and a website-aware knowledge base.

What This Is

Ticket Classifier is a full-stack helpdesk system with:

  • An embeddable chat widget for AI + human support
  • A ticketing and agent dashboard
  • Website-specific knowledge base crawling and indexing
  • Vector search to ground answers in your content

Screenshots

Dashboard Tickets
dashboard tickets
Knowledge Base Chat Widget
--- ---
knowledge-base chat-widget
Demo Site Analytics
--- ---
demo-site analytics

Repository Map

  • backend/ API, crawling, and vector indexing
  • frontend/ agent dashboard (React)
  • dashboard-demo/ demo site that embeds the widget
  • chatbot-package/ embeddable widget package (builds to dist/)

Requirements

  • Node.js + npm
  • MongoDB (for tickets, users, and config)

Quick Start

  1. Backend

    • cd backend
    • npm install
    • cp .env.example .env
    • Set MONGODB_URI in .env (required)
    • npm run db:setup
    • npm run dev
  2. Frontend

    • cd frontend
    • npm install
    • npm run dev
  3. Widget package

    • cd chatbot-package
    • npm install
    • npm run build

Backend API base URL (default): http://127.0.0.1:5000/api

Core Concepts

Knowledge Base (per website)

  • Each website has its own vector collection and stats.
  • Crawls add pages to the same website knowledge base (they do not replace it).

API Key vs Widget Key

  • API Key is used for AI chat and selects which website knowledge base to query.
  • Widget Key is used for human support sessions.
  • The widget package can auto-fetch a widget key from the backend using your API key.

Demo Setup

In the dashboard-demo/ UI:

  • Use API Base URL (example: http://127.0.0.1:5001/api)
  • Paste the API key from Knowledge Base → Deployment

References In AI Answers

AI replies append a References section when sources are returned from the backend.