Dynamic Dataset Columns: Enrich Rows with AI-Generated Data

Use Dynamic Columns to add AI-generated summaries, sentiment labels, extracted entities, vector-retrieved context, parsed JSON fields, and conditional routing to any dataset — no code required.

📝
TL;DR

Dynamic Columns let you enrich any dataset with AI-generated data — summaries, sentiment labels, entities, vector-retrieved context, parsed JSON fields, and conditional routing — directly from the FutureAGI dashboard, no code required.

TimeDifficultyPackage
15 minBeginnerDashboard only

By the end of this guide you will have a support ticket dataset enriched with AI-generated summaries, sentiment labels, extracted entities, vector-retrieved context, parsed JSON fields, and conditional routing: all populated automatically across every row.

Prerequisites
  • FutureAGI account → app.futureagi.com
  • An LLM API key configured in the platform (GPT-4o, Gemini, etc.)
  • For the Retrieval column: a vector database (Pinecone, Qdrant, or Weaviate) with data already indexed

Starter dataset

Save as support_tickets.csv and upload via DatasetAdd DatasetUpload a file (JSON, CSV).

ticket_id,customer_message,agent_response,response_metadata,priority
T001,My laptop battery drains in under 2 hours even after a factory reset.,I have opened a replacement request. You will receive a prepaid shipping label within 24 hours.,"{""resolution_time_hours"": 24, ""replacement_approved"": true, ""ticket_owner"": ""support_team""}",high
T002,I never received my order from three weeks ago. Tracking says it was delivered.,I see the delivery was marked complete. Let me file a lost shipment claim with the carrier right now.,"{""resolution_time_hours"": 48, ""replacement_approved"": false, ""ticket_owner"": ""logistics_team""}",high
T003,The app crashes every time I try to open my account settings.,This is a known issue in version 3.2. Please update to version 3.3 using the link below.,"{""resolution_time_hours"": 2, ""replacement_approved"": false, ""ticket_owner"": ""engineering_team""}",medium
T004,Can I change my subscription plan before the billing date?,Absolutely! You can change your plan at any time from Account > Billing. The new rate applies from the next billing cycle.,"{""resolution_time_hours"": 0, ""replacement_approved"": false, ""ticket_owner"": ""billing_team""}",low
T005,I was charged twice for the same order last month.,I have confirmed the duplicate charge and initiated a full refund. It will appear in 3-5 business days.,"{""resolution_time_hours"": 72, ""replacement_approved"": true, ""ticket_owner"": ""billing_team""}",high

Tutorial

Run Prompt — generate summaries

  1. Add ColumnDynamic ColumnsRun Prompt
  2. Column Name: summary
  3. Model Type: LLM, Select Model: gpt-4o-mini
  4. System: You are a support assistant that writes short, factual summaries.
  5. User: Summarize this customer support message in one sentence: {{customer_message}}
  6. Concurrency: 5
  7. TestRun

Classification — label sentiment

  1. Add ColumnDynamic ColumnsClassification
  2. Column Name: sentiment, Column (source): customer_message
  3. Add labels: Positive, Neutral, Negative
  4. Choose a model, Concurrency: 5
  5. TestRun

Extract Entities — pull structured data

  1. Add ColumnDynamic ColumnsExtract Entities
  2. Name: entities, Column: customer_message
  3. Instructions:
Extract: issue type, product, urgency level, and location (if present).
Return concise entity values.
  1. Choose a model, Concurrency: 5
  2. TestRun

Retrieval — fetch context from a vector database

Note

Requires an external vector database (Pinecone, Qdrant, or Weaviate) with data already indexed; this is separate from FutureAGI’s Knowledge Base.

  1. Add ColumnDynamic ColumnsRetrieval
  2. Select your Vector Database type

Pinecone:

FieldValue
Columnagent_response
Pinecone API KeyYour API key
Index NameYour index
Number of chunks to fetch3
Key to extracttext
Concurrency5

Qdrant:

FieldValue
Columnagent_response
Qdrant API KeyYour API key
Qdrant URLYour instance URL
Collection NameYour collection
Number of chunks to fetch3
Key to extracttext
Concurrency5

Weaviate:

FieldValue
Columnagent_response
Weaviate API KeyYour API key
Weaviate Cluster URLYour cluster URL
Collection NameYour collection
Number of chunks to fetch3
Search TypeSemantic Search or Hybrid
Key to extractcontent
Concurrency5
  1. TestRun

Extract JSON Key — parse a field from JSON

  1. Add ColumnDynamic ColumnsExtract a JSON Key
  2. Column Name: resolution_time, Column: response_metadata
  3. JSON Key: $.resolution_time_hours
  4. Concurrency: 5
  5. Run

Note

The source column must have data type JSON. If it’s stored as text, change its type to JSON using Edit Column first.

Conditional Node — route by priority

  1. Add ColumnDynamic ColumnsConditional Node
  2. Column Name: triage_output

Branch 1 (if):

  • Condition: {{priority}} == "high"
  • Column Type: Run Prompt
  • System: You are a senior support analyst.
  • User: Write a detailed triage summary and next action for this high-priority ticket: {{customer_message}}

Branch 2 (else):

  • Column Type: Run Prompt
  • System: You are a support assistant.
  • User: Write a one-line summary for this ticket: {{customer_message}}
  1. Concurrency: 5
  2. TestRun

Tip

You can add elif branches between if and else for more granular routing; each branch supports all column types: Run Prompt, Retrieval, Extract Entities, Extract JSON Key, Classification, and API Calls.

Run evals on the enriched dataset

  1. Click EvaluateAdd Evaluations → select groundedness
  2. Map: inputcustomer_message, outputagent_response
  3. Add & Run

For all six dynamic column types in detail, see Create Dynamic Column.

What you built

You can now enrich any dataset with AI-generated columns, vector-retrieved context, parsed JSON fields, conditional routing, and inline evaluations — all from the FutureAGI dashboard.

  • Generated summaries with Run Prompt
  • Labeled sentiment with Classification
  • Extracted entities with Extract Entities
  • Fetched vector DB context with Retrieval
  • Parsed JSON fields with Extract JSON Key
  • Routed by priority with Conditional Node

Next steps

Was this page helpful?

Questions & Discussion