Skip to main content

Set Up States and Reasons

Goal​

Design a table's lifecycle: the States one of its records can be in, and the Reasons it can be in each of them.

Prerequisites​

  • You are signed in as a maker, with the table's solution open.

Every table already has them​

When a table is created it is given two fields — State and Reason — already holding Active and Inactive. You do not add them and you cannot delete them.

That is deliberate. A view that shows only open records, and a rule that refuses to touch a closed one, both need somewhere to look — and it has to be the same place on every table. If you do not want users to see them, leave them off the form; the fields stay.

New records start in the first state (Active, unless you reorder them) with that state's default reason.

Steps​

  1. Open the table and select States & Reasons in the left navigation.

  2. Edit a state's name — including Active and Inactive, which are yours to rename.

  3. Give it a colour and an icon. Both are optional and independent. They are what let someone scan a list and see which records are still open, rather than reading every row, so they are worth setting. The colour swatch opens a panel of twelve quick colours over a spectrum — drag the square for shade, the strip for hue, or type a hex code; Clear colour at the bottom of that panel removes one. The icon button's Clear icon is in the picker's footer. Both clears live inside the picker rather than as a separate ✕ beside it.

  4. Under each state, add the reasons a record can be in it for. A deal that is Inactive might be so because it was Won or Lost — those belong under Inactive, not in one flat list.

  5. Choose each state's default reason, or leave it on First reason to use whichever is at the top.

  6. Reorder states by dragging one by the grip at the start of its card, and a state's reasons the same way, by the grip at the start of each reason's row. Without a mouse: move focus to the grip, press Space to pick it up, the arrow keys to move it, and Space again to drop it.

    The first state is the one new records start in, so the order of states is a real decision rather than presentation. A reason can only be dragged within its own state — moving one to a different state is a different edit, and the platform does not hide it behind the same gesture. Reordering never renumbers: a state or reason keeps the value it was allocated, so records already holding it are unaffected.

  7. Select Save.

Reasons belong to states​

This is the part worth understanding. A reason is not a free-standing choice — it sits under exactly one state. On a form, changing the State immediately changes which Reasons are on offer, and moves the reason to the new state's default. Offering "Won" while a deal is still Active would be nonsense, so the platform does not.

Why this is not an Option Set​

An Option Set is a shared, reusable list several tables can bind to. A lifecycle is the opposite: "Active" on an Invoice and "Active" on a Contact are not the same choice, and a shared one would mean editing every table's lifecycle in one place. So states and reasons live on the table, are edited with it, and travel with it when the solution is exported.

What happens behind the scenes​

Active and Inactive are stored as 0 and 1 — every table has them and they mean the same thing everywhere, so they need no namespace. Anything you add is numbered from your publisher's own range (270150000 and up), the same rule Option Sets follow, so two publishers extending the same table can never mint the same number for different meanings.

A value is never reused. Remove a state and add another, and the new one gets a fresh number — because a record somewhere may still hold the old one, and handing it out again would silently change what that record means.

You can remove a state or a reason even when records still use it. That is intentional: a business changes, and blocking a redesign until every historical record is migrated would make the feature unusable. A record left holding a removed value shows its raw number, so it is visible and can be fixed.

Troubleshooting​

  • "A table needs at least one State." — you removed them all. A record has to be something.
  • "The default reason for … is not one of its reasons." — the reason you nominated belongs to another state. A form only ever offers the current state's reasons, so a nomination outside them could never be used.
  • "Two states are both called …" — two states with the same name are indistinguishable to the person picking one.
  • "'State' is part of every table's lifecycle and cannot be deleted." — leave it off the form instead; see Every table already has them above.
  • A record shows a number instead of a state name. — it holds a value that is no longer on the table. Set it to a current state.