レコードの条件通知時に自動で新規レコードを作成

顧客管理で一定の条件を満たしたときに別アプリに新規レコード作成

顧客管理アプリとアフターのアプリを活用しております。
顧客管理アプリにてステータスが”契約”になったときに、
アフターのアプリにルックアップで要素を引き継いだうえで新規レコード作成したい

発生した問題やエラーメッセージを具体的に書きましょう

現状Kintone内のみであれば以下のJavascriptにて挙動確認完了済み

問題点として社外の販売協力会社にじぶんページ

というプラグインにてレコード更新してもらっております。
その際以下のJavascriptでは発火しませんでした。

外部からの保存ですとeditやsubmitが発火しないようです。

そこで着目したのが「レコードの条件通知」です。
こちらはじぶんページにて契約へのステータス変更したときにしっかり通知が来ますので同じ発火点でJavascriptを走らせることが出来ればいけるのでは?という仮説ですが発火点のコードが特定できずこちらのトピックに投稿させて頂きました。

その他別の方法でもよいのでアドバイス頂けますと幸いです。
よろしくお願いします。

実装中のJavascript

(function() {
    'use strict';

    // 顧客管理と進捗表のアプリIDを設定
    var APP_A_ID = 62; // 顧客管理のアプリID
    var APP_B_ID = 206; // 進捗表のアプリID

    // レコードの編集イベント
    kintone.events.on(['app.record.update','app.record.edit.change.ランク','app.record.edit.change.契約日'],
                       function(event) {
        // 「ランク」の値が「契」に変更され & 契約日が入力されている
        if (event.record['ランク'].value === '契' && event.record['契約日'].value > [] ) {
            // 必要なフィールドの値を取得
            var Property_Name = event.record['物件名'].value;
            var room_number = event.record['契約・申込号室'].value;

            // 新しいレコードのデータ
            var newRecord = {
                app: APP_B_ID,
                record: {
		                   '物件名': {
                        value: Property_Name
                    },
		                   '号室': {
                        value: room_number
                    },
                }
            };

            // 新しいレコードを進捗表に作成
            return kintone.api(kintone.api.url('/k/v1/record', true), 'POST', newRecord)
                .then(function(resp) {
                    console.log('レコードが正常に作成されました:', resp);
                    return event;
                })
                .catch(function(err) {
                    console.error('レコードの作成に失敗しました:', err);
                    return event;
                });
        }
        return event;
    });

})();
「いいね!」 1

じぶんページは恐らく別サイトになりますよね?
だとしたらフロントのJSを発火はできません。

もし自動的なトリガー組むとしたらkintoneのレコード更新監視するバックエンドのサーバー用意して、更新を監視させて…等になるかなと思います。

kintone側でjs使って任意で更新させるとしたら、一覧にでもボタンを1つ設置。押下時に更新されているレコードを取得して、進捗表アプリにかけていくような一括処理ボタンを設置するのもいいかもしれませんね。

「いいね!」 1

pomoさん
ご回答ありがとうございます。
やはりプラグインですとフロントは発火できないですよね。

ご指摘の通り最悪一括処理ボタンかと思います。

ちなみに勉強不足で申し訳ないですが、Kintoneの条件通知の仕組みは裏側でどのような処理がなされているのでしょうか?

「いいね!」 1

実際の流れはわかりませんが、kintoneバックで更新検知してバックから通知送ってると思います。なのでクライアント(フロント)で通知に対して感知はできないと思います。

ですので、上記のような一括処理ボタンがベターかなぁという。
その際に一度限りの更新であれば、元アプリに対して更新済みかどうか判断できるように明示的にチェックボックス等配置して同時に更新かけておくのもいいかもしれませんね。

「いいね!」 1

pomoさん
ご丁寧にありがとうございます。
そうですね。毎回全レコード対象だと処理負担が大きいので判別できるポイント必要ですね!

「いいね!」 2

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。