データ連携でエラーが発生したとき、ログを開いて出てくるのは 英語の専門用語の塊。「INVALID_SESSION_ID」「FIELD_CUSTOM_VALIDATION_EXCEPTION」「403 Forbidden」── どこを読めばいいのか、これが何を意味し、どう直せばいいかをその場で読み解ける人は限られています。Passworkの「AIエラー分析」は、AIがエラーの意味をユーザーの言葉に翻訳し、フロー画面で対話的に修正へつなぐ機能です。
01 エラーログが「読めない」── データ連携運用の構造的ストレス
{"ts":"2026-05-05T10:55:12.705Z","message":"{\"event\":\"salesforce_dml_error\",\"phase\":\"output\",\"operation\":\"upsert\",\"object\":\"Account\",\"errorCode\":\"FIELD_CUSTOM_VALIDATION_EXCEPTION\",\"message\":\"顧客の場合は、取引フェーズを必ず入力してください。\",\"fields\":[],\"record\":{\"Name\":\"株式会社Praztoテスト\",\"BoardClientNo__c\":\"54283609\",\"Type\":\"顧客\"},\"sourceRecord\":{\"Id\":null,\"Name\":\"株式会社Praztoテスト\",\"BoardClientNo__c\":\"54283609\",\"@@FIXED@@顧客\":\"顧客\"},\"matchedValidationRule\":{\"id\":\"03dRC00000KS2ZdYAL\",\"name\":\"PhaseIsRequiredWhenClient\",\"active\":true,\"errorMessage\":\"顧客の場合は、取引フェーズを必ず入力してください。\",\"errorDisplayField\":\"ページの最上位へ\",\"description\":null,\"errorConditionFormula\":\"( TEXT(Type) == \\\"顧客\\\") && (ISNULL(TEXT( AccountPhase__c)) || IsBlank(TEXT( AccountPhase__c)))\"},\"node\":null}"}
{"ts":"2026-05-05T10:55:12.710Z","message":"job-runner failed: Error: Error: upsert() failed: [{\"success\":false,\"errors\":[{\"data\":{\"message\":\"顧客の場合は、取引フェーズを必ず入力してください。\",\"errorCode\":\"FIELD_CUSTOM_VALIDATION_EXCEPTION\",\"fields\":[]},\"errorCode\":\"FIELD_CUSTOM_VALIDATION_EXCEPTION\",\"name\":\"FIELD_CUSTOM_VALIDATION_EXCEPTION\"}]}]"}
=== ERROR ===
Error: Error: upsert() failed: [{"success":false,"errors":[{"data":{"message":"顧客の場合は、取引フェーズを必ず入力してください。","errorCode":"FIELD_CUSTOM_VALIDATION_EXCEPTION","fields":[]},"errorCode":"FIELD_CUSTOM_VALIDATION_EXCEPTION","name":"FIELD_CUSTOM_VALIDATION_EXCEPTION"}]}]
Error: Error: upsert() failed: [{"success":false,"errors":[{"data":{"message":"顧客の場合は、取引フェーズを必ず入力してください。","errorCode":"FIELD_CUSTOM_VALIDATION_EXCEPTION","fields":[]},"errorCode":"FIELD_CUSTOM_VALIDATION_EXCEPTION","name":"FIELD_CUSTOM_VALIDATION_EXCEPTION"}]}]
at SalesforceClient.upsert (/app/node-lib/salesforce-client.js:602:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async OutputNodeService.run (/app/node-lib/output-node-service.js:415:20)
at async runJobRunnerOnce (/app/node-lib/job-runner.js:2017:29)
at async entrypoint (/app/node-lib/job-runner.js:2714:13)まず、大半の人はこのログを目にした瞬間、どこに真因への手がかりがあるのか見極められません。「FIELD_CUSTOM_VALIDATION_EXCEPTION」── 直訳すれば「フィールドカスタム検証例外」。仮にこのキーワードに目を留められたとしても、日本語に置き換えただけでは依然として意味が掴めないのです。
- これは Salesforce 側の問題なのか、それとも Passwork 側の問題なのか?
- 「Validation」とは、誰が設定したルールへの違反を指しているのか?
- そもそも、どのフィールドで発生しているエラーなのか?
- 修正するには、データを直すべきか、フローの設定を直すべきか、あるいは Salesforce 管理者に依頼するべきか?
これらを判断するには、Salesforce の仕様、入力規則の機能、フロー設計、SOQL の挙動 ── 複数の領域知識を同時に動員する必要があります。ツールの使い方は理解できても、結局のところ運用に乗せられない ── これがエラー対応の現実です。

よくある現場の声
「エラーログを見せられても、何が悪いのか 3 分で分かる人と、1 時間調べてもたどり着けない人がいる。たいてい、3 分で分かる人は社内に 1 人か 2 人。その人がいないと、フローは止まったままになる」── これこそが、データ連携の運用が “特定の人への依存” から抜け出せない構造の正体です。ここに私たち Prazto は、ひとつの問いを立てました。
今は AI がある。エラーログを「現象のまま」突きつけ続けるのではなく、「意味」に翻訳して届けられれば、もっと多くの人が自分の手で対処できるのではないか?02 エラーには「現象」と「意味」がある ── AIが入る場所
エラーログには、2つの層(レイヤー)があります。
層(レイヤー) 中身 読み手 現象 エラーコード、スタックトレース、HTTPステータスなど 機械が出力した文字列そのもの 機械が読みやすい形式。人間にはそのままでは伝わらない。 意味 「何が起きていて、どう直せばよいか」を、サービスの仕様や業務文脈と接続して解釈したもの 人間が判断・対処するために必要な形式。
従来のエラーログは 「現象」のまま 表示されます。「意味」への翻訳は、エンジニアの頭の中で行われていました。
このギャップを埋めるのが、PassworkのAIエラー分析です。AIは 「エラーログ × Salesforce等のサービス仕様 × フロー設定の文脈」 を組み合わせて、エラーの意味を日本語で説明します。

AIエラー分析 - 原因: Salesforceの取引フェーズ(Stage)フィールドが必須項目として設定されているが、 Boardから連携されるデータに該当フィールドが不足している、または値が空のため、 Salesforceのバリデーションエラーが発生している。 - 対処法: ①Passworkのマッピング設定でBoardデータに「取引フェーズ」に対応するフィールドを追加し、 デフォルト値を設定する。②またはSalesforceの取引フェーズをオプション項目に変更するか、 バリデーションルールを見直す。
こちらが先程のエラーに対する実際のAIのエラー分析です。「何が起きていて、どう直せばよいか」をユーザーにとってわかりやすい言葉でまとめています。
大事なポイント ── AI が、対話しながら修正に伴走する
PassworkのAI エラー分析は「自動で直す」機能ではありません。そもそも実務において、AI が完全に自動で直しきれる状況はむしろ少数派で、業務上の文脈や個別の運用事情を踏まえなければ正しく対処できないケースがほとんどです。だからこそ、直すかどうか、どう直すかの最終判断は、必ず人間に委ねます。
PassworkのAI が担うのは「読めない世界」を「読める世界」へ翻訳すること。そこから先は、AI と対話を重ねながら、ユーザーが一緒に修正の道筋を組み立てていくプロセスです。最初の解釈に対して「この項目は別の意味で使っている」「この運用ではこちらを優先したい」と返せば、AI はその文脈を踏まえて次の打ち手を提案する。やり取りを重ねるなかで、現場の事情に沿った修正案が立ち上がっていきます。
判断と実行は人、解釈と対話の伴走は AI ── この役割分担こそが、設計思想の中心にあります。



03 PassworkのAIエラー分析がやっている2つのこと
Passwork の AI 機能のうち、本記事で扱う AI エラー分析は 運用フェーズで困ったときの伴走者 として働きます。フロー自体をAIに作らせる側の機能は、こちらで扱っているので、必要に応じて参照してください。
AI エラー分析がやっているのは、大きく次の2つです。
- エラーの「意味」を翻訳する
エラーコード・メッセージ・発生ノードのコネクタ種別から、「これは Salesforceの入力規則違反」「これは TableauのPAT認証切れ」とカテゴリを特定します。識別したカテゴリに沿って、「そもそもこの機能は何か」「なぜブロックされたのか」「どんな選択肢で対処できるのか」を、専門用語を最小限に抑えた日本語で説明します。Salesforceの仕様、Tableauの認証ライフサイクルなど、サービス側の知識 を補ったうえで翻訳するのが、Google検索への単純なコピペ検索との大きな違いです。
- フロー画面を開きながら対話的に修正を行っていく
意味を提示するだけでなく、「どこの設定を直せばよいか」 をフロー画面の具体的なノード・コネクタ設定として案内します。ユーザーは自動的に遷移したフロー画面の画面で “AIと対話しながら” 原因の修正を行うことができます。
ここからは、実際に多く発生する2つのエラーケースで、AIがどのように翻訳するかを見ていきます。
04 実例①:Salesforceの入力規則エラー(Field Custom Validation Exception)※上記の例
エラー発生のシーン
Boardから取得した取引先データをSalesforceのAccount(取引先)に書き込むフローで、特定レコードがSalesforce側で保存拒否される ── データ連携運用ではよく出会うパターンです。なお、Salesforce との双方向連携の本格実装がどんな形になるかは、こちらで扱っているので、PassworkでSalesforceとの連携を組むイメージを掴みたい場合はそちらを先に読むとスムーズです。
① エラーログ(人間にはピンと来ない世界)
{"ts":"2026-05-05T10:55:12.705Z","message":"{\"event\":\"salesforce_dml_error\",\"phase\":\"output\",\"operation\":\"upsert\",\"object\":\"Account\",\"errorCode\":\"FIELD_CUSTOM_VALIDATION_EXCEPTION\",\"message\":\"顧客の場合は、取引フェーズを必ず入力してください。\",\"fields\":[],\"record\":{\"Name\":\"株式会社Praztoテスト\",\"BoardClientNo__c\":\"54283609\",\"Type\":\"顧客\"},\"sourceRecord\":{\"Id\":null,\"Name\":\"株式会社Praztoテスト\",\"BoardClientNo__c\":\"54283609\",\"@@FIXED@@顧客\":\"顧客\"},\"matchedValidationRule\":{\"id\":\"03dRC00000KS2ZdYAL\",\"name\":\"PhaseIsRequiredWhenClient\",\"active\":true,\"errorMessage\":\"顧客の場合は、取引フェーズを必ず入力してください。\",\"errorDisplayField\":\"ページの最上位へ\",\"description\":null,\"errorConditionFormula\":\"( TEXT(Type) == \\\"顧客\\\") && (ISNULL(TEXT( AccountPhase__c)) || IsBlank(TEXT( AccountPhase__c)))\"},\"node\":null}"}
{"ts":"2026-05-05T10:55:12.710Z","message":"job-runner failed: Error: Error: upsert() failed: [{\"success\":false,\"errors\":[{\"data\":{\"message\":\"顧客の場合は、取引フェーズを必ず入力してください。\",\"errorCode\":\"FIELD_CUSTOM_VALIDATION_EXCEPTION\",\"fields\":[]},\"errorCode\":\"FIELD_CUSTOM_VALIDATION_EXCEPTION\",\"name\":\"FIELD_CUSTOM_VALIDATION_EXCEPTION\"}]}]"}
=== ERROR ===
Error: Error: upsert() failed: [{"success":false,"errors":[{"data":{"message":"顧客の場合は、取引フェーズを必ず入力してください。","errorCode":"FIELD_CUSTOM_VALIDATION_EXCEPTION","fields":[]},"errorCode":"FIELD_CUSTOM_VALIDATION_EXCEPTION","name":"FIELD_CUSTOM_VALIDATION_EXCEPTION"}]}]
Error: Error: upsert() failed: [{"success":false,"errors":[{"data":{"message":"顧客の場合は、取引フェーズを必ず入力してください。","errorCode":"FIELD_CUSTOM_VALIDATION_EXCEPTION","fields":[]},"errorCode":"FIELD_CUSTOM_VALIDATION_EXCEPTION","name":"FIELD_CUSTOM_VALIDATION_EXCEPTION"}]}]
at SalesforceClient.upsert (/app/node-lib/salesforce-client.js:602:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async OutputNodeService.run (/app/node-lib/output-node-service.js:415:20)
at async runJobRunnerOnce (/app/node-lib/job-runner.js:2017:29)
at async entrypoint (/app/node-lib/job-runner.js:2714:13)注意したいのは、messageには日本語のヒントは入っているものの、それが 「Salesforce管理者が事前に設定した入力規則の違反」 であること、その仕様の文脈までは初見では見えづらい点です。「直すべきはデータか?フロー設定か?Salesforce管理者に依頼すべき内容か?」── 判断材料が足りません。
② AIエラー分析の結果(数秒で表示)

AIエラー分析
- 原因: Salesforceの取引フェーズ(Stage)フィールドが必須項目として設定されているが、
Boardから連携されるデータに該当フィールドが不足している、または値が空のため、
Salesforceのバリデーションエラーが発生している。
- 対処法: ①Passworkのマッピング設定でBoardデータに「取引フェーズ」に対応するフィールドを追加し、
デフォルト値を設定する。②またはSalesforceの取引フェーズをオプション項目に変更するか、
バリデーションルールを見直す。ここまで翻訳されると、「現象」だけでは捉えられなかった3つの判断軸(Salesforce側のルールか、データの問題か、フロー設定の問題か)が一目で見えます。あとはユーザーが 業務文脈に応じて、3つの選択肢から1つを選ぶだけ です。
05 実例②:TableauのPAT認証エラー(401)
エラー発生のシーン
Boardから取得したデータをTableauへ連携するフローで、突然 401 エラーが発生し処理が停止する ── 認証系のトラブルはTableau に限らずよく起こります。
Tableau との連携設計そのものについては、こちらで詳しく書いています。連携の全体像を押さえてから本記事の対処法を読むと、何がどこで詰まり得るかの感覚が立体的になります。
① エラーログ(人間にはピンと来ない世界)
=== ERROR ===
AxiosError: Request failed with status code 401
AxiosError: Request failed with status code 401
at settle (/app/node-lib/node_modules/axios/dist/node/axios.cjs:2304:7)
at IncomingMessage.handleStreamEnd (/app/node-lib/node_modules/axios/dist/node/axios.cjs:3772:13)
at IncomingMessage.emit (node:events:536:35)
at endReadableNT (node:internal/streams/readable:1698:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
at Axios.request (/app/node-lib/node_modules/axios/dist/node/axios.cjs:5110:41)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async TableauClient._signIn (/app/node-lib/tableau-client.js:217:21)
at async TableauClient.publishToTableau (/app/node-lib/tableau-client.js:83:35)
at async OutputNodeService.run (/app/node-lib/output-node-service.js:425:20)
at async runJobRunnerOnce (/app/node-lib/job-runner.js:2017:29)
at async entrypoint (/app/node-lib/job-runner.js:2715:13)「status code 401」── システムに詳しくない人にとっては、これがエラーコードであることさえ認識できないかもしれません。何を手がかりに原因を調べればよいのかも分からず、結局はシステムに詳しい人に「エラーが出ました」とだけ伝え、調査を丸ごとお願いするしかない。── 自分で判断するための材料が、決定的に不足しているのです。
② AIエラー分析の結果

AIエラー分析
原因: TableauへのAPI認証に失敗しています。
Tableauコネクタの認証情報(ユーザー名/パスワードまたはトークン)が無効、期限切れ、または不正な形式です。
対処法:
1. Passwork管理画面でTableauコネクタの認証情報を確認し、
Tableauサーバーにアクセス可能な有効なクレデンシャルで更新してください。
2. 必要に応じてTableauサーバー側で該当ユーザーの権限設定を確認してください。このケースで重要なのは、AIが「認証部分が怪しいですよ」と次のステップを示してくれる点です。ステータスコード401は、認証に起因するエラーを表すコード体系である ── そのことをAIがユーザーに伝えてくれるからこそ、次の一手に進むことができるのです。
06 「翻訳」のあと ── フロー画面で対話的に直す流れ
PassworkのAIエラー分析は、「読み解いて終わり」ではありません。理解の次は、対処です。AIが伴走しながら、対話を通じて一緒にエラーの原因を修正していきます。
- 「該当ノードをフロー画面で開く」:原因となったノードに直接ジャンプ。条件フィルタを足したり、設定値を直したりできる
- 「コネクタ設定を開く」:認証情報・接続情報の差し替えが必要な場合の入口
ユーザーは 「読む → 理解する → 該当画面に飛ぶ → 直す → 再実行する」 という一連の動線を、AIに伴奏してもらいながら完結できます。

07 まとめ:Passwork AIは、「隣に座るベテランのエンジニア」
エラー対応が辛いのは、「ログが読めないまま、判断を迫られる」からです。読めないものを読めるようにする ── それさえできれば、対処自体は多くの場合、業務担当者が自分で判断・実行できます。
- エラーの 種類を識別 する(入力規則違反なのか、認証切れなのか)
- エラーの 意味を翻訳 する(サービス仕様 × フロー文脈で日本語に)
- 対処の選択肢 を提示する(直すべきはデータか、フローか、外部設定か)
- フロー画面の入口 に案内する(対話的に修正する動線)
そして、もう一つ ── ベテランエンジニアならではの「絞り込み方」も伴走します。
調査すべき対象が1から100まで並んでいたとします。慣れていない人は、1, 2, 3, 4… と先頭から順番に潰していきます。ベテランは違います。「50以下か、51以上か」── まずMECEに半分に割る。「50以下」と分かったら、次は「25以下か、26以上か」── またMECEに半分に割る。さらに「13以上か、12以下か」── と、一回の判断ごとに可能性空間が半減していく。このようにすることで、原因は線形ではなく、指数関数的な速度で追い込まれていくのです。
PassworkのAIエラー分析が伴走するのは、まさにこの2軸です。
- 専門知識:401は認証、FIELD_CUSTOM_VALIDATION_EXCEPTION ── 仕様やエラーコードを「読み解ける言葉」に翻訳する
- 進行プロセス:いま何をMECEに切り分ければ可能性が半分になるか ── ベテランが体得した「絞り込み方」そのものを提示する
これは「ベテランの代わりにAIが答えを出す」アプローチではありません。「誰でもベテランの解説と進め方をなぞりながら、自分で対処できる」状態をつくるアプローチです。最後の調査と判断は人間が担い、その手前にある「知識のギャップと進行プロセスのギャップ」をAI が埋める ── これがPasswork AI エラー分析の設計思想です。
PassworkやAI エージェントを業務に組み込む方法を検討中の方は、PraztoのAIエージェント導入支援サービスもご覧ください。AIを入れる対象業務の選定から、現場の運用設計までを伴走しています。
エラーメッセージを業務文脈に翻訳するFunction設計は、AIエージェントが業務で機能するための「業務接続」レイヤーの一例です。AIエージェント全体の設計論については、AIエージェントが業務で機能する条件で 3 層モデルとして整理しています。

Passworkは、データ連携の運用で日々生まれる小さな「読めない」「分からない」を、ひとつずつ翻訳していくためのプラットフォームです。ご興味をお持ちいただけましたら、下のリンクからサイトをのぞいてみてください。
