Slack用Workatoアクション
Workbotアクションを使用すると、注意すべきイベントがある場合にWorkbotが指定されたチャンネルに通知を投稿したり、コマンドに応答したりできます。
Workbotは次のアクションをサポートしています:
- コマンド応答を投稿
- Post message
- モーダルビューを開く/更新またはプッシュ
- アプリホームビューを公開
- ブロックIDでブロックを更新
- メニューオプションを返す
- 通知を投稿
- 添付ファイルをダウンロード
- メッセージを削除
- ダイアログを投稿
次のアクションは非推奨となり、使用できなくなりました:
Block Kitの互換性
コマンド応答を投稿およびメッセージを投稿では、ブロックを既存のメッセージ添付ファイルと一緒に使用できます。
詳細については、Block Kitを参照してください。
ユーザー入力/アクションを待機
Workbotレシピジョブは、ユーザーが入力するまで一時停止できます。入力を受信すると、ジョブは次のアクションに進みます。個別のレシピトリガーとして別のコマンドを実行することはありません。これにより、1つのレシピ内でWorkbotとユーザーのインタラクションの複数ステップを指定でき、ロジックを効率化し、レシピ数を削減し、不自然で不要なボットコマンドを回避できます。
ユーザーアクションの待機は、モーダルとメッセージで使用されるパターンです。次のアクションは、ユーザーアクションの待機をサポートしています:
コマンド応答を投稿およびメッセージを投稿アクションについて、ユーザーアクションを待機の設定方法を参照してください。
また、次のモーダルはユーザーアクションの待機をサポートしています:
コマンド応答を投稿
コマンド応答を投稿では、イベント完了時のWorkbotの応答方法をカスタマイズできます。この応答は、タスク完了に関するシンプルなメッセージにすることも、最初のアクションの完了後にユーザーに後続のアクションを促すプロンプトにすることもできます。たとえば、Salesforceでカスタムアカウントのデータを取得した後、その情報を別のアプリケーションにコピーする予定があるかどうかをユーザーに尋ねるようWorkbotを設定できます。
ブロック
ブロックを追加してリッチメッセージを設計します。ブロック項目を積み重ね、各ブロックの順序と外観、および各ブロック内の要素をカスタマイズできます。
Workatoがサポートするブロックタイプの一覧については、Block Kitの記事を参照してください。

メッセージ添付ファイルとの互換性
以前は、メッセージを投稿とコマンド応答を投稿は、メッセージ添付ファイルを使用してメッセージを構成していました。ブロックはメッセージ添付ファイルと一緒に使用できます。
必要に応じて、定義済みのブロックの後に表示されるセカンダリ添付ファイルを指定できます。
メッセージ添付ファイルと一緒に使用した場合のブロックの動作
ブロックとメッセージ添付ファイルの両方が定義されている場合、ブロックは常にメッセージ添付ファイルの上に表示されます。

ブロックが定義されている場合、メッセージテキストフィールドへの入力はSlack通知メッセージとして使用されます。

