kintone では複数のアプリを連携させてデータを管理するケースが多くありますが、アプリ間のデータ同期はノーコードで実現するのが難しい課題です。
例えば「受注管理アプリ」でレコードを更新したら「在庫管理アプリ」の在庫数も自動的に減らしたい、「プロジェクト管理アプリ」のステータスが変わったら「タスク管理アプリ」の関連タスクも更新したい、といった要件はよくあります。
kintone の標準機能だけではこうした自動連携を実現することはできず、JavaScript カスタマイズを書くか、外部ツールを使う必要がありました。
当プラグインを使用することで、こうしたアプリ間のデータ連携をノーコードで設定できます。
プラグインが提供する機能
アプリ間の自動データ連携
kintone のレコードに対して以下の操作が行われたとき、設定に従って連携先アプリのレコードを自動的に更新します。
- レコードの作成時
- レコードの更新時(詳細画面・一覧画面のインライン編集)
これらのトリガーイベントは設定ごとに個別に選択できます。例えば「作成時のみ連携する」といった細かい制御が可能です。
4 種類のフィールドバインディング
連携先のフィールドに書き込む値のソースとして、以下の 4 種類から選択できます。
| タイプ | 説明 | 例 |
|---|---|---|
| フィールドコピー | 元アプリのフィールド値をそのままコピー | 顧客名 → 連携先の 取引先名 |
| 固定値 | 常に同じ値を設定 | "確認待ち" → 連携先の ステータス |
| 文字列結合 | 複数フィールドの値を組み合わせて1つの文字列にする | {{fieldCode:姓}} {{fieldCode:名}} → 田中 太郎 |
| 計算式 | 四則演算で計算した結果を設定 | {{fieldCode:単価}} * {{fieldCode:数量}} * 1.1 → 税込み合計 |
フィールドコピー時は、元フィールドと連携先フィールドの型が異なる場合でも自動的に型変換を行います。例えばテキストフィールドの値を数値フィールドへコピーする、といったことが可能です。
プロセス管理との連携
プロセス管理のアクション実行時に連携を行う場合、さらに細かい絞り込みが可能です。
- アクション名でフィルタリング: 特定のアクション(例: 「承認する」)のときのみ実行
- ステータス名でフィルタリング: 特定のステータス(例: 「承認済み」)に遷移したときのみ実行
これにより「承認されたときだけ請求書アプリにレコードを作成する」といった複雑なワークフロー連携が実現できます。
柔軟な実行条件の設定
連携を実行する条件をフィールドの値で細かく設定できます。
複数の条件を AND で組み合わせることも可能で、例えば「優先度が”高”、かつステータスが”対応中”のときのみ連携する」といった設定ができます。
条件を設定しない場合は、対象のトリガーイベントが発生するたびに無条件で連携が実行されます。
レコードが存在しない場合の自動作成
連携先アプリにキーフィールドがマッチするレコードが見つからない場合の挙動を選択できます。
「連携先にレコードが存在しない場合は作成する」オプションをオンにすると、連携先アプリに新しいレコードを自動的に作成します。これにより、元アプリで初めてレコードが作成されたときに連携先アプリのレコードも同時に作成させる、といった使い方が可能です。
関連レコードの削除
削除イベントをトリガーにした際、連携先の該当レコードも一緒に削除するオプションを提供しています。
「条件を満たすとき連携先の対象レコードを削除する」をオンにすると、キーフィールドがマッチするすべての連携先レコードが削除されます。
このオプションを有効にすると、連携先アプリのレコードが完全に削除されます。削除されたレコードを復元する方法はありません。設定前に動作を十分確認してください。
処理結果のダイアログ表示
設定で「更新結果をダイアログで表示する」をオンにすると、連携処理が完了した後に結果をダイアログで確認できます。
- ✓(緑): 正常に更新できた設定
- –(グレー): 実行条件を満たさずスキップされた設定
- ✗(赤): エラーが発生した設定
処理が複数の設定にまたがる場合も、それぞれの結果が分かりやすく表示されます。
プラグインが活きるシーン
受注・在庫・請求を自動で連携したい場面
受注アプリでレコードを作成したとき、在庫管理アプリの在庫数を自動で減算したり、請求管理アプリへ請求レコードを自動作成したりといった複合的な連携が1つのプラグインで実現できます。
ステータス変更を他アプリに反映したい場面
プロジェクト管理アプリのプロセスが「承認済み」になったとき、関連する複数のタスク管理アプリのレコードのステータスを一括で更新する、といった使い方に最適です。
マスタデータの変更を子アプリへ伝播したい場面
取引先マスタアプリで担当者が変更されたとき、その取引先に紐づく別アプリのレコードの担当者フィールドも自動更新するといった、マスタデータ管理の場面で活躍します。
データの正規化・変換が必要な場面
文字列結合や計算式を使うことで、連携元の複数フィールドを組み合わせた値を、連携先の1つのフィールドに設定することができます。手作業での転記ミスを防ぎつつ、データの整合性を保てます。
設定手順
1. 連携先アプリを選択する
「連携先アプリ」のドロップダウンから、更新対象のアプリを選択します。
ゲストスペース内のアプリとも連携できます。アプリを選択すると、プラグインが自動的にゲストスペースかどうかを判断します。
2. キーとなるフィールドを設定する
元アプリと連携先アプリを紐づけるためのキーフィールドを両方のアプリで選択します。
元アプリのキーフィールドの値と一致するレコードを連携先アプリから検索し、そのレコードを更新対象とします。
3. トリガーイベントを選択する
どのタイミングで連携を実行するかを選択します。
- レコード作成時: レコードが新規作成されたとき
- レコード更新時: レコードが編集・保存されたとき
4. フィールドバインディングを設定する
連携先のどのフィールドに、どのような値を書き込むかを1行ずつ設定します。
バインディングタイプを「フィールドコピー」「固定値」「文字列結合」「計算式」から選び、連携先フィールドと組み合わせて設定します。
5. 実行条件を設定する(任意)
特定の条件を満たすレコードのみ連携を実行したい場合は、実行条件を設定します。
複数の条件をすべて満たす場合のみ連携が実行されます(AND 結合)。
6. オプションを設定する
以下のオプションを必要に応じて設定します。
- 連携先にレコードが存在しない場合は作成する: キーフィールドがマッチするレコードが見つからない場合に自動作成します
- 条件を満たすとき連携先の対象レコードを削除する: 連携先のレコードを更新ではなく削除します
- 更新結果をダイアログで表示する: 処理完了後に結果を確認できるダイアログを表示します
7. 設定を保存して動作確認する
設定を保存した後、実際にレコードを操作して連携が正しく動作することを確認してください。
「更新結果をダイアログで表示する」をオンにしておくと、最初の動作確認がスムーズです。
安全な計算式エンジン
計算式バインディングで使用される計算エンジンは、eval や Function を使用しない独自の再帰降下パーサーで実装されています。
これにより、Content Security Policy(CSP)が有効な環境でも安全に動作し、任意のコードが実行されるセキュリティリスクもありません。
対応している演算: +(加算)、-(減算)、*(乗算)、/(除算)、()(括弧)、単項マイナス
// 式の例
{{fieldCode:単価}} * {{fieldCode:数量}} * 1.1
({{fieldCode:金額A}} + {{fieldCode:金額B}}) / 2
-{{fieldCode:調整額}} + {{fieldCode:合計}}
設定画面で計算式を入力すると、式が有効かどうかがリアルタイムで検証されます。無効な式は保存前に確認できます。
注意事項
キーフィールドとして「カテゴリー」「グループ」「関連レコード一覧」「テーブル」は使用できません。これらのフィールドタイプは kintone の仕様上、検索クエリの対象外となっているためです。
キーフィールドでマッチするレコードが連携先アプリに大量に存在する場合、処理に時間がかかることがあります。連携先の検索条件(dstQuery)を活用して、対象を絞り込むことをお勧めします。
お問い合わせ
プラグインの不具合や、機能追加のご要望などがあれば、画面上部のナビバーからお問い合わせください。
プラグインのソースコード
本プラグインはオープンソースです。 ソースコードは GitHub で公開されており、どなたでも自由に確認できます。
詳細な実装内容や構成に興味がある方は、ページトップの「ソースコードを確認する」ボタンからリポジトリにアクセスしてください。
よくある質問
-
複数のアプリへ同時に連携できますか?
はい。プラグインの設定を複数追加することで、1回のレコード操作で複数のアプリを同時に更新できます。
-
連携先にレコードが存在しない場合はどうなりますか?
デフォルトでは何も行いません。「連携先にレコードが存在しない場合は作成する」オプションをオンにすることで、自動的に新規レコードを作成します。
-
ゲストスペースのアプリとも連携できますか?
はい。連携先アプリの選択時に、ゲストスペース内のアプリも選択できます。プラグインが自動的にゲストスペースかどうかを判定し、適切なAPIを使用します。
-
プロセス管理の特定のアクションのみ連携できますか?
はい。トリガーイベントに「プロセス変更時」を選択した場合、対象とするアクション名や変更後のステータス名を個別に設定できます。空のままにするとすべてのアクション・ステータスが対象になります。
-
計算式ではどのような演算ができますか?
加算(+)、減算(-)、乗算(*)、除算(/)および括弧による演算順序の制御に対応しています。フィールドコードは「{{fieldCode:フィールドコード}}」の形式で式内に埋め込むことができます。
リリースノート
計算式バインディング(calc)の実装
文字列結合バインディング(concat)の実装
固定値バインディング(fixed)の実装
トリガーイベントの個別指定に対応
実行条件をフィールド条件で設定できるモダン形式に対応
更新結果をダイアログで表示する機能を追加
連携先にレコードが存在しない場合に作成するオプションを追加
初回リリース