1. SmartHR ガイド
  2. 機能解説

差分取得APIを使って、 SmartHRと人事システムのデータ連携をスムーズにする方法

公開日
目次

こんにちは、SmartHR プロダクトマーケティングマネージャーの島田です。

SmartHRをお使いの皆さまのなかでも、人事業務では、SmartHRだけでなく給与、勤怠、評価など、さまざまな領域の人事システムをご活用されていることと思います。

各システムに登録している従業員情報は日々更新されるため、それぞれのシステム間で最新の情報を正確に保つために、データ連携部分で苦労されている方も多いのではないでしょうか。

今回は、SmartHRとほかの人事システムを使い分ける際、個別開発でデータ連携を行う企業さまに向けに、「差分取得API」を活用して実現する、よりスムーズなデータ連携についてご紹介します。

SmartHRと人事システム間のデータ連携

SmartHRをお使いの企業さまでは、最新の従業員データが保管されているSmartHRから、給与計算や勤怠管理などの人事システムと「SmartHR」の従業員情報を連携しご利用頂いています。

参考:SmartHRと外部システム間でデータを連携する方法に関する解説動画

 ※リンク先はSmartHRへのログインが必要になります

とくに給与計算や勤怠管理のように常に最新の従業員情報が必要な人事システムでは、従業員情報を日次や週次などでデータ連携しているかと思います。しかし、連携するシステムや項目数、更新頻度が多い場合には手動で連携しきれない場合が多く、業務効率化するためにシステム間のデータ連携を自動化し、カスタマイズする「個別開発」に取り組むことが多くあります。

個別開発のイメージ

個別開発における課題解決に寄与する差分取得API

個別開発によるデータ連携は、アプリやシステムをまたいだデータの変換、出力、取り込みにおいて、連携するシステムや項目数、更新頻度が多い場合に、定期的に自動で実行できるため、効率的なデータ連携が可能です。

とくに、これまで個別開発が必要な企業さまは多くの従業員数を擁していたり、連携する項目数が多かったりするケースが多く、SmartHRのすべてのデータを抽出・連携する場合は必然的にデータ量も大量になり、連携先システムへのデータ取り込みにも膨大な時間がかかります。

連携先システムの観点では、そのインターフェースの仕組みにもよりますが、SmartHRの「更新があった差分データの項目のみ」を連携先システムに渡す要求が発生する場合があります。

そのため、中間データベースを構築して、従業員データのなかで変更のあった差分データのみを取り出す処理を加えると、データ連携にかかる時間やデータ量の効率化が進むものの、そのような連携開発は、開発期間や追加の開発費用がかかってしまう状況でした。

まとめると、個別開発には、下記のような課題がありました。

  • 個別開発にかかる要件定義・開発・テスト期間が発生するため、導入までのリードタイムが発生してしまう。
  • システム開発のベンダーへの発注による開発・保守によって、個別開発のための追加コストが膨らんでしまう。

これまでのSmartHR APIでは、現時点のデータのみを取得できる形でしたが、前述のご要望を受け、差分のあった従業員のみを取得できる「従業員の履歴の差分取得API」を新たに提供開始しました。

差分取得APIを利用することで、これまで中間データベースなどで対応していた、差分データのみを取り出すための連携開発が不要になるため、より短期間でデータ連携が可能になり、かつ開発負担が減ることで、開発費用の圧縮に繋がります

そこで今回は、差分取得APIの概要や、活用するための方法、ユースケースなどについてご紹介します。

差分取得APIでできること

差分取得APIは、以下の特徴があります。

  1. 指定の日時の間に操作されて、履歴情報に変更が発生した従業員を抽出できます。
  2. 従業員項目(カスタム項目を含む)を指定して、指定日時の間にその項目の履歴情報に変更が発生した従業員を絞り込んで抽出できます。
  3. 従業員項目(カスタム項目を含む)は複数指定できます。

以下の図をもとに具体的な例を紹介します。

この例では、12/1 20:00〜12/2 20:00の間に部署変更をした従業員と役職変更をした従業員、その他の変更が発生した従業員がいるものとします。

日次で外部システムに連携したい場合は、この例のように時刻を指定したバッチ処理とすることで日々の情報更新を外部システムへ受け渡しができるようになります。前月分の差分データをまとめて取得したい場合は、「11/1 00:00〜12/1 00:00」のように指定することも可能です。

①部署異動が発生した従業員のみを取得したい場合 

たとえば、「12/1 20:00〜12/2 20:00の間に部署異動があった従業員のみを取得したい」 ようなケースで差分取得APIを利用できます。

