Text

The Text column is the most versatile column type in Phacet. It stores plain text values from short labels to multi-line paragraphs. Content can be entered manually, imported via CSV, generated by AI, or computed with Python code.

Text columns are the default output format for AI-generated content and serve as the foundation for most data processing workflows in Phacet.

Example use cases

  • Generate summaries: use AI to synthesize key information from uploaded documents.
  • Extract specific data points: pull names, dates, addresses, or clauses from contracts and reports.
  • Transform existing data: apply Python functions to clean, format, or combine values from other columns.
  • Add manual notes: enter comments, descriptions, or annotations alongside your records.
  • Import structured data: load text values in bulk via CSV upload.

Setting Up a Text Column

Step 1: Create the column

  • Add a new column to your Phacet.
  • Choose Text as the column type.
  • Give it a clear, descriptive name (e.g. Summary, Company Name, Notes).

Step 2: Select your tool

Decide how the text content will be populated:

  • Manual Input: type directly into each cell.
  • AI (LLM): AI will analyze input data and generate text content automatically.
  • Python Tool: produce text using custom code logic.

Manual vs Automated input

MethodUse it when..
Manual InputYou want to enter values yourself. Ideal for notes, comments, or small datasets.
CSV ImportYou have existing data in a spreadsheet that you want to load into Phacet in bulk.
AI (LLM Tool)You need to generate, extract, or transform content based on documents or other columns.
Python ToolYou have deterministic logic: string formatting, concatenation, conditional outputs, or data transformations.

Referencing other data

When using the AI Tool or Python Tool, you can reference data from other columns using the @ symbol followed by the column name (e.g. @Contract Document, @Company Name).

This allows your tool to use the value from that column as input for generation or transformation.

AI Tool setup

  • Write clear instructions describing what content to generate or extract.
  • Reference the source column containing the data to analyze (e.g. a File column or another Text column).
  • AI will return text content based on its interpretation of your instructions.
  • When AI extracts information from a document, citations are automatically attached to the cell, linking each piece of extracted data back to its source location in the original document.
  • When AI uses web search, source links are attached to the cell for traceability.

Learn more about the AI tool in the dedicated article

Python Tool setup

  • Your Python main() function must return a string or None if no value applies.
  • Returning a non-string type (number, list, dict) will cause a validation error — convert your result to string explicitly if needed.

Learn more about the Python tool in the dedicated article

Example prompts and scripts

AI Tool

Summarize a document

Read @Contract Document and write a 3-sentence summary covering the parties involved, the main obligations, and the contract duration.

Extract a specific data point

Extract the company name from @Invoice Document. Return only the company name, nothing else.

Generate content from multiple columns

Based on the company name in @Company and the sector in @Industry, write a one-paragraph description of the company's likely business activities.

Python Tool

Concatenate values from multiple columns

def main():
    first = @First Name
    last = @Last Name
    if first is None or last is None:
        return None
    return f"{first} {last}"

Clean and format text

def main():
    raw = @Raw Address
    if raw is None:
        return None
    return raw.strip().replace("\n", ", ").title()

Extract a value from a JSON column

def main():
    data = @Extracted Data
    if data is None:
        return None
    return data["company_name"]

Conditional output

def main():
    score = @Risk Score
    if score is None:
        return "N/A"
    if score > 80:
        return "High Risk"
    elif score > 50:
        return "Medium Risk"
    return "Low Risk"

Editing text cells

  • Click on a cell to start editing.
  • Enter submits the value and moves to the next row.
  • Shift+Enter inserts a new line within the cell (multiline text).
  • Tab / Shift+Tab navigates between columns.
  • Escape cancels the edit without saving.

In table view, long text values are truncated based on the row height. Click the cell to view and edit the full content.

Text vs other column types

NeedRecommended TypeWhy
Free-form content (summaries, notes)TextNo format constraints, supports any string content
Numeric values for computationNumberEnforces numeric format, ready for calculations
Classification with fixed optionsSingle/Multi SelectControlled vocabulary, consistent tagging
Structured multi-field dataJSONSchema-validated, supports nested objects
Multiple items extracted from a documentCollectionCreates separate rows in a dedicated table

Best practices

  • Keep AI instructions specific: the more precise your prompt, the more consistent the output. Specify format, length, and what to include or exclude.
  • Use Python for deterministic outputs: when the result follows clear rules (formatting, concatenation, conditionals), prefer Python over AI for speed and consistency.
  • Leverage citations: when extracting from documents with AI, use the citation feature to verify that extracted data matches the original source.
  • Structure your naming conventions: use descriptive column names that reflect the content (e.g. Contract Summary instead of Output).
  • Combine with other types: use Text columns alongside JSON, Number, or Select columns to build complete processing pipelines — extract with AI into Text, parse with Python into Number, classify with Select.