Skip to main content

Description

Use LLM Custom when you need to extract several fields from the current conversation in one call. It is best for small, flat groups of related values, such as contact details or claim details. Use LLM Data instead when you only need one value.

Manual Inputs

Reasoning

How hard the model works to interpret the information.
  • low — fields are directly stated
  • medium — the caller may imply values or answer in a messy way
  • high — fields need careful normalization, or there are competing details (can be slower)

Transcript

How much conversation history the tool reads: Full, or the last 2, 4, 6, 8, or 10 messages.
  • Use Last 2 / Last 4 when fields should come from the caller’s latest answer.
  • Use Last 6 / Last 10 when values may be spread across a short exchange.
  • Use Full when earlier context matters — avoid it for simple extraction, since older details can confuse the result.

System Prompt

Optional instruction that applies to every field. Appended before the transcript and schema.
Don’t repeat every field description here — put field-specific rules in the schema.

Schema JSON

One parent JSON object. Each key is a flat output field. Each value must include type and description.
Supported field types: Use nullable fields (["string", "null"]) when the customer might not provide a value. Keep the schema flat. Do not nest objects — use field names like customer_email instead of customer.email. Do not include wrapper fields such as schema, required, or additionalProperties; the tool adds those internally.

Response Map

Optional. Maps each destination variable to the field name returned by the schema. The left side is the destination variable; the right side is the extracted field name.
Use a blank field name on the right to write the whole extracted object into one variable.

Manual Outputs


Conditions

Success (true)

The LLM returned valid JSON matching the schema. If a Response Map is configured, fields are written to their destinations.

Failure (false)

The schema was invalid, the transcript was empty, or extraction failed.

Variables this tool writes

LLM Custom has no namespace of its own. It writes only the destination variables you list in the Response Map, and only on success — when the model returns schema-valid JSON. On failure (an invalid schema, an empty transcript, or an LLM timeout) nothing is written and each mapped variable keeps whatever value it already held. Because the destinations are yours, the Type of each is whatever you declared for the matching field in the Schema JSON, and the value is whatever the model extracted. The worked example below maps a four-field schema (first_name, email, claim_number, incident_date) into two namespaces:
A field the model cannot fill comes back null (when you mark it nullable in the schema) and is written as an empty value — the step still succeeds. Leave the field name on the right of a Response Map row blank to write the whole extracted object into a single variable instead. Map into any declared variable — a custom scratch variable such as {{custom.claim_number}}, or a global such as {{contact.email}}. For the full set of namespaces you can target, see Variables.

Example Usage

Contact details:
Claim details:

Common Issues

  • Schema fails validation — check that every field has both type and description.
  • Unsupported type error — use string, number, integer, boolean, array, or null.
  • Array fields fail — add an items definition describing the list item type.
  • Nested objects fail — flatten the schema into top-level fields.
  • Wrong value is written — check the Response Map field name on the right side.
  • Noisy extraction — reduce Transcript and make field descriptions more specific.

Next Steps