Docly Child

Slackにメッセージ送信

3710 views

この記事では、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のメッセージでハイパーリンクを送信したい場合、以下の形式で記載することによりハイパーリンクを有効にすることができます。

[リンクをつけたいテキスト](ここにURL)

例)ハイパーリンクを含むメッセージを作成・送信する

上でご紹介した形式でハイパーリンクを設定したテキストを作成します。

なお実行ログではハイパーリンクとして表示されていませんので、ご注意ください。

 ワークフローの設定例

例えばワークフロー実行完了時に、対象サイトのスクリーンショットを添付して、自分をメンションして完了通知を送る場合、下記手順にてワークフローを設定します。
(スクリーンショット撮影までの説明は割愛します。)

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
slack スラック

このページは役に立ちましたか?