Перейти к основному содержимому

Webhooks

Webhooks отправляют уведомления в реальном времени во внешние системы при возникновении событий с активами. Используйте их с Zapier, Make, пользовательскими API или системами учёта.


1. Доступ к Webhooks

Навигация: AssetsSettings → вкладка Webhooks.


2. Создать Webhook

  1. Нажмите New Webhook
  2. Введите Webhook Name (например, «Sync to ERP»)
  3. Введите Webhook URL - ваш endpoint (должен принимать POST-запросы)
  4. Выберите Events для подписки (или выберите все)
  5. Опционально установите Secret Key для проверки HMAC-подписи
  6. Опционально добавьте Custom Headers (например, API key)
  7. Установите Active в Yes
  8. Нажмите Save

3. Доступные события

Asset Lifecycle

EventWhen Triggered
asset.createdNew asset created
asset.updatedAsset updated
asset.deletedAsset deleted

Allocation & Assignment

EventWhen Triggered
asset.allocatedAsset allocated to staff
asset.revokedAllocation revoked

Check-in/Check-out

EventWhen Triggered
asset.checked_outAsset checked out
asset.checked_inAsset checked in

Reservations

EventWhen Triggered
asset.reservedReservation created
asset.reservation_approvedReservation approved
asset.reservation_rejectedReservation rejected

Maintenance & Transfers

EventWhen Triggered
asset.maintenance_scheduledMaintenance scheduled
asset.maintenance_completedMaintenance completed
asset.transferredTransfer completed

Loss, Damage, Disposal

EventWhen Triggered
asset.lostAsset reported lost
asset.brokenAsset reported broken
asset.warrantyAsset sent for warranty
asset.liquidatedAsset liquidated

Alerts (via Cron)

EventWhen Triggered
alert.warranty_expiringWarranty expiring in 30 days
alert.maintenance_dueMaintenance due in 7 days
alert.checkout_overdueCheckout overdue
alert.low_stockStock below threshold

4. Формат payload

Каждый webhook отправляет JSON payload:

{
"event": "asset.created",
"timestamp": "2025-02-04T12:00:00+00:00",
"source": "perfex_assets_module",
"asset_id": 123,
"asset": { ... },
"data": { ... }
}
  • event - Event name
  • timestamp - ISO 8601 format
  • asset_id - ID of the asset (null for deleted)
  • asset - Asset data (or extra data for deleted)
  • data - Event-specific data (e.g., allocation details)

5. Проверка подписи

Модуль отправляет подпись HMAC-SHA256 в заголовке:

X-Asset-Webhook-Signature: <signature>
X-Asset-Webhook-Timestamp: <timestamp>
X-Asset-Webhook-Event: <event>

Проверьте в вашем endpoint:

signature = HMAC-SHA256(secret_key, request_body)

6. Логи Webhooks

  • Просмотрите Webhook Logs для статуса доставки
  • Response Code - 2xx = успех, 4xx/5xx = сбой
  • Retry - Некоторые интерфейсы позволяют повторять неудачные доставки
  • Логи обычно очищаются через 30 дней

7. Тест Webhook

Используйте Test Webhook для отправки тестового payload. Полезно для проверки доступности и корректной настройки endpoint.


Рекомендации

  • Используйте HTTPS для URL webhooks
  • Проверяйте подпись для подтверждения, что запросы от модуля
  • Отвечайте быстро (например, 200 OK) - таймаут ~30 секунд
  • Обрабатывайте дубликаты - одно и то же событие может быть повторено
  • Мониторьте логи для неудачных доставок