SalesforceとSlackをどうしても繋ぎたいんじゃ!
こんにちは!
皆さんSlack大好きですよね。私も大好きです。当社にもSlack愛に溢れているメンバーが大勢います。
社内の情報のやりとりはメールで行うことはなく、全てSlackで行う文化が浸透してます。
となれば、当然Salesforceの情報もSlackに集めたい!という声も大きくなってくるわけです。(きっと)
ということで、声が大きくなる前に勝手に繋いでみたんじゃ!という内容です。
そもそもですが、大体のことはTrailheadの「SalesforceをSlackと統合する」で細かく学ぶことができます。(Trailhead本当に便利)
設定に悩まれている人は、こちらの単元を先に終えていただくことをお勧めいたします。
その中で当社が少し苦労した点についてお伝えします。
SalesforceとSlackの連携設定〜カスタムオブジェクト設定〜
Salesforce側でのSlackとの連携設定は、ほとんどこのSlack Setupアプリケーションから行います。
※AppExchangeからインストール可能です。ページレイアウトやプロセスビルダー、
フローなどの設定はこのアプリケーション外での設定となります。
以前はこのようなアプリが用意されていなかった関係で、有志の人が開発した連携アプリケーションを利用させていただいていました。
別途Slack側でのSalesforceアプリの追加等、行うべき手順はありますがそれらはTrailheadをご確認ください。(Trailhead本当に便利)
取引先、取引先責任者、商談、活動などの標準オブジェクトについてはこちらのアプリケーションで連携設定を
行うだけで自動で連携ができるようになるのですが、カスタムオブジェクトについては、個別に連携設定を行う必要があります。
※上記画像の「Enable Custom Objects」から対象のカスタムオブジェクトを追加する必要があります。
当社はSalesforceでプロジェクト情報を管理している関係上、その情報がSlackに連携できるといいな〜ということで
「ジョブ」というカスタムオブジェクトを連携対象のオブジェクトに追加設定しました。
※すでに設定が完了した後の画面ハードコピーですので「ジョブ」がすでに存在しますがご了承ください。
カスタムオブジェクトの追加を行う際は、「+ Add Cusotm Object」を押し、対象オブジェクト、Slackに連携した際に
表示させたい項目(最大9まで)を選択します。
登録後、Statusが「Pending」、Actionsに「Activate▼」と表示されますので、「Activate▼」を押します。
通常は、「Automatic Activation」を押すことで自動でそのカスタムオブジェクトが使えるようになるのですが、
当社は下記画像の通り、エラーが発生してしまったため「Manual Activation」を行いました。
ちなみに、「Automatic Activation」はおそらくボタン一つで対応完了となると思われるのですが、「Manual Activation」は
下記画像の通り8つのステップを順にこなしていく必要があります。
一部を端折って簡単に手順を記載すると、
①Sandbox環境を用意する。
②上記画面の「Next」を押すと表示されるApexクラス、Apexトリガーのソースコードをコピー&ペーストして、
Sandbox環境にApexクラス、Apexトリガーを新規登録する。(開発者コンソールからが楽)
③テストコードのカバレッジ率が組織全体で75%以上であることを確認し、本番環境に送信変更セットを作りデプロイする。
④Slackアプリケーションインストール時に追加されている「Send to Slack」や「Alert Slack」といったクイックアクションやカスタムボタン、
Lightningコンポーネントなどを必要に応じて画面配置する。
⑤プロセスビルダーやフローを利用し、特定条件下でSlack投稿されるように設定する。
といった流れです。
(8つですらない。⑤は「Automatic Activation」でも別途実施する必要があり、上記画像にはない。)
無事に設定は完了できたのですが、自動で設定できる「Automatic Activation」で追加できた方がおそらく100倍は楽!
当社が「Automatic Activation」で失敗した理由は、別の改修により追加された自動起動フローに対し、データ更新を
考慮したテストクラスの追記ができていなかったことによる、テストクラス実行エラーが原因でした。。。
(恥ずかしいっ!自動起動フローの多用は本当にやめたい。。。)
別の技術ブログで⑤についてフローで対応した内容もお伝えします。
お楽しみに〜。