次の表は、コマンド応答を投稿アクションで使用可能なフィールドを示しています。
| フィールド | 説明 | ||
|---|---|---|---|
| ブロック | SlackのBlock Kitを使用して、リッチでインタラクティブなメッセージを作成します。サポートされているブロックの一覧を表示。 | ||
| メッセージテキスト | ブロックが定義されていない場合、このフィールドのテキストはセカンダリ添付ファイルの前に表示されます。 ブロックが定義されている場合、このフィールドのテキストはSlack通知メッセージとして使用されます。 Slack mrkdwnと絵文字をサポートしています。 | ||
| 複数の添付ファイル | Yesに設定すると、セカンダリ添付ファイルの配列を動的に生成できます。この配列はマージされ、1つのメッセージとして投稿されます。 使用するには、リストデータピルを添付ファイルソースリストフィールドに渡し、対応するメッセージ添付ファイル、添付ファイルフィールド、ボタン、メッセージメニューフィールドを、同じリストのレコードのデータピルでマッピングします。 | ||
| セカンダリ添付ファイル | メッセージ添付ファイル | プリテキスト | メッセージ添付ファイルブロックの上に表示されるテキスト。 |
| 作成者名 | タイトルの上に表示される、作成者名を表示するための小さいテキスト。 | ||
| 作成者リンク | author_nameテキストをハイパーリンクにする有効なURL。これはauthor_nameが存在する場合にのみ機能します。 | ||
| 作成者アイコン | author_nameテキストの左側に小さい16px×16pxの画像を表示する有効なURL。これは作成者名が存在する場合にのみ機能します。 | ||
| タイトル | メッセージのタイトル。 Slack mrkdwnと絵文字をサポートしています。 | ||
| タイトルリンク | タイトルにリンクを埋め込むことができます。ユーザーがリンクをクリックしたときに移動するページの公開URLを指定します | ||
| 添付ファイルテキスト | メッセージの本文。 Slack mrkdwnと絵文字をサポートしています。 | ||
| 添付ファイルの色 | メッセージの重要度または種類を示すためにメッセージとともに表示される色。 Good = 緑 Warning = アンバー Danger = 赤 | ||
| 画像URL | メッセージ本文の下に表示される画像のURL。 | ||
| サムネイルURL/アプリケーション | メッセージ本文の右側に表示される画像のURL。 | ||
| フッター | 添付ファイルのコンテキストを示し、識別しやすくするための短いテキスト。 300文字に制限され、画面領域が限られたEnvironmentでユーザーに表示される場合はさらに切り詰められることがあります。 | ||
| フッターアイコン | フッターテキストの横に表示される画像ファイルへの有効なURL。これはauthor_nameが存在する場合にのみ機能します。 Workatoは画像を16px×16pxでレンダリングします。同様のサイズの画像を使用することをお勧めします。 | ||
| 添付ファイルフィールド | 2列グリッドで表示される名前と値のペア。 | ||
| ボタン | ボタンはメッセージ本文の下に表示されます。ボタンは主にコマンドの呼び出しに使用され、別のボットコマンドレシピを実行します。ボタンラベル、実行するコマンド、ボタンがクリックされたときに渡すパラメーターを定義できます。 | ||
| メッセージメニュー | メッセージ本文の下に表示されるドロップダウンメニュー。各メニューオプションはコマンドの呼び出しに使用でき、別のボットコマンドレシピを実行します。 各オプションの表示、実行するコマンド、メニューオプションの選択時に渡すパラメーターを定義できます。 | ||
| ユーザーにのみ送信 | ユーザーにのみ表示されるエフェメラルメッセージとして投稿します。 | ||
| 元のメッセージを置換 | 元のメッセージを置換します。元のメッセージがエフェメラルメッセージの場合、置換後のメッセージもエフェメラルです。通常のメッセージをエフェメラルメッセージに置換することはできません。 | ||
| 元のメッセージを削除 | 元のメッセージを削除します。 | ||
Post message
このアクションは、コマンドを呼び出したユーザーにメッセージ応答を投稿します。メッセージを投稿アクションは、コマンド応答を投稿に似ていますが、より多くの機能があります。
次の場合はメッセージを投稿を使用します:
レシピでWorkbotコマンドトリガーを使用していない。
メッセージをメンバー(ユーザーID)または会話(会話ID)に動的に投稿したい
以前のメッセージの更新や、スレッド内でのメッセージの投稿/更新などの高度な機能を使用する予定がある。
チャンネル名/DM
チャンネル名/DMフィールドを使用して、指定したSlackチャンネルにメッセージを投稿するか、ダイレクトメッセージ(DM)を投稿できます。メッセージを投稿する方法は2つあります:
コマンドを投稿トリガーのチャンネル/DMデータピルを使用する
更新するメッセージの例Slackチャンネル名を追加するか、DMメッセージを投稿するSlackメンバーIDを追加します。例:
- チャンネル: #general
- SlackメンバーID: XYZ12345AB6
メンバーのSlack IDを見つけるには:
Slackを開き、人物の名前をクリックしてプロフィールを開きます。
Moreメニューをクリックし、Copy member IDをクリックします。
SlackメンバーIDをコピー
メッセージブロック
コマンド応答を投稿と同様に、メッセージを投稿ではブロックを追加してリッチメッセージを設計できます。ブロック項目を積み重ね、各ブロックの順序と外観、および各ブロック内の要素をカスタマイズできます。
Workatoがサポートするメッセージブロックタイプの完全な一覧については、Block Kitの記事を参照してください。
詳細セクション
詳細セクションには2つのフィールドがあります:
更新するメッセージとスレッドID。
更新するメッセージ
更新するメッセージを使用すると、以前のアクションステップで投稿したメッセージを上書きできます。コマンドを投稿トリガー、メッセージを投稿アクション、または通知を投稿出力データツリーのメッセージIDデータピルを使用するだけです。
更新するメッセージの例スレッドID
スレッドIDを使用すると、Slackの既存のスレッド内にメッセージを投稿できます。メッセージを投稿または通知を投稿出力データツリーのスレッドIDデータピルを使用するだけです。
スレッドIDの例スレッドIDが表示されない場合は、メッセージを投稿アクションステップ下部の'Add/remove optional fields'セクションでチェックされていることを確認してください:

