SalesforceのWinter '21のアップデートでメール-to-ケースによるメール送受信記録の仕組みが変わったようなので(https://help.salesforce.com/articleView?id=release-notes.rn_email_to_case.htm&type=5&lang=ja&release=228 )、ケースレコードからのメールの送信とそれに対する返信を行い、動作を検証してみました。
Winter '21での変更内容
メール-to-ケースを利用してメールの送受信をケースレコードに記録する場合、従来はケーススレッドIdというものをメールの件名か本文(もしくは両方)に含める必要がありました。
今回の変更により、メール件名・本文へのケーススレッドIdの挿入は不要になり、送受信メールに含まれるMessage-ID、In-Reply-To、 Referencesの3つのメールヘッダを利用してケースへの紐付けが行われるようになります。
詳細はこちら:https://help.salesforce.com/articleView?siteLang=ja&id=000355168&language=ja&mode=1&type=1
メールとケースの紐付けの仕組み
メールが来た際にケースに紐付けられる仕組みを簡単にまとめると、
- In-Reply-Toヘッダの値で、EmailMessageオブジェクト内のMessage-IDを検索
- EmailMessageレコードが見つかった場合、そのEmailMessageレコードが紐づいているケースに紐付け
- 見つからなかった場合は、メールのReferencesヘッダに列挙されている値でEmailMessageオブジェクト内のMessage-IDを検索
- EmailMessageレコードが1つ以上見つかった場合、見つかったEmailMessageレコードのうち最も新しいEmailMessageレコードを選び、そのEmailMessageレコードが紐付いているケースに紐付け
- それでも見つからなかった場合は、新規ケースレコード作成
となります。
本記事ではIn-Reply-Toヘッダによる照合のみを扱います。
検証のための準備
ケースのレコードページからのメール送信と、それに対する返信がケースに記録されるようにするため、まずは以下の準備を行いました。
1. 2つのメールアドレスを用意する
- メール-to-ケースと自動レスポンスルールが併用されている組織を想定
- 自動レスポンスルールの送信者メールアドレスとメール-to-ケースのルーティングアドレスは同じにすることができない
という前提のもと、ルーティングアドレス用とケースでの送受信用の2つのメールアドレスを用意しました。なお今回はケースでの送受信用メールアドレスは「組織のアドレス」に追加しています。
2. 「メールを送信するためのアクセス権」を「すべてのメール」に設定
設定画面の「管理>メール>送信」で、「メールを送信するためのアクセス権」を「すべてのメール」に設定しました。
3. メール-to-ケースのルーティングアドレスの作成
ルーティングアドレス用のメールアドレスを使用して、メール-to-ケースのルーティングアドレスを設定しました。
4. 送受信用メールアドレスからルーティングアドレスへの転送設定
送受信用メールアドレスから、3.でルーティングアドレスを作成した際に生成されたメールサービスアドレスへの転送設定を行いました。
5. ケースのレコードページからメールを送信できるようにする
ケースのページレイアウトに「メール」アクションを追加しました。
ケースレコードからのメール送信
ケースレコードから、送信者を送受信用メールアドレスにしてメールを送信します。
受信したメールのヘッダ情報(一部)はこちら。
Message-IDヘッダの値は
<ilwmF000000000000000000000000000000000000000000000QK72A500eZIRWKABTMO0j2H1XPeGwA@sfdc.net>
です。
開発者コンソールでEmailMessageレコードのMessageIdentifier項目の値を確認すると、上記の値と同じ
<ilwmF000000000000000000000000000000000000000000000QK72A500eZIRWKABTMO0j2H1XPeGwA@sfdc.net>
となっていることが確認できます。
メール返信
受信したメールに対して返信してみます。
先ほどメールを送信したケースレコードと同じレコードにメールが紐づいていることが確認できます。
送信したメールのヘッダ情報(一部)はこちら。
In-Reply-Toヘッダの値(<ilwmF000000000000000000000000000000000000000000000QK72A500eZIRWKABTMO0j2H1XPeGwA@sfdc.net>)が、先ほど開発者コンソールで確認したEmailMessageレコードのMessageIdentifier項目の値と同じになっていることが分かります。
まとめ
メール件名・本文にケーススレッドIdを挿入する場合は、挿入されたケーススレッドIdを削除しないように注意する必要がありました。
本アップデートによりケースへの紐づけがメールヘッダで行われるようになったことで、ケースへのメールのやり取りの記録がやりやすくなったのではないでしょうか。
参考記事
- メールからの問合せを取り込む
https://www.synergy-marketing.co.jp/cloud/synergylead/support/act-mail-to-case/ - メール-to-ケースの新しいスレッド動作によるセキュリティの強化
https://help.salesforce.com/articleView?id=release-notes.rn_email_to_case.htm&type=5&lang=ja&release=228 - Disabled Ref Id and New Threading Behavior for Email-To-Case
https://help.salesforce.com/articleView?siteLang=ja&id=000355168&language=ja&mode=1&type=1 - SOAP API 開発者ガイド EmailMessage
https://developer.salesforce.com/docs/atlas.ja-jp.api.meta/api/sforce_api_objects_emailmessage.htm - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 Message-ID【メールヘッダ】
https://wa3.i-3-i.info/word11102.html - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 In-Reply-To【メールヘッダ】
https://wa3.i-3-i.info/word11103.html - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 References【メールヘッダ】
https://wa3.i-3-i.info/word11104.html