Adding and managing columns
Beyond the columns your import created, you can add these kinds of columns — a Score, a Label column, a Persona column, an AI text column, a Formula, a Data column, a Job change column, a Last enriched column, an In list column, a Value from list column, a HubSpot column or a Contact history column — and show, hide, reorder, rename or delete any of them.
Adding a column#
Click + Column next to the search field in the list's header — or open the list's ⋯ menu and choose Add Column... (you can also start this from a column's own header menu, which inserts the new column right next to it). The New column dialog lists the kinds at the left in four groups (Rate, Write & calculate, Signals, Compare); the chosen one shows an example and typical uses, and the line at the bottom says what it needs — Pricing there shows what it costs. On a phone the kinds are a menu above the explanation.
- Score — gives every record points for the criteria it meets, with tiers A/B/C as a second column (see "Scoring a list and assigning records to groups").
- Label — puts every record into one of your own groups by rules, for example a segment (same article).
- Persona — the seniority or the department from the job title (same article).
- AI text — generates a text per row from an AI instruction you write (see below).
- Contact history (Kontaktverlauf) — shows for each person what your workspace already sent them, from any list: the last contact, the channels, who, how many. Free and read-only; offered in contact lists with a LinkedIn or e-mail column (see "Contact history — who in your workspace already contacted a person").
- Formula — computes a value from other columns using a formula you write (see below).
- Data column — search or browse column types (Email, Phone, Company, and dozens more) or fall back to a generic Text, Number, Date or Yes/No column. The name auto-fills from the type; you can overwrite it before creating. Select makes a column with values you type in (Enter or a comma after each, up to 50) — "Qualified", "Later", "Not a fit", say. Each value gets its own color, and in the list you pick one with a click; a filter offers the values as choices.
- Job change — marks contacts whose profile shows they left the company in your list.
- Last enriched — the day each row was last enriched or had its email checked (empty when it never was; AI analyses don't count). It is a date column, so a filter or a trigger can ask for "older than 90 days" — to enrich only stale rows again. The server writes the new day after every enrichment; it costs no credits.
- In list — Yes or No: is the record in another list of the workspace? Any list works, on every plan, and the column follows that list by itself; no credits (see "Scoring a list and labeling records by rules").
- Value from list — a value from the matching row of another list (matched by Domain, Email or LinkedIn), or the number of matches. It fills when created and on every Run in its header, never by itself; credits per row on every Run (see "Look up in another list, and the List role").
- HubSpot — Yes or No: is the contact or company in your HubSpot.
Show, hide and reorder columns#
Open Tools → Columns to show or hide columns with a checkbox and drag them into a new order. Column order and visibility are list-level settings, separate from your cell edits.
Renaming a column#
Click the Set up icon next to the list's name (or ⋯ menu → List Settings...), open Columns, click a column to expand it, and edit its Title field. Click Apply Changes at the bottom to save the rename. This section also lets you adjust a column's content type and data type.
Formula columns#
A formula column computes its value from other columns in the same row
— it's free and never calls the AI. Reference another column by its name in
curly braces, e.g. {Price} * {Quantity}, {First Name} & " " & {Last Name},
IF({Revenue} > 1000, "Enterprise", "SMB"), ROUND({Amount} * 1.19, 2), or
COALESCE({Mobile}, {Phone}, "N/A"). Two functions tidy values for outreach:
PROPER({First Name}) writes every word with a capital first letter
("anna-lena MÜLLER" → "Anna-Lena Müller"), and DOMAIN({Email}) gives the
domain of an email address, a website or a URL ("https://www.acme.com/about"
→ "acme.com"). The editor shows a live preview on your
first sample rows as you type, and flags an invalid formula before you can
create the column. The grid shows the value at once; ListPlus also stores it
in the list and recalculates it when a referenced column changes, so formula
values are part of your exports, visible to the API and usable in list
triggers. A small pulsing dot in a cell means its new value is being stored.
AI text columns#
An AI text column lets the AI write a short text for every row from your own
prompt, using {Column Name} placeholders to pull in that row's values — for
example Classify {Company} in {Industry} as B2B or B2C or What seniority level is "{Job Title}"? Reply: Junior, Mid, Senior, or Executive. The editor
previews the rendered prompt on your first sample rows.
On the right, under What the AI sees, you see what the first run costs at most, and Test on 10 rows tries the prompt on ten rows of your list for free and shows the answers — sharpen the prompt there before you pay for the whole list.
When you click Create column, ListPlus writes the texts for the whole list in the background — every row, not only the ones a filter shows — and stores them directly in the list. There is nothing to apply or confirm. Rows that share the exact same request get one answer (with The AI also reads switched on, each row's request usually differs): a 10,000-row list with a few hundred different job titles needs a few hundred texts, not ten thousand. Rows where every referenced column is empty stay empty.
Afterwards:
- New rows get their text automatically.
- A changed value does not rewrite a text by itself — a text you may already be using should not change under you. The cell gets a small grey dot; click Run in the column's header (next to the purple AI badge), or Run AI column in the header menu, to write the missing and outdated texts again.
- If you change the prompt, the whole column is written again.
Recipes, what the AI reads, and when it writes#
The AI text dialog has two sides: on the left you say what to write, on the right What the AI sees shows the complete request for one of your rows, the cost of the first run and Test on 10 rows.
- Start from a recipe fills in a ready-made instruction with your own column names — Opening line, Why a fit?, What is missing?, B2B or B2C, Seniority. You can change the text afterwards.
- The AI also reads adds facts about each row to your instruction: Quality check findings (what the list's checks find in the row — you can switch single kinds of findings off, each shows how many rows it concerns) and Enrichment data (everything enrichment stored for the row, also what is in no column).
- Only write when … limits the column to rows that meet a condition, for example only rows whose Score is at least 60. A row that does not meet it gets no text and costs nothing.
A text costs credits (see "Price list: what every action costs"); an empty answer costs nothing, and equal inputs are written once. Automatic texts for new rows have a daily credit ceiling per list. If that is used up, or the balance doesn't cover the next texts, the Run button turns into a pause mark that says why — click it to continue.
Editing or deleting a column#
Click the menu icon in a column's header for Edit formula (formula columns), Edit score (score and tier columns), Edit label (Label columns), Edit AI column and Run AI column (AI text columns), or Delete column — greyed out for the built-in system columns such as Tags.
Related topics: scores-and-assigned-columns · contact-history · saving-is-manual · segments-and-tags · ai-commands.
FAQ#
How do I add a new column to my list?#
Click + Column next to the search field in the list's header (or open the list's ⋯ menu and choose Add Column...), then pick Score, Label, AI text, Contact history, Formula, or Data column (a data type like Email or Phone, or a generic Text/Number/Date/Boolean).
Can a column show whether a colleague already contacted someone?#
Yes — add a Contact history column (+ Column → Contact history): it shows the last contact, the channels, the team member or the number of contacts from your workspace's contact history, whatever list the contact came from. It costs no credits and fills by itself; see "Contact history — who in your workspace already contacted a person" for what counts and when it updates.
How do I hide or show columns?#
Open Tools → Columns and use the checkbox next to each column to show or hide it; drag a column in that list to reorder it in the grid. To look at a value from a source without keeping it, use Show column in the Record panel — a temporary, read-only column that is not saved (see "The Record panel: best values and sources").
How do I rename a column?#
Click the Set up icon next to the list's name, open Columns, click the column to expand it, edit the Title field, then click Apply Changes.
What is a Formula column and does it cost credits?#
A Formula column computes a value from other columns in the same row, for example {Price} * {Quantity} or IF({Revenue} > 1000, "Enterprise", "SMB"). It's free and never calls the AI. The value is shown at once and stored in the list, and it is recalculated whenever a referenced column changes — so it also appears in exports and can be used in list triggers.
What is an AI text column and how much does it cost?#
An AI text column lets the AI write a short text per row from a prompt you write, using {Column Name} to pull in row values. It costs credits per text; rows with identical inputs share one text, and an empty answer costs nothing. The dialog shows the maximum cost of the first run before you create the column, and Test on 10 rows is free.
Can an AI text column use the quality checks or enrichment data?#
Yes. In the AI text dialog switch on Quality check findings or Enrichment data under "The AI also reads"; the AI then gets these facts for every row along with your prompt. "What the AI sees" shows the complete request for a row.
Can an AI text column write only for some rows?#
Yes. Switch on "Only write when …" and set a condition, for example Score is at least 60. Rows that do not meet it get no text and cost nothing.
Do I need to click Save or Apply after running an AI text column?#
No. The texts of an AI text column are written directly into the list and stored — there is nothing to apply or confirm. To check a prompt before the whole list is written, use Test on 10 rows in the dialog; it is free.
Does an AI text column run on every row or only the ones I can see?#
On every row of the list, whatever filter is active. Rows where every referenced column is empty stay empty and are not billed. New rows get their text automatically; a row whose values changed is marked with a small grey dot and written again when you click Run in the column's header.
Why does an AI text column cell show a small grey dot?#
The text is missing, or a value the prompt uses has changed since the text was written. ListPlus does not rewrite such a text by itself. Click Run in the column's header to write all missing and outdated texts again; only those are charged.
Can a column take a value from another list?#
Yes — + Column → Value from list. Pick the other list, match by Domain, Email or LinkedIn, and choose one of its columns or Number of matches. It fills when you create it and again each time you click Run in its header (never by itself), and costs credits per row on every Run.
How do I edit or delete a Formula or AI text column later?#
Click the menu icon in that column's header for Edit formula or Edit AI column (to change the formula or instruction) and Run AI column (AI text columns only); Delete column is there too, for every column except the built-in system columns such as Tags.