通知を投稿
このアクションでは、カスタマイズした通知の投稿先となるSlackチャンネルを定義できます。デフォルトでは、WorkbotはWorkbotをインストールしたユーザーにのみダイレクトメッセージを投稿します。なお、(Workbotが参加している)チャンネルからこれらの通知を購読することもできます。
使用可能なフィールドはコマンド応答を投稿アクションのフィールドに似ており、Slackメッセージで通常表示されるすべての標準フィールドが含まれています。ただし、通知フィルターフィールドが追加されています。このフィールドでは、通知送信のトリガーフィルターのように動作するフィルターのパラメーターを設定できます(つまり、設定した条件が満たされた場合にのみ通知が送信されます)。
添付ファイルをダウンロード
このアクションでは、New commandトリガーへの入力として受信したSlackの添付ファイルをダウンロードできます。アップロードされたコンテンツのコマンドパラメーターの型がfileであることを確認してください。例: attachment type:file。 New command出力のファイルURLをURLフィールドに渡して、添付ファイルコンテンツを取得します。その後、このファイルコンテンツをDropbox、Box、またはその他のコネクターに渡して、ファイルとしてアップロードできます。
メニューオプションを返す
このアクションでは、メニューオプションを動的に生成し、それらをSlackダイアログの動的メニューに返すことができます。
ダイアログを呼び出すWorkbotコマンドレシピでは、動的メニューオプションを持つselectフィールドを定義できます。
動的メニューオプションを含むWorkbotコマンドレシピ
別のアプリ(たとえばSalesforce)からレコードリストを取得した後、メニューオプションを返すアクションを使用して、それらを動的メニューに返すことができます。
Salesforce商談を取得してから、動的メニュー付きのSlackダイアログにメニューオプションとして返す
したがって、このアクションは常にNew dynamic menu eventトリガーと組み合わせる必要があります。
入力
デフォルトでは、メニューオプションを1つずつ追加して、静的なメニューオプションリストを指定できます。
静的メニューオプションを1つずつ追加
ただし、入力モードを動的に変更することで、動的リストを作成できます。前のアクションステップの出力からリストデータピルを渡すだけです。
動的メニューオプションの設定
返されるメニューオプションは、デフォルトではグループ化されていないリストです。
レシピ内のグループ化されていないオプション
Slack内のグループ化されていないオプション
メニューオプションを返すときは、Group menu options?をYesに設定してメニューオプションをグループ化できます。これには、追加する各グループにグループのタイトルを指定する必要があります。
レシピ内でのグループ化されたオプションの表示
Slack内のグループ化されたオプション
Post attachment
Post attachmentアクションは非推奨となり、プラットフォームから削除されました。
Open/update or push modal viewアクション
このアクションでは、ユーザーから構造化された方法で情報を収集する、リッチでインタラクティブかつ動的なモーダルダイアログを作成できます。ブロックを使用してモーダルビューを作成できます。 
モーダルアクションタイプをOpen、Update、またはPushに設定することで、新しいモーダルビューを開いたり、既存のビューを更新したり、既存のビューの上に新しいビューをプッシュしたりできます。 
文字タイプの制限
モーダルビューを開く/更新またはプッシュアクションでは、モーダル送信のコマンド入力値としてCamelCase文字またはカンマ区切りパラメーターはサポートされていません。これらの値を定義するにはJSONを使用します。例: {"account_id": "12345"}。ただし、JSON内ではCamelCaseパラメーターがサポートされています。例: {"AccountID": "12345"}。コマンド入力値では、JSON配列およびオブジェクトをパラメーターとして渡すこともサポートされています。モーダルビューの詳細を確認します。
ユーザー入力を待機
ユーザー入力を待機がYesの場合、レシピジョブはユーザーが入力してモーダルを閉じるまで一時停止します。これにより、1つのレシピ内でWorkbotとユーザーのインタラクションの複数ステップを指定でき、ロジックを効率化し、レシピ数を削減し、不要で不自然なボットコマンドを回避できます。ユーザー入力は常に同じレシピで処理することをお勧めします。
ダイアログの入力フィールドで定義されたすべてのパラメーターは、Parametersの下で後続のアクションからアクセスできます。また、Notify on CloseがYesの場合、出力でModal Canceledフィールドが使用可能になるため、キャンセルを有効にして処理できます。それ以外の場合、ジョブは停止するだけです。
TriggerIDとViewID
Slackでは、モーダルにトリガーIDが表示されている必要があります。 Slackは、ユーザーが次のコンポーネントを操作するときに、Workatoが自動的に使用するトリガーIDを生成します:
- ボタン
- メニュー
- オーバーフロー
- 選択メニュー
- 日付ピッカー
- ラジオボタン
- ショートカット
- メッセージアクション
- スラッシュコマンド
- モーダルビュー送信
ユーザーがテキストコマンドを入力した直後にモーダルを開くアクションが実行される場合、トリガーIDはまだ存在しません。このようなレシピジョブは失敗します。 Workatoでは、モーダルを表示する前のステップとして、前述のリストにあるUI要素のいずれかを使用することをお勧めします。
モーダルビューを更新するには、更新するビューのビューIDを指定します。このビューIDは、New commandトリガーデータツリーのModalsの下にあります。
モーダルビューを更新するためのView ID(New commandトリガー内にあります)
既存のビューの上にモーダルビューをプッシュするには、既存のビューが生成するトリガーIDを使用します。
モーダルビューをプッシュするためのトリガーID(New commandトリガー内にあります)
モーダルビューを更新するタイミング
通常、ボットコマンドは、自身が存在するアクティブなビュー(ビューID)を更新します。
アクティブビューでの変更
一方、モーダル送信では通常、ルートビュー(Root View ID)または前のビュー(Previous View ID)を更新します。これらのビューは、New commandトリガーデータツリーのModalsの下で見つけることができます。
New commandトリガー内にあるRoot View IDとPrevious View ID
WARNING
ビューが送信されると、デフォルトで閉じます。ビュー送信への応答としてビューを更新する場合は、正しいビューIDを使用してください。
モーダルビューをプッシュするタイミング
通常、ボットコマンドは、自身が存在するアクティブなビュー(View ID)の上にビューをプッシュします。 View IDは、New commandトリガーデータツリーのModalsの下で見つけることができます。
アクティブビューでの変更
New commandトリガー内にあるRoot View IDとPrevious View ID
WARNING
ビューが送信されると、デフォルトで閉じます。アクティブなビューの上にのみモーダルビューをプッシュするよう注意してください。
Open/update or push modal viewアクション入力
次の表は、モーダルを使用する場合の設定について説明しています。
| 入力 | 説明 | ||
|---|---|---|---|
| モーダルアクションタイプ(必須) | Modal action typeをそれぞれopen、update、またはpushに設定することで、新しいモーダルビューを開いたり、既存のビューを更新したり、既存のビューの上に新しいビューをプッシュしたりできます。これは、Custom valueに切り替えることで動的に設定できます。アクションでView IDが不要な場合、View IDは無視されます。例として、モーダルビューを開く場合やプッシュする場合があります。 | ||
| トリガーID(任意) | モーダルビューは、インタラクティブコンポーネント(ボタンやメニューなど)、モーダル送信、メッセージアクション、ショートカット、スラッシュコマンドによってのみ開くことができます。ユーザーがこれらの機能を操作すると、システムがトリガーIDを生成します。 Workatoはモーダルを表示するためにトリガーIDを自動的に選択します。既存のモーダルの上に新しいモーダルをプッシュする場合にも、トリガーIDが必要です。 | ||
| View ID(任意) | 既存のモーダルを更新するには、更新するビューのビューIDを指定します。このフィールドは、モーダルビューを開くまたはプッシュする場合には無視されます。 | ||
| 表示 | モーダルのタイトル | モーダルビューのタイトル。最大24文字のみ。 | |
| ブロック | 積み重ねたり並べ替えたりできるブロックの配列。 | ||
| モーダルを送信 | ユーザー入力を待機 | ユーザーが入力してダイアログを閉じるまでジョブを一時停止するか、別のコマンドを実行するか | |
| 送信ボタンのラベル | 送信ボタンのラベル。最大24文字のみ。 | ||
| 閉じるボタンのラベル | 閉じるボタンのラベル。最大24文字のみ。 | ||
| 閉じる時にクリア | 閉じるボタンをクリックすると、モーダル内のすべてのビューがクリアされ、モーダルが閉じます。デフォルトはfalseです。 | ||
| 閉じる時に通知 | キャンセルイベントを処理するにはYesに設定します。 Wait for user inputがYesの場合、ユーザーがCloseをクリックするとジョブ実行が続行され、アクション出力でModal canceledフィールドが使用可能になります。それ以外の場合、システムはview_closedイベントをNew eventトリガーに送信します。デフォルトはNoです。 | ||
| 送信コマンド(非推奨) | ユーザーがモーダル送信を行ったときに呼び出すコマンド。 Wait for user inputがNoの場合にのみ有効です。 | ||
| コマンド入力値(非推奨) | ユーザーがモーダルを送信するとき、コンテキストのためにパラメーター(ユーザーID、商談IDなど)を後続のレシピに渡します。 これらのパラメーターは後続のレシピのNew commandトリガーで定義し、受信できるようにします。上流と下流の両方のレシピで、パラメーター名が一致している必要があります。 パラメーターは、カンマ区切りの名前と値のペア(name: John Smith, user_id: AB12345)、またはJSON {"opportunity_id": "OPP1234567"}として渡すことができます。 JSONでは、配列またはオブジェクトのパラメーターを追加できます。 パラメーター名とデータ型が上流側と一致していることを確認することが重要です。たとえば、(上流レシピでレンダリングされる)モーダルのビューで opportunity_idを単一行入力として使用する場合は、下流レシピのNew commandでopportunity_idを文字列パラメーターとして指定してください。 Wait for user inputがNoの場合にのみ有効です。 | ||
| 詳細設定 | プライベートメタデータ | 上級ユーザー向け。機密データを渡すために使用します。このフィールドは暗号化され、ユーザーには非表示になります。最大長は3000文字。 | |
| Callback ID | 上級ユーザー向け。ダウンストリームレシピでビュー送信イベントを参照するために使用します。最大長は255文字。 | ||
| ハッシュ | モーダルの更新時に必要に応じて使用できる一意の値。指定するとハッシュが検証され、最新のビューのみが更新されます。これにより、更新が非同期に行われる場合に正しいビューが更新されることが保証されます。このフィールドは、モーダルビューを開くまたはプッシュする場合には無視されます。 | ||
アプリホームビューを公開
アプリホームは、ユーザーがボットとやり取りするための優れた方法です。ボットメッセージ、スラッシュコマンド、またはショートカットに依存する代わりに、ユーザーがボットとやり取りするためのリッチなアプリホームサーフェスを提供できます。
ApprovalsBotのアプリホーム
アプリホームビューを公開アクションを使用すると、ブロックを使用してEnterpriseボットのアプリホームビューを公開できます。
New eventトリガー(app_home_openedイベント)と組み合わせたアプリホームビューを公開
このアクションは通常、app_home_openedイベントをリッスンするように設定されたNew eventトリガーと一緒に使用されます。 
app_home_openedイベントの例
アプリホームビューはボットのアプリホームにアクセスするユーザーごとに固有であるため、公開時にはユーザーIDフィールドが必要です。ユーザーに限定された情報を含むビューを公開することで、この点を活用できます。たとえば、ユーザーだけが承認権限を持つ承認を表示します。
特定のユーザーにのみ限定されたデータを表示し、挨拶するアプリホーム
ボットのアプリホームをユーザーに表示するには、次の手順を完了します:
Slackアプリ設定を開きます。
Features > App Home > Show Tabsに移動します。
Home Tabトグルを有効にします。

