Box + Salesforce: Slack統合マッピングを備えたフロー
Dreamforce 2023が開催されました。
この記事では、Box for Salesforce管理パッケージに含まれる新しいSalesforceフローテンプレート、Create Box Folder/Slack Channel Mappingを紹介します。
今年の5月に、管理パッケージに含まれるようになった新しいBox for Salesforceフローテンプレートの使い方に関するブログ記事を公開しました。Salesforceフローとは何か、またSalesforceフローによってどのように開発を強化できるかがわからない場合は、まずそのブログ記事を確認してください。その時以来、BoxのSalesforce製品チームは管理パッケージの更新 (1、2) をリリースしてきました。今回は、Salesforceのエクスペリエンスにさらに多くのBox機能を簡単に追加する方法を紹介します。
それでは始めましょう。
今回作成する機能
Box、Salesforce、Slackは一般的に最善 (ベストオブブリード) の技術スタックに含まれますが、これらを組み合わせて使用すると、その有用性が次のレベルに引き上げられます。新しいBox/Slackチャンネル統合マッピングAPIを使用すると、Slackチャンネルにアップロードされたコンテンツは、構成済みのBoxフォルダと自動的に同期されます。
この記事を読むと、Salesforceの関連アクションを使用してSlackフォルダマッピングを自動的に実行して管理できるようになります。以下のスクリーンショットは、SlackチャンネルでアップロードされBoxフォルダに保存されているものと同じファイルが含まれたSalesforce取引先オブジェクトのBoxコンポーネントを示しています。
この機能で、どのように取引を加速させるのでしょうか。取引先チームはSlackで商談についてチャットし、その取引に関連するファイルをアップロードできます。その後、チームは、SalesforceのレコードにあるSlackチャンネルIDカスタム項目に入力すると、BoxまたはSalesforceからコンテンツに簡単にアクセスできます。複数のシステムやローカルマシンでその作業範囲を検索する必要はもうありません。
前提条件
このチュートリアルでは、特定のBox for SalesforceフローテンプレートをSlackインスタンスと組み合わせて実装する方法を説明しますが、この説明を理解できるように、このブログ記事では取り上げないいくつかの前提条件を以下に示します。
- · これには、Slack、Box、Salesforceのアカウントが必要です。また、使用するインスタンスに対する管理者の権限も必要です。テストと開発は、開発環境またはサンドボックス環境で行うことを強くお勧めします。[参照先: Box、Salesforce、Slack]
- こちらのガイドに従い、最新のBox for Salesforce管理パッケージをインストールして構成しておく必要があります。このフローテンプレートは管理パッケージv4.22以降にのみ含まれているため、古いバージョンを使用している場合は、更新が必要になることがあります。
- Box for Salesforceをインストールして設定したら、取引先レコード画面にBoxコンポーネントを追加します。その手順については、こちらのガイドの「ページレイアウトにBoxを追加」セクションまたはインストールガイドの22ページを参照してください。
- SlackワークスペースまたはオーガナイゼーションにBox for SlackがインストールされていることとSlackのコンテンツレイヤーとしてBoxが有効になっていることを確認します。その設定やテストでサポートが必要な場合は、cURLまたはBox CLIを使用したこのトピックに関する他のブログを確認してください。
Slack側のチャンネル確認のために、統合マッピングAPIでSlack APIを呼び出すことに注意してください。
一連の手順
カスタム項目の追加
まず、取引先を関連付けるSlackチャンネルをSalesforceフローで認識する方法を追加します。これを行うために、カスタム項目を追加できます。
[Setup (設定)] メニューでオブジェクトマネージャを開きます。
取引先オブジェクトを開いた後、[Fields & Relationships (項目とリレーション)] を選択します。
新しい項目を2つ追加します。1つはチャンネルIDを表すテキスト型、もう1つはフローアクティベータとして使用するチェックボックス型です。
完了すると、取引先編集画面に新しい項目が表示されます。
フローの構成
次に、フローテンプレートを開き、新しい項目を要素に追加します。[Setup (設定)] で [Flows (フロー)] を開きます。リストからCreate Box Folder/Slack Channel Mappingフローを見つけます。
フローをクリックして開きます。
開始要素をクリックし、オブジェクトタイプが取引先 (注 — 必要に応じて他のオブジェクトタイプに対してこのフローを設定できます)、トリガーが [a record is updated (レコードが更新された)]、条件が [all conditions are met (and) (すべての条件が満たされている (および))] であることを確認します。
次に、[Field (項目)] のドロップダウンで、先ほど追加したカスタムチェックボックス項目を選択します。[Operator (演算子)] を [Equals (等しい)] に変更します。値としてtrueを選択します。
最後に、[only when a record is updated to meet the condition requirements (条件の要件を満たすようにレコードが更新された場合のみ)] ラジオボタンが選択されていることを確認します。マッピングを同期する以外の理由で取引先が更新されるたびにフローが実行されることは望ましくありません。
[Done (完了)] をクリックします。
次に、[Create Slack channel mapping (Slackチャンネルマッピングを作成)] Apexアクション要素をクリックします。
[Slack Channel Id (SlackチャンネルID)] 項目で、先ほど取引先オブジェクトに追加したカスタムテキスト項目を選択します。
[Slack Workspace/Org Id (Slackワークスペース/オーガナイゼーションID)] 項目に、Box Slack統合の構成に基づいて適切な値を追加します。
Slack IDの値を見つける簡単な方法として、Slackインスタンスにログインした状態でURLのバーを確認します。最初の値がワークスペースIDです。2番目の値がチャンネルIDです。注 — ワークスペースIDとオーガナイゼーションIDは異なる値です。Boxがワークスペースレベルで構成されていない場合、値はURLのバーに表示されません。
値を入力したら、[Done (完了)] をクリックします。
フローを保存するには、右上にある [Save As (名前を付けて保存)] をクリックします。フローに一意の名前を付けます。
テスト
フローを構成して保存したら、右上にある [Debug (デバッグ)] をクリックしてフローをテストする必要があります。
取引先を選択し、SlackチャンネルIDを入力して、同期のチェックボックスをオンにします。前のスクリーンショットで示したように、チャンネルIDはSlackインスタンスのURLのバーで確認できます。
[Run (実行)] をクリックします。
画面の右側に成功を示すログが表示されます。
有効化
フローのデバッグとテストが正常に完了したら、右上にある [Activate (有効化)] をクリックできます。
これで、取引先がSlackチャンネルIDで更新され、Slackの同期のチェックボックスがオンになっていればいつでも取引先の対応するBoxフォルダとSlackチャンネルが同期されます。
代替のソリューション
取引先オブジェクトでのカスタム項目の使用方法を紹介しましたが、ユーザーインタラクションの要件を減らす他のソリューションを実行することもできます。
たとえば、Slackチャンネル名/IDを追跡し、取引先レコード名やその他の指定した値と照合するカスタムバッチジョブを作成できます。一致した場合は、BoxフォルダとSlackマッピングが自動的に作成されます。これには、システム間で標準化された命名規則が必要になりますが、この標準化はすでに企業で行われている場合もあれば、行われていない場合もあります。
その他の注意点
組み込みのフローは、以下に挙げる3つの可能性のいずれかを自動的にチェックして解決します。
- Salesforceのレコード用に作成されたフォルダがなく、Slackのチャンネルにマッピングされたフォルダがない。
- Salesforceのレコード用に作成されたフォルダがあり、Slackのチャンネルにマッピングされたフォルダがない。
- Salesforceのレコード用に作成されたフォルダがなく、Slackのチャンネルにマッピングされたフォルダがある。
注 — 4つ目の可能性も考えられますが、フローが次のパラメータを検出するとエラーが発生します: Salesforceのレコード用に作成されたフォルダがあり、Slackのチャンネルにマッピングされたフォルダがある。
何らかの理由でこれらのアクションの一部が実行されないようにする場合は、統合マッピングツールキットのメソッドを使用して、独自のカスタムコードを個別に選択して記述できます。
v4.22以降では、Box/Slackフォルダコラボレーションの自動同期をオフにする2つ目のApexアクションがフローに含まれています。これはデフォルトでオンになっています。Salesforceと一緒にSlack統合マッピングを使用する際は、自動コラボレーションを無効またはオフのままにすることを強くお勧めします。Salesforceのレコードにアクセスできるユーザーが、Slackチャンネル内のユーザーと一致しない可能性があるためです。自動コラボレーションをオンのままにした場合、Slackチャンネルに参加していないユーザーはフォルダにアクセスできなくなります。
Salesforceレコードのカスタムチェックボックス項目をオンにしても、そのレコードにまだBoxフォルダが作成されていない場合は、Box for Salesforce管理パッケージによってフォルダが自動的に作成されます。後で、フォルダの作成ボタンをクリックする必要はありません。
カスタムチェックボックス項目をオンにしてフローが実行されると、チェックボックスが自動的にオフになることはありません。必要に応じてこれをフローに追加することもできますが、レコードフォルダの再マッピングが行われることはそれほどないでしょう。
関連リソース
Box for Salesforce管理パッケージの最新バージョン
SalesforceでのBox Signボタンの作成に関するガイド
Box for Salesforceに関する開発者向けのリソース
Box for Salesforceに関するこのブログが皆さんのお役に立てば幸いです。質問がある場合は、Developer Forumに英語で投稿してください。