Workbot for Slack のトリガー

Workbot for Slack を使用すると、Workbot にコマンドを送信して Slack 内からビジネスアプリを監視および操作することができます。Workbot はこれらのコマンドを処理し、接続されたアプリと対話して、顧客アカウントの詳細の表示、商談のクローズ、請求書やチケットのリスト表示、チケットの作成や更新といった操作を行います。

Workbot の各コマンドは Workato レシピを使用して処理されます。レシピでは、Workbot のコマンドがトリガーイベントとして取得され、実行するアクションが決定されます。Workbot を使用すれば、カスタムワークフローを作成して Slack のコマンドで実行することも、必要に応じて関連データを取得し、Slack に返すこともできます。

Workbot for Slack コネクターには以下の5つのトリガーがあります。

New command トリガー (カスタムコマンドの作成)

このトリガーでは、Workbot を起動するためのコマンドを設定します。レシピが開始されると、Workbot に対してそのコマンドが送信されるたびにレシピのアクションが実行されます。

New command トリガーの入力項目

以下の表に、このトリガーで設定可能な入力項目とその説明を示します。

New command トリガーの入力項目説明
App Workbot コマンドの最初の部分。コマンドで操作するアプリを示します。
例 : Salesforce
Action Workbot コマンドの2番目の部分。コマンドがアクションデータに対して行うことを示します。
例 : showcreateupdate
Action data Workbot コマンドの3番目の部分。コマンドで操作するレコードを示します。
例 : invoicecustomerticket
Command input fields 特定の形式で定義された、レシピのアクションを実行するためにユーザーに求める入力。パラメータに file というタイプを指定すると、ファイルの内容 (テキスト、バイナリなど) を入力として受け取ることができます。ファイルの実体は Slack にアップロードされるため、Workbot のアクションである Download Attachment を使用して後続の操作で使用できます。
Command hint コマンドの実行内容に関する簡単な説明。Workbot アプリのページで [Commands] の下に表示されます。
Hide command in 'help' messages [yes] に設定すると、ユーザーがアプリ名を入力する際、コマンドがボタンとして Slack チャネルに表示されません。[no] に設定すると、ユーザーがアプリ名を入力する際、コマンドがボタンとして Slack チャネルに表示されます。

Workbot コマンドの形式

Workbot コマンドは、以下のように appactionaction data の3つの要素で構成されます。

app action action-data

次の例では、アプリケーションが「Salesforce」、コマンドのアクションが「Show」、ビジネスデータが「Account」です。したがって、Workbot が応答するコマンドは次のようになります。

Salesforce show account

Workbot コマンドの入力パラメータの形式

[Command input fields] では、レシピのアクションを実行するためにユーザーから取得する必要のあるデータを指定できます。

各入力パラメータは次の形式で指定する必要があります。

param_name optional:true prompt:false type:string hint:hint_to_help_users sample:example_data
[Command input fields]説明
Name必須。1つの単語を指定します。
Optional 省略可能。指定しない場合、デフォルトは optional:true となります。入力パラメータは省略可能です。
Prompt 省略可能。指定しない場合、デフォルトは prompt:false となります。入力を促すプロンプトは生成されません。
Data type 省略可能。指定しない場合、デフォルトは type:string となります。指定可能なタイプは、stringbooleannumberfiledate_time です。
Hint 省略可能。指定しない場合、デフォルトはヒントなしとなります。
Example 省略可能。指定しない場合、デフォルトはサンプルデータなしとなります。

この例では、Salesforce のアカウントデータを取得するため、Slack ユーザーから完全なアカウント名を得る必要があります。

name optional: false prompt: false type: string hint: Exact account name sample: IBM

設定したコマンドの入力項目は、Workbot コマンドの後に、ユーザーに対する補足の質問として表示されます。

Salesforce show account の入力パラメータSlack に表示されたコマンドの入力項目

New command トリガーの出力データピル

New command トリガーでは、コマンドを実行したユーザー、コマンドが実行されたチャネルなど、コマンドに関するデータを保持するデータピル変数も使用できます。以下にその詳細を示します。

New command トリガーの出力データツリーNew bot command の出力データツリー

以下の表に、このトリガーの出力データピルとその説明を示します。

New command トリガーのデータピル変数説明
App Workbot コマンドの最初の部分。コマンドで操作するアプリを示します。
例 : Salesforce
Action Workbot コマンドの2番目の部分。コマンドがアクションデータに対して行うことを示します。
例 : showcreateupdate
Action data Workbot コマンドの3番目の部分。コマンドで操作するレコードを示します。
例 : invoicecustomerticket
Message ID コマンドが送信された時刻 (エポック時間)。この Workbot コマンドメッセージでスレッドを作成する際の Thread ID 入力項目として使用できます。
以前投稿されたメッセージを上書きする際の Message to update としても使用できます。
Context この Workbot コマンドに関する Slack のデータ。投稿先のチームやチャネル、投稿者、スレッド ID (該当する場合) などがあります。
Command input parameters Workbot コマンドに対する補足の質問によってユーザーから得たデータ。

以下の表に、 Context オブジェクトに関する追加情報とそれが保持するデータを示します。

Context のデータピル変数説明
TeamSlack のチーム ID。
UserSlack のユーザー ID。
Reply Channel メッセージが投稿された Slack のチャネル ID。
User handleSlack ユーザーのハンドル名。
User emailSlack ユーザーのメールアドレス。
User nameSlack ユーザーの表示名。
Thread ID メッセージが投稿されたスレッドの ID (スレッドに投稿されたのでない場合は null)

以下の表に、 Modals オブジェクトに関する追加情報とそれが保持するデータを示します。

Modals のデータピル説明
View IDコマンドの実行元のビュー (アクティブビュー) の ID。ビューの送信から実行されたコマンドの場合、ビューは送信時にすでにクローズされているため、このビュー ID をビューの更新や公開に使用することはできません。ビューが1つだけアクティブな場合、このビュー ID はルートビューの ID と同一になります。
Root View IDルートビューの ID。
Previous View ID現在のビューの下にあるビューの ID。
Private metadata必要に応じて下流のレシピに渡すことができるプライベートデータ。この項目は暗号化され、ユーザーには表示されません。
Hashモーダルの更新時に必要に応じて使用できる一意の値。指定すると、このハッシュを検証することで最新のビューだけが更新されるようになり、更新が非同期に発生する場合に正しいビューが更新されるようになります。

トリガーの出力には Message ID が含まれる場合があります。Message ID が値を持つのは、 New command がボタンアクションでトリガーされた場合のみです。手動入力でトリガーされたコマンドの場合、この項目は空になります。

例 : Salesforce show account コマンド

以下の GIF では、DM を通じて Workbot と直接チャットを行っています。アプリ名に「Salesforce」と入力すると、Workbot が利用可能なコマンドのリストを生成してボタンとして表示します。DM に Salesforce show account と手動でコマンドを入力することもできます。

Salesforce show account コマンドSalesforce show account コマンド

ボタンのクリックまたはコマンドの入力によって Salesforce show account コマンドが呼び出されると、Workbot for Slack の New command トリガー を持つ対応するレシピがトリガーされます。このレシピでは、コマンド Salesforce show account をリッスンする Workbot の New command トリガーが使用されます。これを行う Workbot for Slack の作成済みのレシピを以下に示します。

Salesforce show account コマンドのレシピSalesforce show account コマンドのレシピ サンプルレシピ

Salesforce show account コマンドのトリガー設定は以下のとおりです。

Salesforce show account コマンドのトリガー設定 1Salesforce show account コマンドのトリガー設定

前述のように、Workbot コマンドは3つの要素、appactionaction data で構成されています。この場合、アプリケーションが「Salesforce」、コマンドのアクションが「Show」、ビジネスデータが「Account」です。したがって、Workbot が応答するコマンドは「Salesforce show account」となります。

[Command input parameters] では、レシピのアクションを実行するためにユーザーから取得する必要のあるデータを指定できます。この例では、Salesforce のアカウントデータを取得するために Slack ユーザーから完全なアカウント名を得る必要があるので、パラメータを以下のように指定します。

Salesforce show account コマンドのトリガー設定 2Salesforce show account コマンドの入力項目の設定

設定したコマンドの入力パラメータは、Workbot コマンドの後に、ユーザーに対する補足の質問として表示されます。

Salesforce show account の入力パラメータSlack に表示される入力パラメータ

ユーザーが必要な入力をすべて終えると、レシピのアクションが実行されます。今回のレシピのアクションは、Salesforce アカウントの詳細をメッセージの添付としてグリッド形式で表示することでした。

Salesforce show account コマンドの結果Salesforce show account コマンドの結果

New help message トリガー

New help message トリガーは、help メッセージがボットに DM またはチャネル (「@workbot help」などでメンション) で送信されると実行されます。このトリガーは、Workbot のデフォルトのヘルプメッセージを利用するのではなく、help メッセージに対するボットの応答を完全にカスタマイズしたい場合に使用します。

