新規事業を支える基幹システムをkintoneやkintone連携サービスで作ってます

トラストバンク 新規事業本部 パブリテック事業部でプロダクトマネージャーしてます たけだ @taketakekaho と申します。
この記事は[トラストバンクAdvent Calender 2021](https://qiita.com/advent-calendar/2021/trustbank)の記事です。

## はじめに
パブリテック事業部では、自治体専用ビジネスチャット「[Logoチャット](https://publitech.fun/service_logochat)」、行政手続きデジタル化ツール「[Logoフォーム](https://publitech.fun/service_logoform)」を開発・運営を行っており、私はプロダクトチームのリードをしています。
新規事業の立ち上げからもうすぐ3年。事業やサービスの企画・開発しつつ色々経験させてもらっています。
その中でも事業を支えてくれているkintoneで基幹システムを作ってる話をしようと思います。

## パブリテックで使っているkintone関連サービス

- [フォームブリッジ](https://fb.kintoneapp.com/)　プレミアムプラン（Webフォーム） 標準価格1.4万円/月
- [プリントクリエイター](https://pc.kintoneapp.com/)　プレミアム（PDF帳票作成）　標準価格1.4万円/月
- [kMailer](https://km.kintoneapp.com/)　プレミアム（メール連携）　標準価格2.4万円/月
- [kViewer](https://kv.kintoneapp.com/)　プレミアム（Webページ作成）　標準価格1.5万円/月
- [krewData](https://krew.grapecity.com/products/krewdata.htm)　スケジュール実行プラン3個まで（アプリ間のデータ集計）　標準価格1.1万円/月
- [gusuku Customine](https://customine.gusuku.io/)　年額1000（ノーコードでカスタマイズ）　標準価格10万円/月

結構贅沢に使ってると思われるかもしれませんが。これを自前で作る、あるいは手動で頑張ることと比べたら絶対安いと判断してます。

kintone関連サービスではないけどつないで使ってるものとしては以下があります。

- Slack（通知先）
- integromat（iPaaS）
- AWS（LambdaとかEC2とか。Customineだけでは解決できない場合にプログラム書いてカスタマイズ）



## パブリテックで作ったkintoneアプリ
記事書くにあたり事業部で使ってるアプリ数を数えてみたら今事業部で動いて使っていて使っているアプリに絞っても100アプリ以上あった‥そのうち自分で作ったアプリだけでも78個！！頑張った私笑
1年前くらいにアプリ全部の相関図作ろうとしたことがあり途中で挫折したやつを思い出した。。作れないわけだ…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/fbafe78f-f51d-b8a8-6643-89e8e2dc4d82.png)

すべては書ききれませんが。

- 契約情報管理
- 見積管理
- 取引先管理
- 取引先アクションログ
- 予算実績管理
- 会計処理管理
- 契約書などの文書管理
- 提供サービスの利用状況管理
- 購買管理
- 在庫管理
- KPI管理

などなど、事業の基幹と言えるシステムをkintoneで作っています。
基幹システムを作ろうとして作ったわけではないですが。
事業に必要と思うものを作っていたらいつのまにかkintoneが基幹システム化してた感じです。
事業の運用が安定したら別のサービスに載せ替える可能性もありますが今の所元気に活躍しています。

## 活用例
### Webフォーム
外部からデータを受け付ける時にはフォームブリッジを使っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/a12bb530-0f21-3812-0302-d7919188b6cc.png)
kMailer連携で自社ドメインからのメール自動送信、kViewer連携でkintoneに登録されたデータをWebページで閲覧して編集ボタンで編集する、プリントクリエイター連携でフォーム回答時に帳票出力するなどなど関連サービスと連携して極力判断以外は自動化しています。

### 帳票出力
見積書、発注書、注文請書、報告書、点検報告書、申請書、申込受付書、契約書への押印、などなどkintoneの中にあるデータを使ってPDFを生成するお仕事は全部プリントクリエイターにお任せしています。
ワークフローまわして承認されたら押印してkMailerでメール提出、とか、フォームブリッジのフォームで回答送信したら送信完了画面で確認書PDFをダウンロード可にする、とか複数のkintone関連サービスを連携することもできてほぼ自動化。
人間は判断と内容確認するだけという本来の業務に専念できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/d78d264e-f6d5-4a8d-b8e0-5d7a56db5042.png)
帳票レイアウト作成するのも慣れたら30分～1時間程度でできます。

### Slack通知
kintoneにはレコード追加や更新をトリガにして実行できるwebhook実行機能があるので、iPaaSサービスであるIntegromatのwebhookを発行してそれをkintoneから叩き、Slackのチャンネルに必要な情報を投稿しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/579a9ba1-4dff-5768-b364-39a4a3ab8435.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/981a2b78-06a5-d250-5b2d-92a8d30401a6.png)
集計した情報を通知する時にはgusukuCustomineやkrewDataで集計してから通知したりしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/e9d0e2b8-377e-30ae-965e-b11f68b49316.png)
Integromatはちょっとクセはありますが慣れたらこのくらいの通知設定は30分あればできるようになります。
kintoneやSlack以外にもたくさんパーツがあるので触ってて楽しいです。

### メール連携
kintoneの中にあるデータをメール本文に挿入したり、ファイル添付して個別や一斉メール送信する際によく使います。メールアドレス入力誤りや添付ファイル誤りなど誤操作のリスク軽減になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/d43e0736-1e63-1e97-af7f-5fec8b78162d.png)
また、問合せフォームへのメール回答を送信したらkintoneのステータスフィールドを完了に変更する、という自動化もできるので作業漏れ防止でも役立っています。
この設定は30分もかからずできます。

### 集計作業
複数のアプリに散らばっている情報を集計して報告書やダッシュボード表示するなどでkrewDataを使っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/96e8b389-fb53-faeb-05d6-ecac7018defc.png)

何気に手動でこれやろうとすると手間ですしこの集計作業をEXCELの関数組んでやると誤ってデータ消したりするリスクもあるので極力データには触らず自動で集計してくれて報告書PDFはプリントクリエイターに任せられるので一気通貫してkintoneからデータを出さずに作業ができて安全です。

### Webページでkintoneアカウントを保有しない人に情報共有
kintoneのデータを使ってWebページを作ることができるkViwerではパスワード設定して外部の人に作業状況を共有したり
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/8e28035c-01b5-82e5-8b95-bd74b0ee6308.png)
kintone内で管理しているファイルをダウンロードできるページにして即席や期間限定で公開したり様々な使い方をしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/bbd36bd2-5c28-1000-19cb-fe8d8d50c06c.png)

