Drop-in chat bundle + ticket form bundle. AI replies cite your KB articles. One script tag.
Intercom Messenger costs $99+/mo and silos the conversation. Drift charges for AI separately. Sendora ships TWO drop-in bundles: `/chat.js` for real-time AI chat panel (Wave 49); `/widget.js` for contact form → Support ticket. Both ~5-6 KB, dependency-free. AI replies via RAG over your Knowledge Base (gpt-oss:20b on Ollama Cloud), canned fallback when AI off, public-endpoint design keeps widget UUID as the key (no API key in page source). Stats endpoint returns `totalBots` + `totalSessions` only — not AI deflection rate, handoff rate, or queue metrics.
Features
- Public `POST /chatbot/message` endpoint — submission creates a
support_ticketsrow + emitsticket.created_via_widgetevent. Honeypot + signed-token challenge replaces a Turnstile dependency. - AI auto-reply (opt-in) — gpt-oss:20b on Ollama Cloud. RAG: case-insensitive
ILIKEoverkb_articles.title + body, top-5 retrieved, re-ranked (title hit ×3, body hit ×1), top-3 fed as context. System prompt anchors strictly to retrieved context. - Citations in reply — model returns article id + title for each citation; UI can link to KB.
- Canned fallback when AI off OR LLM unavailable — per-org
ai_chatbot_enabledtoggle +AI_CHATBOT_ENABLEDenv kill-switch. Widget never sees a 500. - `ai_traits` on inbound — extracts profile traits from message content (fire-and-forget; per-org
ai_auto_traits_enabledopt-in). - Per-project chatbot configs — colours, labels, persona name, KB binding, handoff toggle + message.
- Drop-in chat bundle (Wave 49) —
<script src="https://go.sendoracloud.com/chat.js" data-chatbot=UUID async>adds a floating chat button + AI-replied panel to any page. ~6 KB, dependency-free. Talks to publicPOST /widgets/:widgetId/chat(UUID-as-key, no API key needed on a public page). Multi-turn context via server-mintedsessionId. - Drop-in contact-form bundle —
<script src="https://go.sendoracloud.com/widget.js" data-widget=UUID async>for the email-based ticket flow. ~4 KB. - SDK helpers — Web
sendora.chatbot.send(); RN 0.18.8+ shipschatbot.sendMessage()with auto session id per JS lifetime. Use these when you need custom chat UI inside a native app.
Common use cases
Contact form on a marketing site where the submission should land in your existing Support inbox, not a separate vendor.
AI-assisted support entry-point grounded on YOUR KB articles (not a generic LLM hallucinating product details).
Multi-turn chat in your own app — call the SDK from your custom UI; backend handles retrieval + LLM + ticket creation.
Start in minutes. Scale without switching tools.
The free tier covers most side projects. Every module is turn-key and every SDK is first-party.