Начало работы
Integration overview
Один бэкенд, любая платформа — встройте один раз, и всё остаётся актуальным.
AskAIs Customer Service — это единый бэкенд с множеством клиентских SDK. Вы один раз настраиваете рабочее пространство, а затем встраиваете чат куда угодно — на сайт, в мобильное приложение или в любой backend-сервис. Все клиенты работают с одним и тем же входящим ящиком, AI-агентом и базой знаний.
Один бэкенд, любая платформа
Какую бы платформу вы ни использовали, установка короткая, а переписка, контакты, ответы AI и настройки — общие. Вот как выполняется установка на каждой платформе и, что важно, как приходят будущие обновления:
Платформы вкратце
| Платформа | Установка | Как обновляется |
|---|---|---|
| Сайт | <script src="…/widget.js"> | Автоматически — каждая загрузка страницы подтягивает последнюю версию |
| iOS (Swift) | Swift Package / CocoaPods | Поднимите версию SDK и выпустите новую сборку приложения |
| Android (Kotlin) | Gradle | Поднимите версию SDK и выпустите новую сборку приложения |
| Flutter | pub | Поднимите версию SDK и выпустите новую сборку приложения |
| React Native | npm | Поднимите версию SDK и выпустите новую сборку приложения |
| Любой backend | REST API / OpenAPI | Ваш собственный сервис — при каждом вашем деплое |
Совместимы ли все SDK между собой?
Да. Это разные «парадные двери» к одному и тому же рабочему пространству AskAIs Customer Service, поэтому они полностью совместимы:
- Один бэкенд, один app-id: каждый клиент подключается к одному и тому же входящему ящику в вашем рабочем пространстве.
- Один посетитель на разных устройствах: идентифицируйте его по одному и тому же externalId, и чат, начатый в вебе, продолжится в вашем приложении.
- Общая конфигурация: ваш AI-агент, база знаний, часы работы, ответы по ключевым словам и FAQ настраиваются один раз и применяются ко всем каналам.
Веб — официальная вставка (рекомендуется)
Вставьте эту одну строку перед </body>. Это и есть вся установка. app-id является публичным и безопасен для распространения; скопируйте его из Settings → Inboxes.
<script src="https://cs.askais.com/widget.js"
data-app-id="YOUR_APP_ID"
data-base-url="https://cs.askais.com"
async></script>⚠️ Не скачивайте и не размещайте widget.js у себя
Всегда загружайте виджет с https://cs.askais.com/widget.js. Если вы скачаете файл и разместите его сами или соберёте его в свой бандл, вы зафиксируете его на одной версии — наши будущие обновления стилей, исправления ошибок и новые функции до вас никогда не дойдут. При загрузке с cs.askais.com виджет обновляется автоматически; вам ничего не нужно менять.
Управляйте им со своей страницы (опционально)
После загрузки скрипта становится доступен глобальный объект window.SingChat:
// 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" });Мобильные приложения (iOS / Android / Flutter / React Native)
Нативные SDK компилируются внутрь вашего приложения, поэтому они не обновляются автоматически, как веб-виджет. Чтобы получить новую версию, поднимите версию SDK в менеджере пакетов и выпустите новую сборку приложения. Инициализация везде устроена одинаково — укажите на https://cs.askais.com и идентифицируйтесь с помощью вашего app-id:
// Swift Package Manager
.package(url: "https://github.com/singlink/singlink-ios", from: "0.1.0")
let client = SingChatClient(baseURL: "https://cs.askais.com")
try await client.identify(.deviceAnonymous(appId: "YOUR_APP_ID"))Любой backend или язык
SDK не требуется — вызывайте REST API напрямую, чтобы идентифицировать контакт и отправлять/получать сообщения. Мы также публикуем сгенерированные из нашей OpenAPI-спецификации SDK для 30+ языков.
# Any backend / language — talk to the REST API directly
curl -X POST https://cs.askais.com/api/v1/auth/identify \
-H 'Content-Type: application/json' \
-d '{"appId":"YOUR_APP_ID","externalId":"user_123"}'