kintoneで問い合わせフォームやアンケートなどを実施する際、非常によく利用されるトヨクモ株式会社のフォームブリッジという製品を、皆様ご存知でしょうか?
gusuku Customineでは、いままでこのフォームブリッジと連携する機能がなかったのですが、2021年1月にリリースされたJob RunnerにてWebhookをサポートしましたので、フォームブリッジとも連携が出来るようになりました。
この記事では、フォームブリッジと連携するWebhookカスタマイズの作成方法をご紹介します。
まずはじめにやること
Job RunnerでkintoneのWebhookのカスタマイズを作成する前に、まず「ジョブへのスロット割り当てについて」を実施する必要があります。
これは、利用中のアプリスロットをどの程度Job Runnerで利用できるようにするか、という設定になります。詳しくは Job Runnerを利用するとき、初めにすること : ジョブへのスロット割り当てについて をご確認ください。
(既に一度割り当ててある方は不要です)
カスタマイズの概要
やりたいこと : 応募は1回のみのアンケートフォームを簡単に作りたい
よくあるシチュエーションとして、何かの応募・申込やアンケートをひとり1回に制限したい、というケースがあるかと思います。
kintoneのフォーム設定で「値の重複を禁止する」をセットするという方法もあるかと思いますが、これではエラーが出てしまい今一つです。
そこで今回は「重複した申込は受け付けるが、後でそれがすぐ分かる(区別できる)ようにする」、というカスタマイズを作成してみます。
カスタマイズの流れ
作成するカスタマイズの全体の流れは以下のとおりです。
- フォームブリッジからkintoneのアンケートフォームアプリにレコードが追加される
- kintoneから今回作成したWebhookカスタマイズにWebhookの通知が送信される
- Job RunnerがWebhookを受け取り、カスタマイズが実行される
- カスタマイズでは、重複するメールアドレスをカウントし、kintoneにレコードに保存
それでは進めていきましょう。
kintoneアプリの構造
アプリの構造はシンプルです。メールアドレスと感想の項目を入れるフィールドと、入力されたメールアドレスで何回申し込みが合ったかをカウントする、同一レコード件数のフィールドを用意しました。
Webhookカスタマイズの概要
Webhookカスタマイズの作成は、定型的な準備がいくつか必要です。
- 利用するアプリ側でAPIトークンを作成
- 作成したAPIトークンを「kintone 接続設定を行う」にセット
- 「Webhook から渡されたレコードを取得する」でレコード取得
もしWebhookのカスタマイズをはじめて作成するということであれば、まず「はじめてのWebhookカスタマイズ : 関連レコードの集計」をご覧頂き、この辺りの一通りの流れをご確認いただければと思います。
以下のアクション番号の1と2は、その下準備になります。
重複しているメールアドレスのカウント
Webhookから通知されたレコードを取得した後は、このレコードを使って重複するメールアドレスのレコードを探します。
ここでは「キーを指定してレコードを取得する」で同じメールアドレスをキーにしてレコードを取得しています。kintoneのクエリを書くのが得意な方は、勿論「クエリで条件を指定してレコードを取得する」を利用することも出来ます。
レコードを取得した後は、「レコード行数をカウントする」でそのレコード数をすべてカウントし(そのために「レコード全行が準備できた時」を条件として利用しています。)
※大量のレコードを「レコード全行が準備できた時」で、処理することは出来ませんのでご注意ください。
結果をフィールドにセット
カウントした結果は、Webhookで取得したレコードに「フィールドに値をセットする」でセットします。
このレコードの保存は不要です。ジョブの最後にまとめて保存されます。基本的にはレコードの保存を自分で考慮する必要はありません。
以上でカスタマイズは終了です。
あとはこのWebhookカスタマイズを、kintoneアプリ側で「レコードの追加」を条件として設定し、テストしてみてください。
まとめ
以上でフォームブリッジと連携するWebhookカスタマイズのご紹介を終わります。
後はこのアプリに対して、「同一レコード件数」が「1」で絞り込む一覧を作成し、これを利用することで1回目の申込だけを抽出することが出来ます。
Webhookを利用したカスタマイズはシンプルですが応用範囲が広いので、皆様でも是非試して見てください!
Job Runnerもチャットサポートを承っておりますので、ご不明な点がございましたら、チャットサポートまでお気軽にお問い合わせください。