【Salesforce】Einstein Copilotを触ってみた

## Einstein Copilotとは？
Salesforce CRMとAIアシスタントに加えて、ChatGPTのような大規模言語モデルの自然言語処理を備えています。
そのため、会話形式でユーザとやり取りを行い、内容を理解することが可能です。

CopilotはSalesforceのどの画面でも使用できるため、Salesforce内のデータを使用して、正確な回答を受け取ったり、必要なアクションを実行したりできます。

## Einstein Copilotの標準アクション
アクションとは、Copilotが作業を実行する方法です。
Copilotには標準でもアクションが用意されています。

| アクション名 | 実行内容 |
| --- | --- |
| dentify Record by Name (名前でレコードを識別) | Salesforce レコードを名前で検索し、一致するレコード ID のリストを返します。例: 「Show me the Acme records.」(Acme のレコードを表示してください。) |
| Identify Object by Name (名前でオブジェクトを識別) | ユーザーの入力を解釈してユーザーがどのオブジェクトについて話しているかを判断し、オブジェクト名を返して、追加アクションを実行できるようにします。たとえば、ユーザーが Copilot チャットウィンドウに「List the opportunities for the Acme account」(Acme 取引先の商談のリストを表示してください) と入力すると、このアクションによってユーザーが取引先オブジェクトと商談オブジェクトに関する情報を要求していることが識別されます。 |
| Query Records (レコードを照会) |Salesforce データに関する集計の質問 (計数、合計、最大値、最小値、平均など) に回答します。例: 「How many opportunities were created in the past 5 days?」(過去 5 日間に何件の商談が作成されましたか?)  |
| Summarize Record (レコードを集計) | ユーザーの入力に基づいて、セールスメールのドラフトを作成したり、最後に生成されたメールを修正したりします。例: 「Help me write an intro email to Steve from Acme.」(Acme の Steve への紹介メールを書くのを手伝ってください。) |
| Answer Questions with Knowledge (ナレッジを使用して質問に回答) | 関連するナレッジ記事の情報に基づいてユーザーからの質問に回答します。例: 「What is the policy for returns over 30 days?」(30 日を超える返品のポリシーはどうなっていますか?)(ナレッジライセンスが必要です。) |

## Einstein Copilotのカスタムアクション

### 設定方法
#### 1. 生成AIの有効化
![d5be2c2c-65e9-46eb-ae96-c82628aadf8f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/885dd578-9f90-8de0-b283-c0ec7ddcb893.png)


#### 2. Einstein Copilotの有効化
![21795dd6-2a1a-46fa-9866-5be2ae865a38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/d4287699-4a61-69cf-61e2-fc906ade1644.png)


## Copilot Builderについて

右上の[Open in Builder]より開くことができます。
![c041369f-41ae-4607-b8f7-b930d7a0abf2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/ad9852d8-2c94-e357-9d92-2bca5222afe2.png)

現在使用することのできるアクションの閲覧が可能です。
![e82c1069-98fd-4831-baf5-0b3c10ffc57d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/89042a80-f94f-de36-333f-25055b857a14.png)

実際にプロンプトを入力し、テストすることが可能です。
![6bc61f76-6177-44f2-804f-e6581477e6e3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/5b9eadfa-8e3c-4099-adf1-c96190313fc8.png)

## カスタムアクションの作成方法
#### 1. Actionsにある+ボタンを押下
![a9990c89-8844-459e-bda4-d2867fe88033.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/2ae6181d-1d68-f253-c8e4-ddb59b6488dd.png)


#### 2. Reference Action Typeを選択（今回はFlow）
![510b2e91-5110-4969-8ad4-9dfe0f4722b8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/fb83aef4-aaa3-df6a-17ff-3bd26b2dd254.png)


#### 3. Next
![d1b5b4b1-a0d8-4992-9e07-7d59d0de7efa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/5fed2cb0-3b47-2786-539c-fa9b8f422f25.png)


#### 4. Input、Output情報を入力
![866fbb3b-3ae8-4e5d-b95d-4fd24a0733af.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/7a3b4aaa-62d4-0eba-0fbf-21a85eff8a12.png)


#### 5. Assign to Copilotを押下しアクションを有効化
**※Copilot Builderが無効化状態ではない場合はカスタムアクションを有効化できないため、あらかじめBilderを無効化しておく**
![4756dc58-9d9b-4775-a820-89e3900beb8a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/30d5d23c-5d56-b5d1-cfb2-538d19dad032.png)


## カスタムアクションに使用するフローについて

フローリソースの Availability Outside the Flow の Available for inputをチェックすることで、ユーザが打ち込んだプロンプトから推測をしてインプット情報として使用することができます。
（例）RecordNameって変数名だからレコードの名前だよな？この文章の中のレコードの名前ってこれだよな？みたいなことをAIが変数の値として切り抜いてくれます。
![a9e619e3-3491-4a37-a301-980ddcdde12c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/d02c2577-dcb2-d0f2-4b85-6181edb84640.png)


フローリソースの Availability Outside the Flow の Available for outputをチェックすることで、Copilotがアウトプットとして使用できるテキストやレコードを返すことができます。
![0b8e9a2a-9dda-4b5d-896a-0b5917a32d71.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/de258aa9-cbcc-6db0-8fea-3cc30e02ca8a.png)


## SalesforceページでCopilotを使用するには
右上のEinsteinマークを押下することで画面右側に固定されます。
![1291f46d-4ccb-4444-b55c-5223cdb80ca3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/bd45100b-cc9b-3d55-7f95-06b03d679b0b.png)


## 気になったこと

**Q. Copilotの分析は可能？**

**A. ダッシュボードで可能**
Einstein > Einstein Generative AI > Einstein Copilot Studio > Einstein Copilot Analytics
成功率、アクションの使用率、ユーザの使用状況などを確認できる
![77640962-875d-4094-b986-7207e82a0f3b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/9d47942e-d8b2-b2bf-ef9f-d83ffda7a07e.png)


**Q. 必須としているインプットをユーザが入力したプロンプトに存在しないとどうなる？**

**A. 入力をするよう促される**
![4b1fc8c2-d763-44af-aaf4-06da0d792319.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/1c81badf-043b-0515-ec96-92ed7b2106f4.png)


**Q. アクションに存在しない指示を出すとどうなるの？**

**A. 存在するアクションが動くが失敗となる**

プロンプト: Please create a Contact record under the name Saburo Saito and the Account should be registered with Saito Corporation.（斎藤三郎という名前でContactレコードを作成してください。Accountは株式会社斎藤で登録してください。）

アンサー: I couldn't find any results for the query. Please try a different search term to find the information you're looking for.（クエリの結果が見つかりませんでした。お探しの情報を見つけるために、別の検索語をお試しください。）
![4fdb8a32-96ee-4741-9264-9db7e1510a1e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/621ab621-dd73-0f61-8488-493b15d019b5.png)

**Q. 全然関係ない質問をしたらどうなるの？**

**A. 情報の提供はできないと言われる**

プロンプト: Tell me today's weather.（今日の天気は？）

アンサー: Apologies, unable to provide weather information at the moment.（申し訳ございません。現在、気象情報を提供することができません。）
![4e1071ea-a9a5-4a07-bee3-fa4a74a4b5c9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3718267/42798830-3507-001b-9b06-caec86492ca3.png)