- Головна
- Інтеграції
- Webhook
Підписані webhook: повний інцидент у JSON
Tenium надсилає на вашу адресу JSON, коли інцидент відкривається, підтверджується чи закривається, а також коли потребує уваги SSL-сертифікат або heartbeat. Кожен запит підписано HMAC-SHA256, тож ваш endpoint може впевнитися, що він від нас.
Простій
POST https://example.com/tenium-hook Content-Type: application/json X-Tenium-Signature: t=1737279554,v1=5f3a9c1e07b2…
{
"event": "down",
"sentAt": "2026-01-19T09:39:14Z",
"account": {
"id": "0f8e…",
"name": "Your Studio"
},
"clientWorkspace": {
"id": "9a8b…",
"name": "Client A"
},
"monitor": {
"id": "a3f1…",
"name": "Client A shop",
"type": "http",
"url": "https://shop.clienta.com"
},
"incident": {
"id": "e5b4…",
"status": "open",
"startedAt": "2026-01-19T09:35:02Z",
"resolvedAt": null,
"durationSec": null,
"summary": "HTTP 503 Service Unavailable",
"confirmedBy": [
"fra",
"lon",
"nyc"
],
"url": "https://app.tenium.app/incidents/e5b4…"
}
} Відновлено
POST https://example.com/tenium-hook Content-Type: application/json X-Tenium-Signature: t=1737279554,v1=5f3a9c1e07b2…
{
"event": "up",
"sentAt": "2026-01-19T09:39:14Z",
"account": {
"id": "0f8e…",
"name": "Your Studio"
},
"clientWorkspace": {
"id": "9a8b…",
"name": "Client A"
},
"monitor": {
"id": "a3f1…",
"name": "Client A shop",
"type": "http",
"url": "https://shop.clienta.com"
},
"incident": {
"id": "e5b4…",
"status": "resolved",
"startedAt": "2026-01-19T09:35:02Z",
"resolvedAt": "2026-01-19T09:39:14Z",
"durationSec": 252,
"summary": "4m 12s",
"confirmedBy": [
"fra",
"lon",
"nyc"
],
"url": "https://app.tenium.app/incidents/e5b4…"
}
} Термін SSL
POST https://example.com/tenium-hook Content-Type: application/json X-Tenium-Signature: t=1737279554,v1=5f3a9c1e07b2…
{
"event": "ssl_expiry",
"sentAt": "2026-01-19T09:39:14Z",
"account": {
"id": "0f8e…",
"name": "Your Studio"
},
"clientWorkspace": {
"id": "9a8b…",
"name": "Client A"
},
"monitor": {
"id": "a3f1…",
"name": "Client A shop",
"type": "http",
"url": "https://shop.clienta.com"
},
"expiry": {
"kind": "ssl",
"daysLeft": 7,
"expiresAt": "2026-01-26T00:00:00Z"
}
} Пропущений heartbeat
POST https://example.com/tenium-hook Content-Type: application/json X-Tenium-Signature: t=1737279554,v1=5f3a9c1e07b2…
{
"event": "heartbeat_missed",
"sentAt": "2026-01-19T09:39:14Z",
"account": {
"id": "0f8e…",
"name": "Your Studio"
},
"clientWorkspace": {
"id": "9a8b…",
"name": "Client A"
},
"monitor": {
"id": "a3f1…",
"name": "Nightly backup",
"type": "heartbeat",
"url": "https://shop.clienta.com"
},
"incident": {
"id": "e5b4…",
"status": "open",
"startedAt": "2026-01-19T09:35:02Z",
"resolvedAt": null,
"durationSec": null,
"summary": "No ping received for 26 min",
"confirmedBy": [
"fra",
"lon",
"nyc"
],
"url": "https://app.tenium.app/incidents/e5b4…"
}
} Симуляція: ця сторінка нічого не надсилає.
Як налаштувати
- 1
Підготуйте endpoint
Створіть https-endpoint, що приймає JSON POST і відповідає кодом 2xx. Будь-що інше вважається невдалою доставкою.
WebhookЗбережено - 2
Вставте адресу й збережіть секрет
Відкрийте «Інтеграції», виберіть Webhook, вставте адресу й за потреби задайте секрет для підписаних запитів. Натисніть «Надіслати тест» — ви отримаєте подію test.
Спершу збережіть контакт
- 3
Перевірте підпис, потім прив’яжіть
Обчисліть HMAC-SHA256 від сирого тіла запиту з вашим секретом і порівняйте із заголовком. Потім прив’яжіть контакт до моніторів.
Спершу збережіть контакт
Інтерактивний макет, нічого не зберігається.
Що є в повідомленні
- JSON із подією, монітором, обліковим записом, клієнтом та інцидентом
- Події: down, blocked, up, degraded, heartbeat_missed, ssl_expiry, domain_expiry, test
- Заголовок X-Tenium-Signature, який можна перевірити
Текст сповіщень формує Tenium, і наразі він англійською.
Тариф і ліміти
- Доступно з тарифу Pro ($29 на місяць)
- Входить уPro, Agency
- Вихідних сповіщень на годину на вашому тарифіFree 40 · Starter 300 · Pro 1 500 · Agency 6 000
- Затримка перед надсиланнямДоступна на Pro та Agency
Варто знати
- Повний список полів і приклад перевірки на Node: документація, API webhook payloads.
- Невдалі доставки (не 2xx, 429, помилки мережі або таймаут 10 с) повторюються до 3 спроб загалом із інтервалом 30 секунд.
Як працюють сповіщення й ескалація
Контакти, маршрутизація, затримки й підтвердження описано в документації.
Запитання про Webhook
Як перевірити, що запит прийшов від Tenium?
Прочитайте заголовок X-Tenium-Signature (t=час,v1=підпис), обчисліть HMAC-SHA256 від часу, крапки й сирого тіла з вашим секретом, порівняйте за сталий час і відхиляйте запити старші за п’ять хвилин. У документації є приклад для Node.
Що буде, якщо мій endpoint недоступний?
Відповідь не 2xx, 429, помилка мережі або таймаут 10 секунд вважаються невдалою доставкою і повторюються, до 3 спроб загалом із інтервалом 30 секунд.
Чи можна відкривати тікети або перезапускати сервер?
Так, саме для цього він і потрібен: у даних є все для створення тікета, повідомлення у внутрішній інструмент чи запуску скрипта. Zapier (Agency) робить те саме без коду.
Який тариф включає Webhook?
Webhook доступний з тарифу Pro ($29 на місяць) і на всіх вищих.
Як перевірити сповіщення Webhook?
Відкрийте «Налаштування», «Контакти» й натисніть «Надіслати тест» біля контакту. За кілька секунд надійде повідомлення з позначкою TEST. Спершу додайте хоча б один монітор, бо сповіщення надсилає перевіряльник.
Чи можна відкласти Webhook, доки ніхто не відреагував?
Так, на Pro та Agency. Задайте контакту затримку в хвилинах: він спрацює, лише якщо інцидент ще відкритий, а підтвердження інциденту скасовує надсилання.
Підключіть перший канал за хвилину
Почніть безкоштовно з e-mail, Discord і Google Chat. 30 моніторів, без картки.