Salesforceで新しいリードが作成されたときに通知を受け取りたい。SalesforceのWebhookのようなもの、またはこれを実現する他の方法はありますか?
5 に答える
はい、たくさんのオプションがあります:)
アクターとしての Salesforce の場合:
- リードの挿入時に起動し、メールを送信するワークフロー ルール (システム統合の場合は、送信メッセージ)。
- 「挿入後」の Apex トリガをいつでも作成し、その中に外部システムへのコールアウトを含めることができます (SOAP および RESTful API がサポートされています)。デフォルトでは、トリガーはコールアウトを送信することを想定していないため、 @future アノテーションが必要になります (データベースのコミット/ロールバックは、外部システムがメッセージを受け入れたかどうかに依存するべきではありません)。
アクターとしての外部システムの場合:
- 次のようなものを時々ポーリングするだけです
[SELECT Id FROM Lead WHERE CreatedDate > :lastTimeIhaveChecked]
- または、 Streaming APIと呼ばれるかなり最近の追加があります。基本的に、PushTopic (興味のあるクエリ) を定義します。Salesforce は、返された現在の結果を確認し、結果が変更されるたびに通知を受け取ります。まだ遊んでいませんが、ドキュメントから、イベントタイプを設定して「作成された」イベントのみを表示できるようです。これは webhook に最も近い可能性があります。
私は自己宣伝するのが嫌いですが、これを有用な答えとして罰金を科す人もいるかもしれません.Salesforce用のWebhookクリエーターを構築しました。オープンソースです: https://github.com/jamesward/salesforce-webhook-creator
Salesforce は Webhook をサポートしていますが、 Calloutsという別の名前で呼び出されるだけです。
このトピックに関する開発者向けドキュメントへのリンクは次のとおりです。
上記のリンクから直接取得した機能の説明を次に示します。
Apex コールアウトを使用すると、外部 Web サービスをコールするか、Apex コードからHTTP 要求を送信して応答を受信することにより、Apex を外部サービスと緊密に統合できます。Apex は、SOAP と WSDL、または HTTP サービス (RESTful サービス) を利用する Web サービスとの統合を提供します。
(強調追加)
これは基本的に Webhook であり、一般に「HTTP 経由のユーザー定義コールバック」として定義されます2
通常、これには独自のコードを記述してイベントを「サブスクライブ」し、メッセージを作成して外部エンドポイントに送信する必要があります。このトピックについては、http: //beachmonks.com/posts/integrations/salesforce/practical-guide.htmlでかなり詳しく書いています。ソース コードはhttp://github.com/beachmonks/choir-salesforceにあります。
別の方法があります。RoundRobin ロジックを使用して、新しい見込み客を割り当てます。次に、新しい WF ルールを作成して、新しい所有者と管理者、または通知を希望する他のユーザーに通知を送信します。