# Workbot for Slack のトリガー
Workbot for Slack を使用すると、Workbot にコマンドを送信して Slack 内からビジネスアプリを監視および操作することができます。Workbot はこれらのコマンドを処理し、接続されたアプリと対話して、顧客アカウントの詳細の表示、商談のクローズ、請求書やチケットのリスト表示、チケットの作成や更新といった操作を行います。
Workbot の各コマンドは Workato レシピを使用して処理されます。レシピでは、Workbot のコマンドがトリガーイベントとして取得され、実行するアクションが決定されます。Workbot を使用すれば、カスタムワークフローを作成して Slack のコマンドで実行することも、必要に応じて関連データを取得し、Slack に返すこともできます。
Workbot for Slack コネクターには以下の5つのトリガーがあります。
- New command
- New help message
- New event (real-time)
- New shortcut
- New URL mention
- New dynamic menu event
# New command トリガー (カスタムコマンドの作成)
このトリガーでは、Workbot を起動するためのコマンドを設定します。レシピが開始されると、Workbot に対してそのコマンドが送信されるたびにレシピのアクションが実行されます。
# New command トリガーの入力項目
以下の表に、このトリガーで設定可能な入力項目とその説明を示します。
| New command トリガーの入力項目 | 説明 |
|---|---|
| App |
Workbot コマンドの最初の部分。コマンドで操作するアプリを示します。 例 : Salesforce |
| Action |
Workbot コマンドの2番目の部分。コマンドがアクションデータに対して行うことを示します。 例 : show、create、update |
| Action data |
Workbot コマンドの3番目の部分。コマンドで操作するレコードを示します。 例 : invoice、customer、ticket |
| Command input fields |
特定の形式で定義された、レシピのアクションを実行するためにユーザーに求める入力。パラメータに file というタイプを指定すると、ファイルの内容 (テキスト、バイナリなど) を入力として受け取ることができます。ファイルの実体は Slack にアップロードされるため、Workbot のアクションである Download Attachment を使用して後続の操作で使用できます。
|
| Command hint | コマンドの実行内容に関する簡単な説明。Workbot アプリのページで [Commands] の下に表示されます。 |
| Hide command in 'help' messages | [yes] に設定すると、ユーザーがアプリ名を入力する際、コマンドがボタンとして Slack チャネルに表示されません。[no] に設定すると、ユーザーがアプリ名を入力する際、コマンドがボタンとして Slack チャネルに表示されます。 |
# Workbot コマンドの形式
Workbot コマンドは、以下のように app、action、action 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 となります。指定可能なタイプは、string、boolean、number、file、date_time です。
|
| Hint | 省略可能。指定しない場合、デフォルトはヒントなしとなります。 |
| Example | 省略可能。指定しない場合、デフォルトはサンプルデータなしとなります。 |
この例では、Salesforce のアカウントデータを取得するため、Slack ユーザーから完全なアカウント名を得る必要があります。
name optional: false prompt: false type: string hint: Exact account name sample: IBM
設定したコマンドの入力項目は、Workbot コマンドの後に、ユーザーに対する補足の質問として表示されます。
Slack に表示されたコマンドの入力項目
# New command トリガーの出力データピル
New command トリガーでは、コマンドを実行したユーザー、コマンドが実行されたチャネルなど、コマンドに関するデータを保持するデータピル変数も使用できます。以下にその詳細を示します。
New bot command の出力データツリー
以下の表に、このトリガーの出力データピルとその説明を示します。
| New command トリガーのデータピル変数 | 説明 |
|---|---|
| App |
Workbot コマンドの最初の部分。コマンドで操作するアプリを示します。 例 : Salesforce |
| Action |
Workbot コマンドの2番目の部分。コマンドがアクションデータに対して行うことを示します。 例 : show、create、update |
| Action data |
Workbot コマンドの3番目の部分。コマンドで操作するレコードを示します。 例 : invoice、customer、ticket |
| Message ID |
コマンドが送信された時刻 (エポック時間)。この Workbot コマンドメッセージでスレッドを作成する際の Thread ID 入力項目として使用できます。 以前投稿されたメッセージを上書きする際の Message to update としても使用できます。 |
| Context | この Workbot コマンドに関する Slack のデータ。投稿先のチームやチャネル、投稿者、スレッド ID (該当する場合) などがあります。 |
| Command input parameters | Workbot コマンドに対する補足の質問によってユーザーから得たデータ。 |
以下の表に、 Context オブジェクトに関する追加情報とそれが保持するデータを示します。
| Context のデータピル変数 | 説明 |
|---|---|
| Team | Slack のチーム ID。 |
| User | Slack のユーザー ID。 |
| Reply Channel | メッセージが投稿された Slack のチャネル ID。 |
| User handle | Slack ユーザーのハンドル名。 |
| User email | Slack ユーザーのメールアドレス。 |
| User name | Slack ユーザーの表示名。 |
| 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 コマンドが呼び出されると、Workbot for Slack の New command トリガー を持つ対応するレシピがトリガーされます。このレシピでは、コマンド Salesforce show account をリッスンする Workbot の New command トリガーが使用されます。これを行う Workbot for Slack の作成済みのレシピ (opens new window)を以下に示します。
Salesforce show account コマンドのレシピ サンプルレシピ (opens new window)
Salesforce show account コマンドのトリガー設定は以下のとおりです。
Salesforce show account コマンドのトリガー設定
前述のように、Workbot コマンドは3つの要素、app、action、action data で構成されています。この場合、アプリケーションが「Salesforce」、コマンドのアクションが「Show」、ビジネスデータが「Account」です。したがって、Workbot が応答するコマンドは「Salesforce show account」となります。
[Command input parameters] では、レシピのアクションを実行するためにユーザーから取得する必要のあるデータを指定できます。この例では、Salesforce のアカウントデータを取得するために Slack ユーザーから完全なアカウント名を得る必要があるので、パラメータを以下のように指定します。
Salesforce show account コマンドの入力項目の設定
設定したコマンドの入力パラメータは、Workbot コマンドの後に、ユーザーに対する補足の質問として表示されます。
Slack に表示される入力パラメータ
ユーザーが必要な入力をすべて終えると、レシピのアクションが実行されます。今回のレシピのアクションは、Salesforce アカウントの詳細をメッセージの添付としてグリッド形式で表示することでした。
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 command | uname | ||
| 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 のデータピル変数の表を参照。 | |
# ヘルプメッセージの優先順位
ヘルプメッセージの優先順位は以下のとおりです。
- レシピ内のカスタムヘルプ
- コネクションにて JSON で設定したカスタムヘルプ
- デフォルトのヘルプ
# New event トリガー
New event トリガー は、Slack ワークスペースで指定されたイベントが発生すると実行されます。このトリガーは、Slack の Events API (opens new window) や対話型コンポーネント (opens new window) (ブロックアクションやモーダルの送信など) と連携します。各トリガーは1種類のイベントをサブスクライブします。
Events API のイベントの場合、最初にボットを Slack のイベントに対してサブスクライブする必要があります。
Workbot for Slack の New event トリガー
このトリガーには、頻繁にサブスクライブされているイベントがデフォルトで列挙されます。目的のイベントが表示されていない場合は、 [Enter custom value] に切り替えて手動でイベントを設定します。
イベント名は、レシピに対するイベントを表し、コンテキストを示す目的に利用できる (構文上の制約はない)
[Event schema] で [Use a sample JSON] をクリックしてサンプル JSON を指定することで、イベントのペイロードを生成することもできます。


