# 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 のデータピル変数 説明
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 コマンド

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

Salesforce show account コマンドのレシピ Salesforce show account コマンドのレシピ サンプルレシピ (opens new window)

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

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

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

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

Salesforce show account コマンドのトリガー設定 2 Salesforce 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 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 のデータピル変数の表を参照。

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

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

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

# New event トリガー

New event トリガー は、Slack ワークスペースで指定されたイベントが発生すると実行されます。このトリガーは、Slack の Events API (opens new window)対話型コンポーネント (opens new window) (ブロックアクションやモーダルの送信など) と連携します。各トリガーは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 のドキュメント (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 がそのリードに関する詳細な情報を含んだメッセージを自動的に送信します。

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 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