Agent Call
Learn about the Agent Call node
The Agent Call Node allows you to leverage Large Language Models (LLMs) directly within your workflows. By pairing deterministic automation (if-then logic, API triggers, data transformations) with autonomous AI reasoning, you can handle unstructured data, extract insights, and make dynamic routing decisions on the fly.
Overview
When executed, the Agent Node calls an LLM using a configured provider and model, processes your prompt (along with any dynamic context), and optionally formats the model's response into clean, structured data for downstream nodes.
Node Configuration Fields
| Field | Type | Required | Description |
|---|---|---|---|
agentConfigId | Select / Expression | Yes | Pick a pre-configured Agent from your settings, or enter a {{ ... }} expression to dynamically resolve an Agent ID from previous nodes. |
prompt | Text / Expression | Yes | The instruction or context sent to the LLM. Supports embedded {{ ... }} expressions. |
structuredOutputSchema | JSON Schema | No | A valid JSON Schema object. Forces the LLM to respond in strict JSON matching the schema, making downstream parsing effortless. |
Tip
You can reference outputs from previous nodes across most fields using {{ ... }} syntax. To dive deeper into expression handling, visit the scripting documentation.
Structured Output Schema Examples
By defining a structuredOutputSchema, you bypass messy regular expressions or string parsing. Here are copy-and-paste examples covering some workflow use cases:
Simple Entity Extraction
Extract basic company metadata with boolean flags.
{
"type": "object",
"properties": {
"company_name": {
"type": "string",
"description": "The fully qualified name of the company."
},
"is_public": {
"type": "boolean",
"description": "True or false value indicating whether this is a public or private company."
}
},
"required": ["company_name", "is_public"]
}Invoice Line Items Extraction
Extracts a list of individual purchased items directly from raw receipt or invoice text.
{
"type": "array",
"description": "A list of line items extracted from an invoice or receipt.",
"items": {
"type": "object",
"properties": {
"item_description": {
"type": "string",
"description": "Name or description of the product or service."
},
"quantity": {
"type": "integer",
"description": "Number of units purchased."
},
"unit_price": {
"type": "number",
"description": "Price per individual unit."
},
"total_amount": {
"type": "number",
"description": "Total price for this line item (quantity * unit_price)."
},
"taxable": {
"type": "boolean",
"description": "Whether sales tax applies to this item."
}
},
"required": ["item_description", "quantity", "unit_price", "total_amount"]
}
}Market Research Competitor List
Parses unstructured market research reports into a clean array of competitor profiles.
{
"type": "array",
"description": "A list of competing companies identified in the market research text.",
"items": {
"type": "object",
"properties": {
"company_name": {
"type": "string",
"description": "Name of the competing enterprise."
},
"is_direct_competitor": {
"type": "boolean",
"description": "True if offering a direct product substitute, false if indirect."
},
"key_strengths": {
"type": "array",
"description": "List of key competitive advantages mentioned.",
"items": {
"type": "string"
}
},
"pricing_tier": {
"type": "string",
"enum": ["budget", "mid-market", "enterprise", "unknown"],
"description": "Target pricing segment of the competitor."
}
},
"required": ["company_name", "is_direct_competitor", "key_strengths"]
}
}Action Items Extractor (Array of Objects)
Extract an array of tasks with deadlines and assignees.
{
"type": "object",
"properties": {
"meeting_title": {
"type": "string"
},
"action_items": {
"type": "array",
"description": "List of distinct tasks extracted from meeting notes.",
"items": {
"type": "object",
"properties": {
"task": {
"type": "string",
"description": "Description of the action item."
},
"assignee": {
"type": "string",
"description": "Person responsible, or 'Unassigned' if unknown."
},
"due_date": {
"type": "string",
"description": "ISO 8601 date string (YYYY-MM-DD) or relative phrase like 'Next Monday'."
}
},
"required": ["task", "assignee"]
}
}
},
"required": ["meeting_title", "action_items"]
}User Risk Profile (Nested Objects)
Handle nested structures to assess fraud or compliance risks.
{
"type": "object",
"properties": {
"user_id": {
"type": "string"
},
"risk_assessment": {
"type": "object",
"properties": {
"risk_level": {
"type": "string",
"enum": ["LOW", "MEDIUM", "HIGH", "CRITICAL"]
},
"flags": {
"type": "array",
"items": { "type": "string" },
"description": "List of specific reasons triggering a risk flag."
},
"requires_manual_review": {
"type": "boolean"
}
},
"required": ["risk_level", "flags", "requires_manual_review"]
}
},
"required": ["user_id", "risk_assessment"]
}Product Metadata Enriched (Strings, Numbers, & Optional Fields)
Standardize unstructured product copy into structured e-commerce data.
{
"type": "object",
"properties": {
"product_name": {
"type": "string"
},
"price": {
"type": "number",
"description": "Estimated or extracted numerical price value."
},
"currency": {
"type": "string",
"description": "3-letter ISO currency code (e.g., USD, EUR)."
},
"tags": {
"type": "array",
"items": { "type": "string" },
"description": "Search optimization keywords."
},
"in_stock": {
"type": "boolean"
}
},
"required": ["product_name", "price", "currency", "tags"]
}Schema Compatibility Note
While these JSON schemas follow standard structures, underlying LLM engines (OpenAI, Claude, Gemini, etc.) handle JSON schema enforcement differently.
The core objective is to give the LLM a clean, unambiguous schema so it understands the shape and context of the data you want back. You can explore external blogs and provider docs to learn more about specific constraints or advanced strict-mode options for your configured models.