社労士事務所向け 顧問先・法定期限管理システム(kintone)
期限管理を、個人の記憶から事務所の仕組みへ。顧問先100社以上の年次手続きを一元管理。

Overview
プロジェクト概要
顧問先100社以上を抱える社会保険労務士事務所向けに、法定期限・手続案件・必要書類・担当者の進捗・顧問先への連絡を、kintone上で一元管理する業務システムを構築しました。Pythonの日次スキャンサービスが毎朝、期限ルールと当日の日付を突き合わせ、算定基礎届・労働保険年度更新・36協定更新・助成金申請などの年次手続きの案件化から、資料依頼・リマインドまでを自動で進めます。
導入前は、担当者ごとのExcelや個人カレンダーで期限を管理しており、事務所全体の状況を横断的に把握できませんでした。年次の案件は前年のファイルを複製して手作業で作っていました。管理していたのは法定期限のみで、資料の依頼や回収といった内部作業の進捗が見えず、提出期限の直前に作業が集中しがちでした。当社は、要件定義から本番リリース後の運用支援までを担当しました。
※ お客様名は記載していません。掲載している画面とデータは、説明用に再構成したイメージです。
- 分類
- 士業/社会保険労務士向けの業務システム(kintone/Python)
- 対象
- 顧問先100社以上の年次手続き
- 主な手続
- 算定基礎届 / 労働保険年度更新 / 36協定更新 / 助成金申請
- 連絡チャネル
- 所内はChatwork、顧問先はLINE
- 業種
- 士業(社会保険労務士事務所)
- ロール
- 要件定義 / 業務フロー設計 / kintoneアプリ設計 / Pythonバックエンド開発 / 通知設計 / リリース・運用支援
- 技術
- kintone / Python / kintone REST API / Chatwork API / LINE Messaging API / Webhook

01 — 導入前の課題
期限は管理している。でも、事務所全体では見えていない
法定期限は、担当者ごとのExcelや個人カレンダーで管理されていました。年次の手続きは毎年ほぼ同じ時期に同じ顧問先で発生するのに、案件は前年のファイルを複製して手作業で作っていたため、作成漏れのリスクがありました。休暇や退職のときには、どの顧問先の何が進行中かの引き継ぎも困難でした。顧問先への資料依頼や催促も、担当者が個別に連絡していました。
- 担当者ごとのExcel・個人カレンダーで期限を管理
- 年次案件は前年ファイルを複製して手作業で作成
- 資料依頼・回収の遅れに気づけない
- 休暇・退職時の引き継ぎが困難

02 — 日次スキャンと内部期限
今日やるべき案件が、朝から分かる
毎朝、Pythonの日次スキャンが、顧問中の全顧問先と手続テンプレートの組み合わせを走査し、案件を生成するタイミングに達していて未作成のものだけを手続案件として登録します。法定期限から逆算して、資料依頼・書類回収・担当確認・上長レビューの4段階の内部期限を自動で設定します。算定基礎届の初期設定では、それぞれ法定期限の20・12・7・4営業日前です。担当者は毎朝、kintoneの一覧で、次の内部期限の順に並んだ担当案件を確認します。管理者向けのChatworkルームには、生成件数・通知件数・エラーのサマリが毎朝届きます。
- 未作成の年次案件を、毎朝自動で生成
- 法定期限から逆算した4段階の内部期限
- 土日・祝日・事務所の休業日を除いた営業日で計算
- 次の内部期限の順に並ぶ担当案件の一覧
開発中の課題と解決
案件キーで、案件の二重作成を防ぐ
- 課題
- 年次の案件は日次スキャンが毎朝自動で作るため、スキャンが再実行されると、同じ案件が二重にできるおそれがありました。
- 解決
- 手続案件に「顧問先コード+手続+年度」の案件キーを持たせ、重複禁止にしました。スキャンが再実行されても、案件は二重にできません。

