Extract Data
Extracts data from texts, documents, or files using LLM models.
Overview
This procedure extracts data from texts, images, documents, and files. Using LLM models, it identifies and retrieves the text content, making it easy to access and work with the information in those documents.
Before using this procedure, ensure you have added the Document Processing Book to your agent. After learning the Book, make sure to create a new Playground for it to take effect.
This procedure can be used to operate on PDFs, documents, images, text or files. It is not currently supported for .csv files.
Syntax
Below is a line-by-line overview of the automation syntax. Expand each line to learn more.
extract data from the source
What does it do?
Instructs the system to begin data extraction from the specified source.
Where does it go?
This phrase should be written on a new line.
Is it required?
✅ Yes — This phrase is required.
Does it require data?
✅ Yes — Replace the source with a reference to a data source in your automation (ex - the file, the document, the text, etc.).
Example
extract data from the documentthe {position} field is "{name}"
What does it do?
Specifies the name of a field to be extracted from the source.
Where does it go?
Indented under extract data from the source.
Is it required?
✅ Yes — This phrase is required.
Does it require data?
✅ Yes — The position should be a word like "first", "second", "third", etc. to indicate the order of the field to extract from the source. The name should be a text value that identifies the field.
Example
the first field is "invoice number"the {position} field's rule is "{rule}"
What does it do?
Specifies the rule to be followed for the field extraction.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — The position should be a word like "first", "second", "third", etc. to indicate the order of the field to extract from the source. The rule should be a text value that specifies a rule for the field extraction.
Example
the first field's rule is "keep just the first four digits"the {position} field's format is "{format}"
What does it do?
Specifies the format of the fields that need to be extracted from the source.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — The position should be a word like "first", "second", "third", etc. to indicate the order of the field to extract from the source. The format should be one of the following values: number, string, or date. The default format is string.
Example
the {position} field's default is "{default}"
What does it do?
Specifies the field's default value.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — The position should be a word like "first", "second", "third", etc. to indicate the order of the field to extract from the source. The default should be the default value itself.
Example
the common default value is x
What does it do?
Specifies the global default value. This will be overwritten by a field's default value.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — Replace x with any value to use as the common default.
Example
the openai model is "openai-model"
What does it do?
Specifies the name of the OpenAI model to use to generate the response.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — Replace openai-model with a text value containing the model's name. The default is gpt-4o-latest.
Example
the gemini model is "gemini-model"
What does it do?
Specifies the name of the Gemini model to use to generate the response.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — Replace gemini-model with a text value containing the model's name. The default model is gemini-2.5-pro (US region only).
Example
the input schema is x
What does it do?
Specifies a JSON or YAML schema that defines the fields to extract, their formats, rules, and default values. This allows programmatic field definition instead of using individual field syntax.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — Replace x with a stringified JSON, YAML string, or S3 URL pointing to a JSON file.
JSON format: {"fields": [{"name": "field_name", "format": "string|number|date", "rule": "extraction rule", "default": "default_value"}], "common_default": "value"}
S3 URL format: s3://bucket-name/path/to/schema.json
Example
the visual reference is x
What does it do?
Specifies a document or image to guide the LLM as a visual reference, improving accuracy when extracting data. This is useful in multi-document scenarios or when the reference differs from the source text.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — Replace x with a reference to a document, image, or file.
Example
the extraction mode is "extraction-mode"
What does it do?
Specifies an extraction mode for the procedure.
Where does it go?
Indented under extract data from the source.
Is it required?
❌ No — This phrase is optional.
Does it require data?
✅ Yes — Replace extraction-mode with one of the following options:
"no ocr": Send the document image directly to the LLM without OCR text. Faster and usually just as accurate."file_upload": Upload the PDF directly to the LLM provider's Files API. Best for very large documents (100+ pages) as it avoids token limits from base64 encoding. Supports both OpenAI (gpt-4o models) and Gemini (gemini-2.0-flash, gemini-2.5-pro) models.
Example
Examples
1. Extract Multiple Fields from a Document
2. Extract Data from Text
the data's invoice numbers: 123456
3. Extract Multiple Fields from Text (Using Default Values)
invoice amount: 5678 invoice date: 21 jan 2023 invoice location: San Jose invoice number: 1234
4. Extract Data Using JSON Input Schema
invoice_number: INV-12345 invoice_date: 2023-01-15 amount: 1500.00 shipping_address: 123 Main St, San Jose, CA
5. Extract Data Using S3 URL Input Schema
order_number: ORD-98765 order_date: 2023-12-01 total_amount: 2750.50
6. Extract Data from Large Document Using File Upload Mode
invoice number: INV-123456 total amount: 5000.00
Last updated
Was this helpful?
