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
| Method | Use it when.. |
|---|---|
| Manual Input | You want to enter values yourself. Ideal for notes, comments, or small datasets. |
| CSV Import | You 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 Tool | You 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 orNoneif 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
| Need | Recommended Type | Why |
|---|---|---|
| Free-form content (summaries, notes) | Text | No format constraints, supports any string content |
| Numeric values for computation | Number | Enforces numeric format, ready for calculations |
| Classification with fixed options | Single/Multi Select | Controlled vocabulary, consistent tagging |
| Structured multi-field data | JSON | Schema-validated, supports nested objects |
| Multiple items extracted from a document | Collection | Creates 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 Summaryinstead ofOutput). - 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.
Updated about 8 hours ago