メインコンテンツまでスキップ

Webhooks

Webhooks は資産イベント発生時に外部システムへリアルタイムで通知を送信します。Zapier、Make、カスタム API、在庫システムで使用できます。


1. Webhooks にアクセスする

ナビゲーション: AssetsSettingsWebhooks タブ。


2. Webhook を作成する

  1. New Webhook をクリック
  2. Webhook Name を入力(例:「Sync to ERP」)
  3. Webhook URL を入力 - エンドポイント(POST リクエストを受け付ける必要あり)
  4. 購読する Events を選択(またはすべて選択)
  5. オプションで HMAC 署名検証用の Secret Key を設定
  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. ペイロード形式

各 webhook は JSON ペイロードを送信します:

{
"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>

エンドポイントで検証:

signature = HMAC-SHA256(secret_key, request_body)

6. Webhook ログ

  • Webhook Logs で配信ステータスを確認
  • Response Code - 2xx = 成功、4xx/5xx = 失敗
  • Retry - 一部のインターフェースでは失敗した配信の再試行が可能
  • ログは通常 30 日後に削除されます

7. Webhook のテスト

Test Webhook でテストペイロードを送信できます。エンドポイントが到達可能で正しく設定されているか確認するのに便利です。


ベストプラクティス

  • Webhook URL には HTTPS を使用
  • リクエストがモジュールからのものであることを確認するため 署名を検証
  • 迅速に応答(例:200 OK)- タイムアウトは約 30 秒
  • 重複を処理 - 同じイベントが再試行される場合がある
  • 失敗した配信のため ログを監視