Create a new custom column on the current view in the workspace.
Use this tool when the user asks to add, create, or set up a new column on
the active grid (e.g. "add an Industry column", "create an AI column that
scores risk").
REQUIRED: name, type
- type: one of text, number, amount, date, boolean, single_select, multi_select, record_reference, ai
- a `record_reference` column also REQUIRES the root its values point at:
one root in `reference_target`, or two or more in `reference_targets`
when a cell may name records of several roots (for example people and
companies). Send one of the two, never both. A column of people is how a
person is held, so "an owner column" or "who handles it" is
type=record_reference with reference_target=people. No other type takes a
reference target.
OPTIONAL: icon, rules_config, formula_config, format_config, reference_target,
reference_targets, is_multiple
- is_multiple: for a `record_reference` column only. Pass true when one
cell holds a list of records (for example "the people on this deal");
leave it out when a cell holds one record.
On a grid, the column is always created on the user's currently mounted
view: you do not (and cannot) choose a different one, and you do not ask
which view. With no grid (an assistant app, or a creation off-grid), pass
`root`: the view the user named, one of companies, people, invoices, transactions, account_balances, projects.
If the user named no view, ask which one before calling. If the user named
a table that is not in that list (for example products or tasks),
do not call this tool and never put the column on another table: say in one
line that this table cannot take a custom column yet, and name the tables
that can.
Naming: `name` must be unique within the current view. If a name conflict
is likely, ask the user to disambiguate before calling rather than retrying
after a failure response.
Position: the new column is auto-placed at the end of the view. You cannot
set position via this tool.
Side effect: creating a column on a populated view automatically schedules
an asynchronous recompute of all rows. You will not receive a tracking
handle — values appear in the grid as workers finish.
Returns { success: true, custom_column_id, name, root, type } on success, or
{ success: false, error } on failure.