データエンリッチメント

信頼できるWeb情報をもとに会社レコードを更新するデータエンリッチメントAPIです。

概要

データエンリッチメントには POST /v1/enrich エンドポイントと、その動作を確認できるPlaygroundが含まれます。POST /v1/enrich を使うと、外部Web情報から収集した構造化データで会社レコードを更新できます。このエンドポイントは v1では 企業レコード のみ対応 しており、次の2つの入力方法を使えます。
  • record_id を指定して、Sanka上の既存会社レコードを更新する方法
  • seed を指定して、Sankaレコードなしで dry_run の候補だけ確認する方法
外部ソースから収集した構造化データを使って、会社データを更新できます。

認証

  • 外部連携では Authorization: Bearer <access_token> を使います
  • OAuth経由の呼び出しでは、レコード更新に companies:write 権限が必要です
  • seed を使った dry_run リクエストでは companies:read 権限で呼び出せます
  • Sanka内部ツールでは X-Workspace-Code による認証も使えます

使う場面

次のような場面で利用します。
  • 企業プロフィールの不足項目を補完したいとき
  • 古くなった会社情報をWeb上の情報で更新したいとき
  • CRMレコードを更新する前に、項目ごとの根拠を確認したいとき
必須のリクエスト項目:
  • object_type: company を指定します
  • record_id または seed のどちらか片方を指定します
  • record_id: Sanka上の既存会社レコードを補完するときのUUIDです
  • seed: Sankaレコードを使わずに候補だけ確認したいときの一時的な会社情報です。name または url のどちらかが必要です

対応範囲

  • v1では object_type=company のみ対応しています
  • dry_run を使うと書き込みなしで更新候補を確認できます
  • force_refresh を使うと既存値への上書き判定を行えます
  • seed モードでは、Sankaの会社レコードがなくても会社名やURLだけを渡して試せます
  • seed モードは dry_run のみで、Sanka上にエンリッチ実行履歴は保存されません

リクエストを送る

curl -X POST "https://api.sanka.com/v1/enrich" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "object_type": "company",
    "record_id": "11111111-2222-3333-4444-555555555555",
    "custom_field_map": {
      "industry": "cf_12345",
      "employee_count": "cf_67890"
    }
  }'
同じリクエストは、このページのOpenAPIリファレンスにあるPlaygroundからも試せます。Sankaの会社レコードを使わずに候補だけ確認したい場合は、seeddry_run=true を使います。
{
  "object_type": "company",
  "seed": {
    "name": "Acme",
    "external_id": "row_123"
  },
  "dry_run": true
}
会社名だけでも実行できます。より精度を上げたい場合は、会社URLやドメインもあわせて指定してください。

レスポンスを確認する

レスポンスには次の情報が含まれます。
  • updated_builtin_fields: 実行中に更新された標準項目
  • updated_custom_fields: 更新されたマッピング済みカスタム項目
  • proposed_fields: パイプラインが候補として見つけた値
  • field_evidence: 採用された値ごとの根拠情報
  • skipped_fields: 信頼度や上書き条件を満たさず反映されなかった項目
  • provider_meta: エンリッチメント提供元に関するメタ情報
トップレベルのレスポンス形式は他のAPIと共通です。
{
  "data": {
    "company_id": "<company_uuid_or_null>",
    "seed_external_id": "<external_id_or_null>",
    "run_id": "<run_uuid>",
    "pipeline_version": "v1",
    "updated_builtin_fields": {},
    "updated_custom_fields": {},
    "proposed_fields": {},
    "field_evidence": {},
    "skipped_fields": {},
    "provider_meta": {}
  },
  "message": "ok",
  "ctx_id": "<ctx_id>"
}

dry_runとforce_refresh

dry_run を使うと、実際には書き込まずに候補値と根拠だけを確認できます。
{
  "object_type": "company",
  "record_id": "11111111-2222-3333-4444-555555555555",
  "dry_run": true
}
seed を使う場合は dry_run=true が必須で、Sanka上にエンリッチ実行履歴は保存されません。force_refresh を使うと、書き込みルールが許可する範囲で既存値の上書きを評価できます。
{
  "object_type": "company",
  "record_id": "11111111-2222-3333-4444-555555555555",
  "force_refresh": true
}