LOOVサポートサイト

Webhook連携で、視聴履歴データを外部システムに送信することはできますか?

安田有沙2026-01-27

はい、可能です。LOOVでは Webhook連携 を利用することで、シナリオの視聴開始やフォーム回答などのイベント発生時に、指定したURLへ視聴履歴データを自動送信 できます。

本機能のご利用について

契約内容によって利用出来ない場合がございます。

ご利用を要望の場合は担当者までお問い合わせください。

Webhook連携を有効にすると、LOOV上で発生したユーザー行動をトリガーとして、外部システム(CRM/社内システムなど)へ自動で通知できます。

  • シナリオの閲覧開始

  • シナリオ内の通知条件成立

  • シナリオ内フォームの回答

これにより、

  • 視聴状況に応じた独自の業務フロー構築

  • CRMや社内DBへのリアルタイム連携

といった活用が可能になります。

管理画面より、「外部連携」>「Webhook連携」 を開きます。

画面上部のスイッチを「有効」に切り替えます。

Salesforce / HubSpot / Marketo 連携が有効な場合、Webhook連携は同時に利用できません。

通知先となるURLを入力します。イベント発生時、このURLにPOSTリクエストが送信されます。

Webhook URLを保存すると、Secretが自動発行されます。

  • Secretは 一度しか表示されません

  • 必ずコピーして、安全な場所に保管してください

  • 再生成すると、既存のSecretは即時無効になります

Webhook送信に失敗した場合の通知先メールアドレスを設定できます。

「認証確認する」ボタンから、Webhook URLとSecretが正しく設定されているか確認できます。

正しく設定されていると、認証成功と表示されます。

  • Secretを再生成した場合は、外部システム側の設定も更新してください

  • Webhook URLの変更は即時反映されます


以下は、Webhook受信側の実装に必要な仕様です。

  • Webhook URLは HTTPS(https://)必須

  • Method: POST

  • Content-Type: application/json

ヘッダー

説明

Content-Type

application/json

X-Signature

改ざん検知用署名(HMAC-SHA256)

User-Agent

Mozilla/5.0 (compatible; LOOV-Webhook/1.0)

  • 署名は HMAC-SHA256 を使用し、リクエストボディ文字列(raw JSON) を対象に計算します。

  • 出力形式は hex(小文字) です。

  • 生成した署名を X-Signature ヘッダーに設定します。

JavaScript
  • JSON をパースして再 stringify した値ではなく、受信した 生のリクエストボディ文字列 を用いて検証してください。

  • 署名が一致しない場合は、改ざんの可能性があるため処理を中止してください。

リクエストボディには timestamp(UNIX 秒)が含まれます。

  • timestamp送信時点の UNIX 秒 を表します。

  • 推奨:受信側で timestamp の許容ウィンドウ(例:±5分)を設け、過去・未来に大きく外れたものを拒否してください。

  • 推奨:timestampX-Signature を組み合わせ、重複受信(リトライ/再送)を考慮した設計を行ってください。

Webhook は次の JSON 形式で送信されます。

JSON

フィールド

必須

説明

timestamp

number

必須

Webhook 送信時刻(UNIX 秒)

event

object

必須

イベント本体

event はイベント種別に応じて内容が変わりますが、以下は共通項目です。

フィールド

必須

説明

type

string

必須

イベント種別

timestamp

number

必須

イベント発生時刻(UNIX 秒)。送信時刻(ボディ直下の timestamp)とは別です

scenarioId

string

必須

シナリオID

scenarioName

string

必須

シナリオ名

leadSessionId

string

必須

リードセッションID

leadSessionUrl

string

必須

リードセッションURL

leadProfile

object

null

必須

leadProfile は次の形式です(null の場合あり)。

フィールド

必須

説明

name

string

null

必須

email

string

null

必須

organization

string

null

必須

  • type: scenario_view_started

  • 概要: シナリオの閲覧が開始されたことを通知します。このイベントは同一sessionにおいて1度だけ呼ばれます。

  • 有効化方法: 管理画面でのWebhook連携設定が完了すると、自動で有効化されます。

例:

JSON
  • type: scenario_notification_condition_met

  • 概要: シナリオ内の通知条件が成立したことを通知します。

有効化方法:

シナリオ編集画面の「全体設定」 > 「視聴通知設定」で通知条件を設定すると有効化されます。

📖 視聴通知設定について詳しくはこちら:

追加フィールド:

フィールド

必須

説明

notificationName

string

必須

通知名

例:

JSON
  • type: scenario_form_answered

  • 概要:フォームが回答されたことを通知します。

有効化方法:

フォームスライドの「入力項目の設定」>「Webhook項目」で値を設定すると有効化されます

追加フィールド:

フィールド

必須

説明

formAnswer

object

必須

{ [key: string]: string } 形式の回答データ。keyはWebhook項目で設定した値。

例:

JSON

  • 正常処理できた場合は 200 OK を返してください。

  • Webhook 送信元は、HTTP ステータスが 2xx 以外の場合、失敗として扱います。

  • 特定のイベントの失敗時には「連携エラー通知先メールアドレス」にメールが送信されます。以下のイベントが対応しています

    • scenario_form_answered

  • X-Signature の検証を必須化

  • timestamp の許容ウィンドウチェック(例:±300秒)

  • 重複受信に備えた冪等設計(leadSessionId + event.type + event.timestamp 等での重複排除を推奨)

以下の「リプレイ攻撃対策」もあわせてご確認ください。

🔗 リプレイ攻撃対策の詳細を見る