【必読】なぜ今、Aura ではなく LWR を選ぶべきなのか?

MIAWとAgentforceの多言語対応アーキテクチャ:コンテキスト継承とメッセージ自動送信

A high-tech digital concept art piece representing a sophisticated multi-language AI communication architecture. In the center, a luminous, translucent AI core radiates soft light, symbolizing an intelligent service agent. Floating holographic data streams containing various global scripts, such as Japanese Kanji and Latin characters, flow seamlessly from a sleek, modern website interface into the AI core. The background features a complex network of glowing nodes and interconnected lines representing a robust cloud infrastructure. The color palette is professional and futuristic, dominated by deep blues, cyan, and brilliant white highlights. The composition is cinematic and clean, illustrating the seamless transition of language context through a global digital ecosystem. データ・AI連携

Experience Cloudサイトの多言語対応とMIAW(Messaging for In-App and Web)を組み合わせる際、サイト側で選択された言語コンテキストをAgentforceの応答に正確に反映させ、さらに自動化フローからのシステムメッセージを適切な言語で送信するアーキテクチャの構築は、実装が複雑になりがちです。

本記事では、サイトのコンテキストとして設定された言語情報をフローを通じてAgentforceへ引き渡すバックエンド処理と、自動送信アクションにおける翻訳仕様の回避策について解説します。

LWRって何?どんなメリットがあるの?
そんな疑問を解決するにはまずは以下の記事をご覧ください。
Salesforce LWRとは? Experience Cloudの次世代ランタイムを徹底解説

1. 言語情報の連携仕様

サイト側で選択された言語情報は、MIAWを通じてSalesforceのバックエンドに自動的に連携されます。

公式仕様

  • Experience Cloudの標準機能(または外部サイトでの言語設定)によってMIAWに渡されたロケール情報は、チャットセッション開始時に紐づくメッセージングユーザーオブジェクトの「言語」項目 MessagingEndUser.Language に保存されます。
  • Agentforce Service Agentは、セッション開始時にメッセージングセッションオブジェクトの「メッセージングユーザーの言語」項目 MessagingSession.EndUserLanguage を読み取って応答言語を決定します。
  • MessagingEndUser から MessagingSession への言語情報の自動コピーは行われません。

設定方法

Experience Cloudでは言語セレクターコンポーネントを配置するだけです。選択した言語に応じてサイト内の文字コンテンツだけでなくMIAWの言語が切り替わり、さらに選択した言語の情報が MessagingEndUser.Language に保存されます。

多言語化の詳細は以下の記事をご覧ください。

【LWR × 多言語】世界へ発信!サイトを「多言語対応」にするための手順を徹底解説!【完全ガイド】
LWRサイトを最大40言語に対応させるための、具体的な設定手順を網羅的に解説。言語の追加・削除、デフォルト言語設定、翻訳のインポート/エクスポート、カスタムLWC対応まで、全てがわかる完全ガイドです。

2. メッセージング設定の変更

フロントエンドから渡されたロケール情報をレコードとして保存するため、メッセージングチャネルの設定を変更します。

公式仕様

  • 「設定」>「メッセージング設定」から対象のチャネルを開き、「メッセージングユーザーの希望言語を特定」チェックボックスを有効にします。
    この設定により、フロントエンドから送信された言語情報が、チャット開始時に紐づくメッセージングユーザーオブジェクトの言語項目 MessagingEndUser.Language に自動で保存されます。

3. オムニチャネルフローによるコンテキスト転記

Agentforceへ言語情報を引き継ぐため、オムニチャネルフロー内でデータを転記する処理が必要です。

サンプル構築

Agentforceへ転送する「作業のルーティング」要素の前に、以下のデータ取得および更新ステップを配置してフローを構成します。

  1. レコードを取得(メッセージングセッション)
  • 条件: Id がフローの入力変数 {!recordId} と一致
  • 取得項目: 親レコードのIDである MessagingEndUserId を変数に保持します。
  1. レコードを取得(メッセージングユーザー)
  • 条件: Id が手順1で取得した MessagingEndUserId と一致
  • 取得項目: Language を変数に保持します。
  1. レコードを更新(メッセージングセッション)
  • 条件: Id が入力変数 {!recordId} と一致
  • 更新内容: EndUserLanguage 項目を、手順2で取得した Language の値で上書きします。

この処理により、Agentforceはユーザーが選択した言語をコンテキストとして認識可能になります。

4. 言語ごとのメッセージングコンポーネント出し分け設計

Agentforceの自律的な回答生成は前段の設定で多言語化されますが、フローから自動送信する通知メッセージは翻訳の対象外という仕様が存在します。

Agentforce連携における安全なユーザー識別:Experience Cloudでの個人認証とコンテキスト継承』の記事をご覧になって設定した方は、Agentforceのウェルカムメッセージをバイパスして通知メッセージングコンポーネントをフローから送信していますね。そこで送信しているメッセージが自動翻訳されないので、ユーザーが選択した言語によって複数種類の通知メッセージングコンポーネントを使い分ける必要があります。

公式仕様

  • オムニチャネルフロー内で「会話メッセージを送信(Send Conversation Message)」アクションを使用し、通知メッセージングコンポーネントを自動送信する場合、ユーザーの言語設定にかかわらず「コンポーネントの元の未翻訳バージョン」が送信されます。
  • トランスレーションワークベンチで当該コンポーネントの翻訳ラベルを定義していても、フローによる自動送信アクションでは動的翻訳が機能しません。

