活用Tips
SP-FAX 外部連携設定画面 — Webhook連携

Webhook連携ガイド — FAX OCR結果をリアルタイムで外部システムに送る

SP-FAX OCRにはkintoneやfreeeとのダイレクト連携機能がありますが、「うちの基幹システムは自社開発なんだけど...」「GAS(Google Apps Script)でスプレッドシートに書き込みたい」「Slackに通知を飛ばしたい」という声もよくいただきます。

そんなときに使えるのがWebhook連携です。OCR結果が承認されたタイミングで、指定したURLにJSONデータをリアルタイムでPOSTします。受け取り側さえ用意すれば、どんなシステムとでも繋がります。

この記事では、Webhookの仕組みから設定方法、送信されるJSONの構造、そして実際の活用例まで、ステップバイステップで解説します。

Webhookとは何か

Webhookは「イベントが発生したら、指定URLにHTTPリクエストを送る」仕組みです。SP-FAX OCRの場合、OCR結果が承認されたタイミングがイベントのトリガーになります。

ポーリングとの違い

APIを定期的に叩いて「新しいデータある?」と確認するのがポーリング。Webhookは逆で、SP-FAX側から「新しいデータができたよ」と通知します。無駄なリクエストが発生せず、データ取得のタイムラグもほぼゼロです。

トリガーのタイミング

Webhookが発火するのは、担当者がOCRレビュー画面で「承認」ボタンを押した瞬間です。AIが読み取った結果を人間が確認・修正した確定済みのデータだけが送信されるため、受け取り側で精度を心配する必要はありません。

つまりWebhookを使えば、FAXが届いてからOCR→レビュー→承認→外部システム登録まで、すべてをリアルタイムの一本道でつなげられます。

Webhookの設定方法

設定は管理画面の「外部連携(コネクター)」から行います。数分で完了します。

SP-FAX 外部連携設定画面 — コネクター一覧

外部連携の設定画面。「コネクターを追加」からWebhookを選択する。

設定手順

  1. 1

    コネクターを追加

    管理画面のサイドバーから「外部連携」を開き、「コネクターを追加」をクリック。タイプ一覧から「Webhook」を選択します。

  2. 2

    送信先URLを入力

    OCR結果をPOSTする先のURLを指定します。GASのWebアプリURL、Slackの Incoming Webhook URL、自社APIのエンドポイントなど、HTTP POSTを受け取れるURLならなんでもOKです。

  3. 3

    認証ヘッダーを設定(任意)

    受け取り側でリクエストの正当性を検証するためのヘッダーを追加できます。例: Authorization: Bearer your-secret-token。セキュリティの観点から設定を推奨します。

  4. 4

    テスト送信で確認

    「テスト送信」ボタンを押すと、サンプルデータが送信先に送られます。受け取り側でデータが正しく届いているか確認してから、本番運用を開始しましょう。

送信されるJSONの構造

OCR結果が承認されると、以下のようなJSONが指定URLにPOSTされます。Content-Typeは application/json です。

{
  "event": "ocr.approved",
  "timestamp": "2026-03-18T10:30:00+09:00",
  "data": {
    "ocr_id": "ocr_abc123def456",
    "document_type": "order",
    "sender": {
      "fax_number": "03-1234-5678",
      "company_name": "山田自動車整備工場",
      "resolved_name": "山田自動車整備工場"
    },
    "items": [
      {
        "product_code": "SL-H4-060",
        "product_code_raw": "SL H4 060",
        "product_name": "LEDヘッドライト H4 6000K",
        "quantity": 6,
        "quantity_raw": "6ヨウ",
        "unit_price": 4980,
        "note": "納期3/25希望"
      },
      {
        "product_code": "SL-HB3-045",
        "product_code_raw": "HB3-045",
        "product_name": "LEDヘッドライト HB3 4500K",
        "quantity": 2,
        "quantity_raw": "2",
        "unit_price": 5200,
        "note": ""
      }
    ],
    "plain_text": "注文書\n山田自動車整備工場\n...",
    "pdf_url": "https://fax.spread-inc.co.jp/api/ocr/ocr_abc123def456/pdf",
    "approved_by": "tanaka@example.com",
    "approved_at": "2026-03-18T10:30:00+09:00"
  }
}

主要フィールド

event — イベント種別。現在は ocr.approved(承認時)のみ。

