Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

プロンプトテンプレートを作成してグラウンディングする

学習の目的

この単元を完了すると、次のことができるようになります。

  • グラウンディングとは何か説明する。
  • プロンプトビルダーを使用してセールスメールプロンプトテンプレートを作成する。
  • プロンプトテンプレートにリソースを追加する。
  • Apex クラスを使用して、プロンプトテンプレートにデータを提供する。

理由と方法

「プロンプトビルダー: クイックルック」モジュールで、Salesforce システム管理者の Linda Rosenberg がプロンプトテンプレートを使用してタスクを自動化し、営業チームの手作業の軽減に取り組みました。このモジュールでは、Linda が自動化した理由とその方法を詳しく見ていきます。

セールスメールプロンプトテンプレートを構築する

メモ

プロンプトビルダーでセールスメールプロンプトテンプレートを作成するには、Einstein for Sales、Einstein for Platform、または Einstein for Service アドオンが必要です。

Linda は営業チームがメールの生成に使用できるテンプレートを作成する必要があります。具体的には、顧客への商品イベントの招待状を作成するためにチームが費やす時間を減らしたいと考えています。

そこで、Salesforce の [Setup (設定)] にアクセスします。プロンプトビルダーに移動すると、最初に [Prompt Builder Explore (プロンプトビルダーの探索)] ページが表示されます。ここに次のような情報が示されます。

  • プロンプトビルダーの機能について説明するガイダンス
  • プロンプトテンプレートのウォークスルーや例へのアクセス
  • 既存のすべてのプロンプトテンプレートとその種別、カテゴリ、状況のリスト
  • 既存のプロンプトテンプレートを編集または削除する機能

[Prompt Builder Explore (プロンプトビルダーの探索)] ページ

[Explore (探索)] ページでは、プロンプトテンプレートを作成することもできます。[New Prompt Template (新規プロンプトテンプレート)] ボタンをクリックします。

テンプレート種別の設定

Linda は、テンプレート種別の設定画面で全項目に入力することから始めます。

プロンプトテンプレートを設定するときは、明確な目標を立てることが重要です。この場合は、会社の顧客が誰で、メールで営業チームがその顧客に何を伝えたいのか検討する必要があります。

Linda はメールが Cloud Kicks の取引先責任者に送信されるであろうことを理解しています。したがって、受信者オブジェクトは取引先責任者になります。Linda は次のように選択して、テンプレート種別の設定を完了します。

  1. Prompt Template Type (プロンプトテンプレート種別): Sales Email (セールスメール)
  2. Prompt Template Name (テンプレート名): Invite Customer to Local Product Event (ローカルの商品イベントに顧客を招待)
  3. API Name (API 参照名): Invite_Customer_to_Local_Product_Event
  4. Template Description (テンプレートの説明): Email customer to invite to local product event. (ローカルの商品イベントに招待するメールを顧客に送信する。)
  5. Recipient (受信者): Contact (取引先責任者)
  6. Related Object (関連オブジェクト): Account (取引先)

テンプレートをグラウンディングする

テンプレートを具体的にすれば効果が高まることはすでに説明しました。「具体的」とは、テンプレートがグラウンディングされているということです。

テンプレート種別を定義した Linda は、テンプレートワークスペースでプロンプトのドラフト作成とグラウンディングに取りかかります。

プロンプトが表示されているプロンプトテンプレートワークスペース

Linda は顧客の名前、メールの送信者、役職、イベントの詳細を追加します。

あなたは Linda Rosenberg という名前で、Cloud Kicks 組織の Salesforce システム管理者です。あなたの見込み客は Rob Hutchinson で、オンタリオ州トロントにある Acme Inc. のディレクターです。

メールでは、見込み客を 9 月 18 日の「Floating on Clouds: トロントキックオフ」(Cloud Kicks の新旧のお客様の交流会で、近日発売予定の商品を先行発表) イベントに招待します。このメールは 70 語以内でなければなりません。イベントに参加する潜在的なメリットを見込み客に説明し、詳しい情報が必要な場合にはイベントまたはオンラインで直接話したい旨を伝えます。

なかなかのプロンプトができました。ただし、この最初のドラフトは、1 人の特定の送信者と受信者にハードコーディングされています。プロンプトを 1 度使用するだけなら、これで構いません。けれども、本質的にプロンプトテンプレートは、任意の送信者と任意の受信者に使用可能であることを想定しています。Linda には、このテンプレートに会社の CRM データを取り込んで自動的にグラウンディングする手段が必要です。

Linda は、差し込み項目、Apex、フローをリソースとして使用すれば、プロンプトビルダーからSalesforce データに安全にアクセスできることを知っています。

プロンプトテンプレートに差し込み項目を追加する

Linda はプロンプトに目を通し、ハードコーディングされているため 1 回しか使用できないこのプロンプトを、差し込み項目を使用して任意の送信者と受信者に再利用できるように変更する箇所を確認します。

あなたは Linda Rosenberg という名前で、Cloud Kicks 組織の Salesforce システム管理者です。あなたの見込み客は Rob Hutchinson で、ディレクターです。オンタリオ州トロントに所在します。