サンプル構築

自動翻訳が機能しない仕様を回避し、ユーザーに適切な言語でシステムメッセージ(初回案内など)を届けるための実装手法です。

  1. コンポーネントの分割作成: 翻訳機能を使用せず、言語ごとに個別の通知メッセージングコンポーネント(例: WelcomeMessage_JA, WelcomeMessage_EN)を作成します。
  2. フロー内での分岐: メッセージを送信するフロー内に「決定」要素を配置し、MessagingEndUser.Language の値(jaen_US)を評価します。
  3. アクションの使い分け: 分岐した各ルートに個別の「会話メッセージを送信」アクションを配置し、それぞれ対応する言語のメッセージングコンポーネントを指定して送信を実行します。

このアーキテクチャにより、コンテキストが維持されたまま、Agentforceによる回答とフローによる定型メッセージの両方で確実な多言語対応を実現できます。

  • 通知メッセージングコンポーネント
  • フロー実装
  • 日本語
  • 英語

{!$Parameters.MessagingSession.MessagingEndUser.Contact.FirstName}さん、はじめまして。私は DXforce のサポートエージェントです。何かお困りですか?

Hello {!$Parameters.MessagingSession.MessagingEndUser.Contact.FirstName}, pleasure to meet you. I am a support agent for DXforce. How may I assist you today?

5. Agentforceと多言語ナレッジの準備

ひとつの言語だけで構成されたナレッジでもAgentforceやプロンプトテンプレートが適切に翻訳してくれるため、基本的には日本語のナレッジ記事だけを執筆すれば事足りる場合もあります。しかしながらエンタープライズのQA対応では、言語ごとに厳密に定義されたナレッジを用意しLLMによる自動翻訳の揺らぎを避けることが推奨されます。

公式仕様

  • Salesforce Knowledgeの「複数言語のサポート」機能を有効化し、主言語(日本語)の記事に対して翻訳版(英語:en_US)の記事を作成します。
  • Data Cloudの検索インデックスには、日本語版と英語版がそれぞれ独立したレコードとして、言語情報(メタデータ)付きで取り込まれます。

多言語対応RAGの作り方は以下記事を参照ください。

これにより、外部サイトでの言語切り替え操作が、MIAWのUI表示、Agentforceのシステムメッセージ、そして生成回答の基盤となるナレッジ記事の選定まで、一貫して連動する状態が構築されます。

結果

日本語

英語

まとめ

本記事では、Experience CloudサイトにおけるMIAWとAgentforceの多言語対応について、コンテキスト継承の仕組みとフローを用いた自動送信メッセージの制御手法を解説しました。

公式仕様

  • サイト側で選択された言語ロケールは MessagingEndUser の項目に自動連携されますが、Agentforceが参照する MessagingSession へは自動でコピーされません。
  • フロー内での「会話メッセージを送信」アクションによる通知メッセージングコンポーネントの送信では、翻訳機能(トランスレーションワークベンチ)が適用されず、常に元の未翻訳バージョンが送信されます。

DXforceの見解

  • Agentforceへ正確な言語コンテキストを伝えるためには、オムニチャネルフロー内で対象レコードを取得し、言語情報を転記するバックエンド処理が不可欠です。
  • また、フローからの定型メッセージ自動送信においては、標準の翻訳機能に頼るのではなく、言語ごとに専用のメッセージングコンポーネントを作成し、フロー内の分岐(決定要素)で出し分ける設計が最も確実な解決策となります。

Experience CloudとAgentforceを組み合わせた多言語サポート環境を構築する際の、仕様上の制約を回避するためのリファレンスとして活用してください。

参考URL

Streamline User Interactions with Auto-Populated Language Data

Agentforce 言語のサポート

複数言語のナレッジ記事のサポート

Guide to Understanding Multi-Language Support in Agentforce

顧客の言語でのメッセージングコンポーネントの翻訳

【LWR × 多言語】世界へ発信!サイトを「多言語対応」にするための手順を徹底解説!【完全ガイド】

【LWR × 多言語】世界へ発信!サイトを「多言語対応」にするための手順を徹底解説!【完全ガイド】
LWRサイトを最大40言語に対応させるための、具体的な設定手順を網羅的に解説。言語の追加・削除、デフォルト言語設定、翻訳のインポート/エクスポート、カスタムLWC対応まで、全てがわかる完全ガイドです。

DXforceの管理人

福島 瑛二

2013年にJavaエンジニアとしてのキャリアをスタート。2019年にSalesforceと出会い、Salesforceエンジニアの道へ。

デザインや UI/UX の観点からもシステムを捉え、ユーザーにとって心地よい体験を実装することにやりがいを感じています。

CRM(顧客データ)や Data Cloud と連携した高度なサイトを目に見える形で表現できる Experience Cloud に大きな可能性を見出しており、バックエンドのデータ構造とフロントエンドの表現力を極めることがこれからの Salesforce エンジニアに求められるスキルだと確信しています。

Trailblazer: efukushima

福島 瑛二をフォローする

読者の声

タイトルとURLをコピーしました
DXforce 案内エージェント