AppSheet 問い合わせ一覧から顧客管理にユーザ登録する際の連続問い合わせ対応

2024年5月1日からAppSheetとGoogle フォームの連携が可能になっています。

そのためGoogle Formのデータ更新をトリガーに、都度都度オートメーションを起動できるため、新規顧客の問い合わせをトリガーに、顧客マスタへデータ登録を実現する場合は、Google Formを用いるのがおすすめです。

一方、既存の問い合わせなど、Googleスプレッドシートにデータが蓄積される場合など、既存の仕組みを直ぐに切り替えられない場合は、オートメーションの定期実行で、スプレッドシートのデータを取り込む必要があります。

オートメーションは、最も短い間隔でも1時間となるため、その1時間の間に同じ顧客から複数の問い合わせがあった場合、そのうちの1つだけピックアップして、顧客マスタへ登録する必要がでてきます。そうしないと、キー重複により処理が異常終了してしまいます。

では、実際の実装例を以下でご説明していきます。

問い合わせ一覧テーブル

原本を直接取り込みたくない場合は、Importrange関数を使って別シートに同期させておく方法もあります。

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXX","問い合わせ一覧!A1:AQ10000")

問合せを蓄積しているスプレッドシートです。ユニークキーは行番号「_RowNumber」にします。

この後、取込処理ではこの行番号「_RowNumber」を活用するので、ここでは行番号を主キーに設定しておいてください。

オートメーション

実際の顧客マスタへの取込処理です。

①定期実行を1時間ごとにします。(これが最短の間隔です。)

②実行は、問い合わせテーブルを対象にします。

③取り込み対象の判定ロジックです。3点目がポイントで、これにより、同一処理タイミングで同じメールアドレスがあったとしても(例:ユーザが連続して問い合わせをした場合)、顧客マスタ(Customer)へのデータ登録は1度しか実行されません。

  • 登録日が3日以内(処理が何らかの原因で止まった場合を考慮)
  • 顧客マスタ(Customer)に、CustomerIDとなるメールアドレスが存在しない
  • 現在の行数が問い合わせ一覧で、該当メールアドレスで最初の行

and(
[date]>(Now()-3),
count(select(Customer[Customer ID],[Customer ID]=[ThisRow].[your-email]))=0, [_thisrow] = MINROW(“_origin問い合わせ一覧”,”_RowNumber”, [your-email] = [_THISROW].[your-email])
)

上記により、定期実行で同一処理タイミングで同じメールアドレスがあったとしても顧客マスタ(Customer)へのデータ登録は1度しか実行されないため、処理エラーが発生することを回避できます。

今回のような、実際の現場で必要となる細かなTipsを多く持ち合わせていますので、ぜひAppSheet の活用相談は弊社にお任せください。

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です