こちらはクラスター Advent Calendar 2022(2ページ目)の5日目の記事です!
前日は @kurain さんの「和服で出社するようになって半年」でした。最近は社員数が多くなって誰がどこにいるか探すのも大変なんですが @kurain さんは和服のおかげで一瞬で見つかります(笑)
こんにちは、スワンマンです。クラスター株式会社でディレクターとかCSをしています。
ところで皆さん、今日も元気に草の絵文字を連打していますか?Slackで業務の合間に草な投稿を見つけては押しまくるの、息抜きにいいですよね。
そんなSlackですが、草を生やす機能以外にワークフローというちょっとした自動化ツールがあるのをご存じでしょうか。
フォームを作ったり、絵文字のリアクションに反応して動いたり、Webhookによって外から起動する…といったことがポチポチ押していくだけでできてしまう便利な機能です。
その中で、最初の「フォーム」についてはチャンネルに「ショートカット」という形で起動メニューが表示されるため、他のチームからSlack上で依頼を受ける際にちょうど良い機能です。
この「ショートカット」を置くチャンネルは通常1つしか設定できないのですが、ある方法を使うと複数チャンネルに設定できるため、今回はこれを紹介したいと思います。
ワークフローはSlackのメニューから「ツール -> ワークフロービルダー」と辿り、右上の作成ボタンを押すことで作成を開始できます。そこから「ショートカット」を選択してステップを追加してなんやかんやしたものがこちらです。
本題はここからで、まず下記のようにワークフローをファイルとしてダウンロードします。
ここでダウンロードした .slackworkflow
というファイルは中身はJSONで、下記のような構成になっています。
{
"source_id": "xxxxxxxxxxxxxxxxxx",
"version": "1",
"workflow": {
"name": "スワンマンワンマンライブ依頼窓口",
"blueprint": {
"version": "1",
"trigger": {
"type": "channel_action",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"config": {
"name": "スワンライブ依頼",
"channels": [
"XXXXXXXXX"
],
"callback_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "スワンライブ依頼"
}
},
"steps": [
{
"type": "dialog",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"config": {
"dialog_title": "スワンマンワンマンライブ依頼フォーム",
"results_user": {
"value": "XXXXXXXXX"
},
"dialog_elements": [
{
"name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "text",
"label": "開催日は?",
"subtype": "",
"optional": false,
"placeholder": ""
}
],
"dialog_submit_label": "",
"delivery_button_label": "フォームを開く",
"delivery_message_text": "こんにちは!まずこちらのフォームに入力してください。"
}
}
]
}
}
}
このJSONをよく見ると、ショートカットの配置チャンネルを指定する workflow.blueprint.trigger.config.channels
が配列になっています。つまり複数指定できるようになっているので、ここに対象となるチャンネルを複数入れてやることで目的を達成できるわけです。
なお、ここに記入するのは #general のようなチャンネル名ではなく CXXXXXXXX
のようなチャンネルIDになります。IDはチャンネル詳細ダイアログの一番下からコピーできたり、チャンネルのリンクをコピーして末尾から取るとか、いくつか方法があるのでググってみてください。
編集ができたらワークフロービルダーからインポートすることで複数のチャンネルにショートカットが表示されるようになると思います。
一度インポートすれば(ショートカットの設置場所以外は)ワークフロービルダーから自由に編集・適用ができるので、後から内容を変えたい時も複数チャンネルに対して一度に反映できて便利です。
(ショートカットを置くチャンネルを追加したい場合は再度同じように保存 -> インポートすればOK)
ということでSlackの小ネタでした。
明日は @yoan さんの「NixOSでhttpsプロトコルのgit認証情報を保存したい」です。楽しみですね。
それでは!