Questions it takes off your plate
Software companies answer the same questions every day, before and after the sale. Most are covered in the docs or on the pricing page, but visitors don't find them, or don't want to look:
- Pre-sales: Does it integrate with X? Is there a free plan? What's the difference between Pro and Business? Where is data stored?
- Onboarding: How do I invite my team? Where do I find my API key? How do I connect my domain?
- Troubleshooting: Why isn't the webhook firing? What does this error mean? How do I reset 2FA?
Apex Bot answers these from your own content, with a link to the exact page, so your team spends its time on the questions that really need a person.
Docs, pricing and help center
Point Apex at your marketing site, docs and help center. It reads your sitemap and linked pages on the same domain, respects robots.txt and skips navigation, footers and cookie banners. Add text sources for things that aren't public yet, like answers your support team gives often.
Answers come only from those sources. If your docs don't cover a question, Apex says it doesn't know instead of guessing an API parameter or promising a feature on your roadmap. How grounded answers work.
Inside your product
The same widget runs in your web app. In single-page apps like React or Next.js, load the script once in your root layout; the conversation survives client-side navigation. The JavaScript API lets your own code control it:
<script>
// Open the chat from your own "Help" button
document.querySelector("#help").addEventListener("click", () => Apex.open())
// Ask on the visitor's behalf from a pricing tooltip
Apex.send("What's included in the Pro plan?")
// Pre-fill the hand-off and contact forms for a signed-in user
Apex.identify({ name: "Ada", email: "ada@example.com" })
// Send chat events to your analytics
Apex.on("handoff", () => analytics.track("support_handoff"))
</script>You can also hide the widget on specific paths, for example your billing pages, under Behavior → Hide on these pages.
When a human is needed
Account-specific problems need your team. With hand-off turned on, a visitor can choose “Talk to a human”: the question and the whole conversation are emailed to your support address, and when you reply you're talking to them directly. Questions the assistant couldn't answer show you which docs to write next.
Safe on a public site
- Domain locked. The public site key works only on the domains you allow, so a copied snippet does nothing elsewhere.
- No actions. The assistant can't call your API, change accounts or run code. A prompt-injection attempt can change what one chat says, nothing more.
- Budgets. Per-visitor rate limits and a daily token budget keep usage predictable, even if a script hammers the widget.
- Your choice of model. Claude, OpenAI or Gemini, with an automatic fallback model.
Details on the security page.
Questions
Can it answer questions about a specific user's account?
No. Apex has no access to your product's data. Apex.identify() only pre-fills the user's name and email in the hand-off and contact forms, so they don't have to type them.
How does it stay current when we ship?
Re-sync the website source after you publish new docs, and Apex reads them again. Text sources update as soon as you save them.
Can I restrict what it talks about?
Yes. Add your own instructions for tone, and list topics it should politely decline, such as legal questions or unreleased features.