Slackにメッセージ送信
この記事では、SendSlackMessageアクションでSlackにメッセージを送信する方法を説明します。
「SendSlackMessage」Slackにメッセージを投稿する
Slackへのメッセージ送信には、SendSlackMessageを使います。
「チャンネル名」のピッカーからは、パブリックチャンネルとアプリを追加したプライベートチャンネル(※)が選択できます。
別のワークフロー編集者もSendSlackMessageアクション作成時に同チャンネルが表示できるため、ご注意ください。
※Slackの設定によっては表示されない場合があります。この場合は、チャンネル名を直接入力してください。
メッセージは、コネクション連携でインストールした専用アプリから送信されます。
※送信したいチャンネルごとにアプリを追加する必要があります。(設定方法は「設定例」にて後述)
メッセージにはワークフロー起動トリガーをつけることもでき、Slack上で業務全体の流れをコントロールすることも可能です。
(Q&Aの「5. 送信メッセージにワークフロー実行トリガーを設置したい」にて説明)
設定時のQ&A
2つの方法をご紹介します。
①Textアクションで本文を作成する(推奨)
Textアクションで文章を作成して、
アウトプットをSendSlackMessageアクションの「本文(body)」に指定します。
Textアクションは入力された文章の改行表現を保持する(Enterを押したところで改行される)ため、
通常のメールエディタと同じ感覚で文章を作成できます。
②SendSlackMessageアクションの「本文(body)」で本文を作成する
SendSlackMessageアクションの「本文(body)」で改行を表現する場合、
${“\n”}(改行コード)を使う必要があります。
段落の表現のため、改行して1行空ける時にも、
改行コードが1つ必要になる点にご注意ください。
SlackAPIの仕様に準じるため通常のメンションとは表記方法が異なります。
それぞれの表記は下記の様になります。
slack上の表記 | AUTORO上の表記 |
---|---|
<@channel> | <!channel> |
<@here> | <!here> |
<@ユーザー名> | <@メンバーID> |
<@グループ(salesなど)> | <!subteam^メンバーグループID> |
メンバーIDの取得方法
メンバーIDは以下の手順でコピーすることができます。
- メンションするユーザーのアイコンを押し、プロフィールを表示します。
- 一番右にある「…(その他)」のボタンを押します。
- メニュー内から「メンバーIDをコピー」をクリックします。
ユーザーグループIDの取得方法
ユーザーグループIDは、ブラウザ版Slackから取得する必要があります。
- ブラウザ版Slackにログインします。
- 実際にグループメンションが使われている投稿を見つけます。
- メンションをクリックをして表示されるユーザーグループページのURL末尾に、ユーザーグループIDが記載されています。
メンバーIDを使ってDM送付が可能です。
メンバーIDの取得方法は「2. メンション付きでメッセージを送りたい」を参照してください。
DMを送りたいメンバーのIDを、チャンネル名に「@メンバーID」の形式で入力します。
詳細設定の「添付ファイル」欄で指定ができます。
詳細設定はアクションカードの「∨」をクリックして開きます。
深緑色のFileアウトプット、Imageアウトプットほか、AUTOROに読み込まれているファイルが指定できます。
SendSlackMessageの詳細設定で、送信メッセージにワークフローの実行トリガーを設置できます。
以下3つのパラメータを設定します。
ボタン | 実行トリガーの作成部分です。 |
ボタンの代わりにセレクトを送信する | 実行トリガーの見た目をプルダウン形式に変更します。 |
返信メッセージを受け取る | 起動先のワークフローへテキストを渡すための入力フィールドを表示します。 |
ボタン
ワークフロー実行トリガーを作成する部分です。
「起動するワークフロー」を選択すると、起動対象のワークフロー中のStoreValueされていない変数に渡す値を設定できます。
挙動としては、AddToQueue(別のワークフローを起動)などと同じになります。
同じワークフローを起動するボタンを複数作っておき、渡す値に応じて処理を変えるといった使い方もできます。
ボタンの代わりにセレクトを送信する
オンにすると、Slackメッセージ上で実行トリガーをプルダウンから選択する形式に変更できます。
ボタン数が多い時や誤動作防止に使います。
返信メッセージを受け取る
オンにすると、起動先のワークフローに任意のテキストを渡すための入力フォームを表示できます。
起動先のワークフローでは、${response_message}という変数で入力テキストを受け取ります。
上の画像は、承認を押すと${approval}に「承認」を渡し、${response_message}にコメントを渡します。
Slackのメッセージを修飾する書式設定は、それぞれ以下の記法で設定可能です。SendSlackMessageアクションの本文欄に直接入力すると表記崩れの原因になるため、「1.改行を含むテキストを送りたい」同様にTextアクションで本文を作成する方法を推奨いたします。
太字 | テキストの前後にアスタリスク2つ( もしくはアンダーバー2つ( | **太字にしたいテキスト** |
斜体 | テキストの前後にアスタリスク1つ(* )もしくはアンダーバー1つ( _ ) | *太字にしたいテキスト* _太字にしたいテキスト_ |
ハイパーリンク※ | ※別途「7.ハイパーリンクを送信したい」のメニューをご覧ください。 | |
コード | テキストの前後にバッククォート(` ) | `テキスト` |
箇条書き | 各項目の先頭にアスタリスクと半角スペース(* ) | * 項目1 * 項目2 |
引用 | テキストの先頭に半角大なり記号(> ) | >テキスト |
打ち消し線 | テキストの前後に半角チルダ(~ ) | ~テキスト~ |
コードブロック | テキストの前後にバッククォート3つ(``` )、テキストは続けずに改行が必要 | “` テキスト “` |
例)一部を太字に設定してメッセージを送信する
文字を太字にするには、任意の箇所をアスタリスク2つ(**)で囲みます。
ワークフローの設定例
例えばワークフロー実行完了時に、対象サイトのスクリーンショットを添付して、自分をメンションして完了通知を送る場合、下記手順にてワークフローを設定します。
(スクリーンショット撮影までの説明は割愛します。)
SlackアプリをSlack側でチャンネルに追加しておきます。
※コネクション作成がお済みでない場合、Slackアプリがインストールされていません。こちらを参考にSlackとの連携をお願いします。
- 対象チャンネルを開き、左上の対象チャンネル名をクリックします。
- 「インテグレーション」タブに移動し、「アプリを追加する」をクリックします。
- 「AUTORO」の「追加」をクリックします。
- もう一度インテグレーションタブを開いた時に、App欄にAUTOROが表示されていればOKです。
Textアクションを設定します。
- Textアクションで通知文を作成します。
自分のメンバーIDをメンションするようにしておきます。
SendSlackMessageメッセージを設定します。
- 「プロバイダーID」に対象のワークスペースを指定します。
「プロバイダーを選ぶ」をクリックすると作成済みコネクションから簡単に選択ができます。 - 「チャンネル名」に対象チャンネルを指定します。
「チャネルを選ぶ」から簡単に選ぶことができます。 - 「メッセージ内容」にTextアクションのアウトプットを指定します。
- 詳細設定を開き、「添付ファイル」にTakeScreenshotのアウトプットを指定します。
# ブラウザを開く +open_browser_1: action>: OpenBrowser url: 'https://support.autoro.io/' lang: 'ja-JP' headless: true windowSize: '1280 x 720' # スクリーンショットを撮る +take_screenshot_1: action>: TakeScreenshot browser: +open_browser_1 full_page: false type: png # テキストを作成 +text_1: action>: Text text: "<@xxxxxxxx>\nワークフローが実行完了しました。\n\nサイトの状態を念のためチェックしてください。" # Slackでメッセージを送信 +send_slack_message_1: action>: SendSlackMessage provider: slack_xxxx channel: '#稼働テスト' text: +text_1 file: +take_screenshot_1 send_select: false response_message: false meta: display: provider: type: chip label: 'Slack (テスト)' icon: slack