このトリガーは Post command reply とペアで使用することをお勧めします。この応答が、ボットの help を実行したときに表示される help メッセージになります。

1つのボットについてレシピで同時にアクティブにできる New help message トリガーは1つだけです。

WARNING

このトリガーはデフォルトの help メッセージや、Workbot のコネクションにて JSON 形式で設定されるカスタムのヘルプメッセージよりも優先して使用されます。

New help message トリガーを使う理由

独自の機能に基づいてボットのヘルプメッセージをカスタマイズすることを強くお勧めします。これは、 New help message イベントに Post command reply で応答することによって行います。トリガーに含まれるコンテキストは、以下の目的に使用できます。

  • User ID を使用し、メッセージをユーザー向けにパーソナライズする。
  • Is bot admin? を使用し、ユーザーがボット管理者かエンドユーザーかによって異なる help メッセージを表示する。
  • help Salesforce など、ユーザーが help コマンドに追加して送信するテキストを使用して別の help メッセージを表示する。
  • ボットコマンド、パーソナルコネクション、ボットのレシピやジョブへのリンクを表示する。

Post command reply アクションを使用してヘルプメッセージをカスタマイズすることで、以下のことが可能になります。

  • ボット独自の機能をより詳しく説明する。
  • 当該ユーザーに的を絞った他のアプリ (Salesforce、ServiceNow、Jira など) からの情報を含める。
  • モーダルを開いたり、ユーザーをボットアプリのホームに移動させたりできる、複数のステップで構成された help フローを構築する。

入力

入力は不要です。

出力

項目説明
Help message textユーザーが「help」の後に入力したテキスト。「@workbot help me with salesforce」 の場合は 「me with salesforce」
Message IDヘルプメッセージのメッセージ ID。1490915654.038365
Personal connections commandユーザーのパーソナルコネクションを表示するために使用できるコマンド。ボタンなどの対話型コンポーネントで実行するコマンドを定義する際に使用します。connections
Bot info commanduname
Is bot admin?実行ユーザーがボット管理者なら true、それ以外は false。true
Bot commands
(配列)
Recipe IDボットコマンドレシピのレシピ ID。42
Recipe nameボットコマンドレシピの名前。Create Salesforce opportunity
Commandコマンドの完全な名前。salesforce create opportunity
Descriptionコマンドのヒント。creates salesforce opportunity
Recipe URLレシピの URL。https://app.workato.com/recipes/42
Recipe jobs URLレシピのジョブのページの URL。https://app.workato.com/recipes/42#jobs
Contextチーム情報、ユーザー情報、メッセージまたはモーダル/アプリのホームビュー情報など、Slack 関連の情報。Context のデータピル変数の表を参照。

ヘルプメッセージの優先順位

ヘルプメッセージの優先順位は以下のとおりです。

  1. レシピ内のカスタムヘルプ
  2. コネクションにて JSON で設定したカスタムヘルプ
  3. デフォルトのヘルプ

New event トリガー

New event トリガー は、Slack ワークスペースで指定されたイベントが発生すると実行されます。このトリガーは、Slack の Events API対話型コンポーネント (ブロックアクションやモーダルの送信など) と連携します。各トリガーは1種類のイベントをサブスクライブします。

Events API のイベントの場合、最初にボットを Slack のイベントに対してサブスクライブする必要があります。

New event トリガーWorkbot for Slack の New event トリガー

このトリガーには、頻繁にサブスクライブされているイベントがデフォルトで列挙されます。目的のイベントが表示されていない場合は、 [Enter custom value] に切り替えて手動でイベントを設定します。

カスタムイベントイベント名は、レシピに対するイベントを表し、コンテキストを示す目的に利用できる (構文上の制約はない)

[Event schema][Use a sample JSON] をクリックしてサンプル JSON を指定することで、イベントのペイロードを生成することもできます。

イベントのサンプル JSON

カスタムイベントの JSON

サブスクライブ可能なイベントの一覧は、Slack API の Event types のドキュメントに列挙されています。

このトリガーは、ボットでサブスクライブするボットイベントまたはワークスペースイベントを指定するため、Enterprise ボットでのみ使用することができます。イベントをサブスクライブするには、使用する Slack のボットに移動して、さらに [イベントサブスクリプション] に移動します。必要なイベントをサブスクライブしたら、 [変更の保存] をクリックします。

イベントのサブスクライブSlack でのイベントのサブスクライブ

New shortcut トリガー

