Gluegent Blog

Gluegent Blog

グルージェントフローからkintoneへレコードを追加してみた

  • グルージェントフロー

こんにちは、エンジニアのYuito Hayashiです。

皆さんは、グルージェントフロー(Gluegent Flow)とkintoneは双方向のデータ連携に対応していることを知っていますか?
今回は、kintoneで「社員名簿アプリ」、グルージェントフローで「社員情報登録モデル」を作成して、グルージェントフローでの承認時にkintoneへレコードを自動追加する連携を行ってみようと思います。

グルージェントフローからkintoneへレコードを追加してみた

kintoneで社員名簿アプリを作成する

まずは、kintoneで社員名簿アプリを作成してみようと思います。
kintoneポータルのアプリエリアにある「+」ボタンをクリックすると、kintoneアプリストア画面に移動します。
kintoneアプリストア画面の「はじめから作成」からアプリの作成が行えます。

フィールドの設定

アプリの設定画面が表示されたら、左側にあるフィールドを右側にドラッグアンドドロップすることでフィールドを配置することができます。
フィールドの右上にある歯車マークからはフィールドの設定が行えます。
今回のアプリでは、フィールドは以下のように設定しました。

フィールド名 フィールド フィールドコード 備考
社員番号 文字列(1行) 社員番号 「必須項目にする」「値の重複を禁止する」にチェック
氏名 文字列(1行) 氏名
フリガナ 文字列(1行) フリガナ
所属部署 ドロップダウン 所属部署 項目と順番には「営業部」「開発部」「総務部」を設定
メールアドレス リンク メールアドレス 入力値の種類は「メールアドレス」に設定
入社日 日付 入社日

APIトークンの作成

グルージェントフローからkintoneへレコードを登録するためにはAPIトークンが必要になります。
[アプリの設定] > [設定タブ] > [APIトークン] の「生成する」ボタンからAPIトークンが作成できます。
アクセス権には「レコードの追加」を付与します。
APIトークンは連携に必要になるのでコピーしておきましょう。

アプリID及びサブドメインの確認

連携する際に必要になるアプリIDとサブドメインの情報は、アプリ画面のURLから確認できます。
「https://(サブドメイン).cybozu.com/k/(アプリID)/」 
このURLの(サブドメイン)の部分が自社のサブドメイン、末尾の(アプリID)の数字がアプリIDとなります。

グルージェントフローで社員情報登録申請モデルを作成する

次は、グルージェントフローで社員情報登録申請モデルを作成していきます。
[モデル一覧] > [新規作成] からモデルを作成できます。

入力フォームの設定

[入力フォーム] > [+ボタン] から入力フォームを追加できます。
今回のモデルでは、以下の7つの入力フォームを追加しました。

名前 タイプ 備考
社員番号 単行テキスト
氏名 単行テキスト
フリガナ 単行テキスト
所属部署 リスト 選択肢設定で「営業部」「開発部」「総務部」を設定
メールアドレス 単行テキスト
入社日 日付
入社日フォーマット カスタムラベル フォーマットを修正するスクリプトを設定

グルージェントフローの日付フォーマットは「YYYY/MM/DD」ですが、kintoneの日付フォーマットは「YYYY-MM-DD」となっています。
そのため、入社日はカスタムラベルを用いてフォーマットを修正する必要があります。
以下のスクリプトから修正が可能です。

var date = ${入社日};
var formattedDate = date.replaceAll('/', '-');
return formattedDate;

入力チェック(バリデーション)の設定

kintoneのリンクフィールド(メールアドレス)は、指定した形式と異なっているとエラーが起きます。
エラーを未然に防ぐために、グルージェントフロー側でメールアドレスのバリデーションを行います。
[入力チェック] > [+ボタン] > [カスタムバリデーション] からバリデーションを追加することができます。
以下のスクリプトからメールアドレスのバリデーションができます。

var mail = ${メールアドレス};
var mailPattern = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
if (!mail || !mailPattern.test(mail)) {
  return false;
}
return true;

外部システム実行自動処理の設定

kintoneへのレコード登録には、外部システム実行自動処理を使用します。
[経路] > [レコード登録したい経路] > [自動処理設定] から自動処理の追加を行います。
[+ボタン] > [その他サービス] > [外部システム実行] から外部システム実行自動処理の追加が行えます。
以下は今回設定した外部システム実行の入力内容です。

項目 入力内容
自動処理の名前 レコード追加
URL https://(サブドメイン).cybozu.com/k/v1/record.json
HTTPメソッド POST
コンテンツの種類 application/json
リクエスト {
  "app": (アプリID),
  "record": {
    "社員番号": {
      "value": "${社員番号}"
    },
    "氏名": {
      "value": "${氏名}"
    },
    "フリガナ": {
      "value": "${フリガナ}"
    },
    "所属部署": {
      "value": "${所属部署}"
    },
    "メールアドレス": {
      "value": "${メールアドレス}"
    },
    "入社日": {
      "value": "${入社日フォーマット}"
    }
  }
}
HTTPヘッダー ヘッダー名:X-Cybozu-API-Token
値:作成したAPIトークン
レスポンス形式 JSON

実行結果

実際にグルージェントフローから申請を行い、最終経路まで進めてみました。
外部システム実行が正常に動作したかは、設定画面の自動処理結果から確認することができます。 

kintoneアプリを見てみると、無事にレコードが登録されていることが確認できます。

さいごに

今回は、グルージェントフローからkintoneへレコードを追加する方法を紹介しました。
この連携機能を活用すれば、ワークフローの承認と同時にkintoneのデータが更新されるので、手作業による転記ミスや手間をゼロにすることができます。(機能詳細はこちら
ぜひ、この連携機能を活用して、社内業務の改善に繋げてみてください!

最後まで読んでいただきありがとうございました!
(Yuito Hayashi)