Skip to content

Settings — Managed Lists

The Settings ▸ Managed Lists page is where every dropdown in the HR-flavored parts of the portal gets its values. Hardware types, employment types, credential types, salary bands, matter types, practice areas — all configurable here so each tenant can model its own taxonomies.

Settings Managed Lists — Acme Financial Group demo tenant

PageHeader with the title Managed Lists and a one-line description.

A vertical stack of cards, one per managed-list type. Each card contains:

  • The list label (e.g., “Employment Types”)
  • Every value as a row with reorder grip, label, slug, and row actions
  • An inline + Add value button
  • Edit — opens an inline editor for the label
  • Toggle active — archive without deleting
  • Drag-handle — reorder values

There is no hard-delete on values; only archive.

The platform ships with a fixed set of managed-list types. New list types require a release; new values within an existing type are configurable here.

List typeSurface that consumes it
hardware_typeSettings ▸ Assets ▸ Hardware
software_nameSettings ▸ Assets ▸ Software (when shipped)
credential_typeAccount ▸ Credentials
employment_typeTeam profile Employment tab
salary_bandTeam profile Compensation tab
matter_typeMatters list + matter detail
practice_areaMatter detail metadata
document_categoryDocument upload tagging
payment_methodTrust requisition + disbursement payment-method dropdown

Payment methods: banking-details flag and system rows

Section titled “Payment methods: banking-details flag and system rows”

The payment_method list carries two extra attributes beyond label and slug:

  • requiresBankingDetails — when true, choosing this method on a trust requisition or disbursement forces the operator to capture banking details (a saved banking method on the payee, or freeform banking details) before the requisition can be submitted. This replaces the legacy hardcoded “anything but Cheque needs details” rule.
  • isSystem — the 14 payment methods Athenty seeds on tenant creation are flagged as system rows. System rows are locked: their requiresBankingDetails flag cannot be toggled and they cannot be archived (the API rejects both with a MANAGED_LIST_ITEM_LOCKED error). Their label may still be edited. Tenant-added payment methods are fully editable, including the flag.

Seed defaults — required: account_to_account_transfer, credit_card, credit_transfer, debit_card, direct_deposit, electronic_funds_transfer, email_money_transfer, wire. Not required: bank_draft, cash, certified_cheque, cheque, money_order, other.

The banking-method form adapts to the chosen method: credit/debit card capture a card number + expiry, credit transfer captures a transfer note, and for these families an account number is not mandatory. Wire and EFT continue to require an account number and beneficiary name. The beneficiary name defaults to the payee/participant name; an override requires a short reason that is stored on the audit trail.

Each value has a label (display text) and a slug (stable identifier). Labels can be edited freely; slugs are immutable post-save. This design preserves referential integrity: existing records reference values by slug, so renaming a label doesn’t break them.

To change a slug, add a new value with the desired slug, archive the old, and (optionally) bulk-reassign existing records.

StateBehaviour
ActiveAvailable in dropdown pickers
ArchivedHidden from new pickers, preserved on existing records

The platform exposes no hard-delete on managed-list values. Archive is the safe default: it preserves audit history and lets admins re-activate without losing data.

RoleViewManage
Owner / Admin
MemberIndirect (uses values in forms)
ViewerIndirect
ActionEvent
Create valuemanaged_list.value_created
Update valuemanaged_list.value_updated
Reorder valuesmanaged_list.values_reordered
Archivemanaged_list.value_archived
Reactivatemanaged_list.value_reactivated

Events surface in Settings ▸ Audit Log.

SymptomMost likely causeFix
Slug uneditableImmutable post-saveAdd new value with desired slug; archive old
New value missing from dropdownForm cache staleRefresh the form
Archived value still on existing recordWorking as designedReassign record before archive if cleanup is required
Reorder doesn’t persistDrag-and-drop dispatch missedRe-drag; watch for the saved toast
List emptySeed didn’t runContact support