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カスタマイズの作成は、定型的な準備がいくつか必要です。

もしWebhookのカスタマイズをはじめて作成するということであれば、まず「はじめてのWebhookカスタマイズ : 関連レコードの集計」をご覧頂き、この辺りの一通りの流れをご確認いただければと思います。


以下のアクション番号の1と2は、その下準備になります。


重複しているメールアドレスのカウント

Webhookから通知されたレコードを取得した後は、このレコードを使って重複するメールアドレスのレコードを探します。 

ここでは「キーを指定してレコードを取得する」で同じメールアドレスをキーにしてレコードを取得しています。kintoneのクエリを書くのが得意な方は、勿論「クエリで条件を指定してレコードを取得する」を利用することも出来ます。


レコードを取得した後は、「レコード行数をカウントする」でそのレコード数をすべてカウントし(そのために「レコード全行が準備できた時」を条件として利用しています。)

※大量のレコードを「レコード全行が準備できた時」で、処理することは出来ませんのでご注意ください。



結果をフィールドにセット

カウントした結果は、Webhookで取得したレコードに「フィールドに値をセットする」でセットします。

このレコードの保存は不要です。ジョブの最後にまとめて保存されます。基本的にはレコードの保存を自分で考慮する必要はありません。


以上でカスタマイズは終了です。

あとはこのWebhookカスタマイズを、kintoneアプリ側で「レコードの追加」を条件として設定し、テストしてみてください。


まとめ

以上でフォームブリッジと連携するWebhookカスタマイズのご紹介を終わります。

後はこのアプリに対して、「同一レコード件数」が「1」で絞り込む一覧を作成し、これを利用することで1回目の申込だけを抽出することが出来ます。


Webhookを利用したカスタマイズはシンプルですが応用範囲が広いので、皆様でも是非試して見てください!

Job Runnerもチャットサポートを承っておりますので、ご不明な点がございましたら、チャットサポートまでお気軽にお問い合わせください。