会計/人事労務freee APIとGoogleとチャットツールとkintoneを使った業務効率化/自動化の実践例

# はじめに
「Qiita夏祭り2020 オンライン」のfreeeテーマとして投稿しました。今までfreee APIを使って実現してきたことをまとめて書いていきます。
コーポレートエンジニアとして各部署の要望を聞きながら設計しているので、いち部署の中のちょっとした業務範囲を便利にするだけでなく、他部署との連携部分もありますので、少しでも参考になったらいいなと思います。
今回はコードは載せていません。APIを使ってどんなことを実際にしているかの共有です。コードについては、近いうちにまとめてGithubにでもまとめようと思います。

# 会社としての環境
- 当社の顧客や取引先は製造業や物流業が主で、紙取引が当たり前です。
- 日本の会社ですがエンジニアリンググループの大半は外国人ということもあり、日本ならではの経費精算を自分で行うことが困難/非常に時間が掛かる場合が多いです。
- ロボットなど実物を在庫として持つ業態のため、入荷→在庫→出荷というステータス管理が常に発生します。

# どのfreee APIを使っているか
#### 会計freee
- 振替伝票API
- 取引登録API
- 仕訳帳API
- 請求書API
- ファイルボックスAPI
- 勘定科目API
- 品目API
- 取引先API
- 部門API
- セグメントタグAPI
- メモタグAPI

#### 人事労務freee
- 勤怠API
- 従業員API
- 給与明細API

# どんなことをしているか
用意されたUIでしか操作が出来ない、専任者しか分からない、聞かないと情報が分からない、調べないと情報が分からないなどをなくすために自動化/効率化をしています。
他には、freeeと連携していない勤怠システムをどうに人事労務freeeとうまく使うかを実践しています。
![freee自動化イラスト.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/f9181725-9961-36d5-9892-af3c322d0915.jpeg)


# 具体的にどんなことが出来て、どう便利なのか
フローチャート図で表したうち、freee APIに関する部分の【人が作業すること】【その結果】について書いていきます。
①～⑨が会計freee API、⑩～⑫が人事労務freee APIです。
【SS】は【Google スプレッドシート】を指しています。<font color="Red">【GAS】</font><font color="Blue">【API】</font><font color="Green">【作業】</font><font color="#ffbf00">【JS】</font>とそれぞれ色を付けています。

### ①経費精算情報をもとに振替伝票登録
**前提**
従業員の時間を経費精算で浪費しないように、手慣れた人間が一括して経費精算を行っています。
経費入力は経理ではないパートタイムの方が担当しており、経費精算SSの各人シートに入力しています。
経費項目（タクシー、会議代など）を予め設定しておき、選択した経費項目に応じて勘定科目や各種タグがまとめて設定されるようになっています。

**フロー**
1. <font color="Blue">【API】</font>経費精算SSを開いたことをトリガーに、勘定科目や各種タグをfreee APIで取得しSSに書き込む。
2. <font color="Green">【作業】</font>経費精算SSには人別に経費精算表シートがあり、1で取得した情報をもとにプルダウンで会計タグを選択する。
3. <font color="Red">【GAS】</font>2の作業時に経費項目から入力候補をサジェストする。
4. <font color="Blue">【API】</font>すべての情報が選択できたら<一括取込>を実行して、人ごとにfreee APIで振替伝票登録を行う。

**結果**
- 最新の勘定科目と各種タグをプルダウンで選択できるので、手入力/入力ミス削減。
- SSで作業することでコピペ等、繰り返し作業が簡単にできる。
- 設定した勘定科目と各種タグ以外にも、一括取込時に社員番号で自動的に社員名の取引先タグが入るようにする等し固定動作を自動化。

100人以上いるので、手作業インポートでは回数的にインポートする作業だけですら大変ですし、最新の勘定科目や各種タグを毎回手で取得するのも面倒です。無理にシステム内で作業するよりもSSやExcelの方が良かったりします。

**フローチャート図**
![freee API flowchart_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/bb2f51da-1433-68ce-559d-179b4f7459e6.jpeg)

### ②発注納品情報をもとに支払請求書仕訳
**フロー**
1. <font color="Blue">【API】</font><タグ取得ボタン>を押して、勘定科目や各種タグをfreee APIで取得しkintoneに書き込む。
2. <font color="Green">【作業】</font>発注一覧アプリから、取引登録したいものにマークを付ける。
3. <font color="Green">【作業】</font>1で取得した情報をもとにプルダウンで会計タグを選択する。
4. <font color="Blue">【API】</font><一括取込>を実行して請求書ごとにfreee APIで取引登録を行う。

**結果**
- 購買部署が発注した情報をもとに作成するため、商品情報の手入力や金額の手入力がなく、簡単&ミス削減。
- 請求書が届く前に仕訳を作成することが出来て、前倒し作業が可能。（運用ルール決めが重要ですが…）
- freee取引登録なので、支払時はfreee支払一覧からFBデータを出力して総振処理ができる。対応している銀行であれば、freeeから直接振り込みの手続きも可能。

**フローチャート図**
![freee API flowchart_2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/07e6ab94-3313-f11d-bc78-20a747453431.jpeg)

### ③在庫システムの情報と発注情報を使って製品出荷仕訳を作成
**前提**
発注/入荷情報を購買担当が在庫システムに登録し、出荷担当が出荷情報を在庫システムに登録するプロセスになっています。
管理物品にはQRコードを貼付しており、そのQRコードを使って検索できるようになっているため、検索時のミス/検索の手間を削減しています。

**フロー**
1. <font color="Blue">【API】</font><タグ取得ボタン>を押して、勘定科目や各種タグをfreee APIで取得しkintoneに書き込む。
2. <font color="Green">【作業】</font>出荷アプリに登録された出荷情報から、振替伝票登録したいものにマークを付ける。
3. <font color="Green">【作業】</font>1で取得した情報をもとにプルダウンで会計タグを選択する。
4. <font color="Blue">【API】</font><一括取込>を実行して製品ごとにfreee APIで振替伝票登録を行う。

**結果**
- 在庫システムによる出荷情報と発注時の情報を連携させ処理をするので、発注時の情報をそのまま使えるため入力作業削減。
- 出荷情報と連携しているので、経理が出荷実態を把握するために現場から情報収集する工数を削減し、かつリアルタイムでの処理が可能になる。

**フローチャート図**
![freee API flowchart_3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/5d653e3c-44f4-b915-933b-706ea10d26f7.jpeg)

### ④クレジットカード明細仕訳のサジェスト&振替伝票登録
**フロー**
1. <font color="Blue">【API】</font>クレカSSを開いたことをトリガーに、勘定科目や各種タグをfreee APIで取得しSSに書き込む。
2. <font color="Blue">【API】</font>期間を指定して仕訳帳をAPIで取得しSSに書き込む。
3. <font color="Green">【作業】</font>クレカ明細をクレカSSに貼り付け、1で取得した情報をもとにプルダウンで会計タグを選択する。
4. <font color="Red">【GAS】</font>3の作業時に仕訳帳から入力候補をサジェストする。（クレカ明細摘要から勘定科目や各種タグ）
5. <font color="Blue">【API】</font><取込>を実行して製品ごとにfreee APIで振替伝票登録を行う。

**結果**
- オリジナルの勘定科目/各種タグサジェスト機能を用意することで自社に合わせた入力補助を行える。
- ETCやタクシーなど同じ処理をする場合にコピペで簡単にできる。
- 指定した明細摘要で直近10件選択した勘定科目/各種タグを表示させるなど、仕訳帳を検索するより使い勝手が良い。

**フローチャート図**
![freee API flowchart_4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/6f4e5e64-e814-1f86-1f3c-803b1edb9a51.jpeg)

### ⑤仕訳帳APIを使った月次推移表BS/PL/CR作成
**フロー**
1. <font color="Blue">【API】</font>仕訳帳APIで月次推移表SSに仕訳帳を書き込む。
2. <font color="Blue">【API】</font>勘定科目APIで月次推移表SSに勘定科目とカテゴリーを書き込む。
3. <font color="Red">【GAS】</font>BS/PL/CRそれぞれのシートに勘定科目カテゴリーと勘定科目を書き込み、仕訳帳からデータを取得し推移表形式にする。

**結果**
- 推移表APIはないが、勘定科目APIと仕訳帳APIを使うことで推移表が簡単に作成できる。
- 勘定科目を取得する際にカテゴリーを取得することで各カテゴリーごとの集計ができる。

**フローチャート図**
![freee API flowchart_5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/a931d919-e517-6e31-1c71-bef014444760.jpeg)

### ⑥商談情報を使って請求書作成&営業から経理への請求依頼自動化
**フロー**
1. <font color="Green">【作業】</font>営業が商談アプリで商談ステータスを請求依頼に変更する。
2. <font color="Blue">【API】</font>商談情報をベースにfreee APIで請求書を作成する。
3. <font color="#ffbf00">【JS】</font>freee請求書が作成されたことを経理に通知する。
4. <font color="Green">【作業】</font>請求書をfreeeで編集。

**結果**
- 営業が日常的に使用している商談アプリの情報を使うため、請求処理のために営業が追加で情報を入力する手間がない。
- 営業情報をそのまま使うため経理での手入力/ミスが削減でき、リアルタイムでの処理が可能になる。
- 請求依頼漏れを営業側でステータスとして確認することが出来る。

**フローチャート図**
![freee API flowchart_6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/4f42360c-fa74-fbf6-d642-3c460235015f.jpeg)

### ⑦毎日10時台に発行済請求書の一覧作成&入金/未入金一覧を営業にチャット通知&商談アプリに書き込む
**フロー**
1. <font color="Green">【作業】</font>freeeで入金消込を行う。
2. <font color="Blue">【API】</font>10時台タイムトリガーが発動して、請求書情報をfreee APIで取得する。
3. <font color="Red">【GAS】</font>2で取得した情報のうち、発行済請求書情報をを請求ステータスSSに書き込む。
4. <font color="Red">【GAS】</font>2で取得した情報から当日入金された情報と未入金情報を一覧化し、請求ステータスSSのURLを添えてチャットで営業に通知する。
5. <font color="#ffbf00">【JS】</font>2で取得した情報から入金/未入金状況を抽出し、商談アプリに書き込む。

**結果**
- 毎日の入金状況が送付されること、過去分もSSで見れることから、営業から経理への入金状況確認依頼が0になった。
- 発行された請求書の内容を営業が確認できるため、過去分の請求情報共有依頼が0になった。
- 商談アプリのステータスが自動で更新されるため手作業がなくなり、ステータス更新忘れやミスがなくなった。

**フローチャート図**
![freee API flowchart_7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/b59bd6da-7055-decb-c583-3fa2b8da4f12.jpeg)

### ⑧未承認仕訳数の通知
**フロー**
1. <font color="Blue">【API】</font>タイムトリガーが発動して、仕訳帳APIから期間指定で仕訳帳を取得、未承認仕訳数を取得する。
2. <font color="Red">【GAS】</font>1で取得した未承認仕訳数などをチャットで通知する。

**結果**
- 仕訳承認機能を利用しており、未承認仕訳数を通知することで承認者に都度知らせることで進捗等が確認できる。
- 直近3ヶ月の仕訳数と比較して、現在の月次決算進捗を簡易的に計算して通知することで、おおよその進捗状況がリアルタイムで分かる。

**フローチャート図**
![freee API flowchart_8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/b655d152-8376-8089-c103-cd2a22d35866.jpeg)

### ⑨未承認請求書数の通知
**フロー**
1. <font color="Blue">【API】</font>タイムトリガーが発動して、請求書APIから請求書を取得、未承認請求書数を取得する。
2. <font color="Red">【GAS】</font>1で取得した未承認請求書数をチャットで通知する。

**結果**
- 請求書承認機能を使用しており、決められた時間に未承認請求書数を通知することで承認忘れを防ぎ、申請者から承認者への無駄なコミュニケーションが削減できる。

**フローチャート図**
![freee API flowchart_9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/838864c7-1242-3cbb-8054-08a63ad797e2.jpeg)

### ⑩未処理振込申請数の通知
**フロー**
1. <font color="Blue">【API】</font>タイムトリガーが発動して、ファイルボックスAPIからファイルボックス内情報を取得、未解決コメント数を取得する。
2. <font color="Red">【GAS】</font>1で取得した未解決仕訳数をチャットで通知する。

**結果**
- 月末振込以外の振込処理にファイルボックスを使用しており、振込依頼を行ったことをファイルへの解決/未解決コメントで管理することで、承認忘れ、申請者から承認者への無駄なコミュニケーションが削減できる。

**フローチャート図**
![freee API flowchart_10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/bc7f27c7-df2d-0566-f375-28d4986d7fe5.jpeg)

### ⑪出退勤記録を人事労務freeeに書き込む
**前提**
出退勤記録をつけるという作業を従業員に行わせるのは時間の無駄になるので、フラッパーゲートを各階オフィス出入口に設置し、フラッパーゲートを通過することで出退勤時間を取得しています。
[フラッパーゲート](https://www.google.com/search?q=%E3%83%95%E3%83%A9%E3%83%83%E3%83%91%E3%83%BC%E3%82%B2%E3%83%BC%E3%83%88&rlz=1C1GCEA_enJP803JP803&source=lnms&tbm=isch&sa=X&ved=2ahUKEwixp5WhyMvqAhU9xosBHVczAV8Q_AUoAXoECA8QAw&biw=1422&bih=642)とは、駅の改札のような機械です。

**フロー**
1. <font color="Red">【GAS】</font>勤怠システム（フラッパーゲート）から勤怠集計表SSにデータを書き込む。
2. <font color="Blue">【API】</font>人事労務freeeから最新の従業員情報を取得し、勤怠集計表SSに書き込む。
3. <font color="Blue">【API】</font>勤怠集計表SSのデータを人別日別で人事労務freeeに書き込む。
4. <font color="Red">【GAS】</font>3と並行して会社独自の勤怠チェックを行い、結果を勤怠集計表SSに書き込む。

**結果**
- 人事労務freeeに取り込むときに、会社の就業規則に合わせた独自のチェック機能を持たせることで、労務での確認に役立つ。
- 裁量労働制の勤怠はインポートでは対応出来ないが、APIを使用することで対応が出来ている。
- インポートでは月次サマリーでしか勤怠情報を登録できないが、APIを使用することで日次単位で登録が可能。
- 登録された勤怠のうち、休暇と出勤が同居していたり休憩時間が少ないor多いものがSSに一覧化されることで見やすい。条件付き書式などでより見やすくなる。

**フローチャート図**
![freee API flowchart_11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/594cb193-9288-87ad-bdd6-91cf92c90650.jpeg)

### ⑫人事労務freeeに登録された勤怠情報を勤怠集計表SSに書き出す
**フロー**
1. <font color="Blue">【API】</font>人事労務freeeから勤怠集計表に人別日別で勤怠情報を書き出す。
2. <font color="Red">【GAS】</font>事前に設定した内容でチェックを行い、問題となる箇所があれば表示させる。
3. <font color="Green">【作業】</font>2で問題があれば勤怠集計表SS上で修正する。
4. <font color="Blue">【API】</font>3で修正した部分を人事労務freeeに書き込む。

**結果**
- 人事労務freee上で全員の勤怠状況を確認する場合、1人ずつ1日ずつ詳細を開かなければいけないが、勤怠集計表SSに書き出すことでまとめて確認することが可能。
- SSでの作業であるため独自のチェック機能を実装しやすく、労務でのチェック作業が楽になる。
- 出勤時間、退勤時間、休憩開始時間、休憩終了時間、休暇とそれぞれ個別に修正/反映できるため、修正作業が簡単にできる。

**フローチャート図**
![freee API flowchart_12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/c75a1eae-9363-79db-4565-2a05595c2b8f.jpeg)

### ⑬部門別人件費表SSの作成
**フロー**
1. <font color="Blue">【API】</font>人事労務freeeから部門別人件費表SSに指定した時点での、部門別所属者一覧と給与情報を書き込む。

**結果**
- 経理で行う人件費振替などに利用できる。

**フローチャート図**
![freee API flowchart_13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/73555f47-fc84-d81f-7dfb-7c4f498b5571.jpeg)

# さいごに
実際に現場で動いているものをまとめて記載しました。少しでも参考になっていれば嬉しいです。
freee APIを使っていろいろ作ってきましたが、1人で勝手に思い浮かんだものは少ないです。
こんなことができるよ～こんなものがあったらどう？とか他部署の人と世間話レベルで話すことからアイデアが生まれてきました。

最近はSSからkintoneに切り替え、全社に範囲を広げて開発しています。オリジナルERPを作っているので仕様決めからなにから大変ですが、パッケージソフトにはない快適さがユーザー部署にとって最高ですので価値はあります。
kintoneも落ち着いたらまた投稿します。

# フローチャートの全体図
各項目に載せたフローチャート図をまとめたものです。
![freee API flowchart.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257582/f079f6bd-cd8b-96b2-b2bb-9da6b934c9d6.jpeg)