こんにちは、にいるです。
今回は、「メールを送信すると同時にToDoが作成できる機能」について説明したいと思います。
1.メール送信でToDoが作成できる
ToDoの作成方法は色々ありますよね。
取引先、取引先責任者などの各レコードから直接作成したり、ToDoのタブから新規作成したりと。
今回は拡張メールを使用したToDoの作成方法を紹介します。
拡張メールを有効化すると、取引先や取引先責任者レコードの活動コンポーネントから、直接レコードに登録されたメールアドレスへメールを送ることができます。
またメール送信と同時にToDOも作成されます。
実際に送ってみましょう!
2.ToDo作成してみる
取引先責任者のレコードページに活動コンポーネントがあります。
コンポーネント内を見ると、メールがあるのでそこをクリックします。
ここで送りたい取引先責任者を選択して、件名と本文を入力します。
あとは送信するだけですね。
下部にある[送信]をクリックします。
項目だと関連先(WhatId)になります。
試しにABC研究所を選択しておきます。
受信メール
受信したメールです。
ちゃんと届いていますね。
件名も本文も問題ないです。
取引先責任者レコード
取引先責任者のレコードの活動コンポーネントにもメールメッセージアイコンが追加されていますね。
この件名をクリックするとEmailMessageレコードに遷移して、詳細を確認することができます。
ToDoレコード
作成されたToDoです。
関連先にはABC研究所が入力されていて、コメントには送信された内容が記載されています。
情報が集約されているので、とても見やすいですね!
EmailMessageレコード
レコードページからそのまま返信もできるみたいですね。
右上の送信や転送を選ぶと右下に詳細が現れました。
3.注意点
自動でToDoが作成される機能でとても便利なんですが、作成されるToDoに介入することができません。
介入というのは、フローやプロセスビルダーでキャッチできないということなんですね。
実務でメール送信によって作成されるToDoの項目を特定の値に更新するという要件があったんです。
で、標準機能でお願いされたので、フローとプロセスビルダーを色々組んで試したんですが、キャッチできなくてそのままToDoが作成されてしまいました。
ただトリガーを使用するとキャッチできたので、もし同じことを使用としている方は開発をおすすめします!(2020年9月現在)
下記コードはToDoに参照関係(取引先)のカスタム項目(Parent_Account__c)を作成しています。
要件は、子取引先に関するToDo全てを親取引先の関連リストに表示させたいというものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
trigger CheckToDoCreatedBySendMail on Task (before insert) { for (Task t : Trigger.New) { Contact c = [SELECT Id,AccountId FROM Contact WHERE Id = :t.WhoId]; Account a = [SELECT Id,Parent.Id FROM Account WHERE Id = :c.AccountId]; If (a.Parent.Id == NULL){ t.Parent_Account__c = a.Id; } else{ t.Parent_Account__c = a.Parent.Id; } } } |
標準機能で実現できない理由は、メール送信でToDoが作成されるプロセスを正常終了させるためにそこの介入を許していないのかなと。
「メールを送ったけど、ToDoのInsert時にユーザが組み込んだ変更プロセスでToDoが正常に作成されなかった→おかしい」
という状況を防ぐためなのかなと。
開発でキャッチできるのは整合性が取れていない気もしますが笑
もし標準機能でこれを実現する場合は、定期実行するフローで制御するのがいいかなと思います。
4.まとめ
いかがでしたでしょうか。
メール送信でToDoが作成されるのはとても便利ですね。
作成されるEmailMessageを見れば返信も転送も簡単にページ上から行えるので、他のメールクライアントを立ち上げる必要もありません。
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!