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の設定方法
設定は管理画面の「外部連携(コネクター)」から行います。数分で完了します。
外部連携の設定画面。「コネクターを追加」からWebhookを選択する。
設定手順
-
1
コネクターを追加
管理画面のサイドバーから「外部連携」を開き、「コネクターを追加」をクリック。タイプ一覧から「Webhook」を選択します。
-
2
送信先URLを入力
OCR結果をPOSTする先のURLを指定します。GASのWebアプリURL、Slackの Incoming Webhook URL、自社APIのエンドポイントなど、HTTP POSTを受け取れるURLならなんでもOKです。
-
3
認証ヘッダーを設定(任意)
受け取り側でリクエストの正当性を検証するためのヘッダーを追加できます。例:
Authorization: Bearer your-secret-token。セキュリティの観点から設定を推奨します。 -
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_code と product_code_raw — マスタ照合後の品番と、FAX原文に書かれていた生の表記。辞書機能で変換された場合に差異が出ます。
quantity と quantity_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で送信されるデータは、担当者がレビュー画面で確認・修正したあとの確定データです。参考までに、レビュー画面の実際の様子を紹介します。
レビュー画面。左にFAX原本、右にAIが抽出した構造化データ。「承認」を押した瞬間にWebhookが発火する。
AIの読み取り結果に誤りがあればこの画面で修正し、「承認」を押します。Webhookには修正後の正確なデータだけが送信されるため、受け取り側で二重チェックする必要はありません。
関連記事
まずは50枚無料でお試しください
Webhook連携も無料トライアルに含まれています。登録は1分、クレジットカード不要。
50枚無料で試す