Skip to content
RepoQuarry

Build · Intermediate · A weekend

Build an AI customer support bot that answers from your own documents

An AI agent answers customers on your website, email or Telegram from your own help docs, and hands hard questions to a person.

Instead of paying for ChatGPT Plus, Intercom, Zapier or Make.

What you'll build

A support assistant that has read your manuals, policies and FAQs. Customers ask on your site's chat widget, by email or in Telegram; the AI answers from your documents and says when it doesn't know, and anything it can't handle lands in a shared inbox for a person. It is the job Intercom's Fin charges for per resolution, and the job the Grok + n8n support template does with a Google Doc. Here the documents, the model and the inbox all run on your own server.

Blueprint

AnythingLLM holds your documents and answers questions from them using Ollama. Chatwoot runs the website widget and the shared inbox; its webhooks send each new customer message to Activepieces, which asks AnythingLLM and posts the reply back or assigns the conversation to a person.

  1. You Your manuals, policies and FAQs AnythingLLM
  2. Chatwoot A new customer message (webhook) Activepieces
  3. Activepieces The question AnythingLLM
  4. AnythingLLM The question with matching passages Ollama
  5. Ollama A draft answer AnythingLLM
  6. AnythingLLM The answer and its sources Activepieces
  7. Activepieces The reply, or a hand-off to a person Chatwoot

The repos

  1. 01 · Answer from your docs AnythingLLM

    All-in-one desktop or Docker app to chat with your documents using local or cloud LLMs, with agents and a built-in vector database.

    Setup
    Easy; desktop installer, or Docker for multi-user source
    Hardware
    Recommended 16GB RAM, 8-core CPU; GPU recommended on Windows; storage varies by model source
    Paid extras
    None required; local LLM, embedder and vector DB by default; cloud optional
    ★ 67k MIT Confirmed: 8/8 facts Official docsGitHubReplaces ChatGPT Plus
  2. 02 · Run the model Ollama

    Local model runner that downloads and serves open LLMs (Gemma, Qwen, DeepSeek, gpt-oss and more) with a CLI and local API.

    Setup
    Easy; one-line install script or installer, then ollama run source
    Hardware
    Apple M-series or x86 (CPU only) on Mac; 4GB for Windows binary; RAM not stated source
    Paid extras
    None for local use; Ollama Cloud plans optional (Pro $20/month)
    ★ 184k MIT Confirmed: 8/8 facts Official docsGitHubReplaces ChatGPT Plus
  3. 03 · Inbox and chat widget Chatwoot

    Self-hosted customer support inbox with website live chat, email and social channels, a help center and an optional AI agent (Captain).

    Setup
    Medium; install script on an Ubuntu server or Docker Compose, then set environment variables (mail, storage, domain) source
    Hardware
    Minimum 2 CPU cores, 4 GB RAM and 20 GB SSD; 4+ cores and 8 GB+ RAM recommended for production source
    Paid extras
    The core inbox is free to self-host; the Captain AI agent needs a paid Premium or Enterprise self-hosted licence and your own OpenAI key (an OpenAI-compatible endpoint for a self-hosted model is optional)
    ★ — MIT Confirmed: 8/8 facts Official docsGitHubReplaces Intercom
  4. 04 · Connect the steps Activepieces

    Self-hostable no-code automation builder with 280+ TypeScript integrations ("pieces") that are also exposed as MCP servers.

    Setup
    Medium, install script or a single docker run with embedded database source
    Hardware
    Production sizing: app 1 vCPU / 1 GB per ten workers; each worker 0.5 vCPU / 1 GB; Postgres 2 vCPU / 4 GB; Redis 1 vCPU / 1 GB source
    Paid extras
    None required; enterprise licence and Activepieces Cloud are optional
    ★ 25k MIT Confirmed: 8/8 facts Official docsGitHubReplaces Zapier, Make

Step by step

Install commands change, so each step links to the repo's own docs for the exact commands.

  1. Load your documents into AnythingLLM

    Install AnythingLLM, create a workspace for support and upload your help articles, policies and product manuals. Ask it twenty real customer questions and fix the documents where its answers are wrong or vague.

    Uses AnythingLLM · its docs

  2. Point it at a local model

    Set Ollama as AnythingLLM's model provider. In the workspace prompt, tell it to answer only from the documents, to keep answers short, and to say "I'll pass this to the team" when the documents don't cover the question.

    Uses Ollama · its docs

  3. Set up Chatwoot

    Install Chatwoot, add the website widget to your site and connect your support email. Create a team and an "AI" label so you can see which conversations the bot handled.

    Uses Chatwoot · its docs

  4. Connect them with Activepieces

    Add a webhook in Chatwoot that fires on new messages and points at an Activepieces flow. The flow sends the question to AnythingLLM's API, posts the answer back through Chatwoot's API, and assigns the conversation to a person when the answer says it can't help.

    Uses Activepieces · its docs

  5. Run it on last month's tickets first

    Replay real questions and compare its answers with what your team sent. Only switch it on for customers once it is right most of the time and always hands off the rest.

Watch out

Test it on old tickets before it talks to customers, and always offer a human. Chatwoot's own AI agent, Captain, is not in the free Community Edition, which is why AnythingLLM answers here.

Take it further

  • Add a Telegram channel in Chatwoot so the same bot answers there.
  • Write new help articles from the questions the bot couldn't answer.
  • Send a weekly summary of top questions to the team.

Shared builds

Nobody has shared one yet. Be the first.

Built your own version and put it on GitHub as open source? Share your build

Questions

Can I use Grok instead of a local model?

Yes. AnythingLLM can use hosted model APIs as well as Ollama, so you can choose Grok through xAI's paid API. Customer messages are then sent to xAI.

Will it make things up?

It can. Tell it to answer only from your documents, show the source passages to your team, and keep a person on call for anything about money, refunds or safety.

Every repo here is open source, still maintained and checked against its own documentation. How we check →

Cookie preferences

Choose what we may store in your browser. You can change this any time from Cookie settings in the footer.

Essential

Security, and remembering this choice. rq-consent · 12 months

Always on