This page is for founders and small product teams who run support themselves. A SaaS bot has three jobs that other industries don’t combine: answer from fast-changing docs, act on the signed-in user’s account, and feed what users complain about back into the product.
What do SaaS users ask a chatbot?
| Visitor question | What the bot does | Knowledge source |
|---|---|---|
| “Is there a free plan? What’s the difference between Pro and Team?” | Compares plans, shows a “Start free trial” button | Pricing page |
| “Do you integrate with Slack / HubSpot / Zapier?” | Answers yes or no from the integrations page; never guesses | Integrations docs |
| “How do I connect my custom domain?” | Gives the steps and links the docs page | Help center |
| “Why is my CSV import failing?” | Walks through known causes; if it looks like a bug, records it and tells the user | Troubleshooting docs, feedback role |
| “What plan am I on and when does my trial end?” | Reads it from identify metadata or an Action | metadata / Action |
| “Can I get a refund?” | Does not promise. Creates a Refund ticket for the team | Tickets |
| “Do you have SSO / SOC 2 / a DPA?” | Answers from the security page; routes custom terms to sales | Security page |
| “It would be great if dashboards could be shared publicly” | Thanks them, asks one clarifying question, logs a feature request | Feedback role |
| “How do I cancel?” | Gives the steps, asks why (optional), opens a Cancellation ticket if needed | Billing docs, tickets |
| “Is there an API?” | Links the API reference | Developer docs |
Identify the signed-in user
Anonymous chat in a SaaS app wastes the first three messages on “what’s your email?”. Pass the user instead:
- Copy the secret from Bot → Install → Identity verification.
- Compute
HMAC-SHA256(secret, userId)on your server. - Call
Feedbot("identify", { userId, email, name, hash, metadata: { plan: "trial", trialEndsAt: "2026-10-20" } }), or passuseranduserHashto theFeedbotWidgetcomponent from@feedbotai/react.
Metadata goes up to 4 KB. The bot sees it, so it can answer “when does my trial end?” without an Action. Verified users also see their chat history on any device. Details in Identify users. Call Feedbot("reset") on logout.
Trial onboarding and qualification
Trial users who reach the “aha” step stay. Tell the bot what that step is in the custom instructions, for example: “If a trial user hasn’t connected a data source, help them do it first.” Then:
- Use
Feedbot("sendMessage", "How do I connect my first data source?")from an empty-state button so the chat opens with the right question. - Put your pricing, demo and trial links in the business profile; the bot shows them as buttons when someone shows buying intent.
- For larger accounts, have the bot ask team size, current tool and timeline. Conversations with a lead score of 50 or more and a contact appear in Leads; identified users count even without leaving an email.
Hand off to a person for annual contracts, security questionnaires, custom pricing or angry users who have already tried the docs.
Feedback to issues to your coding agent
This is where Feedbot differs from most support bots. After each conversation, AI analysis pulls out product issues (bug, UX, missing feature, content gap, pricing) and groups repeats, with a count and user quotes.
| Step | What happens | Plan |
|---|---|---|
| 1. Users report | “Export does nothing in Safari” in chat, with screenshots on Starter and up | Any (attachments from Starter) |
| 2. Grouped into issues | Seven reports become one issue with acceptance criteria | Any |
| 3. Agent pulls | MCP server at https://api.feedbotai.com/mcp, or npx feedbot pull writes .feedbot/issues/*.md |
Pro, Business |
| 4. Agent fixes and resolves | npx feedbot resolve ISSUE_ID "Fixed Blob download in Safari" --notify |
Pro, Business |
| 5. Users hear back | Reporters get an email that it’s fixed | Pro, Business |
Claude Code users can install the Feedbot plugin, which bundles the MCP server and a skill: ask it to “fix what users report”. See Agent reports & CLI and API & MCP, or the walkthrough in user feedback to Claude Code.
What to put in the knowledge base
- Docs or help center, imported as a whole website or from
sitemap.xml. Click Refresh website after each release that changes the docs; only changed pages are re-read. - Pricing page and plan limits, plus a short business profile with the facts the bot needs in every reply: support hours, refund policy, status page URL.
- Changelog so the bot knows a feature shipped last week.
- Known issues as a text source, so the bot can say “we know, a fix is coming” instead of troubleshooting.
What not to automate
- Account changes with side effects (deleting data, changing the billing owner) unless the Action asks the user to confirm with buttons first.
- Refunds and credits. The bot creates a ticket and says the team will follow up. It doesn’t promise.
- Security and legal answers beyond what your public security page states. Don’t let the bot improvise about compliance certifications you don’t hold.
- Personal data in prompts. Keep identify metadata to what support needs (plan, signup date, role), not payment details.
Sample conversation
User (identified, trial): The CSV import keeps saying “invalid header” but my file looks fine.
Bot: Sorry about that. The importer expects the first row to be headers with no blank columns. Does your file have an empty column at the end? Exports from Google Sheets often add one.
User: No empty columns. It’s an Excel export with UTF-16 encoding.
Bot: That’s likely it: the importer only reads UTF-8 right now. As a workaround, save it as “CSV UTF-8” in Excel. I’ve also logged this for the team, and you’ll get an email when UTF-16 files work.
The issue “CSV import rejects UTF-16 files” now has one more report, ready for your agent.
Metrics to watch
| Metric | Where | What it tells you |
|---|---|---|
| Resolved without a human | Stats (resolved, humanNeeded) |
How much of support the docs cover |
| Content gaps | Issues of type content gap | Docs pages to write next |
| Top issues by report count | Issues page or GET /v1/issues |
What to fix this sprint |
| Trial users who chatted | Conversations by identified users | Whether onboarding questions cluster at one step |
| Leads from trial conversations | Leads page | Sales follow-ups worth a call |
Set it up in 3 steps
- Create a bot from your docs URL and add your pricing page.
- Install with the script tag,
next/scriptor@feedbotai/react, and add the identify call (install guide). - Connect Slack or Telegram for handoffs, then create an API key in Settings → API & MCP and point your coding agent at the MCP server.
Most SaaS teams that want the API and MCP start on Pro ($19/month). See pricing and how this compares with Intercom Fin.