また、SlackアプリがEvent Subscriptionsでapp_home_openedイベントを購読していることを確認します。これにより、ユーザーがアプリホームを開いたことをボットが検出し、それに応じてアプリホームコンテンツを更新できます。

ブロックIDでブロックを更新
このアクションでは、ビュー全体を再作成することなく、任意のサーフェス(メッセージ、アプリホーム、モーダル)のビューから特定のブロックを更新、置換、または削除できます。複数のブロックを一度に更新、置換、または削除できます。単一のブロックを複数のブロックに置換することもできます。
TIP
メッセージの投稿、アプリホームの公開、モーダルの起動時にブロックIDを指定することは任意です。ただし、将来特定のブロックを更新する必要がある場合は、それらにブロックIDを付与します。
ブロックを更新するには、
元のブロックが含まれるサーフェスを指定します。現在、メッセージ、アプリホーム、モーダルのサーフェスがサポートされています。
元のメッセージまたはビューのJSONを渡します。
メッセージの場合、New commandトリガーの出力の元のメッセージJSONデータピル、またはメッセージを投稿/コマンド応答を投稿アクションの出力のメッセージJSONデータピルを渡します。
アプリホームの場合、New commandトリガーの出力(Modals & App homeの下)のビューJSONデータピル、またはNew eventトリガーのapp_home_openedイベントを渡します。
モーダルの場合、New commandトリガーの出力(Modals & App homeの下)のビューJSONデータピル、またはモーダルビューを開く/更新またはプッシュアクションのビューJSONデータピルを渡します。
更新するブロックを1つ以上追加します。
更新/削除する各ブロックのブロックIDを指定します。
ブロックを削除しますか?削除する場合は、Yesに設定します。それ以外の場合、デフォルトはNoです。
置換ブロックを定義します。
最終更新日: