Переходите з UptimeRobot? Імпортуйте монітори одним кліком за ключем API лише для читання.Почати безкоштовно →
  1. Головна
  2. Інтеграції
  3. Webhook

Підписані webhook: повний інцидент у JSON

Tenium надсилає на вашу адресу JSON, коли інцидент відкривається, підтверджується чи закривається, а також коли потребує уваги SSL-сертифікат або heartbeat. Кожен запит підписано HMAC-SHA256, тож ваш endpoint може впевнитися, що він від нас.

Простій

POST /tenium-hookJSON
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 /tenium-hookJSON
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 /tenium-hookJSON
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 /tenium-hookJSON
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. 1

    Підготуйте endpoint

    Створіть https-endpoint, що приймає JSON POST і відповідає кодом 2xx. Будь-що інше вважається невдалою доставкою.

  2. 2

    Вставте адресу й збережіть секрет

    Відкрийте «Інтеграції», виберіть Webhook, вставте адресу й за потреби задайте секрет для підписаних запитів. Натисніть «Надіслати тест» — ви отримаєте подію test.

    Спершу збережіть контакт

  3. 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 моніторів, без картки.