Salesforceで電子契約の送付・締結状況を契約に戻す連携
電子契約サービスで契約書を送ったあと、送付済みか締結済みかを Salesforce に手で書き写していることがあります。このページでは、締結の状況を Salesforce に戻す方法の選び方と、一般的な進め方をまとめます。
このページは、ご依頼いただける開発の例の解説です。実際の導入事例ではありません。機能の説明は、末尾の Salesforce 公式の資料で確かめた内容です。
この内容で相談するこんなことで困っていませんか
なぜ起きるのか
電子契約サービスと Salesforce は別のシステムです。相手のサービスで署名が進んでも、つなぐ設定がなければ Salesforce の項目は変わりません。[6][11]
直し方の選択肢
状況を Salesforce に戻す方法は、大きく三つに分かれます。相手のサービスの API で何ができるかを見て選びます。[5][6][11]
- 既製の仕組みを使う:Salesforce Contracts は DocuSign と統合されています。[エンベロープ状況の更新] で照会し、契約を [署名済み] などに移します。ほかに、AppExchange の管理パッケージを組織にインストールして使う形もあります。[5][2][1][17]
- Salesforce から定期的に問い合わせる:スケジュールトリガーフローから HTTP コールアウトで相手の API に問い合わせ、結果を項目に書き込みます。[8][6][9]
- 電子契約サービスから Salesforce に書き込む:相手のサービス側から Salesforce の REST API を呼び、契約レコードを更新します。外部 ID 項目を使うと、相手のサービスの ID で更新するレコードを特定できます。[15][11]
- 書き込む方式の認証には、外部クライアントアプリケーションと OAuth 2.0 クライアントログイン情報フローを使えます。2026年10月時点のリリースノートでは、新しい連携には外部クライアントアプリケーションが勧められています。[11][12][14]
作業の流れ
- 電子契約サービスのどの状況(送付、署名済み、拒否など)を、Salesforce のどの項目に残すかを決めます。標準の契約なら、[オブジェクトマネージャー] の [契約] で [Status (状況)] の選択リスト値を確かめます。[4]
- 相手のサービスの ID を保存する項目を契約に用意します。書き込む方式では、この項目を外部 ID として使います。[15]
- 連携専用のユーザーを作ります。ヘルプでは、連携ごとに 1 人を用意する形が勧められています。Salesforce インテグレーションユーザーライセンスを使うと、API 限定のアクセスに絞れます。[13]
- 認証を設定します。問い合わせる方式では [設定] の [指定ログイン情報] を使います。書き込む方式では [外部クライアントアプリケーションマネージャー] で外部クライアントアプリケーションを開き、[クライアントログイン情報フローを有効化] を選びます。[6][10][12]
- 問い合わせる方式では、スケジュールトリガーフローに HTTP コールアウトのアクションを置き、応答の状況を項目に書き込みます。エラーは障害パスで扱います。[8][6][7]
- 状況の変化を後から追えるように、状況の項目で項目履歴管理を有効にします。[16]
気をつけること
- 問い合わせる方式には、間隔の制約があります。Salesforce Contracts と DocuSign の例では、Salesforce の画面からスケジュールできるのは 1 時間ごとで、DocuSign の API にも 15 分以上の間隔という制限があります。[3]
- スケジュールトリガーフローが待機要素なしでコールアウトできるのは、レコードのバッチを処理し、API バージョン 63.0 以降で動く場合です。条件を満たさないときは、先に待機要素を置きます。[9]
- スケジュールトリガーフローには、24 時間あたりのインタビュー数に上限があります。25 万件か、ユーザーライセンス数に 200 を掛けた数の大きいほうです。[9]
- クライアントログイン情報フローでは、コンシューマー鍵とコンシューマーの秘密にアクセスできるユーザーやアプリケーションがアクセストークンを取得できます。秘密は定期的に変え、漏れたときは直ちに変えます。[11][12]
- 項目履歴管理は、有効にした日時より前の変更を記録しません。また、フローや Apex トリガーが、実行中のユーザーに編集権限のないオブジェクトを変えた場合、その変更は履歴に残りません。[16]
- Salesforce Contracts の状況の値を使う場合、ContractManagement ライセンスで追加される既定の値の名前は変えません。オブジェクト状態値との対応付けが壊れるためです。[4]
想定工数の目安
電子契約サービスと、契約の状況をつなぐ8〜24時間
想定工数は、要件の確認から動作確認・本番反映の手順までを含む実働時間です。※Salesforce の環境(構築済みの仕組みや設定など、さまざまな要素)や、要件によって工数は大幅に前後するため、あくまでも目安です。
質問と答え
Salesforce の機能だけで、電子契約サービスの状況を取り込めますか。
Salesforce Contracts を使う場合は、DocuSign との統合が用意されています。それ以外のサービスでは、フローの HTTP コールアウトや、相手のサービスからの REST API の呼び出しで連携を組みます。[5][6][15]
署名の後、どのくらいで Salesforce に反映されますか。
方式によって変わります。Salesforce から問い合わせる方式では、次の問い合わせのときに反映されます。スケジュールトリガーフローの頻度は、1 回、毎日、毎週から選びます。[8][3]
接続アプリケーションで連携を作れますか。
既存の接続アプリケーションは引き続き動きます。ただし Spring '26 から、新しい接続アプリケーションの作成はデフォルトで無効です。新しい連携には、外部クライアントアプリケーションが勧められています。[14]
外部 ID で更新すると、契約が二重に作られることはありますか。
一致するレコードがないと、新しいレコードが作られます。作らないようにするには updateOnly パラメーターを付けます。一致するレコードが複数あるときはエラーになり、作成も更新も行われません。[15]
出典
- 電子署名の契約申請ワークフロー(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=ind.sf_contracts_Workflow_for_Submitting_a_Contract_for_E-Signature.htm&language=ja&type=5(2026-10-23 確認)
- 電子署名ワークフロー(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=ind.sf_contracts_E-Signature_Workflows.htm&language=ja&type=5(2026-10-23 確認)
- ドキュメントの署名済み状況をポーリングする DocuSign ジョブのスケジュール(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=ind.sf_contracts_Schedule_a_DocuSign_Job_to_Poll_for_Document_Signed_Status.htm&language=ja&type=5(2026-10-23 確認)
- Salesforce Contracts の契約状況選択リスト値(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=ind.sf_contracts_Default_Contract_Status_Picklist_Values.htm&language=ja&type=5(2026-10-23 確認)
- Salesforce Contracts の学習と探索(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=ind.sf_contracts_Salesforce_Contracts_Overview.htm&language=ja&type=5(2026-10-23 確認)
- HTTP コールアウトを使用したコネクタなしの API への接続(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=platform.flow_http_callout.htm&language=ja&type=5(2026-10-23 確認)
- HTTP コールアウトに関する考慮事項と制限(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=platform.flow_http_callout_considerations.htm&language=ja&type=5(2026-10-23 確認)
- スケジュールトリガーフロー(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_schedule.htm&language=ja&type=5(2026-10-23 確認)
- スケジュールトリガーフローに関する考慮事項(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=platform.flow_considerations_trigger_schedule.htm&language=ja&type=5(2026-10-23 確認)
- 指定ログイン情報(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&language=ja&type=5(2026-10-23 確認)
- サーバー間インテグレーション用の OAuth 2.0 クライアントログイン情報フロー(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=xcloud.remoteaccess_oauth_client_credentials_flow.htm&language=ja&type=5(2026-10-23 確認)
- クライアントログイン情報フローの設定(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=xcloud.configure_client_credentials_flow_for_external_client_apps.htm&language=ja&type=5(2026-10-23 確認)
- インテグレーションユーザーへの API 限定アクセス権の付与(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=platform.integration_user.htm&language=ja&type=5(2026-10-23 確認)
- デフォルトで無効化されるようになった新規接続アプリケーションの作成(Salesforce リリースノート)help.salesforce.com/s/articleView?id=release-notes.rn_security_identity_connected_app_creation_disabled.htm&language=ja&release=260&type=5(2026-10-23 確認)
- Insert or Update (Upsert) a Record Using an External ID(REST API Developer Guide)developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_upsert.htm(2026-10-23 確認)
- 項目履歴管理の概要(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=xcloud.tracking_field_history.htm&language=ja&type=5(2026-10-23 確認)
- 管理パッケージのインストール(Salesforce ヘルプ)help.salesforce.com/s/articleView?id=sf.distribution_installing_packages.htm&language=ja&type=5(2026-10-23 確認)