There is a recurring usability and data‑integrity issue in model‑driven apps caused by the placement and behavior of the Deactivate button on Account and Contact forms.
In environments where Accounts or Contacts have multiple related records displayed in sub‑forms, users frequently intend to deactivate a selected related record (e.g. a Contact linked to an Account) but instead accidentally click the main Deactivate button at the top of the form, which deactivates the entire Account or Contact.
This happens because:
- The main Deactivate button is highly prominent and always visible
- There is no clear visual distinction between deactivating the parent record and acting on a selected sub‑grid record
- There is no explicit confirmation stating that the entire Account or Contact is about to be deactivated
In practice, this leads to:
- Accounts or Contacts being unknowingly deactivated
- Records appearing to have “disappeared”
- Reactive clean‑up once someone notices an account is missing
- Unnecessary reactivation work and loss of user confidence
Suggested UX improvements
At minimum:
- When the main Deactivate button is clicked, display a clear confirmation message such as:
“You are about to deactivate the entire Account (or Contact). Are you sure you want to proceed?”
Preferably:
- Move the main Deactivate button to a secondary / overflow menu rather than keeping it as a primary action
- Ensure Deactivate actions for embedded (sub‑form) records are visually distinct and positioned immediately adjacent to the selected sub‑grid, so users can clearly see which record they are acting on.
This is not a niche scenario — it occurs regularly in real implementations with rich relational data models and represents a genuine UX foot‑gun that could be mitigated with relatively small design changes.