document_type — AIが自動分類した帳票タイプ。order(注文書)、replacement_request(代品依頼)、defect_report(不具合報告)など。

product_codeproduct_code_raw — マスタ照合後の品番と、FAX原文に書かれていた生の表記。辞書機能で変換された場合に差異が出ます。

quantityquantity_raw — 同様に、変換後の数値と原文。「6ヨウ」→ 6 のように正規化されます。

plain_text — FAX全体の要約テキスト。構造化データに入りきらない備考や特記事項もここに含まれます。

pdf_url — FAX原本のPDFダウンロードURL(API認証が必要)。

Webhook活用例

Webhookの受け取り先次第で、活用方法は無限に広がります。代表的な例を紹介します。

Google Apps Script (GAS) でスプレッドシートに自動記録

GASのWebアプリとしてデプロイしたスクリプトでWebhookを受け取り、Googleスプレッドシートに1行ずつ追記する構成です。コストゼロで始められ、非エンジニアでもスプレッドシート上でデータを確認・集計できます。

function doPost(e) {
  const payload = JSON.parse(e.postData.contents);
  const sheet = SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName("FAX受注");

  // 承認済みOCR結果の各明細行を追記
  payload.data.items.forEach(item => {
    sheet.appendRow([
      payload.data.approved_at,
      payload.data.sender.company_name,
      payload.data.document_type,
      item.product_code,
      item.product_name,
      item.quantity,
      item.unit_price,
      item.note
    ]);
  });

  return ContentService
    .createTextOutput("OK")
    .setMimeType(ContentService.MimeType.TEXT);
}

Slack通知 — FAX注文が入ったらチャンネルに自動投稿

SlackのIncoming Webhook URLを設定すれば、OCR結果が承認されるたびにチャンネルに通知が飛びます。ただしSlackのWebhookは独自のJSON形式を要求するため、間にGASやAWS Lambdaを挟んでフォーマット変換する構成が一般的です。

通知例: 「注文書 / 山田自動車整備工場 / SL-H4-060 x6, SL-HB3-045 x2 / 納期3/25希望」

自社基幹システムへの自動登録

自社のAPIエンドポイントをWebhook送信先に指定すれば、OCR結果を直接基幹システムに登録できます。品番マッチング、在庫引当、受注伝票の自動作成まで、FAX受信から完全自動化するシナリオも実現可能です。

Zapier / Make経由で数百のアプリと連携

ノーコード自動化ツールのZapierやMake(旧Integromat)は、Webhookをトリガーとして受け取ることができます。SP-FAXのWebhookをトリガーにして、Notion・Airtable・HubSpot・Chatwork・Microsoft Teams など、数百のアプリにデータを流し込めます。プログラミング不要です。

セキュリティと信頼性

Webhookで送信されるデータにはFAX注文書の品番・数量・取引先名など業務上重要な情報が含まれます。安全に運用するためのポイントを押さえておきましょう。

認証ヘッダー

Webhookリクエストに独自のAuthorizationヘッダーを付与できます。受け取り側でこのトークンを検証することで、SP-FAXからの正規リクエスト以外を弾けます。

HTTPS必須

送信先URLはHTTPSのみ受け付けます。通信経路上でデータが平文で流れることはありません。

自動リトライ

送信先がHTTP 2xx以外を返した場合、SP-FAXは指数バックオフで最大5回リトライします。一時的なサーバー障害でデータが欠落するリスクを軽減します。

送信ログ

Webhook送信の成否は管理画面の送信ログで確認できます。ステータスコード、レスポンスタイム、リトライ回数が記録されるので、トラブルシューティングも容易です。

承認前のレビュー画面

Webhookで送信されるデータは、担当者がレビュー画面で確認・修正したあとの確定データです。参考までに、レビュー画面の実際の様子を紹介します。

SP-FAX OCRレビュー画面 — AIの読み取り結果を確認・修正してから承認

レビュー画面。左にFAX原本、右にAIが抽出した構造化データ。「承認」を押した瞬間にWebhookが発火する。

AIの読み取り結果に誤りがあればこの画面で修正し、「承認」を押します。Webhookには修正後の正確なデータだけが送信されるため、受け取り側で二重チェックする必要はありません。

関連記事

まずは50枚無料でお試しください

Webhook連携も無料トライアルに含まれています。登録は1分、クレジットカード不要。

50枚無料で試す
← ブログ一覧に戻る