従業員項目の部署(”department”)を指定すると以下のように、従業員Aと従業員Bの2名分の変更前と変更後のデータを取得できます。適用開始日(”valid_from”)と適用終了日("valid_to")も取得できるため、最新の状態ではどの部署に所属しているのかの判別が可能です。

返却結果が[ ]と空になっているデータは、12/1 20:00〜12/2 20:00の間に役職変更やそのほかの更新は発生したが、”department”には差分がない従業員であることを示しています。

{
   "0560847c-52c8-4bd5-94de-b1d3e036340a": [
     {
      "id": "0560847c-52c8-4bd5-94de-b1d3e036340a",
      "department": "営業本部/東京支社",
      "valid_from": "2023-01-01",
      "valid_to": "2024-12-01"
     },
     {
      "id": "0560847c-52c8-4bd5-94de-b1d3e036340a",
      "department": "営業本部/大阪支社",
      "valid_from": "2024-12-01",
      "valid_to": "9999-12-31"
     }
  ],
  "1f77e2f2-fdda-4026-b819-99be1e542e7b": [
     {
      "id": "1f77e2f2-fdda-4026-b819-99be1e542e7b",
      "department": "プロダクト事業部/プロダクト企画部",
      "valid_from": "2024-01-25",
      "valid_to": "2024-12-01"
     },
     {
      "id": "1f77e2f2-fdda-4026-b819-99be1e542e7b",
      "department": "経営企画部",
      "valid_from": "2024-12-01",
      "valid_to": "9999-12-31"
     }
  ],
  "3a42212a-0146-4d53-ab45-f6a55c1ff9ff": [],
  "c9c05459-a525-4748-bda2-5b06e1e2f694": [],
  "ed908081-a0d6-4f02-a7ba-728950630289": [],
}

ただ、この取得データだけでは外部システムに連携するにあたってどの従業員か特定するのが難しい場合もあるかもしれません。そのときは、指定する従業員項目に社員番号や氏名を加えることで、以下のようなデータを取得できます。

{
   "0560847c-52c8-4bd5-94de-b1d3e036340a": [
     {
      "id": "0560847c-52c8-4bd5-94de-b1d3e036340a",
      "emp_code": "20",
      "last_name": "従業員",
      "first_name": "A",
      "department": "営業本部/東京支社",
      "valid_from": "2023-01-01",
      "valid_to": "2024-12-01"
     },
     {
      "id": "0560847c-52c8-4bd5-94de-b1d3e036340a",
      "emp_code": "20",
      "last_name": "従業員",
      "first_name": "A",
      "department": "営業本部/大阪支社",
      "valid_from": "2024-12-01",
      "valid_to": "9999-12-31"
     }
  ],
   "1f77e2f2-fdda-4026-b819-99be1e542e7b": [
     {
      "id": "1f77e2f2-fdda-4026-b819-99be1e542e7b",
      "emp_code": "88",
      "last_name": "従業員",
      "first_name": "B",
      "department": "プロダクト事業部/プロダクト企画部",
      "valid_from": "2024-01-25",
      "valid_to": "2024-12-01"
     },
     {
      "id": "1f77e2f2-fdda-4026-b819-99be1e542e7b",
      "emp_code": "88",
      "last_name": "従業員",
      "first_name": "B",
      "department": "経営企画部",
      "valid_from": "2024-12-01",
      "valid_to": "9999-12-31"
     }
  ],
  "3a42212a-0146-4d53-ab45-f6a55c1ff9ff": [],
  "c9c05459-a525-4748-bda2-5b06e1e2f694": [],
  "ed908081-a0d6-4f02-a7ba-728950630289": [],
}

②部署異動と役職変更が発生した従業員を取得したい場合 

上記の例に加えて、役職変更の発生した従業員も一緒に取得したい場合は、従業員項目の役職(”position”)も追加で指定することで従業員Cと従業員Dのデータも取得されます。

これらの例のように、カスタム項目を含む従業員項目の特定の項目に差分が発生した従業員を抽出したいときに、差分取得APIを利用することでSmartHRから非常に簡易にデータを取得でき、システム間の連携開発を効率化できます。

まとめ:差分取得APIでデータ連携をスムーズに

本記事を読み、貴社の給与計算・勤怠管理のような人事システムなどとSmartHRを連携して大量のデータ連携を行う場合や、個別開発によるデータ連携をご検討の際は、ぜひ差分取得APIを活用ください。APIの仕様詳細についてまとめた仕様書も用意しておりますので、少しでもご興味のある方はカスタマーサクセス担当までご連絡いただけますと幸いです

また、差分取得APIを利用した個別開発や連携開発を自社での対応が難しい場合は、他社システムとのデータ連携開発が可能な開発パートナーさまをご紹介しますので、まずはSmartHRのカスタマーサクセス担当までご相談ください。

人気の記事