Skip to main content
Table column types reuse PromptLayer’s evaluation and workflow building blocks, plus the Tables-specific Composition reference type. Most type values (COMPARE, PROMPT_TEMPLATE, LLM_ASSERTION, CODE_EXECUTION, and the helper/eval types below) match the evaluation pipeline and workflow node enums documented in Node & Column Types. Tables-only: COMPOSITION is not part of the legacy evaluation or workflow node enum. Use it only in Tables to mirror a column from another sheet or table.

Input, reference, and computed columns

Table columns fall into three groups:
GroupType valueBehavior
InputTEXTStores editable values you set manually, paste, or import. Text cells do not run.
ReferenceCOMPOSITIONMirrors a value from another sheet or table. Does not execute per row.
ComputedAll other type values belowRuns per row, tracks cell status (QUEUED, RUNNING, COMPLETED, FAILED, STALE), and can become stale when dependencies change.
Put source data in input columns, then add computed columns left to right for each workflow step. Use composition when multiple sheets should share the same upstream result. See Cells and Runs for status and rerun behavior.

How sources work

Computed columns read from source columns in the sheet. For example, a Prompt output column can map a prompt variable to Customer message, and a Quality score column can read from Prompt output. If a source changes, dependent computed cells can become stale.
Prompt Template column configuration showing input variables mapped to source columns

Column type reference

Type values use UPPERCASE enum strings. The UI label is what you see in the column picker.

Input column

UI labelType valueUse when
TextTEXTYou need editable input data, expected answers, labels, metadata, or notes.

Reference column

UI labelType valueUse when
CompositionCOMPOSITIONYou want to reference data from another sheet or table without re-running upstream logic.

Computed columns

UI labelType valueCategoryCompute costUse when
Prompt TemplatePROMPT_TEMPLATEData source / executionLLM — one or more model requests per rowYou want to run a Prompt Registry template or inline prompt for each row.
WorkflowWORKFLOWData source / executionVariable — depends on the workflow’s nodesYou want a row to execute a PromptLayer workflow.
Code ExecutionCODE_EXECUTIONData source / executionCompute — server-side code per rowYou need Python or JavaScript logic per row.
EndpointENDPOINTData source / executionExternal — outbound HTTP per rowYou want to send row data to an external URL endpoint.
MCPMCPData source / executionExternal — MCP server calls per rowYou want to call Model Context Protocol server functions.
Conversation SimulatorCONVERSATION_SIMULATORData source / executionLLM — multiple model turns per rowYou want to simulate a multi-turn user and assistant conversation.
HumanHUMANData source / executionNone — waits for manual inputYou need a human to fill in or approve data.
While LoopWHILE_LOOPData source / executionVariable — multiplies inner step costYou need repeated execution while a condition remains true.
For LoopFOR_LOOPData source / executionVariable — multiplies inner step costYou need to iterate over a collection or array.
CompareCOMPARESimple evalNone — deterministic checkYou want to compare values and generate a diff or comparison result.
ContainsCONTAINSSimple evalNone — deterministic checkYou want to check whether text contains a substring.
RegexREGEXSimple evalNone — deterministic checkYou want to validate text against a regular expression.
Absolute Numeric DistanceABSOLUTE_NUMERIC_DISTANCESimple evalNone — deterministic checkYou want the absolute distance between numeric values.
Assert ValidASSERT_VALIDSimple evalNone — deterministic checkYou want to validate data types or formats.
Math OperatorMATH_OPERATORSimple evalNone — deterministic checkYou want mathematical comparisons such as greater than or less than.
LLM AssertionLLM_ASSERTIONLLM evalLLM — one or more model requests per rowYou want an LLM to judge whether an assertion is true.
AI Data ExtractionAI_DATA_EXTRACTIONLLM evalLLM — one or more model requests per rowYou want an LLM to extract specific information from text.
Cosine SimilarityCOSINE_SIMILARITYLLM evalLLM — embedding or similarity requests per rowYou want semantic similarity between vectors or text embeddings.
JSON ExtractionJSON_PATHHelperNone — deterministic transformYou want to extract values from JSON with JSONPath.
XML PathXML_PATHHelperNone — deterministic transformYou want to extract values from XML with XPath.
Regex ExtractionREGEX_EXTRACTIONHelperNone — deterministic transformYou want to extract capture groups from text.
Parse ValuePARSE_VALUEHelperNone — deterministic transformYou want to parse a specific value from structured or unstructured data.
CountCOUNTHelperNone — deterministic transformYou want counts of elements, characters, or occurrences.
Min MaxMIN_MAXHelperNone — deterministic transformYou want the minimum or maximum value from numeric inputs.
CoalesceCOALESCEHelperNone — deterministic transformYou want the first non-null value from several sources.
Combine ColumnsCOMBINE_COLUMNSHelperNone — deterministic transformYou want to merge values from multiple sources into one output.
Apply DiffAPPLY_DIFFHelperNone — deterministic transformYou want to apply a unified diff patch to text.
Condition appears in Workflow node selectors, but it is not a Table column type. Use Table-supported comparison, assertion, or helper columns for row-level checks.

Compute cost notes

Computed columns run once per row (and again on reruns). Cost depends on the column type:
  • None — Helper columns, simple eval columns, HUMAN, and COMPOSITION do not call models or external services on their own.
  • LLMPROMPT_TEMPLATE, LLM_ASSERTION, AI_DATA_EXTRACTION, COSINE_SIMILARITY, and CONVERSATION_SIMULATOR make model requests. Prompt Template columns expose per-cell cost, latency, and token metrics. Use History and Analytics to inspect request-level details.
  • ExternalENDPOINT and MCP call services outside PromptLayer. Cost depends on your endpoint or MCP server.
  • ComputeCODE_EXECUTION runs server-side code per row.
  • VariableWORKFLOW, FOR_LOOP, and WHILE_LOOP cost depends on the nested steps they execute.
Running a sheet across many rows multiplies cost for LLM and external columns. Prefer deterministic helper and simple eval columns when checks do not need a model. Use stale-cell reruns instead of full-sheet reruns when only some inputs changed.

Composition

Composition references a source table, sheet, and column, then pulls that value into the current sheet. Use it when multiple sheets should share a reusable intermediate result instead of copying logic.
Composition column configuration that references a source column from another sheet

Tables API type values

The Tables REST API uses the same uppercase enum strings as the UI (TEXT, COMPARE, PROMPT_TEMPLATE, COMPOSITION, and so on). Set the specific column behavior in config. For backwards compatibility, create-column requests also accept lowercase aliases such as text, prompt_template, llm, code, score, comparison, and composition. PromptLayer normalizes these to the uppercase enum before storing the column. Shared computed types (COMPARE, PROMPT_TEMPLATE, LLM_ASSERTION, CODE_EXECUTION, helper columns, and the rest except TEXT and COMPOSITION) use the same configuration schemas as Workflows and legacy Evaluations. See Node & Column Types for those schemas. COMPOSITION is Tables-only. Do not use it in legacy evaluation or workflow column definitions.

API references

Use the generated API reference for exact request schemas when creating or updating columns programmatically.

Create column

Create text or computed columns.

Update column

Update title, config, and dependencies.