support automation
from technical knowledge to a useful support workflow
Support knowledge is spread across articles, screenshots, past tickets and the people who solved them. I built the systems that make that knowledge usable during a live customer conversation.
- context
- technical support at AMS
- my role
- agent service, knowledge pipeline and internal tools
- scope
- customer conversations, retrieval, tickets and human handoff
why I built it
The customer-facing agent connects to Chatwoot, processes incoming messages and retrieves relevant technical material. The support team uses internal tools to inspect tickets, customer context and operational data.
Behind the conversation is a separate ingestion pipeline. It prepares articles and related media for retrieval, so the assistant can use the content of a screenshot or tutorial as well as the surrounding text.
see the product
the operator’s side of support
Move from the daily overview to a ticket, its conversation, a knowledge article and the customer workspace.
Actual Hub interface with fictional tickets, contacts and operational data.
one support request, several responsibilities
Incoming messages are grouped into a coherent request. Attachments are processed according to their type, and the agent searches documentation and resolved problems before preparing a response. A useful answer can include the relevant media or lead into a ticket and human handoff.
The Hub brings tickets, customer records, machines, CRM and operational indicators into one internal interface. The knowledge pipeline and the live support agent have separate jobs: one keeps content usable; the other handles the current conversation.
engineering decisions
- knowledge stays maintainable
- Incremental extraction and content tracking reduce unnecessary reprocessing. Article text, media objects and search vectors need to remain consistent as source material changes.
- retrieval uses two kinds of evidence
- Documentation explains expected behavior. Resolved tickets add practical troubleshooting context. Searching both makes the support workflow more useful.
- respect the live conversation
- Message grouping and duplicate handling reduce repeated work. The agent can incorporate messages that arrive during tool execution, while incoming-message gates respect conversations already assigned to a person.
- handoff has context
- Ticket actions, internal notes and assignment controls support a transition to a human without making the customer restart the explanation.
- make operation inspectable
- Structured logs, pipeline run records and Hub views expose failures and workload to the team maintaining the system.
how it fits together
The services use Node.js and TypeScript. Fastify handles support and Hub APIs; React and Vite provide the internal interface. PostgreSQL holds operational records, Qdrant supports semantic search and S3-compatible storage holds media.
The ingestion service extracts and enriches source material before indexing it. Provider integrations handle language, transcription and media understanding. These services support the workflow without making the public case depend on a particular model version.
technology, with a purpose
- services
- TypeScript, Node.js, Fastify, Drizzle and structured logging
- knowledge
- PostgreSQL, Qdrant, embeddings and S3-compatible storage
- integrations
- Chatwoot, webhooks, AI SDKs and media processing
- internal tools
- React, Vite, dashboards, CRM and role-based access
This work connects retrieval engineering with real support operations: ingestion, multimodal context, agent tools, human handoff and tools for the team.