> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Input columns

> Add editable columns directly to query results to annotate and enrich data inline without modifying your data pipelines.

Input columns let you add editable columns directly to a query result. Instead of building a separate table or directly modifying your database, you can annotate rows inline — adding values that attach to specific rows and persist across query refreshes.

Input columns are a good fit when you need to layer human judgment or operational context on top of data that already lives in your database. For example:

* **Triage and review workflows** — Flag records as reviewed, escalated, or resolved directly in the query result (e.g., a table of support tickets or open orders)
* **Qualitative scoring** — Assign priority scores, confidence ratings, or categorical labels to rows (e.g., rating leads by quality after reviewing enriched account data)
* **Collaborative annotation** — Let a team of analysts or operators add notes to shared dashboards without needing to touch the database
* **Exception tracking** — Mark anomalies or outliers with a reason code as part of a data review process
* **Forecast overrides** — Layer human adjustments on top of forecasts (e.g., a sales manager overriding a rep's pipeline number, or ops adjusting an inventory projection

## Common questions

<AccordionGroup>
  <Accordion title="Are input columns written to my database?">
    Yes. Input columns use the same writeback mechanism as [data input tables](/analyze-explore/data-input-csvs): values are written as a table in your connection's scratch schema and joined back to your query results automatically.
  </Accordion>

  <Accordion title="How are input columns associated with a record?">
    When you add an input column to a query, you choose one or more [**key columns**](#key-columns) — dimensions from the query that uniquely identify each row, like a customer ID or order number. Omni uses these keys to match your entered values to the right rows, even as the underlying query data changes over time.

    **Note**: The column's **Key columns** setting can't be changed after the input column is created.
  </Accordion>

  <Accordion title="Can I edit input columns on dashboards?">
    Yes. When creating the input column, set the [**Edit mode**](#edit-modes) to **Published**. End users will then be able to enter values on a live dashboard.
  </Accordion>

  <Accordion title="What data types are supported for input columns?">
    Input columns currently support **text** and **number** data types.

    **Note**: The column's **Data type** setting can't be changed after the input column is created.
  </Accordion>

  <Accordion title="How do input columns interact with row-level security?">
    When a topic has access filters (row-level security), Omni automatically enforces that the filtered fields must be included in the input column's mapping key. This prevents data leakage across users or tenants.

    Fields from access filters are pre-selected in the input column dialog and cannot be deselected.

    If an access filter field is hidden or unavailable in the topic, input column creation will be blocked until the field is surfaced.
  </Accordion>
</AccordionGroup>

## Requirements

To use input columns, you'll need:

* A **scratch schema configured** on the connection. Unlike data input tables, input columns require database writebacks to be enabled. Refer to the [setup guide for your database](/connect-data/setup) for instructions.
* **Restricted Querier**, **Querier**, or **Connection Admin** permissions
* **To have the [Upload data ability](/share#controlling-document-interactivity) enabled.** This must be enabled for the [organization](/administration/content-permissions) and, if the document is shared with others, also in the [document's settings](/share#controlling-document-interactivity).

## Adding an input column

Input columns are added from within a query result in a workbook or dashboard.

<Steps>
  <Step noAnchor>
    Open a query result in a workbook or dashboard.
  </Step>

  <Step noAnchor>
    Click the <Icon icon="pencil" iconType="solid" /> icon in the column header, then select **Add input column**.
  </Step>

  <Step noAnchor>
    In the dialog, configure the input column:

    * **Column name** — A label for the column. Alphanumeric characters only.
    * **Data type** — Choose **Text** or **Number**.
    * **Edit mode** — Choose when the column should be editable. Refer to [Edit modes](#edit-modes) for more information.
    * **Key columns** — Select one or more dimensions to use as the row identifier. Refer to [Choosing key columns](#key-columns) for more information.

    <Note>
      If the topic has [access filters](/modeling/topics/parameters/access-filters) configured, fields from those filters are automatically required in the mapping key. These fields are pre-selected and cannot be deselected.
    </Note>

    <Note>
      **Heads up!** Data types and key columns can't be changed after the column is created. To change them, you'll need to delete and then re-create the column.
    </Note>
  </Step>

  <Step noAnchor>
    Click **Create**.
  </Step>
</Steps>

The input column will appear in the query result. To enter values, see [Editing values](#editing-values).

<h3 id="edit-modes">
  Edit modes
</h3>

When creating an input column, you choose an **edit mode** that controls when the column is editable:

| Mode          | Editable in         | Use case                                      |
| ------------- | ------------------- | --------------------------------------------- |
| **Draft**     | Draft documents     | Content creators annotate data while building |
| **Published** | Published documents | End users fill in values on a live dashboard  |

<h3 id="key-columns">
  Choosing key columns
</h3>

Key columns are the dimensions Omni uses to match your input values to the right rows. When selecting key columns:

* **Choose columns that uniquely identify each row.** If the same combination of key values appears more than once, input values will apply to all matching rows.
* **Choose columns with stable values.** If a key value changes — for example, a product is renamed — previously entered values won't match the updated key.
* **Access filter fields are automatically included.** If the topic has [access filters](/modeling/topics/parameters/access-filters) configured, those fields are automatically required in the key and cannot be removed. This ensures input values are scoped to the correct user or tenant.

You can select multiple key columns to form a composite key. For example, if product IDs aren't unique across regions, combining `region` and `product_id` may be necessary to uniquely identify rows.

## Editing values

To edit the column's values:

<Steps>
  <Step>
    Click the 📝 icon to unlock the column. The cells will become editable.
  </Step>

  <Step>
    Click a cell and type a value. Press **Enter** to move to the next row, or **Escape** to cancel the current edit.
  </Step>

  <Step>
    When you're done, click Save to save your changes.
  </Step>
</Steps>

Unsaved edits are shown as a preview until the column is saved. Values are written to the database's scratch schema when you re-save the column.

<Note>
  An input column is editable only when its key column(s) are present in the query. If you reuse the column in a query at a different grain, it becomes read-only in that query.
</Note>

<h2 id="edit-configuration">
  Editing an input column's configuration
</h2>

<Note>
  Data types and key columns can't be changed after the input column is created. To change them, [delete the column](#delete-column) and then re-create it.
</Note>

To rename an input column or change its edit mode:

<Steps>
  <Step noAnchor>
    Click the <Icon icon="ellipsis-vertical" /> icon in the input column's header.
  </Step>

  <Step noAnchor>
    Select **Edit column**.
  </Step>

  <Step noAnchor>
    Update the name or edit mode, then click **Save**.
  </Step>
</Steps>

<h2 id="delete-column">
  Deleting an input column
</h2>

<Danger>
  Deleting an input column permanently removes the column and all values entered in it. **This action can't be undone.**
</Danger>

<Steps>
  <Step noAnchor>
    Click the <Icon icon="ellipsis-vertical" /> icon in the input column's header.
  </Step>

  <Step noAnchor>
    Select **Delete column**.
  </Step>

  <Step noAnchor>
    When prompted, confirm the deletion.
  </Step>
</Steps>

## Current Limitations

* Input columns are scoped to the workbook and cannot be promoted to the Shared model layer yet
