問い合わせ管理では、状態の選択肢を作るだけでは足りません。「何をもって完了とするか」「完了した問題が再発したらどうするか」まで決めておかないと、一覧上は完了でも結果が残っていない状態が生まれます。
今回の社内相談デモでは、状態を4つに絞り、完了時の入力条件、完了日時、再対応の操作を設定しました。
この記事でわかること
- 4つの状態をどのように使い分けるか
- 完了時に対応結果を必須にする方法
- 完了日時を保持する考え方
- 再対応で残す情報と消す情報
状態は4つに絞った
RequestsのStatusはEnum型にし、次の値だけを選べるようにしました。
| 状態 | 意味 |
|---|---|
| 未対応 | 受付済みで、まだ対応を始めていない |
| 対応中 | 担当者が確認・対応している |
| 完了 | 対応結果を記録し、いったん対応を終えた |
| 取消 | 依頼者や管理担当者の判断で対応対象から外した |
新規相談のInitial valueは「未対応」です。Allow other valuesをオフにして、表記の揺れを防ぎました。
状態を細かく増やすと状況を詳しく表せますが、利用者が選び分けに迷います。今回は、相談受付から完了までを小さく試すため、4状態に限定しました。
完了時は対応結果を必須にする
対応結果を保存するResolutionはLongText型です。Required_Ifに次の条件を設定しました。
[Status] = "完了"
状態が完了の場合だけ、対応結果が必須になります。未対応や対応中では、まだ結果が決まっていないため空欄を許可します。
実際の検証では、結果を空欄のまま完了を保存すると必須入力のエラーが表示され、保存が止まりました。対応結果を入力すると保存できました。
この設定は、完了の条件をフォーム上でそろえるためのものです。元のGoogleスプレッドシートを直接編集した場合まで同じ入力制約を強制する仕組みではありません。
完了日時はフォーム保存後に設定する
完了日時を保存するClosedAtは、利用者が直接入力しない列にしました。フォーム保存後に実行するアクションで、次の式を使っています。
IF(
[Status] = "完了",
IF(ISBLANK([ClosedAt]), NOW(), [ClosedAt]),
""
)
動きは3つです。
- 初めて完了した場合は現在日時を入れる
- 完了のまま対応結果を追記した場合は、既存の完了日時を保持する
- 完了以外の状態へ変えた場合は、完了日時を空欄にする
完了のたびに NOW() で上書きすると、後から文章を直しただけで完了日時が変わります。既存値がある場合は保持することで、最初に完了した時刻を残します。
再対応では状態と完了日時を戻す
完了した相談で問題が再発した場合に備え、「再対応」アクションを作りました。管理担当者だけに表示し、完了行でだけ実行できる設定です。
アクションでは、次のように変更します。
Status : 対応中
ClosedAt: 空欄
Resolutionは消していません。前回の対応結果を参考として残し、再対応の理由は対応メモへ追加します。再び完了するときに、現在の対応結果へ更新する運用です。
この方法では、過去の完了日時をすべて記録できません。ClosedAtは「現在の完了状態になった日時」を表す列です。再対応を含むすべての状態変更を監査したい場合は、状態変更専用の履歴表や自動記録を別に設計する必要があります。
完了日時の入力欄を利用者に触らせない
ClosedAtは通常のID付き行では編集できない条件にし、アクションからだけ更新できるようにしました。担当者、期限、状態、対応結果も管理担当者だけが編集できます。
ただし、Editable_Ifは画面上の入力制御です。閲覧範囲を決めるSecurity filterや、行の追加・更新を決めるテーブル更新モードと役割が異なります。状態管理の記事だけを読んで権限制御まで完了したと判断しないよう注意が必要です。
検証で確認した流れ
架空の相談を使い、次の順に操作しました。
- 担当者、期限、状態「対応中」を保存
- 対応結果を空欄にして「完了」を保存し、エラーを確認
- 対応結果を入力して完了し、ClosedAtが設定されることを確認
- 完了のまま結果を追記し、ClosedAtが変わらないことを確認
- 再対応を実行し、状態が対応中、ClosedAtが空欄になることを確認
AppSheet画面とGoogleスプレッドシートの両方で結果を確認しました。日時のタイムゾーン一致と日付境界は未検証です。
まとめ
状態管理では、選択肢だけでなく、状態を変える条件と、そのとき保存する情報を決める必要があります。
今回の試作では、完了時の対応結果を必須にし、完了日時を一度だけ設定し、再対応で対応中へ戻しました。厳格な監査が必要な業務では、この簡易構成とは別に変更履歴の設計を検討してください。