### kintone標準機能にできないことはCustomineでカスタマイズ
「こういうのできないですか？」とkintone標準でできないことはほぼCustomineでなんとかなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178016/b8bdbe52-99ed-54fe-9426-c2f233b38c03.png)
ノーコードと言ってもアルゴリズムを理解しないとフル活用できない所が奥が深くて使っててたのしい所。

- ワークフローまわして承認ステータスになった時だけボタンを表示させ、押印済の帳票出力ができるようにする
- 誕生日からパブリテック従業員の平均年齢を毎月計算
- レコード内の注文テーブル数と利用月フィールドの月数分とオプションプランの数分だけ請求テーブルを追加して「サービス名_プラン名_〇〇」をフィールドに挿入する

などなどたくさんの細かいカスタマイズを行っています。

## まとめ：kintoneをフル活用するコツや意識していること
まだkintoneを触り始めて3年ではありますが。私なりに工夫していることやわかったことを記載します。
どなたかのお役に立てたら幸いです。

- ルックアップフィールドに入力させる値はユニークな値にする（CSV一括登録する日は絶対そのうちやってくる）
- ルックアップフィールドに入力させる値も別フィールド作って自動挿入する値にする
- kintoneアプリ作成はデータ設計が9割
- 無駄にカスタマイズはしすぎない。極力kintone標準機能でできることを主軸に設計する
- 気軽に相談できる相談窓口を作る（弊社ではSlackチャンネル）
- kintone仲間を「自然に」増やす
- 最初からkintoneありきじゃなくていい。納得してないなら最初はEXCELでもスプレッドシートでいい
- 通知は欲しい時にほしいものだけ
- kintoneにも限界がある。時にはスパッと諦めて別の方法にする（例：N対N構造のデータ連携はkinotneには無理）
- ゼロから作り直すことの勇気を持つ
- コンサルやサポートをうまく使う（私は3年前にジョイゾーさんの[システム39](https://www.joyzo.co.jp/service/system39/)を利用しましたが作ってもらうのではなくZoomで画面共有しつつ設計の仕方とか相談しながら自分で手を動かして作った経験がとても活かされてる気がします）

## おわりに
[JAWSUG運営](https://jawsug-bgnr.connpass.com/)をしているため普段は個人活動としてのAWS関連のアウトプットが多かった中でチョイス事業部の @Tocyuki さんがQiitaの[トラストバンクOrganizations](https://qiita.com/organizations/trustbank)を立ち上げて投稿お誘い頂いたおかげで業務内容や開発しているサービスの名前を出してのアウトプットする機会ができました。ありがたい！
普段の業務の中でもkintone関係は片手間で作業してきたのですが、こうやって記事を書きながら振り返ることで頑張ったな、とか意識してなかったことが見えてきたり、さらに実現したいことや改善したい点が次々に出てきたので継続してアウトプットしつつ事業に活かしたいと思います。

パブリテックでもSRE、インフラ、サポートエンジニア、開発者、プロジェクトマネージャー、全ポジションで大募集中です！新規事業部として新規サービスを企画開発しつつ、既存サービス拡大のグロースハックを行う面白いフェーズかと思います。カジュアル面談もしていますのでお気軽にお声がけください！

https://www.wantedly.com/projects/620873

https://www.wantedly.com/projects/419522