🤖

Slack New Platform で業務アプリを実装して感じた推し7選!

2022/12/24に公開

この記事は、Slack New Platform(以下SlackNP)について、その特徴や実際にアプリを実装してみて感じた個人的な推しをまとめたものです。
記事執筆時点ではまだβ版であり今後実装が異なってくる可能性がありますのでその点はご了承ください。

この記事は 2022年の Slack Advent Calendar の12月24日の記事になります。メリークリスマス!

Slack New Platformとは

Slack上で動作するアプリケーションの実行環境です。
従来、アプリを実装する場合、別途実行環境として、AWSやGCP、HerokuあるいはGlitchといった環境が必要でしたが、SlackNPはこの部分をマネージドに提供してくれます。
アプリを運用する上で、登場するサービスは少ないほどメンテナビリティは高まるため、アプリ提供者としてはメリットが大きいと思います。
一方で結合度が高まることで、機能面で柔軟さが欠ける可能性もありますが、そこはかなり意識したアーキテクチャとなっているようです。

最終的にはSlackNPに展開されている各モジュールを、ノンエンジニアでもGUIで組み合わせてワークフローを組み立てられるような、そんなロードマップが描かれているようです。
詳しいことは https://slack.com/intl/ja-jp/blog/productivity/efficiency-workflow-builder に記載されてます。

実装したアプリ

今回、各従業員からSlackアプリを経由してある特定のデータを登録してもらう簡単なアプリを実装してみました。
主な要件としては

  • 登録していない従業員(Slackユーザー)に対してフォローしたい
  • 従業員ごとに登録メニューを動的に変更したい
  • 入力されたデータは外部(スプレッドシート)に連携させたい

なお、SlackNPでの具体的な実装方法については、この記事では触れていませんので、公式ドキュメントなどをご参照ください。

推し.1 URLから起動できる

個人的にSlackNPで一番気に入っているのはURLからアプリを起動できる機能です。
従来のSlackワークフローは特定チャンネルでしか実行できないといった縛りがあったり、どこでも実行できるスラッシュコマンドもありますがリテラシーによっては抵抗感があったりと課題を感じていました。
今回の要件である未登録者へのフォローでは、対象者に対してDMでURLを送付するだけで実現できます。
受け取った従業員はURLをクリックするだけで登録処理が行えるという、理想的なユーザー体験になりました。

推し.2 データストア(データベース)が使える

Slackアプリに限らず、業務アプリはデータとUXが全てです。
ちょっとした業務アプリを実現するには必要十分なデータタイプとクエリが備わっているため、今回の要件である利用者に応じた動的メニュー変更も簡単に実現できました。

推し.3 Block Kitも使える

今回実装したアプリではスムーズな入力ができることに特にこだわり抜きました。
その過程で、SlackNPで標準的に提供されているフォーム(Schema.slack.functions.OpenForm)では機能的に十分ではないことがわかりました。
しかし、以前からあるBlock KitもSlackNPで利用できることがわかり、非常に柔軟なUIと制御を組み込むことができました。

推し.4 外部連携ができる

最近のアプリは、アプリ単体で完結せずにそこから何かしら外部のサービスと連動させることが一般的だと思います。
SlackNPでは対象となるサービスのドメインをあらかじめ記載しておくことで外部のWebAPIを呼び出すことができます。

推し.5 実装例が豊富

ベータ版ということで、気になるのが世の中のナレッジですが、ある程度やりたいことは https://api.slack.com/future/intro に記載されている tutorialリポジトリを参照すれば解消できました。
そして、今回のアドベントカレンダーでも実装例が続々公開されているので、業務アプリで必要なことは概ねカバーされていて安心できます。

推し.6 ローカルで検証できる

SlackNPの実装はローカルでCLIを使用して行いますが、テンプレートにテストコードが組み込まれていたり、ローカルで検証できるように考慮されていたりと、開発者体験が高い点も推せますね。

今後への期待.1 Python対応

私はこれまでのSlackアプリはPythonで組んでいることが多いため、今後SlackNPへの移行・一元化を考えると、ぜひとも対応を期待したいところです。

まとめ

以上、SlackNPでアプリを実装してみて感じた個人的推しのご紹介でした。
終わってみると推しは6つで、1つは今後への期待となりましたが、いつの日か対応され7つの推しになってくれることを期待しています。

SlackNPはノーコード・ローコードツールに比べると当然手軽さはありませんが、その分きめ細かく柔軟に複雑な要件にも対応できます。
特に来年には既存のワークフローとの連携が予定されているので、今後の動向に注目したいところです。

参考

公式ドキュメント:https://api.slack.com/future

Discussion