Getting started
Integration overview
One backend, every platform, embed once, and it stays up to date.
AskAIs is one backend with many ways to connect. You set up your workspace once, then embed chat anywhere, a website, a mobile app, or any backend service. Customers can also reach you on inbound channels like Telegram and WhatsApp. Every client and channel talks to the same inbox, AI agent, and knowledge base.
One backend, every platform
Whatever platform you use, the install is short and the conversation, contact, AI replies, and settings are shared. Here is how each platform installs and, importantly, how it gets future updates:
Platforms at a glance
| Platform | Install | How it updates |
|---|---|---|
| Website | <script src="…/widget.js"> | Automatic, every page load fetches the latest |
| iOS (WebView) | WebView embed | Automatic, the WebView loads the latest widget |
| Android (WebView) | WebView embed | Automatic, the WebView loads the latest widget |
| Flutter (native SDK) | pub (local package) | Bump the SDK version, ship a new app build |
| React Native (WebView) | WebView / REST | Automatic, the WebView loads the latest widget |
| Any backend | REST API / OpenAPI | Your own service, whenever you deploy |
Do all the clients and channels work together?
Yes. They are different front doors to the same AskAIs workspace, so they are fully interoperable:
- Same backend, same app-id: every client connects to the same inbox in your workspace.
- One visitor across devices: identify them with the same externalId and a chat started on the web continues in your app.
- Inbound channels too: besides the web and in-app widget, customers can reach you on Telegram and WhatsApp (both live end to end), and every message lands in the same inbox, with an X slot ready.
- Shared configuration: your AI agent (platform-hosted or your own key), knowledge base, business hours, keyword replies and FAQs are configured once and apply to every channel.
Web, the official embed (recommended)
Drop this one line before </body>. That is the whole installation. The app-id is public and safe to ship; copy it from Settings → Inboxes.
<script src="https://singchat.org/widget.js"
data-app-id="YOUR_APP_ID"
data-base-url="https://singchat.org"
async></script>⚠️ Do not download or self-host widget.js
Always load the widget from https://singchat.org/widget.js. If you download the file and host it yourself, or compile it into your own bundle, you freeze it at one version, our future style updates, bug fixes and new features will never reach you. Loaded from singchat.org, the widget updates itself automatically; you change nothing.
Control it from your page (optional)
After the script loads, a global window.SingChat is available:
// Open / close the widget
window.SingChat.open();
window.SingChat.close();
// Identify a logged-in user (so chats follow them across devices)
window.SingChat.identify({ externalId: "user_123", name: "Ada", email: "ada@acme.com" });Mobile apps: Flutter SDK or WebView embed
For mobile you have three real options. First, the native Flutter widget SDK gives you a full, themeable chat UI (a floating bubble plus a native chat screen, not a WebView); add it to your pubspec and ship it. Second, on iOS and Android (and React Native) you can embed the full web widget inside a WebView, the same experience as the website, and it stays up to date on its own. Third, drive the REST API with signed webhooks and render your own UI. There is no separate native iOS, Android or React Native chat SDK to install; these are the supported paths.
# Flutter, native chat widget (floating bubble + native chat UI, not a WebView).
# In your app's pubspec.yaml (download and unzip the SDK package first):
dependencies:
singchat_widget:
path: ../singchat_widget
# iOS / Android / React Native without Flutter: load the hosted web widget in a
# WKWebView / WebView (same experience as the website), or drive the REST API
# with signed webhooks and render your own chat UI.Any backend or language
No SDK required, call the REST API directly to identify a contact and send or receive messages, and verify inbound events with signed webhooks. The full API follows a published OpenAPI spec, so you can generate a client in your own language or just call the endpoints directly.
# Any backend / language, talk to the REST API directly
curl -X POST https://singchat.org/api/v1/auth/identify \
-H 'Content-Type: application/json' \
-d '{"appId":"YOUR_APP_ID","externalId":"user_123"}'