サブスクライブ可能なイベントの一覧は、Slack API の Event types のドキュメント (opens new window)に列挙されています。
このトリガーは、ボットでサブスクライブするボットイベントまたはワークスペースイベントを指定するため、Enterprise ボットでのみ使用することができます。イベントをサブスクライブするには、使用する Slack のボットに移動 (opens new window)して、さらに [イベントサブスクリプション] に移動します。必要なイベントをサブスクライブしたら、 [変更の保存] をクリックします。
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 がそのリードに関する詳細な情報を含んだメッセージを自動的に送信します。

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

# New dynamic menu event
ダイアログを表示する Workbot コマンドレシピでは、ダイナミックメニューオプションを使って select 項目を定義できます。
ダイナミックメニューオプションのある Workbot コマンドレシピ
このトリガーは、定義した項目にユーザーが入力すると実行され、ユーザーが入力した内容 (typeahead 値) を返します。イベントをトリガーするには、5文字以上を入力する必要があります。
この typeahead 値を使用して (Salesforce などの他のアプリから) レコードのリストを取得し、メインレシピ (select 項目があるダイアログを表示するレシピ) に返します。

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 context | Team | コマンドが実行されたチームの ID とドメイン。 |
| User | コマンドを実行したユーザーの ID と名前。 | |
| Channel | コマンドが実行されたチャネルの ID と名前。 | |
| State | ダイナミックメニューレシピの ID とパラメータの name-value ペアを含むシステムメッセージ。 | |
| Action ts | アクションが実行された時刻のタイムスタンプ。 | |
| Typeahead | Name | ダイナミックメニューイベントを送信したパラメータの名前。 | Value | ダイナミックメニューオプション項目にユーザーが入力した文字列。 |
| Callback ID | システムメッセージ。 | |
| Parameters | Workbot コマンドレシピがダイナミックメニューオプションで渡した name-value ペア。 | |
Last updated: 2023/8/31 1:07:14