New shortcut トリガー は、ワークフローを開始するための強力な手段です。グローバルショートカットからワークフローを開始させたり、メッセージショートカットを使って Slack メッセージをタスクやチケットに転換したりすることができます。このトリガーは グローバルメッセージ 両方のショートカットに対応しますが、ショートカットを Enterprise ボットで作成する必要があります。

ショートカットの例Workbot のショートカットの例

動画もあります

Workbot のショートカットの動作を確認してください。

ショートカットがトリガーされると、ユーザーからコマンドの入力項目を収集するダイアログが表示されます。メッセージの元の内容は、(ダイアログで収集した入力と合わせて) タスクやチケットなどの作成に使用できます。ショートカットの使用を始めるには、ショートカットに関するドキュメントを参照してください。

必要な場合は、ユーザーからさらに情報を収集するためのダイアログボックスを起動します。

ショートカットトリガーNew shortcut トリガー

ショートカットの使用を始めるには、ショートカットに関するドキュメントを参照してください。

New URL mention

このトリガーは Slack 内で特定のタイプの URL を監視し、そのような URL を含む投稿があれば、事前定義され整形されたデータをチャネルに抽出します。現在は Salesforce と Github の URL に対応しています。

Slack で URL を送信すると、Workbot が特定の情報をチャネルに提供して誰でも見られるようにします。たとえば、Salesforce のリード URL をセールスのチャネルに送信すると、Workbot がそのリードに関する詳細な情報を含んだメッセージを自動的に送信します。

Workbot のトリガー

トリガーのアプリケーション (現在は Salesforce と Github のみ) を選択し、ドキュメントを選択して、アクションをセットアップするだけです。デフォルトでは、Workbot が参加しているチャネルに Salesforce または Github の URL を送信すると、その URL の内容の詳細を表示するかどうか尋ねるプロンプトがトリガーされ、yes を選択するとレシピがトリガーされます。Workato のレシピを編集すれば、そのメッセージに含まれる項目を増やしたり減らしたりすることもできます。

Workbot のトリガー

New dynamic menu event

ダイアログを表示する Workbot コマンドレシピでは、ダイナミックメニューオプションを使って select 項目を定義できます。

ダイナミックメニューダイナミックメニューオプションのある Workbot コマンドレシピ

このトリガーは、定義した項目にユーザーが入力すると実行され、ユーザーが入力した内容 (typeahead 値) を返します。イベントをトリガーするには、5文字以上を入力する必要があります。

この typeahead 値を使用して (Salesforce などの他のアプリから) レコードのリストを取得し、メインレシピ (select 項目があるダイアログを表示するレシピ) に返します。

typeahead の例

Return menu options アクションを使用すると、ダイナミックメニューにレコードのリストを返すことができます。つまりこのトリガーは、常に Return menu options アクションとペアで使用する必要があります。

入力

Dynamic menu name

このメニューの識別子です。

Command input fields

ダイナミックメニューオプションのある Workbot コマンドレシピからは、 Dynamic menu recipe params 項目を介してダイナミックメニューレシピにパラメータを渡すことができます。ダイナミックメニューレシピでは、メニューオプションを生成する際、これらの追加パラメータを使用することができます。

ダイナミックメニューレシピのパラメータダイナミックメニューオプション項目のある Workbot コマンドレシピから、値が「Closed Won」のパラメータ「stagename」を渡している

同じように、トリガーにも同じパラメータを定義する必要があります。

ダイナミックメニュートリガーのパラメータ同じ「stagename」パラメータが定義された、対応するダイナミックメニューレシピ

これにより、ダイナミックメニューレシピで追加のパラメータを使用してメニューオプションを生成できるようになります。以下の例では、パラメータ stagename がダイナミックメニューレシピに渡され、SOQL 検索の絞り込みに使用されています。

ダイナミックメニューパラメータの例「stagename」パラメータが渡され、SOQL 検索の絞り込みに使用されている

出力

項目説明
Event contextTeamコマンドが実行されたチームの ID とドメイン。
Userコマンドを実行したユーザーの ID と名前。
Channel コマンドが実行されたチャネルの ID と名前。
State ダイナミックメニューレシピの ID とパラメータの name-value ペアを含むシステムメッセージ。
Action ts アクションが実行された時刻のタイムスタンプ。
TypeaheadNameダイナミックメニューイベントを送信したパラメータの名前。
Valueダイナミックメニューオプション項目にユーザーが入力した文字列。
Callback IDシステムメッセージ。
Parameters Workbot コマンドレシピがダイナミックメニューオプションで渡した name-value ペア。

Last updated: