Webhook

  • リリースバージョン: Zurich
  • 更新日 2025年11月17日
  • 所要時間:14分
  • Webhook は、構成が保存されるたびに POST 要求を受信できるエンドポイントです。

    ServiceNow CPQ は、構成の保存時に POST 要求を受信できるエンドポイントである Webhook をサポートしています。Webhook が構成されると、保存構成アクションのたびに呼び出されます。

    Webhook を有効にするには、サポートにケースを記録してください。Logik 環境ごとに作成できる Webhook は 1 つだけです。

    Webhook のユースケース

    Webhook を使用して、 ServiceNow CPQ から他のダウンストリームシステムにデータを統合できます。ユースケースには次のようなものがあります。

    1. 直接 URL を介した ServiceNow CPQ ネイティブ UI の表示 Webhook を介して構成結果をサードパーティの宛先に送信します。
    2. 構成データを見積もりシステムまたは注文管理システムに直接送信します。
    3. データを操作して下流のシステムに渡すことができるミドルウェアに構成結果をプッシュします。

    Logik.io Webhook デモ

    Webhook セットアップ

    Webhook セットアップ

    1. Webhook を有効にすると、Webhook は [ ServiceNow CPQ アドミン] 画面の [ユーティリティ] メニューの [Webhook] にあります。
    2. 概要:Webhook の構成は外部接続と似ており、[名前]、[説明]、および [統合タイプ] をすべて定義できます。
    3. 認証:Webhook は、認証なし (None) とベアラートークン認証 (ベアラートークン) の両方をサポートしています
    4. Webhook の詳細:Webhook のその他の詳細を指定して、動作を制御することもできます

    Webhook 詳細

    Webhook セットアップ

    1. URL:構成の保存時に Logik からデータを受信するエンドポイントを指定します。HTTP POST 要求を受信できる必要があります。
    2. 非同期:有効にすると、エンドユーザーは構成が完了するとすぐにリダイレクトされ、終了する前にサーバーからの応答を待たなくなります。これにより、保存プロセスが「非同期」になります。

      無効にすると、ユーザーをリダイレクトする前に Webhook プロセスが解決されます。つまり、保存プロセスは「同期」になります。

    3. コンテンツ:Logik がエンドポイントに送信するデータを決定します。
      • 「構成データ」:アドミンが作成したすべての構成フィールドとその入力値
      • 「BOM フィールドとシステムフィールド」:すべてのシステム構成フィールドとその値。部品表 (すぐ下の BOM タイプ入力で指定)
    4. BOM タイプ:要求で送信する BOM タイプを指定します
    5. タイムアウト:タイムアウト値 (ミリ秒単位)。
    6. 追加ヘッダー:要求とともに送信する必要がある追加のヘッダーは、引用符で囲まれたキーと値のペアの形式でここで設定できます。例:"X-header1": "value1"

    Webhook 本文の例

    Webhook が外部リソースに送信する本文は、ハンドラーを作成する際に参照するために、次のようになります。この例では、環境の製品ピッカーとビルトインシステムフィールドについて説明します。

    {
      "uuid": "8014a955-49c4-4d63-a15a-8c91cef6f6f4",
      "fields": [
        {
          "userEdited": false,
          "dataType": "array",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "pp",
          "uniqueName": "pp",
          "value": ["alpha"],
          "optionSet": {
            "selectedOptions": [
              {
                "label": "alpha",
                "state": "visible",
                "value": "alpha",
                "imageUrl": null,
                "orderNumber": 10
              }
            ],
            "options": [
              {
                "label": "alpha",
                "state": "visible",
                "value": "alpha",
                "imageUrl": null,
                "orderNumber": 10
              },
              {
                "label": "beta",
                "state": "visible",
                "value": "beta",
                "imageUrl": null,
                "orderNumber": null
              }
            ]
          },
          "rows": {
            "content": [
              {
                "index": 0,
                "fields": [
                  {
                    "userEdited": false,
                    "dataType": "text",
                    "visibilityState": "visible",
                    "editable": "false",
                    "variableName": "pp.value",
                    "uniqueName": "pp-0-pp.value",
                    "value": "alpha",
                    "set": "pp",
                    "index": 0
                  },
                  {
                    "userEdited": true,
                    "dataType": "boolean",
                    "visibilityState": "visible",
                    "editable": "true",
                    "variableName": "pp.select",
                    "uniqueName": "pp-0-pp.select",
                    "value": true,
                    "optionSet": {
                      "options": [
                        {
                          "label": "true",
                          "state": "visible",
                          "value": "true",
                          "imageUrl": null,
                          "orderNumber": null
                        },
                        {
                          "label": "false",
                          "state": "visible",
                          "value": "false",
                          "imageUrl": null,
                          "orderNumber": null
                        }
                      ]
                    },
                    "set": "pp",
                    "index": 0
                  },
                  {
                    "userEdited": false,
                    "dataType": "number",
                    "visibilityState": "visible",
                    "editable": "true",
                    "variableName": "pp.quantity",
                    "uniqueName": "pp-0-pp.quantity",
                    "value": 1,
                    "set": "pp",
                    "index": 0
                  },
                  {
                    "userEdited": false,
                    "dataType": "text",
                    "visibilityState": "visible",
                    "editable": "true",
                    "variableName": "pp.data",
                    "uniqueName": "pp-0-pp.data",
                    "value": "",
                    "set": "pp",
                    "index": 0
                  }
                ],
                "label": "alpha",
                "state": "visible",
                "value": "alpha",
                "imageUrl": null,
                "orderNumber": 10,
                "productDetails": {}
              },
              {
                "index": 1,
                "fields": [
                  {
                    "userEdited": false,
                    "dataType": "text",
                    "visibilityState": "visible",
                    "editable": "false",
                    "variableName": "pp.value",
                    "uniqueName": "pp-1-pp.value",
                    "value": "beta",
                    "set": "pp",
                    "index": 1
                  },
                  {
                    "userEdited": false,
                    "dataType": "boolean",
                    "visibilityState": "visible",
                    "editable": "true",
                    "variableName": "pp.select",
                    "uniqueName": "pp-1-pp.select",
                    "value": false,
                    "optionSet": {
                      "options": [
                        {
                          "label": "true",
                          "state": "visible",
                          "value": "true",
                          "imageUrl": null,
                          "orderNumber": null
                        },
                        {
                          "label": "false",
                          "state": "visible",
                          "value": "false",
                          "imageUrl": null,
                          "orderNumber": null
                        }
                      ]
                    },
                    "set": "pp",
                    "index": 1
                  },
                  {
                    "userEdited": false,
                    "dataType": "number",
                    "visibilityState": "visible",
                    "editable": "true",
                    "variableName": "pp.quantity",
                    "uniqueName": "pp-1-pp.quantity",
                    "value": 0,
                    "set": "pp",
                    "index": 1
                  },
                  {
                    "userEdited": false,
                    "dataType": "text",
                    "visibilityState": "visible",
                    "editable": "true",
                    "variableName": "pp.data",
                    "uniqueName": "pp-1-pp.data",
                    "value": "",
                    "set": "pp",
                    "index": 1
                  }
                ],
                "label": "beta",
                "state": "visible",
                "value": "beta",
                "imageUrl": null,
                "orderNumber": null,
                "productDetails": {}
              }
            ],
            "pageable": "INSTANCE",
            "last": true,
            "totalPages": 1,
            "totalElements": 2,
            "size": 2,
            "number": 0,
            "sort": { "empty": true, "sorted": false, "unsorted": true },
            "numberOfElements": 2,
            "first": true,
            "empty": false
          }
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.productCode",
          "uniqueName": "sys.productCode",
          "value": "CC-LGK"
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "partner.quote.pricebookId",
          "uniqueName": "partner.quote.pricebookId",
          "value": ""
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "partner.quote.currencyIsoCode",
          "uniqueName": "partner.quote.currencyIsoCode",
          "value": "USD"
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.productFamily",
          "uniqueName": "sys.productFamily",
          "value": ""
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.productDescription",
          "uniqueName": "sys.productDescription",
          "value": ""
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "partner.quote.id",
          "uniqueName": "partner.quote.id",
          "value": ""
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.productUOM",
          "uniqueName": "sys.productUOM",
          "value": ""
        },
        {
          "userEdited": false,
          "dataType": "number",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.productPrice",
          "uniqueName": "sys.productPrice",
          "value": 0
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.productName",
          "uniqueName": "sys.productName",
          "value": "CheckConfig"
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "partner.quote.lineId",
          "uniqueName": "partner.quote.lineId",
          "value": ""
        },
        {
          "userEdited": false,
          "dataType": "number",
          "visibilityState": "visible",
          "editable": "false",
          "variableName": "pp.aggregates.quantity_sum",
          "uniqueName": "pp.aggregates.quantity_sum",
          "value": 1
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.productId",
          "uniqueName": "sys.productId",
          "value": "CC-LGK"
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.actionContext",
          "uniqueName": "sys.actionContext",
          "value": ""
        },
        {
          "userEdited": false,
          "dataType": "text",
          "visibilityState": "visible",
          "editable": "true",
          "variableName": "sys.currentDate",
          "uniqueName": "sys.currentDate",
          "value": "2023-08-04"
        }
      ],
      "products": [
        {
          "id": "alpha",
          "quantity": 1,
          "bomType": "SALES",
          "type": "accessory",
          "extended": { "data": "" },
          "pricing": {
            "productSellingModelId": "OneTime_OneTime_2023_07_05",
            "endDate": null,
            "startDate": null,
            "ProductId": "01tHr000007i4B5IAI",
            "StartingUnitPriceSource": "System",
            "ListPrice": 99.99,
            "TotalLineAmount": 99.99,
            "ListPriceTotal": 99.99,
            "StartingPriceTotal": 99.99,
            "Quantity": 1.0,
            "PricingTermCount": 1,
            "NetUnitPrice": 99.99,
            "StartingUnitPrice": 99.99,
            "PricebookEntryId": "01uHr00000FYKDUIA5",
            "TotalAdjustmentDistAmount": 0,
            "TotalAdjustmentAmount": 0,
            "TotalPrice": 99.99,
            "SalesItemType": "Product"
          },
          "name": "alpha",
          "partnerId": "01tHr000007i4B5IAI",
          "productCode": "alpha",
          "externalId": "",
          "productFamily": "",
          "description": "",
          "uom": "",
          "price": 99.99,
          "extPrice": 99.99,
          "level": 0,
          "rollUpPrice": 99.99
        }
      ],
      "total": 99.99
    }