@notix-hub/sdk
v0.3.3
Published
JavaScript SDK for Notix (Нотикс) — notification aggregation service
Maintainers
Readme
@notix-hub/sdk
JavaScript SDK для Notix (Нотикс) — сервиса агрегации уведомлений.
Установка
npm
npm install @notix-hub/sdkimport { Notix } from '@notix-hub/sdk';
const notix = new Notix({ token: 'ntx_xxxxxxxxxx' });
await notix.notify({
title: 'Новый заказ',
body: 'Клиент оформил заказ на 12 000 ₽',
type: 'order',
priority: 'high',
});CDN
<script src="https://notix-hub.ru/js/notify.js" data-token="ntx_..."></script>Скрипт автоматически инициализирует window.notix и включает захват форм.
Без своего домена — через jsdelivr:
<script src="https://cdn.jsdelivr.net/npm/@notix-hub/sdk/dist/notify.min.js" data-token="ntx_..."></script>API
new Notix(config)
| Параметр | Тип | По умолчанию | Описание |
|----------|-----|-------------|----------|
| token | string | — | API-токен (префикс ntx_) |
| endpoint | string | https://notix-hub.ru/api/v1/webhook | URL вебхука |
| autoCapture | boolean | true | Автозахват форм при создании |
| timeout | number | 10000 | Таймаут запроса (мс) |
| debug | boolean | false | Логирование в консоль |
| metrika | MetrikaConfig | { enabled: auto } | Настройки Яндекс.Метрики |
notix.notify(payload)
Отправляет уведомление. Возвращает Promise<{ message, id }>.
| Поле | Тип | Обязательно | Описание |
|------|-----|------------|----------|
| title | string | Да | Заголовок |
| body | string | Нет | Текст |
| type | string | Нет | Slug типа уведомления (lead, order, message...) |
| priority | string | Нет | low, normal, high, urgent |
| payload | object | Нет | Произвольный JSON |
notix.capture(root?)
Вручную активирует захват форм. root — элемент, в котором искать формы (по умолчанию document).
notix.destroy()
Отключает захват форм.
Автозахват форм
Добавьте data-notify к форме, и SDK перехватит submit.
Шаблон (рекомендуется)
<form data-notify
data-notify-type="lead"
data-notify-tag="Сайт"
data-notify-title="Новая заявка"
data-notify-template="Имя: {name}\nТелефон: {phone}\nСообщение: {message}">
<input name="name" placeholder="Ваше имя" required>
<input name="phone" placeholder="Телефон">
<textarea name="message" placeholder="Сообщение"></textarea>
<button type="submit">Отправить</button>
</form>Поля с метками
<form data-notify data-notify-title="Заявка">
<input name="name" data-notify-label="Имя">
<input name="phone" data-notify-label="Телефон">
<button type="submit">Отправить</button>
</form>Без шаблона и меток
SDK соберёт все поля как name: value.
Атрибуты:
| Атрибут | Описание |
|---------|----------|
| data-notify | Включает захват формы |
| data-notify-title | Заголовок уведомления (по умолчанию document.title) |
| data-notify-type | Тип уведомления (lead, order, message, crm, alert) |
| data-notify-tag | Тег уведомления |
| data-notify-priority | Приоритет (low, normal, high, urgent) |
| data-notify-template | Шаблон тела с {field_name} |
| data-notify-body | Статичный текст (если не нужен шаблон) |
| data-notify-fields | Имена полей через запятую |
| data-notify-label | Человекочитаемое название поля |
| data-notify-field | Пометить конкретное поле |
Яндекс.Метрика
SDK автоматически определяет наличие window.ym и отправляет события:
notix_sent— уведомление отправленоnotix_error— ошибка отправкиnotix_form_captured— захвачена форма
Отключить:
new Notix({ token: '...', metrika: { enabled: false } });Разработка
npm install
npm run build # сборка в dist/
npm run typecheck # проверка типовПубликация
Создать
.envс токеном npm:NPM_TOKEN=npm_xxxxxxxxxxxxxxxxxxxxОпубликовать:
source .env && npm publish --access public
После публикации пакет доступен:
- npm:
npm install @notix-hub/sdk - jsdelivr (CDN):
https://cdn.jsdelivr.net/npm/@notix-hub/sdk/dist/notify.min.js
Лицензия
MIT