03 — 書類チェックリストと顧問先への連絡
催促するのは、まだ届いていない書類だけ
案件の生成時に、手続テンプレートの必要書類が案件のチェックリストへ展開されます。手続案件の詳細画面では、法定期限と各段階の内部期限、書類ごとの受領状況を1画面で確認できます。資料依頼の期限に達すると、LINE連携済みの顧問先へ、手続と提出期限、必要な資料の一覧を自動で送ります。受領日を入力した書類は依頼の対象から外れ、リマインドには未受領の書類だけが載ります。顧問先からLINEで返信があれば、担当者に転送して通知されます。
- 必要書類をチェックリストとして自動展開
- 顧問先へLINEで資料依頼を自動送信
- リマインドには未受領の書類だけを記載
- 顧問先からの返信を担当者へ転送
開発中の課題と解決
通知キーで、同じ通知の二重送信を防ぐ
- 課題
- 毎朝のスキャンや再実行のたびに通知を送ると、同じ顧問先に同じ依頼が何度も届くおそれがあります。
- 解決
- 送信前に「案件ID+段階+通知日」の通知キーを通知履歴アプリで照合し、既に送信済みなら送らない設計にしました。送信に失敗した通知は「失敗」として残り、次回のスキャンで再送の対象になります。

04 — 進捗の見える化と引き継ぎ
誰の案件が、どこで止まっているかまで見える
案件のステータスは、kintoneのプロセス管理で「未着手 → 資料依頼済 → 書類回収中 → 回収完了 → 上長レビュー → 提出待ち → 完了」と遷移します。管理者は事務所全体の案件を横断して確認でき、どの案件がどこで止まっているかが一覧で分かります。担当者の不在や退職のときは、顧問先マスタの主担当を付け替えるだけで、未完了案件の担当と通知先が、案件と履歴ごと切り替わります。副担当にも期限超過の通知が届くため、休暇中の取りこぼしを防げます。
- プロセス管理による7段階のステータス
- 事務所全体の進捗を横断して確認
- 主担当の付け替えで、案件と履歴ごと引き継ぎ
- 副担当にも期限超過を通知
開発中の課題と解決
手続ごとの違いを、手続テンプレートに持たせる
- 課題
- 手続によって、期限の決まり方、案件を作るタイミング、内部期限の段階、必要書類が異なります。手続ごとに処理を作ると、新しい手続を追加するたびに開発が必要になります。
- 解決
- 期限ルールの種別(毎年固定日/顧問先の日付起算/個別入力)、案件生成のタイミング、内部期限の段階、必要書類を手続テンプレートに持たせました。新しい手続も、テンプレートを追加するだけで同じ仕組みに乗せられます。
Scope
担当範囲
当社は、要件定義から本番リリース後の運用支援までを担当しました。
| 工程 | 担当 |
|---|---|
| 要件定義 | 担当者ごとのExcel・カレンダーを確認し、手続の種類・期限の決まり方・必要書類・連絡方法を棚卸し。内部期限の段階とステータスを定義 |
| 業務フロー設計 | 案件の生成から提出までを、システムの自動処理と人の確認作業に分け、誰がどこで確認・承認するかを定義 |
| kintoneアプリ設計 | 顧問先マスタ・手続テンプレート・手続案件・通知履歴の4アプリと、プロセス管理・アクセス権を構築 |
| Pythonバックエンド開発 | 日次スキャン、営業日計算、Chatwork・LINEへの通知サービス、Webhookの受信を実装 |
| 通知設計 | 所内はChatwork、顧問先はLINE。通知キーで送信済みの通知は送らない |
| リリース・運用支援 | データ移行と所内のみの試行運用で文面とタイミングを調整し、本番で顧問先へのLINE通知を有効化 |
Architecture
使用技術・システム構成
- kintone
- データの正本。顧問先マスタ・手続テンプレート・手続案件・通知履歴の4アプリと、プロセス管理・アクセス権
- Python
- 日次スキャン、営業日計算、Chatwork・LINEへの通知サービス、Webhookの受信
- kintone REST API
- 連携用のアカウントで、手続案件の追加・編集と通知履歴の追加を行う
- Chatwork API
- 担当者・管理者への通知と、管理者向けルームへの毎朝のサマリ
- LINE Messaging API
- LINE公式アカウントから顧問先への資料依頼と、未受領書類のリマインド
- Webhook
- kintone Webhook・LINE Webhookで、ステータス変更や顧問先からの返信を即時に通知
- 営業日計算
- 土日・祝日・事務所の休業日を除外して内部期限を算出。年末に翌年の休日カレンダーを登録
主な技術の選定理由
データの正本はkintone、判定と通知はPython
事務所の方が日々使う画面と権限管理はkintoneに任せ、期限の計算や通知の重複防止のような処理は、Pythonで確実に行うためです。
所内はChatwork、顧問先はLINE
通知の宛先と中身を分けるためです。顧問先への通知は、所内のみの試行運用で文面とタイミングを調整してから有効にしました。
Process
開発の進め方
- 1
PHASE 1 ヒアリング・業務整理:担当者ごとのExcel・カレンダーを確認し、手続の種類・期限の決まり方・必要書類・連絡方法を棚卸ししました。
- 2
PHASE 2 要件定義・フロー設計:内部期限の段階、ステータス、誰がどこで確認・承認するかを業務フローとして定義しました。
- 3
PHASE 3 kintoneアプリ設計・構築:4アプリと、プロセス管理・アクセス権を構築しました。
- 4
PHASE 4 Pythonバックエンド開発:日次スキャン、営業日計算、Chatwork・LINEへの通知サービス、Webhook受信を実装しました。
- 5
PHASE 5 データ移行・試行運用:既存の顧問先情報と進行中の案件を取り込み、通知は所内のみに限定して文面とタイミングを調整しました。
- 6
PHASE 6 本番リリース・運用支援:顧問先へのLINE通知を有効化し、テンプレート追加や設定値の見直しを運用しながら支援しました。
Quality & Security
品質・セキュリティ・運用
権限
所長・管理者は全件の閲覧・編集と上長レビューの承認、担当者は担当する案件の編集、事務スタッフは書類チェックリストの受領入力、と役割ごとにkintoneのアクセス権を設定しました。
LINE未連携の顧問先
資料依頼は送信せず、担当者へのChatwork通知に「要連絡(LINE未連携)」と表示して、手動の対応に回します。
期限が個別に決まる手続
助成金申請など期限ルールを「個別入力」にした手続は、担当者が法定期限を入力した時点で内部期限が算出されます。
監視と再送
日次スキャンの生成件数・通知件数・エラーを毎朝サマリで投稿し、処理が失敗した場合は通知します。送信に失敗した通知は、次回のスキャンで再送します。
Results
成果
法定期限だけでなく、内部期限で早めに動ける仕組みにしたことで、提出期限の直前への対応の集中を防ぐ運用へ改善しています。新しい手続も、手続テンプレートを追加するだけで同じ仕組みに乗せられる構成です。
- 個人のExcelに分散していた期限情報をkintoneへ集約し、管理者が事務所全体の進捗を横断的に確認できるようになりました。
- 資料依頼から書類回収、担当者確認、上長レビューまでを段階的に管理し、どの案件がどこで止まっているかが一覧で分かるようになりました。
- 年次案件が日次スキャンで自動生成されるため、前年のファイルを複製して案件を作る手作業がなくなりました。
- 担当者を付け替えるだけで、案件と通知履歴ごと引き継げるため、休暇・退職時の引き継ぎが属人的な説明に頼らなくなりました。
FAQ
技術面のよくあるご質問
- Q. 同じ案件や同じ通知が、二重にできることはありませんか?
- 手続案件は「顧問先コード+手続+年度」の案件キーを重複禁止にしているため、スキャンが再実行されても二重にできません。通知は、送信前に「案件ID+段階+通知日」の通知キーを照合し、既に送信済みなら送りません。
- Q. 内部期限は、どのように決まりますか?
- 手続テンプレートに、段階名と「法定期限の何営業日前か」を登録しておきます。案件の作成時に、土日・祝日・事務所の休業日を除外した営業日で数えて、内部期限を算出します。
- Q. 顧問先がLINEを使っていない場合は?
- 資料依頼は送信せず、担当者へのChatwork通知に「要連絡(LINE未連携)」と表示して、手動の対応に回します。
Tech Stack