メールでは、見込み客を 9 月 18 日の「Floating on Clouds: トロントキックオフ」(Cloud Kicks の新旧のお客様の交流会で、近日発売予定の商品を先行発表) イベントに招待します。このメールは 70 語以内でなければなりません。イベントに参加する潜在的なメリットを見込み客に説明し、詳しい情報が必要な場合にはイベントまたはオンラインで直接話したい旨を伝えます。

Linda はプロンプトテンプレートワークスペース内の [Resource (リソース)] 選択リストを使用して、使用するリソースの種別を選択します。セールスメールプロンプトテンプレートには複数のオプションがあります。Linda のプロンプトテンプレートでは、[Current Organization (現在の組織)]、[Sender (送信者)]、[Recipient (受信者)]、[Organization (組織)] のすべてを使用できます。

現在の組織、送信者、受信者が表示されているリソースのリスト

Linda は [Resources (リソース)] 選択リストから [Sender (送信者)][Recipient (受信者)] を選択し、更にプロンプトテンプレートをグラウンディングするために役職、名前、会社などの具体的な情報を選択します。作業を保存します。

選択可能な送信者差し込み項目が表示されている [Resource (リソース)] 選択リスト

選択可能な受信者差し込み項目が表示されている [Resource (リソース)] 選択リスト

メモ

このモジュールのプロンプトテンプレートには {!$Resource} という構文が使用されています。この特別な構文を使用した場合、モジュールのテキストをプロンプトテンプレートワークスペースに簡単にコピーして貼り付けることができます。つまり、すべてのリソースがテンプレートの想定する場所に想定どおり配置されます。

あなたは {!$Input:Sender.Name} という名前で、{!$Input:Sender.CompanyName}{!$Input:Sender.Title} です。あなたの見込み客は {!$Input:Recipient.Name} で、{!$Input:Recipient.Title} です。{!$Input:Recipient.MailingCity} に所在します。

メールでは、見込み客を 9 月 18 日の「Floating on Clouds: トロントキックオフ」(Cloud Kicks の新旧のお客様の交流会で、近日発売予定の商品を先行発表) イベントに招待します。このメールは 70 語以内でなければなりません。イベントに参加する潜在的なメリットを見込み客に説明し、詳しい情報が必要な場合にはイベントまたはオンラインで直接話したい旨を伝えます。

Linda は出来上がったプロンプトを見て、9 月 18 日の「Floating on Clouds: トロントキックオフ」という正確な応答が表示されるようにするには、調整が必要であることに気が付きました。

Cloud Kicks の「Floating on Clouds」は全国的なイベントで、各開催都市に所在する顧客を招待します。Linda はセールスメールプロンプトテンプレートをできる限りパーソナライズして、顧客を最寄りのイベントに招待するメールを生成したいと考えています。

この部分に差し込み項目を使用するだけでは不十分であることを Linda は認識します。プロンプトテンプレートにロジックを組み込む必要があります。プロンプトビルダーでこの調整を行う場合、Apex やテンプレートトリガープロンプトフローの使用など、数種のアプローチがあります。最初に、プロンプトテンプレートで Apex を使用する方法から見ていきます。

プロンプトテンプレートに Apex を追加する

SOQL クエリまたは外部 API のデータをプロンプトで使用する場合は、Apex を検討します。適切な形式の JSON を生成したり、プログラムでデータを絞り込んだりする場合も Apex が効果的です。

ここで Linda は、特定の取引先責任者の最寄りのイベントを検索し、そのイベントの名前、件名、場所、開始時刻を返す Apex クラスを作成したいと考えています。そこで開発者コンソールを使用して ContactEventsPrompt というクラスを作成し、InvocableMethod アノテーションが付加されているメソッドを設定します。InvocableMethod は、Request クラスで定義されている入力がプロンプト内の入力と一致する List<Request> を受け入れる必要があります。また、InvocableMethod には、テンプレート種別と一致する CapabilityType を示す必要があります。

メモ

プロンプトテンプレートへの Apex クラスの追加について詳しく知りたい場合やコードサンプルを確認する場合は、Salesforce ドキュメントを参照してください。

クラスを作成した Linda がプロンプトビルダーのプロンプトテンプレートワークスペースに戻ると、Apex がリソースとして表示されています。[Resource (リソース)] をクリックし、[Apex] を選択して、この Apex クラスを追加します。

Apex、現在の組織、送信者、受信者が表示されているリソースのリスト

選択可能な Apex クラスが表示されている [Resource (リソース)] 選択リスト

あなたは {!$Input:Sender.Name} という名前で、{!$Input:Sender.CompanyName}{!$Input:Sender.Title} です。あなたの見込み客は {!$Input:Recipient.Name} で、{!$Input:Recipient.Title} です。{!$Input:Recipient.MailingCity} に所在します。

メールでは、見込み客を Cloud Kicks の新旧のお客様の交流会で、近日発売予定の商品を先行発表するイベントに招待します。このメールは 70 語以内でなければなりません。イベントに参加する潜在的なメリットを見込み客に説明し、詳しい情報が必要な場合にはイベントまたはオンラインで直接話したい旨を伝えます。

メールに、{!$Apex:ContactEventsPrompt.Prompt} というイベント情報を追加します。

これで、1 つの特定のイベントを参照するのではなく、Apex クラスを活用して、指定した取引先責任者の最寄りのイベントを返すことができます。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む