Technology

Salesforce2Slack Integration インテグレーション シンプル

投稿日:

IT業界では、インテグレーションをすれば、いろいろな製品をつながって、弱点やできないことを補うことができる、良いところですね。

今回、Slackの投稿をSalesforceから操作したいので、関連設定やコードを共有したいと思います。

SalesforceとSlackをつながるため

難しいことはないが、Slack側で、Webhook URLを発行すれば、Salesforceがそのリンクに対して、データを送信すれば、OK。これで大まかな つながる 方法です。

Slack側の設定

  • Webhook URLを発行すれば、基本これだけで良い、つまりIncoming Webhookを対象Slackに追加すること。 Slack APIを利用する場合Incoming WebHookの設定ページでWebHokURLを取得します 。

Salesforce側

Salesforce側では、設定と実装2つ部分が必要
なぜ、設定がいるかというと、まずリモートサイトに登録しないと、HTTPのPostメソッドのコールで、セキュリティ問題で、飛ばせない。次にWebhook URLはあっちこっちのところで、POSTを行うときに、使うendpointになるため、組織全体的に持ったほうがいい。僕の場合、カスタム設定にした。

設定

  • リモートサイト登録(Webhook URL: https://hooks.slack.comここまでよい)
  • カスタム設定やカスタムメタデータに Webhook URL (POST用に使う)を設定

実装(匿名コンソールで実行しているシンプルコード)

投稿結果:Salesoforceアプリの部分

サンプルコードの内部ラッパークラスMessageについて

この内部ラッパークラスのプロパティは全部、Slackに投稿する際に固定の文字列です。投稿チャンネルを変更したい場合、ポストメソッドに内容に下記のように構成することが前提となります。

なので、チャンネルを変更し、投稿するなら、ラッパークラスのプロパティ変数:channelの値を変えるか、ポストメソッドの内容に直接「”channel”:”#yourchannel”」を含めるようになにかをする必要がある。絵文字や対象アカウントを変更したい時にも同じ。

終わりに

Webhook URLさえあれば、Apexコードを叩いて、すんなり投稿できます。
これで、Salesforceで、webhook URLに対して、データをHTTP のpostメソッドで送信した検証です。

リファレンス

Incoming Webhook

Salesforce→Slack通知をオープンソースで公開しました

Sending messages using Incoming Webhooks

-Technology
-,

執筆者:


  1. […] 前回、Webhook URLでSalesforceから、Slackのチャンネルに投稿する記事を公開した。非常にシンプルでした。今回、やや複雑なSlack Web APIを使って、投稿することをチャレンジしてみたいと思います。 […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

再出品大変 新ラクマ フリル 自動出品ツール black cat 自動で稼げる

フリマ運営するなら、出品が大変です。僕もそんな感じです。撮影はもちろん、出品も大変、さらに売れない時に再出品もしないといけない。結構労力が必要な仕事です。その中で、出品と再出品の労力と時間を節約してく …

Salesforce 主従関係 所有者について以外に知らない子が多い

こんにちは、管理人の@Salesforce.Zです。 主従関係ってもう十分、 ほとんどのcoder の頭に定着したと思います。しかし、これが知っていますか。所有者の話。子sObjectに所有者項目がな …

Salesforce データセキュリティ プロファイル 共有設定 ロール

こんにちは、管理人の@Salesforce.Zです。Salesforceのセキュリティ体制がきちんと整えている、セキュリティも、大手企業はSalesforce製品を導入する理由の一つです。ここに来た方 …

Salesforce2Slack Integration with Web API

前回、Webhook URLでSalesforceから、Slackのチャンネルに投稿する記事を公開した。非常にシンプルでした。今回、やや複雑なSlack Web APIを使って、投稿することをチャレン …

Saleforce 実行権限 トリガ クラス

こんにちは、管理人の@Salesforce.Zです。普段、 Apex はシステムコンテキストで実行されます。つまり、コード実行時に、現在のユーザの権限、項目レベルセキュリティ、および共有ルールは考慮さ …