Qlint system overview · Solis Technical Support
How Qlint Works
Qlint is an AI support intelligence system built for Solis Technical Support. It analyzes incoming Freshdesk tickets, retrieves relevant technical knowledge, creates a grounded technical response, and places the result directly inside the ticket for the support engineer.
- Freshdesk ticket
- Qlint
- Knowledge retrieval
- Technical analysis
- Response generation
- Freshdesk internal note
- Support engineer
Qlint does not send customer emails. It creates an internal note in Freshdesk with its proposed answer and technical analysis. The support engineer reviews it and communicates with the customer.
01
Overview
What is Qlint?
Qlint is an internal AI support intelligence layer built around the existing Solis support workflow. Engineers do not open a separate AI tool or copy information between systems — Qlint works inside Freshdesk, the system the team already uses.
The purpose is not to replace the support engineer. It is to reduce repetitive investigation and give the engineer a strong technical starting point immediately.
What Qlint does on every ticket
- Reads the incoming ticket and full thread
- Understands the technical issue
- Identifies products, alarms, settings and symptoms
- Searches approved technical knowledge
- Compares information from different sources
- Reasons about the problem
- Produces a concise technical recommendation
- Creates an internal note in Freshdesk
- Helps the engineer respond faster and more consistently
02
Workflow
From ticket to technical recommendation
What happens, step by step, from the moment a Freshdesk ticket arrives.
- 1
Ticket arrives
ImplementedA customer or installer creates or updates a ticket in Freshdesk. A Freshdesk automation rule notifies Qlint, which fetches the ticket from Freshdesk. Only tickets in the After Sales – Nordics group are processed.
- Subject and customer message
- Full previous conversation
- Ticket metadata (group, status, requester)
- Pictures in the ticket: screenshots, display photos, app views
- PDF attachments: reports, datasheets, invoices, logs (text and pictures)
- 2
Qlint structures the problem
ImplementedBefore writing anything, Qlint extracts the technical signals from the thread. Quoted earlier emails, signatures and legal footers are removed so the actual conversation fits. Facts are kept separate from assumptions.
- Product family, inverter and battery model
- Alarm codes, firmware, meter / CT
- Serial numbers, market, symptoms
- What was already asked, answered and done
- 3
Knowledge retrieval
ImplementedQlint searches all connected knowledge together — solved cases, Freshdesk Solutions articles, SharePoint and Google Drive files, uploaded documents — using the extracted signals, not only the wording of the last email. Material about a different model is demoted.
- 4
Technical reasoning
ImplementedThe language model receives the cleaned thread, what the pictures show, the ranked knowledge, Qlint's support rules and the source hierarchy. It works out the most likely next step from that evidence.
- 5
Confidence and missing information
ImplementedIf important information is missing, Qlint asks for that specific item instead of inventing an answer — for example CT direction, AC measurements, battery model or firmware version. Conflicts between sources are flagged for the engineer.
- 6
Freshdesk note
ImplementedQlint writes a private note on the same ticket with two parts: the proposed customer reply, and internal review material (sources used, missing information, uncertainties). It never sends email to the customer and never changes ticket status.
- 7
Human review
ImplementedThe engineer sees the note inside the ticket and can use it, edit it, ignore it, troubleshoot further or escalate. The engineer remains responsible for what reaches the customer.
03
Knowledge
Qlint does not rely on the LLM's memory
The language model is the reasoning engine. The knowledge base is the technical source of truth. Qlint retrieves company-specific knowledge before generating a technical answer, so the AI reasons with Solis information rather than generic training.
Connected sources
- Freshdesk Solutions articles (text and pictures)Implemented
- Solved Freshdesk tickets, summarised as case recordsImplemented
- SharePoint and Google Drive foldersImplemented
- Uploaded documents: PDF, Word, Excel, PowerPoint, imagesImplemented
- Manual notes and proceduresImplemented
- Engineer edits and sent Freshdesk replies (learning)Implemented
How knowledge is stored and searched
Documents are divided into smaller searchable pieces. Each piece gets an embedding — a numeric representation of its meaning. That allows semantic search: Qlint finds information with the same technical meaning even when different words are used. Text inside pictures, scanned pages and diagrams is read and included.
- Document
- Text + picture reading
- Chunks
- Embeddings
- Vector search
- Relevant knowledge
Technical details
- Backend: Supabase (PostgreSQL, Storage, Auth).
- Structures:
knowledge_bases,knowledge_documents,knowledge_chunks; files in the privateknowledge-base-filesbucket. - Embeddings: OpenAI
text-embedding-3-small. Retrieval runs vector search with strict and fallback similarity, de-duplication and per-document limits so one long document cannot crowd out others. - Ranking order: same product + same problem + solved case, official documentation, internal procedures, related historical cases, broader knowledge.
- Processing runs through a job queue with retries; failed items can be retried.
04
AI
The AI model reasons. It is not the database.
The language model (OpenAI) interprets the case, connects symptoms with technical knowledge, compares sources, identifies missing information, reasons through troubleshooting steps and writes a clear reply. The knowledge supplied to it is what grounds the response.
Source hierarchy
- 1. Official Solis documentation
- 2. Internal instructions and procedures
- 3. Previous tickets — treated as a lead, not as proof
- 4. General technical knowledge — flagged as uncertain
When the answer is not in Qlint's knowledge, the model may use general solar, inverter and battery expertise. Model-specific details are then written as something to verify, and the note marks the information as uncertain for the engineer.
What happens when Qlint does not know?
Uncertainty is an intentional part of the design. Qlint should never create technical facts because an answer sounds plausible.
- Never invent product specifications or settings
- Never invent firmware or compatibility information
- Never invent troubleshooting results or measurements
- Never claim something was checked without evidence in the ticket
- Never promise HQ contact, warranty decisions or timelines
- Use retrieved knowledge when available
- Separate confirmed facts from assumptions
- Flag conflicting sources instead of choosing silently
Yes
No
Yes
No
05
Speed
Qlint works when the ticket arrives
The value of Qlint drops if the engineer has already investigated the ticket manually. Qlint therefore starts as soon as Freshdesk notifies it — no queue in front of the new ticket. Routine background work runs afterwards. Accuracy is not traded for speed.
Current flow
Implemented- Ticket arrives
- Qlint starts
- Knowledge retrieved
- Analysis
- Note appears
Current limits
- Automatic analysis runs Monday–Friday 07:00–18:00 Stockholm time. Tickets outside these hours are handled the next working morning.
- Analysis usually takes under a minute.
- If Freshdesk temporarily limits requests, Qlint pauses and resumes where it stopped.
06
Freshdesk
Freshdesk stays the working environment
Qlint is built around Freshdesk instead of moving engineers into another application. Ticket data enters Qlint, Qlint processes the case, and the result is written back as a private note on the same ticket.
Freshdesk handles
- Ticket ownership
- Customer communication
- Ticket status
- Customer history
- Agent workflow
Qlint handles
- Ticket understanding
- Reading pictures in the ticket
- Knowledge retrieval
- Technical reasoning
- Response assistance as a private note
Human and AI responsibility
Qlint
- Reads the case
- Searches knowledge
- Finds relevant technical information
- Identifies missing information
- Performs AI-assisted reasoning
- Drafts technical recommendations
- Creates Freshdesk notes
Support engineer
- Reviews the recommendation
- Uses professional judgement
- Communicates with the customer
- Makes final decisions
- Performs physical verification when needed
- Approves escalation and RMA actions
- Handles exceptional situations
Qlint assists the engineer. It does not remove the engineer from the decision.
07
Learning
Qlint improves with the organisation
Two different things are often confused: training the AI model, and improving the knowledge Qlint gives it. Qlint does not retrain the foundation model. It continuously improves the information available to the model.
- Support activity
- Knowledge analysis
- Candidate knowledge
- Validation / processing
- Qlint knowledge base
Solved and closed tickets become case records (problem, troubleshooting, fix). Checked about every 30 minutes during working hours; last 12 months imported.
Qlint compares its draft with the reply the team actually sent in Freshdesk and extracts reusable lessons.
Nightly learning run consolidates engineer edits and corrections.
Learned knowledge is kept separate from approved company knowledge and ranks below it.
08
Architecture
How the components connect
The real Qlint architecture, from Freshdesk and back.
Connected to the Qlint backend
Supabase
Companies and members
companies and company_members define who belongs to which workspace and with which role. Everything else hangs off the company.Knowledge bases, documents and chunks
Processing jobs and job attempts
processing_jobs is the work queue for reading and embedding documents; job_attempts records every attempt so failures can be retried and traced.Integration layer
OpenAI
text-embedding-3-small for embeddings.External knowledge sources
09
Security
Security and data separation
Company information is kept separated and protected. The AI receives only what is needed for the specific ticket. No compliance certifications are claimed here.
Authentication
Every user signs in; the app checks the session on the server.
Company-based access
Users only see data from workspaces they are members of.
Row Level Security
The database itself enforces company separation on every row.
Private storage
Knowledge files live in a private bucket, not public URLs.
Backend-controlled integrations
Freshdesk, Microsoft and Google credentials stay on the server, encrypted.
Human approval
Nothing is sent to customers automatically. Notes are private.
10
Example
Example: a support ticket enters Qlint
Incoming ticket
“The battery is not discharging even though the battery SOC is 80%.”
01
Reads the ticket
Full thread and any screenshots of the app or display.
02
Identifies signals
Battery · SOC = 80% · not discharging.
03
Retrieves knowledge
Reserved SOC, battery settings, operating mode, BMS status, allow charge/discharge.
04
Evaluates the evidence
Is the model known? Are settings visible? Anything already tried?
05 · Private note in Freshdesk
“Check the Reserved SOC / minimum SOC setting first. If Reserved SOC is configured around 80%, the inverter will intentionally prevent further battery discharge.”
06 · The engineer reviews it. 07 · The engineer replies to the customer.
This illustrates the workflow. Qlint's actual recommendation depends on the ticket context and the knowledge available at that time.
11
Principles
Product philosophy
01
Knowledge before generation
Technical answers are grounded in available knowledge.
02
Human remains in control
Qlint recommends. The engineer decides.
03
Work inside existing systems
No extra workflow for the support engineer.
04
Fast enough to be useful
Qlint processes the case as soon as support activity occurs.
05
Admit uncertainty
If Qlint cannot determine the answer, it says so.