クリエイターズネットワーク フリーナンス engineering

2つの決裁書承認システムとSlackを連携させて効率化した話

クリエイターズネットワーク フリーナンス engineering

こんにちは! GMO ペパボのグループ会社である GMO クリエイターズネットワークのよしだです。

今回は、社内で使われている 2 つの決裁書承認システムと Slack を連携させて効率化した話をします。

以前の状態

フリーナンスでは、ユーザー様が登録した請求書の審査など、サービス運営業務に利用する管理画面が存在します。 サービス運営業務の中でも、管理画面へのアカウント追加といった上長の承認を必要とするものがあり、管理画面上で承認を行います。

また、サービス運営以外の決裁は X-point1という承認システムを導入していました。

問題点

以前の状態では下記の問題点がありました。

アカウントの二重管理

承認を扱うシステムが 2 つ存在することにより、それぞれのシステムにログインして承認する必要があります。

承認者の二重管理

承認を扱うシステムが 2 つ存在することにより、承認フローもそれぞれ管理する必要があります。 承認者の異動の際には、それぞれのシステムで反映する必要があります。

承認作業時間

また、管理画面では一件ずつの決裁書作成や決裁書承認しかできず、承認件数が増えてくると承認に時間がかかっていました。

現在の状態

現在の状態をフロー図にまとめました。 現在のフロー

申請者は決裁書を提出する人です。 以後は、フローの流れを説明していきます。

決裁書作成 ~ 決裁書提出

フリーナンス管理画面から、 X-point の API を実行し、承認を取りたい内容の決裁書を下書き書類として作成します。

下書き書類作成後は、新しいタブで X-point の決裁書編集画面を開き、申請者は内容の確認と提出を行います。

承認依頼 Webhook ~ 承認依頼の送信

決裁書提出時に X-point からフリーナンスへ承認依頼が送信されます。フリーナンスは、現在の X-point の承認フローから承認者を判断し、承認者毎の専用 Slack チャンネルに承認依頼を送信します。

承認操作 ~ 承認実施

承認依頼で送信された Slack は下記となります。 承認依頼

「承認」ボタンを押下することで、フリーナンス側の承認操作が実行されます。 承認操作では、承認をした Slack ユーザーから X-point ユーザーを判断し、 X-point の承認 API を実行します。

「却下」ボタン却下の場合、決議書は却下として、フリーナンスから X-point へ API を実行します。

承認完了 Webhook

承認操作が実行された際は、Webhook のステータスで承認フローが完了しているか判断できます。 承認フローが完了している場合、後続の処理を実施します。 承認フローがまだ残っている場合には、次の承認者の専用 Slack チャンネルへ承認依頼を送信します。

改善された点

以前の状態で挙げてた問題点は、2 つの決裁書承認システムと Slack を連携することで改善されました。

アカウントの二重管理

決裁書承認は X-point の責務とすることで、承認者は X-point だけ確認すればよくなりました。

承認者の二重管理

承認フローも X-point の責務とすることで、承認者の異動の際には、X-point のみ反映すればよくなりました。

承認作業時間

Slack 上での一覧表示から決裁書承認ができ、承認件数が増えた場合にも時間がかかりにくくなりました。

考慮した点

連携の仲介役をフリーナンスの管理ユーザーに担わせました。

  • X-point API を利用するために、フリーナンスの管理ユーザーと X-point ユーザーの紐づけ(X-point トークン保持)
  • Slack から承認操作をするために、フリーナンスの管理ユーザーと Slack ユーザーの紐づけ(Slack ユーザー ID 保持)

Slack から X-point 上の決裁書を操作する際に、フリーナンスを経由することで「Slack ユーザー ID → フリーナンス管理ユーザー ID → X-point トークン」と X-point へのアクセスが可能になります。

最後に

承認フローを X-point の責務にすることで、承認者の変更に強いと述べました。 では、承認フローの階層が増えた場合、どうなるのでしょうか。

次回は、決裁書承認フローの階層が増えた話をします。

GMO クリエイターズネットワークでは、プロダクト開発職種の採用をおこなっています!

フリーナンスでは今、プロダクト開発組織を立ち上げていこうとしている最中です。

ソフトウェアエンジニアとして面白い部分は、フロントエンド〜バックエンド〜インフラを横断的に触る開発スタイルで開発している点です。 Go のコードを書いたり、Terraform を書いたりしながら開発を進めていることが多いです。

現在は Go や React を中心としたシステムへのリアーキテクチャを検討しています。 バックエンドアーキテクチャの設計やフレームワークの選定、検証とやれることは非常に多いです。

そんな技術課題の解消やユーザに価値を提供出来る仕組みづくりを私達と一緒に進めていってくださる方々を募集中です!以下の職種を積極採用しています!

また、カジュアル面談も大歓迎ですのでお気軽に申し込んでいただけると嬉しいです!

  1. https://www.atled.jp/xpoint_cloud/