こんにちは。マネーフォワード 関西開発拠点 村上です。
みなさん、Slack Workflow Builder 使ってますか? 左下からポチ―――って開始出来て便利ですよね。
ワークフロービルダーが新登場 : Slack で簡単にタスクを合理化
> 2019年10月15日 リリース
Slack Formで入力してもらった値って外部システムに送信したいですよね? 例えば、フィードバック管理システムや、バグトラッカー、タスク管理ツールとか。
しかしデフォルトではSlack Workflow Builderで外部送信できるものは多くありません。 自分達でツールを作ることもできますが、もう少し汎用的に使えるといいのに!!!!と悩んで2.5年経ちました。
そろそろ我々はFormの値を自由に手に入れる方法を、手に入れてもいいのでは???? なんと、Zapierで神機能を見つけたことで実現することが出来たので今回筆を取りました。
公式Docがみつかってないのでどなたか見つけたら教えて下さい。またはいつの間にか動かなくなるかもしれません。 作り方は最後に掲載していますので、お時間ない方はスクロ――――ルしてください。
これなに?
Slack Workflow の Form の値を、 外部システムにいい感じに連携する方法!!
モチベーション
Slack Workflow Builderを使って、Formを作ってその後外部システムにデータを飛ばしたい。Formの内容は個別のパラメーターとして。
いままでの問題
Slack Workflow Builderはデフォルトでは外部送信は自由にできない。Formの入力値を一つのMessageとして扱って外部システムに飛ばすことは、Zapier経由で出来たが、フィールド毎には引き継げなかった。 Formの値を個別に外部システムに飛ばすには、Bot開発するしかないのかな??と諦めていた。
ご紹介する解決策のメリット
Slack + Zapier でSlackのメッセージを部分的に切り取ることできます! SlackのFormの値を個別の値としてZapierで扱うことができます! =外部システムに送信することができます。
手段
Slack Workflow Builderで、Slack Messageに後述のようにパラメーターを明記した記法で投稿する。
Zapierでそのメッセージを受信する ( Slack の New Message Posted to Channel in Slack Triggerを使用しました )とZapierでは個別のパラメーターとしてメッセージが扱えます。 ※ 今まではメッセージ全体しか扱えませんでした。
例えば後続のシステムに FromUserと、Messageを分離して投稿できます。 例えばAsanaのアサインをSlackWorkflowで指定する。みたいな事もできるかも??
投稿フォーマット
Slackのメッセージに以下のフォーマットで書いた部分がParseされます。
key(value)
↑の様にチャネルに投稿すると、Zapierでは↓の様にパラメーター化されます
Key: Value
今まで、Slackメッセージをパース(文字を読み取って解析すること)は少し大変だったのですがこれで大分楽になります😄
後続にフィールド毎の値を送ることができます!!
作り方
Slack Form
そして、邪魔にならないPrivateChannel ( メッセージ保存期間 3日とかでOK) にkey(value)
のフォーマットで投稿する
※ 読みにくい記法で投稿するので、私はPrivateChannel(PublicでもOK)を作って、メッセージ保存期間を短くして投稿しています。
Zapier
外部システム
補足
メッセージ内部に )
があると、そこで切り取られちゃいます 😭
マネーフォワードでは、エンジニアを募集しています。 ご応募お待ちしています。
【サイトのご案内】 ■マネーフォワード採用サイト ■Wantedly ■福岡開発拠点 ■京都開発拠点
【プロダクトのご紹介】 ■お金の見える化サービス 『マネーフォワード ME』 iPhone,iPad Android
■ビジネス向けバックオフィス向け業務効率化ソリューション 『マネーフォワード クラウド』
■だれでも貯まって増える お金の体質改善サービス 『マネーフォワード おかねせんせい』