AI-Powered WhatsApp Customer Support for a SaaS Product
Client: SaaS Company (confidential)
The Challenge
Customer support requests arrived through three channels — email, the in-app chat widget, and WhatsApp Business — with no unified system. The support team of 2 was manually triaging across all three, average first response time was 4 hours, and 40% of tickets were repeat questions answered by the same three paragraphs from the FAQ.
What I Built
- 01
Integrated WhatsApp Business API via n8n, creating a single intake point. Messages from all channels now route into one triage workflow with a unified ticket format.
- 02
Built a GPT-4o agent with access to the product documentation and a FAQ knowledge base (chunked and embedded into a vector store). For incoming tickets, the agent classifies intent, retrieves relevant context, and drafts a response.
- 03
Added a confidence threshold: responses above 0.85 confidence are sent automatically (with a "Reply powered by AI" footer). Below that threshold, the draft goes to a human review queue in Slack where the agent's reasoning is shown alongside the ticket.
- 04
For complex or escalated issues, the system creates a full support ticket in Linear with all context (conversation history, user account info, error logs if available) already populated — the agent has already done the intake work.
In Practice
The support team was good at their jobs but underwater. Two people, three channels, no triage system. The first priority wasn't building AI — it was building a unified intake pipeline so the team could see everything in one place. The AI layer came second.
The n8n workflow handles intake normalization: regardless of whether a message comes from WhatsApp, email, or the in-app widget, it gets standardized into the same structure (user ID, message, channel, timestamp, account tier) before anything else touches it. This was the foundation everything else ran on.
The agent's knowledge base was built from existing documentation: help articles, FAQ pages, and the 50 most common support tickets from the last 6 months. Chunking strategy was document-section level (not fixed size) to preserve the context of each answer. The retrieval step uses a metadata filter for account tier — enterprise customers get answers that reference enterprise-specific features.
The human review queue was the part the support team cared about most. They didn't want to feel like they'd been replaced — they wanted to feel like they had a capable assistant. The Slack review card shows the ticket, the agent's draft, the confidence score, and the source documents it pulled from. Approving takes one click. Editing is fast because the draft is already 80% there. That framing — 'you're the expert, the AI is your first draft' — changed how the team related to the system.
Stack Used
Have a similar problem?
Let's talk about automating it.