グルージェントフローからkintoneへレコードを追加してみた
こんにちは、エンジニアのYuito Hayashiです。
皆さんは、グルージェントフロー(Gluegent Flow)と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)
