# mulesoft IDP - Full Documentation
---
product: IDP
---
# Adding Reviewers
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Add one or more reviewers to a document action to verify and correct the documents queued for review
due to low confidence score values or missing required fields. You can add single Anypoint Platform
users or teams as reviewers.
Add reviewers to a new document action while creating it or an existing document action by editing
it.
## Before You Begin
Ensure you have any of the following Anypoint permissions:
Manage Actions
Gives a user complete access to IDP and assigns reviewer permission by default for every document
action.
Build Actions
Enables a user to create, edit, publish, and execute document actions and assign reviewers to the
actions.
## Add Reviewers to a New Document Action
To create a new document action and add reviewers:
1. In the sidebar, click **Document Actions**.
2. Click **Create New**.
3. Select the type of document to use as a template, specify a name for your document action, and
click **Create**.
4. In the **Reviewers** panel, click **Edit**.
5. Search for a user or team and click **Add**.
Repeat this step until you finish adding reviewers.
6. Click **Apply**.
## Add Reviewers to an Existing Document Action
To edit an existing document action and add reviewers:
1. In the navigation panel, click **Document Actions**.
2. Click a document action to open its view page.
3. In the **Reviewers** panel, click **Edit**.
4. Search for a user or team and click **Add**.
Repeat this step until you finish adding reviewers.
5. Click **Apply**.
## See Also
- [Publishing Document Actions](https://docs.mulesoft.com/idp/publishing-document-actions)
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Reviewing Processed Documents](https://docs.mulesoft.com/idp/reviewing-processed-documents)
---
product: IDP
---
# Analyzing Documents Using Pre-Built Schemas
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
To analyze any type of document and fully customize the output structure instead of using pre-built
schemas, see
[Analyzing Documents With Custom User-Defined Schemas](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein).
A _document action_ is a multi-step process that uses multiple AI engines to scan a document, filter
out fields, and return a structured response as a JSON object. Each document action defines the
types of documents it expects as input, the fields to extract, and the fields to filter out from the
response.
You can hide fields, mark fields as required, configure the minimum confidence score accepted for
each field to extract, and configure Prompts to enhance and refine the data-extraction process by
asking questions using natural language.
Create a document action using a predefined type as a template, and then specify the fields that are
mandatory, the fields that must be excluded from the JSON response, and the minimum confidence score
expected for each field.
After you create a new document action, you can add reviewers and publish it to Anypoint Exchange,
which enables RPA to execute the document action and also creates an API that you can call from any
external system.
> [!WARNING] Do not delete document action assets from Anypoint Exchange. Because the asset is
> discoverable, existing integrations might be using it. Deleting the asset from Exchange breaks
> those integrations and leaves an orphan document action in the IDP UI that is no longer tied to
> any Exchange asset. To retire a document action, see
> [Retire a Document Action](https://docs.mulesoft.com/idp/publishing-document-actions#retire-document-action).
When you create a document action, ensure that the configured schema works for each uploaded
document. If you can’t customize the schema to work with all sample documents, consider creating
multiple document actions. For example, purchase orders from multiple vendors might be different
enough to require a separate document action for each vendor.
Creating a document action with a pre-built schema requires the following tasks:
1. [Upload Sample Files and Preview the Results](#upload-files)
2. [Configure the Schema for the Extraction](#configure-schema)
Unless you select the Generic document action, which doesn’t use a schema.
3. [Add Prompts to Refine the Result](#add-prompts)
Processing documents consumes Automation Credits. IDP charges Automation Credits per execution,
based on the number of pages in the submitted document, regardless of whether the document was
previously processed. See
[Automation Credits Usage and Rates](https://docs.mulesoft.com/general/automation-credits-usage-and-rates) for details.
> [!IMPORTANT] Resubmitting the same document, retrying a failed or partially failed execution, and
> reprocessing a document all create a new execution. Each of these executions consumes Automation
> Credits in full. IDP doesn’t deduplicate submissions or discount credits for documents that were
> already processed.
## Before You Begin Creating Document Actions
Ensure you have any of the following Anypoint permissions:
Manage Actions
Gives a user complete access to IDP and assigns reviewer permission by default for every document
action.
Build Actions
Enables a user to create, edit, publish, and execute document actions and assign reviewers to the
actions.
## Upload Sample Files and Preview the Results
To start creating a new document action, upload sample files to test the extraction process:
1. In the sidebar, click **Document Actions**.
2. Click **Create New**.
3. Select the type of document to use as a template, specify a name for your document action, and
click **Create**.
4. Click **Select files** and upload sample files to analyze.
You can upload up to 10 files with a size limit of 8 MB per file.
5. Click **Run** to analyze the files and get a preview of the results.
The document action editor shows a preview of the analyzed document that you can zoom in and out for
better visibility. Navigate the different pages of the document using the **Previous** (**<**) and
**Next** (**\>**) buttons. Switching pages updates the extracted values shown in the **Outputs**
section.
IDP highlights fields in yellow when the extracted values have a confidence score below the
configured threshold.
After uploading the sample files, configure the schema.
## Configure the Schema for the Extraction
If you are creating a Generic document action, skip this step as there’s no schema to configure.
Instead, use prompts to extract the data from your documents.
Configure the schema by selecting fields to hide from the response, fields that are required, and
the minimum confidence score accepted for each field:
1. In the **Outputs** section, click **Fields** and select any of the extracted field names to
configure the following settings:
- **Visibility**: defines if this field shows in the output JSON result. Click **Visibility**
() to hide this field.
- **Threshold**: the minimum required confidence score accepted for this field. If the returned
**Confidence** value is below the threshold, the document is queued for human review.
See [Confidence Scores by Model](https://docs.mulesoft.com/idp/supported-models#confidence-scores) for details about using
models with self-reported confidence scores.
- **Required**: select this option to send the document to review if the field is missing or
can’t be extracted.
You can click **Focus** () to center the preview in the
corresponding field.
2. If your document contains tables, click **Tables** to configure the extraction settings for the
table columns.
After configuring the schema, add Prompts to your document action.
## Add Prompts to Refine the Result
Add Prompts to refine the results of the extraction by asking questions about the document using
natural language:
1. In the **Outputs** panel, click **Prompts**.
2. Click **Add New**.
3. Configure the required details:
- **Name**: a unique name for the query.
- **Instruction**: a unique question or request in English, using natural language.
> [!WARNING] Prompts don’t support special characters. Ensure you use alphanumeric characters
> when writing your prompts. This limitation doesn’t apply to documents, which can contain any
> type of characters or symbols.
- **Required**: select this option to send the document to review if the question can’t be
answered.
- **Confidence Threshold**: the minimum accepted value to prevent the document from getting
queued for review.
4. Click **Add**.
5. Click **Run** to analyze the document again and see the results of the prompts.
6. Click **Save**.
### Enhance Data Extraction with Einstein
By default, IDP uses its natural language processing model (IDP NLP) to extract data based on the
configured prompts. When you create a document action, you can select Einstein to analyze the
document and extract the data.
Use Einstein to answer complex questions about the document, such as asking the total of an invoice
after deducting taxes and other concepts, or to extract data from non-standard documents such as a
driver’s license or a medical record that contains handwriting.
To improve data extraction using Einstein to answer your prompts, see
[Enhancing Data Extraction with Einstein](https://docs.mulesoft.com/idp/enhancing-data-extraction-with-einstein).
## Configure Document Action Settings
After you create a document action, click **Settings** to configure it. The available settings
depend on when you created the document action:
| Setting | Description | Available From | Considerations |
|---|
| Show a bounding box around the analyzed value in the document preview. | | Available for Generic document actions with customized schemas. Supported only for Gemini models with Multimodal enabled in the document action. When enabled, confidence score for the field reflects extraction and label geometry. Location callouts support a maximum of 40 fields, including table cells. Each table cell counts as a field. Enable this feature if your document action contains 40 or fewer fields and table cells combined. For the best experience with location callouts, treat every field and table item as a single entity that returns a single value, rather than multiple values or JSON.
|
| Enables the model to read and interpret images within documents. | | |
| Select the predictive large language model (LLM) to use when executing this document action. | | Choose the model that best fits your document processing needs. See Supported Models for additional details about each model. |
| Mask personally identifiable information from your documents before sending them to the predictive model. | | Salesforce Organization Preferences override this setting. Reduces character limit to 120,000 per request. Cannot be used simultaneously with Image Recognition. For more information, see Einstein Trust Layer.
|
> [!NOTE] To access all new features, create a new document action.
## See Also
- [Adding Reviewers](https://docs.mulesoft.com/idp/adding-reviewers)
- [Publishing Document Actions](https://docs.mulesoft.com/idp/publishing-document-actions)
- [RPA Overview](https://docs.mulesoft.com/rpa-home/)
- [Analyzing Documents With Custom User-Defined Schemas](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein)
---
product: IDP
---
# Analyzing Documents With Custom User-Defined Schemas
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Analyze any type of document and fully customize the output structure by creating a Generic document
action and enabling **Customize Schema**. Define the output fields and tables and configure prompt
instructions for Einstein to analyze the document and extract the data.
A _document action_ is a multi-step process that uses multiple AI engines to scan a document, filter
out fields, and return a structured response as a JSON object. Each document action defines the
types of documents it expects as input, the fields to extract, and the fields to filter out from the
response.
Enabling **Customize Schema** reduces the number of requests because IDP queries the entire document
in one prompt, rather than making one request per prompt to Einstein as in a Generic document action
without **Customize Schema** enabled.
You cannot enable **Customize Schema** for existing document actions, you must create a new Generic
document action.
Einstein supports these predictive models:
- OpenAI’s `GPT-4o (gpt-4o)` LLM
- OpenAI’s `GPT-4o Mini (gpt-4o-mini)` LLM
- OpenAI’s `GPT-5.1` LLM
- OpenAI’s `GPT-5.2` LLM
- Google’s `GEMINI-3.5 Flash` LLM
- Anthropic’s `Claude Sonnet 4.6` LLM
- Anthropic’s `Claude Opus 4.6` LLM
> [!WARNING] **Einstein OpenAI GPT-4o and Einstein OpenAI GPT-4o Mini retire January 31, 2027**.
>
> To prevent service interruption, migrate actions to a supported model by January 31, 2027.
Einstein accesses these models through the Salesforce Einstein Trust layer, which is part of the
Salesforce Einstein platform.
Select the model to use during document analysis by clicking **Settings** in the document action
editor.
> [!NOTE] Document actions created before February 5th support only OpenAI’s
> `GPT-4o (gpt-4o-2024-05-13)`. To enable model selection and the new models, create a new document
> action. See [Configure Document Action Settings](#settings) for details about feature availability
> and configuration.
> [!NOTE] Einstein doesn’t use customer data to train any models for document analysis in IDP.
After you create a document action, add reviewers and publish it to Anypoint Exchange. Publishing
the document action enables RPA to execute it and also creates an API that you can call from any
external system to analyze your documents.
> [!WARNING] Do not delete document action assets from Anypoint Exchange. Because the asset is
> discoverable, existing integrations might be using it. Deleting the asset from Exchange breaks
> those integrations and leaves an orphan document action in the IDP UI that is no longer tied to
> any Exchange asset. To retire a document action, see
> [Retire a Document Action](https://docs.mulesoft.com/idp/publishing-document-actions#retire-document-action).
For instructions about using pre-built schemas, see
[Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
Processing documents consumes Automation Credits. IDP charges Automation Credits per execution,
based on the number of pages in the submitted document, regardless of whether the document was
previously processed. See
[Automation Credits Usage and Rates](https://docs.mulesoft.com/general/automation-credits-usage-and-rates) for details.
> [!IMPORTANT] Resubmitting the same document, retrying a failed or partially failed execution, and
> reprocessing a document all create a new execution. Each of these executions consumes Automation
> Credits in full. IDP doesn’t deduplicate submissions or discount credits for documents that were
> already processed.
## Before You Begin
1. Ensure you have any of the following Anypoint permissions:
Manage Actions
Gives a user complete access to IDP and assigns reviewer permission by default for every
document action.
Build Actions
Enables a user to create, edit, publish, and execute document actions and assign reviewers to
the actions.
2. [Enable MuleSoft Anypoint Platform to publish MuleSoft assets to Salesforce](https://help.salesforce.com/s/articleView?id=platform.external_services_manage_your_mulesoft_anypoint_platform_connection.htm&type=5).
3. [Enable Einstein for Anypoint Platform](https://docs.mulesoft.com/access-management/enabling-generative-ai).
## Create a Generic Document Action and Enable Customize Schema
To analyze documents and fully customize the output structure, create a document action of the
Generic type and enable **Customize Schema**:
1. In the sidebar, click **Document Actions**.
2. Click **Create New**.
3. Select the **Generic** type.
4. Enable **Customize Schema**.
By enabling **Customize Schema** you can define fields and tables to create a structured output
for your analyzed documents. This feature also enables an enhanced preview of the fields and
tables in the document action builder.
If **Customize Schema** is disabled, you can still configure Einstein prompts to analyze the
document. See [Enhancing Data Extraction with Einstein](https://docs.mulesoft.com/idp/enhancing-data-extraction-with-einstein)
for instructions.
> [!WARNING] When you create a document action without enabling **Customize Schema**, requests
> are not optimized and every prompt counts as one API call to the LLM.
5. Provide a Name and click **Create**.
Next, use AI to discover the data to extract from the document or manually add the fields and tables
to extract.
## Discover Data to Extract from Your Documents with AI
You can use AI to automatically analyze the selected file and create the output.
1. In the document action builder, click **Select Files** and select the files to use as an example
or model for the extraction.
2. In the **Outputs** panel, select **Discover with AI** and click **Next**.
3. (Optional) Provide instructions in natural language to specify what information to extract.
4. Click **Discover**.
5. Click **Save**.
## Manually Add the Fields to Extract
To configure the fields to extract and define the structure of the output document:
1. In the document action builder, click **Select Files** and select the files to use as an example
or model for the extraction.
Skip this step if the example file is already loaded.
2. In the **Outputs** panel, click **Create Manually**.
3. Select the **Fields** tab.
4. Click **Start from Scratch** to add the first field.
5. Provide a name for the field and a prompt.
If you don’t configure a prompt, Einstein scans the document and automatically extracts the data
that better suits the field. However, make sure you test the output to confirm the extracted
field matches the expected result. Otherwise, configure a prompt to provide Einstein with
specific instructions about how to populate that field.
6. Click **Add New** to continue adding fields.
7. Click **Run** and verify the results of the extraction.
8. Click **Save**.
## Manually Add the Tables to Extract
To configure data extraction from tables:
1. In the document action builder, click **Select Files** and select the files to use as an example
or model for the extraction.
Skip this step if the example file is already loaded.
2. In the **Outputs** panel, click **Create Manually**.
3. Select the **Fields** tab.
4. Click **Start from Scratch** to add the first table.
5. Provide a name for the table and a prompt if necessary to configure the data to extract.
6. Click **Add New Column** and provide a name and prompt for the column.
- Continue adding columns until the table is complete.
7. If there are more tables to configure, click **Add New** and repeat the steps to add the table
columns.
8. Click **Run** and verify the results of the extraction.
9. Click **Save**.
After you finish configuring the output schema for your documents, add reviewers and publish your
document action.
> [!NOTE] Some models provide self-reported confidence scores, which become less reliable as the
> document action gets more complex. See
> [Confidence Scores by Model](https://docs.mulesoft.com/idp/supported-models#confidence-scores) for additional information.
## Configure Document Action Settings
After you create a document action, click **Settings** to configure it. The available settings
depend on when you created the document action:
| Setting | Description | Available From | Considerations |
|---|
| Show a bounding box around the analyzed value in the document preview. | | Available for Generic document actions with customized schemas. Supported only for Gemini models with Multimodal enabled in the document action. When enabled, confidence score for the field reflects extraction and label geometry. Location callouts support a maximum of 40 fields, including table cells. Each table cell counts as a field. Enable this feature if your document action contains 40 or fewer fields and table cells combined. For the best experience with location callouts, treat every field and table item as a single entity that returns a single value, rather than multiple values or JSON.
|
| Enables the model to read and interpret images within documents. | | |
| Select the predictive large language model (LLM) to use when executing this document action. | | Choose the model that best fits your document processing needs. See Supported Models for additional details about each model. |
| Mask personally identifiable information from your documents before sending them to the predictive model. | | Salesforce Organization Preferences override this setting. Reduces character limit to 120,000 per request. Cannot be used simultaneously with Image Recognition. For more information, see Einstein Trust Layer.
|
> [!NOTE] To access all new features, create a new document action.
## See Also
- [Adding Reviewers](https://docs.mulesoft.com/idp/adding-reviewers)
- [Publishing Document Actions](https://docs.mulesoft.com/idp/publishing-document-actions)
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [RPA Overview](https://docs.mulesoft.com/rpa-home/)
---
product: IDP
---
# Best Practices and Optimization
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
As you design and build your IDP implementation, follow these best practices to optimize extraction
accuracy, secure your IDP workflow, and plan capacity for production workloads:
- [Data Extraction Best Practices](https://docs.mulesoft.com/idp/data-extraction-best-practices)
Design effective prompts, address data quality issues, and configure checkbox detection for
consistent results.
- [Security Best Practices](https://docs.mulesoft.com/idp/security-best-practices)
Implement granular access control and callback authentication to align with enterprise security
standards.
- [Performance Benchmarks](https://docs.mulesoft.com/idp/performance-benchmark)
Use benchmark data to establish SLAs and plan capacity for your document processing volumes.
## See Also
- [Quotas and Limits](https://docs.mulesoft.com/idp/quotas-and-limits)
---
product: IDP
---
# Data Extraction Best Practices
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
MuleSoft Intelligent Document Processing (IDP) uses multimodal AI models to extract, structure, and
normalize data from diverse document types. Follow these best practices to design effective prompts
and improve extraction accuracy.
## Prompt Engineering with Multimodal Models
MuleSoft IDP uses multimodal models to deliver high accuracy by processing visual and textual
information together. These models understand layouts, tables, and handwritten content more
effectively than traditional OCR engines.
Effective prompt design is essential for consistent extraction. When designing prompts:
- Define what needs to be extracted
- Provide examples so the model learns the pattern
- Specify the response structure for consistency
### Use Specific Instructions About the Fields to Read
Detailed, context-aware prompts help the model anchor to the correct visual region.
| Incomplete Prompt | Detailed Prompt |
|---|
Extract the origin area code.
| Extract the Origin Area Code from the address section of the shipping document.
Examples: 'Origin Area Code: J02', 'Origin: JA15'.
Return only the code (such as J02 or JA15) without additional text.
|
### Add Logic for Filtering
Define what to include and exclude to avoid misinterpretations.
The following example shows how to filter specific email fields and specify a JSON response format:
```none
Extract the primary email address labeled 'From' or 'Sender.'
Do not extract 'Reply-To' or 'CC' addresses.
Return result as JSON: { 'PrimaryEmail': 'example@email.com' }.
If none exists, return null.
```
### Focus on Table Context
For complex tables or merged cells, instruct the model to ignore nearby data and focus on headers.
The following example shows how to target a specific table column and handle merged cells:
```none
In the table labeled 'Vehicle Details,' extract only the New/Used Status from the 'Status' column.
Ignore dimension information.
If the value is in a merged cell, interpret the topmost label as the column header.
```
## Data Quality and Troubleshooting
If your prompts are well-structured but the results are still inconsistent, the issue may relate to
data quality rather than the model itself. Multimodal models process documents visually, so visual
clarity is vital for accuracy.
### Common Data Quality Issues
| Issue | Description |
|---|
Resolution and Clarity | Low-resolution scans or blurred text can confuse the model’s vision layer. |
Complex Layouts | Merged table columns or dense formatting can make it difficult for the model to distinguish between data fields. |
Alignment Shifts | If headers are misaligned, the model might reference the wrong data column. For example, a scanned PDF where the header "Second Month of the Quarter" is shifted may lead to incorrect extractions. |
### Troubleshooting Strategy
Use tools such as Google Gemini as a testing environment to visualize what the model sees. After you
understand how the model interprets a specific column or label, adjust your prompt to better target
the layout.
If fields that are correctly returned as not found show a low or 0% confidence score, the selected
model might provide self-reported confidence scores. Prompt tuning doesn’t reliably fix this
behavior. Simplify the document action or select a different model. See
[Confidence Scores by Model](https://docs.mulesoft.com/idp/supported-models#confidence-scores) for additional information.
## Checkbox Detection Best Practices
Multimodal models excel at recognizing checkboxes that are often unsupported by text-only engines.
To maximize accuracy for selection-based fields:
- Enable Image Recognition
Set the document action to use Image Recognition mode in settings.
- Use Gemini 3.5
This model is the current recommended standard for high-fidelity checkbox detection.
- Convert PDF to Image
If your source file is a PDF, convert it to an image format such as JPG or PNG to ensure the model
captures the visual "checked" state correctly.
- Validate thoroughly
Test your document actions against a large, representative set of forms before moving to
production to account for different checkbox styles.
> [!NOTE] Future models from Gemini and OpenAI are expected to improve checkbox detection accuracy.
> As new models are onboarded, they are tested and observations are shared on the
> [supported models](https://docs.mulesoft.com/idp/supported-models) page.
## See Also
- [Security Best Practices](https://docs.mulesoft.com/idp/security-best-practices)
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Enhancing Data Extraction with Einstein](https://docs.mulesoft.com/idp/enhancing-data-extraction-with-einstein)
- [Example Einstein Prompts](https://docs.mulesoft.com/idp/example-einstein-prompts)
- [Supported Models](https://docs.mulesoft.com/idp/supported-models)
- [IDP Permissions](https://docs.mulesoft.com/idp/permissions)
---
product: IDP
---
# Enhancing Data Extraction with Einstein
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
By default, IDP uses its natural language processing model (IDP NLP) to extract data based on the
configured prompts. When you create a document action, you can select Einstein to analyze the
document and extract the data.
Use Einstein to answer complex questions about the document, such as asking the total of an invoice
after deducting taxes and other concepts, or to extract data from non-standard documents such as a
driver’s license or a medical record that contains handwriting.
Einstein supports these predictive models:
- OpenAI’s `GPT-4o (gpt-4o)` LLM
- OpenAI’s `GPT-4o Mini (gpt-4o-mini)` LLM
- OpenAI’s `GPT-5.1` LLM
- OpenAI’s `GPT-5.2` LLM
- Google’s `GEMINI-3.5 Flash` LLM
- Anthropic’s `Claude Sonnet 4.6` LLM
- Anthropic’s `Claude Opus 4.6` LLM
> [!WARNING] **Einstein OpenAI GPT-4o and Einstein OpenAI GPT-4o Mini retire January 31, 2027**.
>
> To prevent service interruption, migrate actions to a supported model by January 31, 2027.
Einstein accesses these models through the Salesforce Einstein Trust layer, which is part of the
Salesforce Einstein platform.
Select the model to use during document analysis by clicking **Settings** in the document action
editor.
> [!NOTE] Document actions created before February 5th support only OpenAI’s
> `GPT-4o (gpt-4o-2024-05-13)`. To enable model selection and the new models, create a new document
> action. See [Configure Document Action Settings](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein#settings) for
> details about feature availability and configuration.
> [!NOTE] Einstein doesn’t use customer data to train any models for document analysis in IDP.
To analyze any type of document with Einstein and fully customize the output structure, see
[Analyzing Documents With Custom User-Defined Schemas](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein).
Processing documents consumes Automation Credits. IDP charges Automation Credits per execution,
based on the number of pages in the submitted document, regardless of whether the document was
previously processed. See
[Automation Credits Usage and Rates](https://docs.mulesoft.com/general/automation-credits-usage-and-rates) for details.
> [!IMPORTANT] Resubmitting the same document, retrying a failed or partially failed execution, and
> reprocessing a document all create a new execution. Each of these executions consumes Automation
> Credits in full. IDP doesn’t deduplicate submissions or discount credits for documents that were
> already processed.
## Before You Begin Using Einstein
1. Ensure you have any of these Anypoint permissions:
Manage Actions
Gives a user complete access to IDP and assigns reviewer permission by default for every
document action.
Build Actions
Enables a user to create, edit, publish, and execute document actions and assign reviewers to
the actions.
2. [Enable MuleSoft Anypoint Platform to publish MuleSoft assets to Salesforce](https://help.salesforce.com/s/articleView?id=platform.external_services_manage_your_mulesoft_anypoint_platform_connection.htm&type=5).
3. [Enable Einstein for Anypoint Platform](https://docs.mulesoft.com/access-management/enabling-generative-ai).
## Select the Response from Einstein
To configure Einstein to analyze and extract data for a given prompt:
1. In the document action builder, [add a new prompt](https://docs.mulesoft.com/idp/creating-document-actions#add-prompts) to a
document action or edit an existing one.
2. Run a document analysis to generate results in the **Outputs** panel.
3. Click the dropdown button (), next to a prompt’s result.
4. Select the response labeled **Einstein**.
When you query a published document action, IDP uses the model selected in each prompt to extract
the data for the corresponding field.
## See Also
- [Example Einstein Prompts](https://docs.mulesoft.com/idp/example-einstein-prompts)
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
---
product: IDP
---
# Example Einstein Prompts
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Following are some use cases and example Einstein prompts for each situation. These prompts are
based on the sample data used during each test and provide insight about creating prompts to analyze
and format your custom documents.
You can use these examples as starting points, test them against your documents, and modify them
until you obtain the expected result.
## Extract details from a US Driver’s License
The following Einstein prompt extracts data from a driver’s license ID document and outputs the
information in JSON format.
- Example document

- Example Prompt
```none
Identify key elements from the specified document and return them in JSON format.
Do not create new information, provide answers only from the text provided. The JSON format is as follows:
{
"id_data": {
"doc_number":,
"first_name": ,
"last_name": ,
"issue_date": ,
"dob": ,
"exp_date": ,
"state_region": ,
"height": ,
"class": ,
"eye_color": ,
"sex": ,
"weight": ,
"restrictions":,
"address": {
"street": ,
"city":,
"state": ,
"zip":
}
}
}
```
- Output
{ "id\_data": { "doc\_number": "12345678", "first\_name": "The Genius", "last\_name": "Einstein",
"issue\_date": "10/30/2024", "dob": "03/14/1879", "exp\_date": "10/31/2031", "state\_region":
"California", "height": "5'5\\"", "class": "D", "eye\_color": "BROWN", "sex": "M", "weight": "150
lb", "restrictions": "None", "address": { "street": "707 South Oakland Avenue", "city":
"Pasadena", "state": "CA", "zip": "91106" } } }
## Classify a Document With Multiple Pages
In this example, the source document is a PDF with multiple pages containing a timesheet summary
document with multiple entries. The goal is to classify the content by identifying the name of the
person in each page. For such a case, the following prompt returns a list in JSON format containing
the name of the person and the corresponding page number.
- Example document

- Example Prompt
```none
Classify each page of the following timesheet summary as a unique document type and also identify whether the page continues from the previous document type or it is a new one.
Summarize all the employee's names in the timesheet summary document and the pages where their timesheet entry is found.
Structure the output as a JSON where the employee name is the key and the page number is the value.
```
- Output
{ "Jane Almeida": 1, "Charles Montes": 2, "Albert Vignoli": 3, "Max the Mule": 4 }
## Extract Form Data as Key/Value Pairs Including Handwritten Values
The following example is a prompt that analyzes a medical certificate to extract key/value pairs and
considers handwriting during the extraction.
- Example document

- Example Prompt
```none
Analyze this form for a medical leave and extract its values. Don't extract document's title.
Present the data as key-value pairs in a JSON formatted response.
If you find a date, format it as YYYY/MM/DD.
If you find a list of handwritten symptoms, return them as an array and label them "Reason for Absence".
Do not create any facts of information, interpret only the information in the document.
An example output JSON is:
"Patient_Name": {
"value": "Paul Grant"
}
```
- Output
{ "Patient\_Name": { "value": "Paul Grant" }, "Date\_of\_Birth": { "value": "1988/11/02" },
"Case\_Number": { "value": "12345678" }, "1st\_Diagnosed\_Date": { "value": "2021/04/12" },
"Last\_Office\_Visit": { "value": "2024/09/01" }, "1st\_Exam\_Date\_for\_this\_Condition": {
"value": "2021/01/23" }, "Next\_Office\_Visit": { "value": "2024/10/23" }, "Reason\_for\_Absence": {
"value": \[ "Unable to complete the TPS reports on Saturday", "Hyperventilation during the session"
\] } }
## See Also
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Enhancing Data Extraction with Einstein](https://docs.mulesoft.com/idp/enhancing-data-extraction-with-einstein)
---
product: IDP
---
# Getting Started with Document Processing
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Before you analyze documents with IDP, you must create and publish document actions, the
configurable schema definitions containing the necessary instructions to process your documents.
After you publish a document action to Anypoint Exchange, you can programatically call the IDP API
to execute the document action and extract data from a document. As a result, the document action
analyzes the provided document and returns a response in JSON format with all the extracted fields.
You can query the IDP API to check the status of an execution at any time.
Processing documents consumes Automation Credits. IDP charges Automation Credits per execution,
based on the number of pages in the submitted document, regardless of whether the document was
previously processed. See
[Automation Credits Usage and Rates](https://docs.mulesoft.com/general/automation-credits-usage-and-rates) for details.
> [!IMPORTANT] Resubmitting the same document, retrying a failed or partially failed execution, and
> reprocessing a document all create a new execution. Each of these executions consumes Automation
> Credits in full. IDP doesn’t deduplicate submissions or discount credits for documents that were
> already processed.
## Document Actions
A _document action_ is a multi-step process that uses multiple AI engines to scan a document, filter
out fields, and return a structured response as a JSON object. Each document action defines the
types of documents it expects as input, the fields to extract, and the fields to filter out from the
response.
IDP provides preconfigured **Invoice** and **Purchase Order** templates for creating custom document
actions. Each template provides a set of expected fields to extract from the document into a
structured response. When creating a new document action, choose the type that aligns best with the
document to process. For example, the **Invoice** type can process invoices, receipts, and similar
documents. If none of these types align with your documents, use the **Generic** type to fully
customize the fields to extract by asking questions in natural language.
Configure document action settings to select the large language models (LLMs) to use when extracting
the data, enable PII masking or image recognition. IDP supports the following models:
- OpenAI’s `GPT-4o (gpt-4o)` LLM
- OpenAI’s `GPT-4o Mini (gpt-4o-mini)` LLM
- OpenAI’s `GPT-5.1` LLM
- OpenAI’s `GPT-5.2` LLM
- Google’s `GEMINI-3.5 Flash` LLM
- Anthropic’s `Claude Sonnet 4.6` LLM
- Anthropic’s `Claude Opus 4.6` LLM
> [!WARNING] **Einstein OpenAI GPT-4o and Einstein OpenAI GPT-4o Mini retire January 31, 2027**.
>
> To prevent service interruption, migrate actions to a supported model by January 31, 2027.
After you create a document action, publish it to Anypoint Exchange to make it available for
consumption from RPA and through the IDP API.
> [!WARNING] Do not delete document action assets from Anypoint Exchange. Because the asset is
> discoverable, existing integrations might be using it. Deleting the asset from Exchange breaks
> those integrations and leaves an orphan document action in the IDP UI that is no longer tied to
> any Exchange asset. To retire a document action, see
> [Retire a Document Action](https://docs.mulesoft.com/idp/publishing-document-actions#retire-document-action).
## Reviews
Document actions return a JSON response that contains the extracted fields and their detected
values. Each of these values has a confidence score that determines the accuracy of the value during
the extraction.
A document is queued for review if any of the following conditions is met:
- At least one non-hidden field shows a confidence score lower than the configured threshold.
- At least one non-hidden field marked as required is missing or could not be extracted.
After a reviewer verifies and approves the result, the execution status changes to `SUCCEEDED`. If a
reviewer dismisses the review instead, the status changes to `DISMISSED` and the extracted results
aren’t submitted. For the possible statuses and their definitions, see the
[Execution Status Reference](https://docs.mulesoft.com/idp/automate-document-processing-with-the-idp-api#execution-status-reference).
## IDP API
You can trigger the execution of any of your published document actions to analyze the provided
documents and query the results of the execution by using the IDP API. You must configure a
connected app to call the IDP API.
For configuration and usage instructions, see:
[Processing Documents and Retrieving Results With the API](https://docs.mulesoft.com/idp/automate-document-processing-with-the-idp-api).
## IDP and RPA Integration
You can execute your published document actions and query the results by using the Submit Document
to MuleSoft IDP and Retrieve Results from MuleSoft IDP action steps from MuleSoft RPA. You must
configure a connected app to call IDP and you must publish your document actions to make them
available to RPA.
For configuration and usage instructions, see:
[Processing Documents and Retrieving Results With RPA](https://docs.mulesoft.com/idp/automate-document-processing-with-rpa).
## See Also
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Publishing Document Actions](https://docs.mulesoft.com/idp/publishing-document-actions)
- [Reviewing Processed Documents](https://docs.mulesoft.com/idp/reviewing-processed-documents)
---
product: IDP
---
# IDP Glossary
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
## C
Callback URL
URL specified for IDP to call when the document processing finishes.
Confidence score
The probability that IDP has properly extracted a value from a document. Documents with low
confidence scores are sent for human review.
Connected app
Framework that enables external applications to call the IDP API.
## D
Document action
Configurable schema definitions containing instructions to process documents. You can create them
using preconfigured templates or customized fields.
## E
Execution ID
Identifier required to execute and retrieve results of document actions in MuleSoft RPA.
## F
Field extraction
Process of identifying and retrieving specific data fields from documents as defined in a document
action.
## H
HITL (Human-in-the-loop)
Process where human reviewers verify the accuracy of the extracted values from documents when the
confidence score is lower than the defined threshold. This ensures that the extracted data is
accurate and reliable.
## N
NLP (Natural Language Processing)
Branch of artificial intelligence that focuses on processing human language, including syntactic,
semantic, and pragmatic analysis, to facilitate human-computer interaction.
## P
Prompts
Instructions in natural language added to refine the extraction results.
## R
Reviewers
Individuals or teams that verify the accuracy of extracted values when the confidence score is low.
## S
Schema Configuration
Process of selecting and configuring extracted field names, visibility, threshold, and required
fields for document actions.
## U
Unstructured data
Information that does not have a predefined data model or is not organized.
---
product: IDP
---
# IDP Overview
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
MuleSoft Intelligent Document Processing (IDP) enables you to read invoices, purchase orders, and
other unstructured or semi-structured documents and then analyze and refine the extracted content
using AI capabilities to create a structured response. IDP supports multimodal large language models
(LLMs), which can interpret text and images.
With the simple IDP interface, you can create and publish document actions as APIs to use for
further integration with RPA, Mule applications, and other systems, without subscribing to external
services.
A _document action_ is a multi-step process that uses multiple AI engines to scan a document, filter
out fields, and return a structured response as a JSON object. Each document action defines the
types of documents it expects as input, the fields to extract, and the fields to filter out from the
response.
Configure prompts to extract specific data from a document using questions in natural language, for
example:
- What is the subtotal amount?
- What is the grand total?
- When is the due date?
- What is the highest price?
The confidence score represents the probability that IDP has properly extracted the value from a
document. For example, a confidence score of 100% means that IDP extracted the value with total
accuracy. However, a confidence score of 75% means that there’s a 25% chance that the extracted
value is not correct.
Each processed document shows a confidence score for each extracted field. When this value is lower
than the defined threshold, IDP sends the document for review by a human to verify the accuracy of
the extracted values. You can add single reviewers or teams to each document action.
For an introduction to IDP, see our Trailhead badge,
[MuleSoft IDP Basics](https://trailhead.salesforce.com/content/learn/modules/mulesoft-idp-basics)
(login required). Sign up if you don’t have a Trailhead account.
Processing documents consumes Automation Credits. IDP charges Automation Credits per execution,
based on the number of pages in the submitted document, regardless of whether the document was
previously processed. See
[Automation Credits Usage and Rates](https://docs.mulesoft.com/general/automation-credits-usage-and-rates) for details.
> [!IMPORTANT] Resubmitting the same document, retrying a failed or partially failed execution, and
> reprocessing a document all create a new execution. Each of these executions consumes Automation
> Credits in full. IDP doesn’t deduplicate submissions or discount credits for documents that were
> already processed.
## Analyze Documents With Custom User-Defined Schemas
Analyze any type of document and fully customize the output structure by creating a Generic document
action and enabling **Customize Schema**. You can define fields and tables in the output structure
and configure instructions for Einstein to analyze the document and extract the data for each field.
Einstein supports these predictive models:
- OpenAI’s `GPT-4o (gpt-4o)` LLM
- OpenAI’s `GPT-4o Mini (gpt-4o-mini)` LLM
- OpenAI’s `GPT-5.1` LLM
- OpenAI’s `GPT-5.2` LLM
- Google’s `GEMINI-3.5 Flash` LLM
- Anthropic’s `Claude Sonnet 4.6` LLM
- Anthropic’s `Claude Opus 4.6` LLM
> [!WARNING] **Einstein OpenAI GPT-4o and Einstein OpenAI GPT-4o Mini retire January 31, 2027**.
>
> To prevent service interruption, migrate actions to a supported model by January 31, 2027.
Einstein accesses these models through the Salesforce Einstein Trust layer, which is part of the
Salesforce Einstein platform.
Select the model to use during document analysis by clicking **Settings** in the document action
editor.
> [!NOTE] Document actions created before February 5th support only OpenAI’s
> `GPT-4o (gpt-4o-2024-05-13)`. To enable model selection and the new models, create a new document
> action. See [Configure Document Action Settings](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein#settings) for
> details about feature availability and configuration.
> [!NOTE] Einstein doesn’t use customer data to train any models for document analysis in IDP.
## Enhance Data Extraction With Einstein
When you add prompts to your Invoice or Purchase Order document actions, you can select whether to
use the default natural language processing model (IDP NLP) or Einstein to generate an answer for
each of your prompts. Einstein can answer complex questions that require further analysis of the
document instead of just searching and extracting a field. For example, you can ask Einstein what’s
the total amount due in an invoice after deducting taxes and other values from the document.
Use Einstein to analyze documents that don’t use a standard format or are difficult to read without
performing a complex analysis of the extracted data, such as a driver’s license or a certificate of
medical leave.
> [!NOTE] Einstein doesn’t use customer data to train any models for document analysis in IDP.
## See Also
- [Getting Started with Document Processing](https://docs.mulesoft.com/idp/document-processing)
- [Analyzing Documents With Custom User-Defined Schemas](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein)
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Publishing Document Actions](https://docs.mulesoft.com/idp/publishing-document-actions)
- [Supported Models](https://docs.mulesoft.com/idp/supported-models)
- [RPA Overview](https://docs.mulesoft.com/rpa-home/)
---
product: IDP
---
# IDP Permissions
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
The following list shows all Anypoint permissions in Access Management under the **Document
Actions** category:
Manage Actions
Gives a user complete access to IDP and assigns reviewer permission by default for every document
action.
Build Actions
Enables a user to create, edit, publish, and execute document actions and assign reviewers to the
actions.
Execute Published Actions
Enables a user to execute a published document action and retrieve the results of the execution.
## See Also
[Permissions in Anypoint Platform](https://docs.mulesoft.com/access-management/managing-permissions)
---
product: IDP
---
# IDP Release Notes
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
## October 16, 2026
## What’s New
- You can now dismiss a review without approving the extracted results.
For additional instructions, see
[Dismiss a Review Without Approving the Results](https://docs.mulesoft.com/idp/reviewing-processed-documents#dismiss-review).
- Removed Gemini 2.5 Flash model support.
Google is deprecating this model. Update any document actions that use it to a supported model.
IDP routes requests from Gemini 2.5 Flash to Gemini 3.5 Flash, until the model is retired from the
product.
For the list of available models, see [Supported Models](https://docs.mulesoft.com/idp/supported-models).
## October 5, 2026
## What’s New
- You can now use AI to discover data in a document and automatically create the output schema for
the document action.
For additional instructions, see
[Discover Data to Extract from Your Documents with AI](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein#discover-with-ai)
## September 2, 2026
## What’s New
- You can now import and export document action schemas as JSON files.
- You can now filter the review list by reviewer and document type.
## August 28, 2026
## What’s New
- IDP now supports analyzing documents in Japanese.
## July 10, 2026
## What’s New
- IDP now supports larger documents through the API.
You can now process documents up to 150 pages and 15 MB when using the API execution endpoint.
For complete file size limits, see [Quotas and Limits](https://docs.mulesoft.com/idp/quotas-and-limits).
- You can now use Gemini 3.5 Flash and Claude Opus 4.6 to analyze your documents.
For additional details on model support and performance, see [Supported Models](https://docs.mulesoft.com/idp/supported-models).
## June 5, 2026
## What’s New
- You can now use Claude Sonnet 4.6 to analyze your documents.
For additional details on model support and performance, see [Supported Models](https://docs.mulesoft.com/idp/supported-models).
- You can now view published document action versions.
Open earlier versions of your document actions to review their configuration without making
changes. For additional details and instructions, see
[View Published Document Action Versions](https://docs.mulesoft.com/idp/publishing-document-actions#view-published-versions).
- Removed Gemini 2.0 Flash 001 model support.
Google retired this model on June 1, 2026, so you can no longer select Gemini 2.0 Flash 001 to
analyze your documents. Update any document actions that use it to a supported model.
For the list of available models, see [Supported Models](https://docs.mulesoft.com/idp/supported-models).
## May 5, 2026
## What’s New
- You can now use OpenAI GPT 5.1 and 5.2 to analyze your documents.
For additional details on model support and performance, see [Supported Models](https://docs.mulesoft.com/idp/supported-models).
- You can now search and filter document actions in the **Document Actions** page.
## April 2, 2026
## What’s New
- Updated OpenAI model names.
- Einstein OpenAI GPT-4o Mini 0718 is now Einstein OpenAI GPT-4o Mini.
- Einstein OpenAI GPT-4o 0806 is now Einstein OpenAI GPT-4o.
## March 20, 2026
## What’s New
- Removed Gemini 3 model support.
This feature isn’t quite ready, so we’re removing it for now. We’ll let you know when it’s back
up.
## March 10, 2026
## What’s New
- You can now enable location callouts in Generic document actions with customized schemas.
For additional details about supported models and limitations, see
[Configure Document Action Settings](https://docs.mulesoft.com/idp/creating-document-actions#document-action-settings)
- You can now select Google’s GEMINI-3.0 Flash (Beta) model to analyze your documents.
For additional usage details and considerations about this model, see
[Supported Models](https://docs.mulesoft.com/idp/supported-models)
## October 29, 2025
## What’s New
- You can now select Google’s GEMINI-2.5 Flash model to analyze your documents.
## June 3, 2025
## What’s New
- You can now rotate documents in the document action builder preview and review task preview.
The rotation is for visual assistance and does not modify the original file.
## Fixed Issues
| Issue Resolution | ID |
|---|
For the emails field in Purchase Order and Invoice actions, IDP now returns null instead of an empty array [] in the execution response after reviewing the associated task. | |
## May 20, 2025
## What’s New
- You can now **Submit** review tasks without having to scroll to the end of the fields list,
improving accessibility.
## May 8, 2025
## What’s New
- You can now enable image recognition in your document actions.
To enable this feature, see
[Configure Document Action Settings](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein#settings).
- You can now select Google’s GEMINI-2.0 Flash 001 model to analyze your documents.
To select the model to use, see
[Configure Document Action Settings](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein#settings).
For additional information about supported models, see [Supported Models](https://docs.mulesoft.com/idp/supported-models)
- Einstein prompts now support up to 128,000 input tokens per request.
For additional details about token consumption, see
[Token Usage and Estimation](https://docs.mulesoft.com/idp/quotas-and-limits#tokens).
- Data retention policies are updated:
- For all successful executions, IDP now retains the data for 24 hours.
- IDP now retains any incomplete tasks for 30 days.
## February 5, 2025
## What’s New
- You can now analyze any type of document and fully customize the output structure by creating a
Generic document action and enabling **Customize Schema**.
For more information, see
[Analyzing Documents With Custom User-Defined Schemas](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein).
- Generic document actions now support using non-English characters for prompt instructions when
**Customize Schema** is enabled.
- New document actions now support the `GPT-4o (gpt-4o-2024-08-06)` and
`GPT-4o Mini (gpt-4o-mini-2024-07-18)` LLM Models.
- New document actions now support masking any personally identifiable information from your
documents before sending it to the predictive model.
- The API portal documentation for IDP assets published to Exchange now includes the `valueOnly`
query parameter.
- You can now upload files in Base64 encoding for versioned action executions.
For an example API call, see
[Upload a Base64-encoded File](https://docs.mulesoft.com/idp/automate-document-processing-with-the-idp-api#upload-base64-file).
- IDP can now detect signatures in document actions that use Einstein.
## Fixed Issues
| Issue Resolution | ID |
|---|
Completed executions no longer stay in status ACKNOWLEDGED. | |
Failed executions that include Einstein prompts no longer show status IN_PROGRESS. | |
Required table columns are now shown in the corresponding page during reviews. | |
## November 20, 2024
## What’s New
- IDP now fully supports analyzing documents in French, Italian, and Portuguese.
- Organizations with Salesforce Einstein enabled now use Einstein as the default option for
answering prompts.
- IDP now supports non-latin characters in the file preview during document action creation.
## November 7, 2024
## What’s New
- You can now analyze your documents with Salesforce Einstein.
Use Einstein to analyze documents that don’t use a standard format or are difficult to read
without performing a complex analysis of the extracted data.
See [Analyze Documents with Einstein](https://docs.mulesoft.com/idp/creating-document-actions#einstein) for information about
configuring Einstein in your document actions.
## October 2, 2024
## What’s New
- IDP now supports analyzing TIFF files.
## September 26, 2024
## What’s New
- Invoice and Purchase Order data extraction accuracy is improved for all supported languages.
- Invoice and Purchase Order document actions now support extracting VAT and VAT Rate from tables.
## August 22, 2024
## What’s New
- IDP now fully supports analyzing documents in Spanish and German.
## May 8, 2024
## What’s New
- You can now define a callback URL for your executions.
See [Define a Callback URL](https://docs.mulesoft.com/idp/automate-document-processing-with-the-idp-api#callback-url) for
details and configuration instructions.
## April 29, 2024
## What’s New
- MuleSoft announces the release of Intelligent Document Processing (IDP).
## See Also
- [IDP Overview](https://docs.mulesoft.com/idp/)
- [Salesforce Help](https://help.salesforce.com)
- [MuleSoft Services](https://www.mulesoft.com/support-and-services)
- [Known Issues](https://help.salesforce.com/s/issues)
---
product: IDP
---
# Integrating IDP with Anypoint Studio
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Execute a published document action and retrieve the results from Anypoint Studio using that
document action’s IDP Runtime Service API connector. This connector generates automatically when you
publish a document action to Anypoint Exchange. Then, you can download it as a Mule connector from
Exchange.
Each document action version generates a different connector. For example, when you publish a
document action for the first time, it generates a connector in Exchange that executes version
`1.0.0` of this document action. Then, if you modify the document action and republish it as version
`1.1.0`, it generates a different connector that you must download and install in Studio to execute
this new document action version. Consider this behavior when building your integrations.
The IDP Runtime Service API connector has the following operations:
- **getDocumentActionExecution**
Retrieves the result of a document action execution.
- **postDocumentActionExecution**
Submits a document to IDP for processing.
## Before You Begin
Ensure you have the following Anypoint permissions:
Execute Published Actions
Enables a user to execute a published document action and retrieve the results of the execution.
If you already have a connected app configured for IDP, you don’t need the **Configure Connected
Apps** permission and you can use your existing connected app instead of creating a new one.
## Create a Connected App
To communicate with the IDP API, create a connected app with the following details:
- Type: `App acts on its own behalf (client credentials)`
- Scopes: `Execute Published Actions`
After you create the connected app, copy its **ID** and **Secret** for further use.
For more information, see
[Connected Apps in Anypoint Platform](https://docs.mulesoft.com/access-management/connected-apps-overview).
## Obtain the Access Token
After you configure the connected app, use the following `curl` command to get the token:
```bash
curl --location --request POST 'https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token' \ (1)
--header 'Content-Type: application/json' \
--data-raw '{
"grant_type": "client_credentials",
"client_id": "", (2)
"client_secret": "" (3)
}'
```
| 1 | If you are in the EU region, use the eu1.anypoint.mulesoft.com domain. |
| 2 | Replace <connected-app-client-id> with the client ID from your connected app. |
| 3 | Replace <connected-app-client-secret> with the client secret from your connected app. |
Use the access token when calling the IDP API.
## Configure the IDP Runtime Service API Connector
Before using its operations, configure the connector by providing the following values, either
manually or through a Global Configuration Element:
- **host**: Anypoint endpoint URL
Use the appropriate endpoint for your region:
- US East (Virginia): `idp-rt.us-east-1.anypoint.mulesoft.com`
- EU Central (Frankfurt): `idp-rt.eu-central-1.eu1.anypoint.mulesoft.com`
- **port**: HTTP port for the connection
For example: `443`
- **basePath**: Base path of the URL to call, without the protocol
- **protocol**: Protocol for the call, in uppercase
For example: `HTTPS`
- **Response timeout**: Response timeout for this operation
- **clientId**: Client ID of the connected app to call IDP
- **clientSecret**: Client Secret of the connected app to call IDP
- **accessTokenUrl**: URL to obtain the access token for your connected app
For example:
`[https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token](https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token)`
## Submit a Document to IDP
Use the **postDocumentActionExecution** operation to send a document to IDP and execute the
corresponding document action version.
Specify the details of the request in the **Postdocumentactionexecution request data** field of the
connector. The following is a sample request:
```bash
%dw 2.0
output multipart/form-data
---
{
parts : {
callback : {
headers : {
"Content-Type" : "text/plain"
},
content : '{"noAuthUrl": "https://{yourCallbackURL}.com"}'
},
file : {
headers : {
"Content-Disposition" : {
"name": "file",
"filename": "{myFile.jpg}",
"subtype": "form-data"
},
"Content-Type" : "image/jpg"
},
content : payload
}
}
}
```
The response from this operation contains the execution ID that you must use to retrieve the
execution results.
## Retrieve the Results of the Execution
Use the **getDocumentActionExecution** operation to get the results of a document action execution
by specifying its execution ID.
The following is a sample response from this operation, shortened for better readability:
```linenums
{
"id": "d68e099e-8d37-4188-905a-0eac68b7bf61",
"documentName": "invoice-1.jpg",
"status": "SUCCEEDED",
"pages": [
{
"page": 1,
"fields": {
"invoiceDate": {
"value": "1 June, 1983"
},
"invoiceNumber": {
"value": "8248"
}
...
},
"tables": {
"table1": [
{
"unitPrice": {
"value": ""
},
"price": {
"value": "$ 198.00"
}
...
}
]
},
"prompts": {
"business": {
"prompt": "what is the company main business",
"source": "document",
"answer": {
"value": null
}
}
}
}
]
}
```
## See Also
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Publishing Document Actions](https://docs.mulesoft.com/idp/publishing-document-actions)
---
product: IDP
---
# Performance Benchmarks
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
MuleSoft Intelligent Document Processing (IDP) performance benchmarks demonstrate how IDP performs
under controlled test scenarios, including document processing speed, system scaling behavior, and
response times under normal and peak load conditions. Use these metrics for capacity planning, SLA
establishment, and workload design.
## Understanding Benchmark Metrics
The benchmark data serves as planning and design guidance for IDP implementations. These results
support:
- Capacity planning: P95 latency values provide baselines for SLA planning
- Workload design: Typical loads near "moderate" ranges deliver predictable performance
- Load management: Peak throughput is supported, though brief queuing may occur
- Expectation setting: Performance can vary by document size, complexity, or network conditions
Use P95 latency as the baseline for SLA and capacity planning while keeping typical loads within
moderate ranges for optimal performance stability.
## Test Configuration
The benchmarks were conducted using controlled test scenarios to measure IDP performance across
multiple workload conditions.
| Component | Details |
|---|
Environment | STGX |
Document Type | 4.5MB single-page document |
Pods | 12-15 (autoscaling enabled) |
Concurrency | 30 concurrent threads |
Testing Tool | JMeter |
Test Duration | 15 minutes per scenario |
## Latency Types
When submitting documents to IDP, two timing measurements are critical for understanding system
performance.
| Latency Type | Description |
|---|
Initial Response Latency | Time from submission (POST) to acknowledgment that processing started |
Complete Operation Latency | End-to-end time from submission until processed data is available via GET or callback |
## Performance Benchmarks
The following performance metrics demonstrate IDP behavior under controlled load conditions with
4.5MB single-page documents.
### Key Metrics Summary
| Metric | P50 (Typical) | P95 (High Load) | P99 (Extreme Peak) |
|---|
Initial Response Latency | 0.59s | 1.32s | 2.57s |
Complete Operation Latency | 7.61s | 11s | 13.38s |
### Throughput and Scaling
- **Throughput:** ~2,000 requests per minute per tenant at peak load
- **Autoscaling:** Automatically scaled from 12 to 15 nodes under load
- **Queue Management:** Pending queue depth remained below 1,000 messages
- **Reliability:** 0% error rate with no 4xx or 5xx errors observed
## SLA Performance Guidelines
| Load Scenario | Requests per Minute | Average Latency | P95 Latency | Error Rate | Configuration |
|---|
Moderate Load | ~600 requests per minute | Initial: 0.5s Complete: 8.5s | Initial: 0.5s Complete: 8.46s | 0.49% | 5 threads for 15 minutes |
Peak Load | 2,000+ requests per minute | Initial: 1.3s Complete: 11s | Initial: 1.32s Complete: 11s | 0% | 30 threads for 15 minutes |
## Performance Insights
The benchmark results provide key insights into IDP response times and system reliability
characteristics under various load conditions.
### Response Times
- IDP acknowledges document submissions in under 1.5 seconds, even during heavy load
- End-to-end document processing completes in 7-11 seconds on average
- Response times remain consistent across different load scenarios
### Scaling and Reliability
- System auto-scales under pressure to sustain throughput up to ~2,000 requests per minute per
tenant
- No processing errors or performance degradation observed up to 30 concurrent threads
- Workloads can be confidently planned within these ranges for stable, high-volume document
processing
## System Specifications
The following specifications define system limits and infrastructure capabilities for IDP document
processing and platform requirements.
### Document Support
| Specification | Value |
|---|
Maximum File Size | 10MB |
Document Complexity Impact | Minimal for single-page documents; multi-page documents may show proportionally longer completion times |
Supported Formats | Standard document formats supported by IDP |
### Infrastructure Details
| Component | Details |
|---|
Test Region | STGX |
Autoscaling | Confirmed across all test runs |
Recovery Requirements | No 404/429/5xx errors; recovery not required during testing |
Failover Behavior | Not applicable during test scenarios |
## Considerations
The following considerations provide guidance for planning IDP implementations and understanding
factors that influence performance in production environments.
### Planning Recommendations
- Use these benchmarks as design guidance rather than hard performance limits
- Plan capacity using P95 latency values for SLA establishment
- Maintain workloads within moderate ranges for predictable performance
- Monitor queue depth and scaling behavior during production deployments
### Performance Variables
- Document size and complexity can impact processing times
- Network conditions may affect response times
- Concurrent load levels influence overall system performance
- Autoscaling behavior adapts to sustained load patterns
---
product: IDP
---
# Processing Documents and Retrieving Results With RPA
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
You can execute your published document actions with MuleSoft RPA by using the Submit Document to
MuleSoft IDP and Retrieve Results from MuleSoft IDP action steps in your automation projects. After
you publish a document action to Anypoint Exchange, it becomes available for consumption in RPA. You
must create a connected app and obtain the access token before you can use the IDP action steps in
RPA.
If you aren’t using RPA to execute your document actions, configure and call the IDP API, as
described in
[Processing Documents and Retrieving Results With the API](https://docs.mulesoft.com/idp/automate-document-processing-with-the-idp-api).
## Before You Begin
Ensure you have the following Anypoint permissions:
Execute Published Actions
Enables a user to execute a published document action and retrieve the results of the execution.
## Create a Connected App
To communicate with the IDP API, create a connected app with the following details:
- Type: `App acts on its own behalf (client credentials)`
- Scopes: `Execute Published Actions`
After you create the connected app, copy its **ID** and **Secret** for further use.
For more information, see
[Connected Apps in Anypoint Platform](https://docs.mulesoft.com/access-management/connected-apps-overview).
## Execute the Published Document Actions
To execute the published document actions, use the Submit Document to MuleSoft IDP action step in
RPA. This action step enables you to browse through your published document actions and execute them
by providing an Execution ID and the path to the file to process. Use the Execution ID when
configuring the Retrieve Results from MuleSoft IDP action step to pull the results from the
execution.
When you query a published document action, IDP uses the model selected in each prompt to extract
the data for the corresponding field.
The Submit Document to MuleSoft IDP action step executes document actions by impersonating a user in
your organization. Therefore, you must use authentication credentials of a user that has the Execute
Published Actions permission in Anypoint Platform.
See
[Submit Document to MuleSoft IDP](https://docs.mulesoft.com/rpa-builder/latest/toolbox-mulesoft-idp-submit-document-to-mulesoft-idp)
for configuration details.
## Retrieve the Results of the Execution
To retrieve the results of a document action execution, use the Retrieve Results from MuleSoft IDP
action step in RPA. This action step enables you to query the results of a document action execution
by providing an Execution ID that you used before in the corresponding Submit Document to MuleSoft
IDP execution.
When you query a published document action, IDP uses the model selected in each prompt to extract
the data for the corresponding field.
See
[Retrieve Results from MuleSoft IDP](https://docs.mulesoft.com/rpa-builder/latest/toolbox-mulesoft-idp-retrieve-results-from-mulesoft-idp)
for configuration details.
## See Also
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Publishing Document Actions](https://docs.mulesoft.com/idp/publishing-document-actions)
---
product: IDP
---
# Processing Documents and Retrieving Results With the API
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
You can automate the data extraction process by using the IDP API to integrate your document actions
with Mule applications and other systems. Integrating with IDP requires creating a connected app,
obtaining the access token, and calling the IDP API to execute document actions and retrieve the
results.
Use the IDP API to execute your published actions and retrieve the results of the execution. You can
also specify an HTTPS callback URL for IDP to call when the process finishes.
Instead of calling the IDP API to execute your document actions, you can use the Submit Document to
MuleSoft IDP and Retrieve Results from MuleSoft IDP action steps from MuleSoft RPA. For instructions
on integrating your document actions with MuleSoft RPA, see
[Processing Documents and Retrieving Results With RPA](https://docs.mulesoft.com/idp/automate-document-processing-with-rpa).
## Before You Begin
Ensure you have the following Anypoint permissions:
Execute Published Actions
Enables a user to execute a published document action and retrieve the results of the execution.
## Create a Connected App
To communicate with the IDP API, create a connected app with the following details:
- Type: `App acts on its own behalf (client credentials)`
- Scopes: `Execute Published Actions`
After you create the connected app, copy its **ID** and **Secret** for further use.
For more information, see
[Connected Apps in Anypoint Platform](https://docs.mulesoft.com/access-management/connected-apps-overview).
## Obtain the Access Token
After you configure the connected app, use the following `curl` command to get the token:
```bash
curl --location --request POST 'https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token' \ (1)
--header 'Content-Type: application/json' \
--data-raw '{
"grant_type": "client_credentials",
"client_id": "", (2)
"client_secret": "" (3)
}'
```
| 1 | If you are in the EU region, use the eu1.anypoint.mulesoft.com domain. |
| 2 | Replace <connected-app-client-id> with the client ID from your connected app. |
| 3 | Replace <connected-app-client-secret> with the client secret from your connected app. |
Use the access token when calling the IDP API.
## Execute the Published Document Actions
After you publish document actions, configure a connected app, and obtain the access token, you can
call the IDP API to execute your document actions.
### Supported Regions
IDP is available in these regions:
| Region | Base URL |
|---|
| https://idp-rt.us-east-1.anypoint.mulesoft.com
|
| https://idp-rt.eu-central-1.eu1.anypoint.mulesoft.com
|
Use the appropriate base URL for your region when calling the IDP API.
The following is a sample call that provides guidance about how to construct an API call to execute
a document action:
```bash
curl --location 'https://idp-rt.{region}.anypoint.mulesoft.com/api/v1/organizations/{orgId}/actions/{actionId}/versions/{actionVersion}/executions' \
--header 'Authorization: Bearer {token}' \
--form 'file=@"{pathToFile}"'
```
Replace `{region}` with either `us-east-1` or `eu-central-1.eu1` depending on your region.
When you query a published document action, IDP uses the model selected in each prompt to extract
the data for the corresponding field.
### Define a Callback URL
You can define a callback URL when you call IDP to execute your document actions. If defined, IDP
calls the callback URL when the document action execution finishes with state `SUCCEEDED`, `FAILED`,
`DISMISSED`, or `MANUAL_VALIDATION_REQUIRED`. The callback URL must use HTTPS.
To specify the callback URL, include the `callback` field in your API call and define a JSON value
with the callback URL. The following example adds a callback to the previous `curl` command example:
```bash
curl --location 'https://idp-rt.{region}.anypoint.mulesoft.com/api/v1/organizations/{orgId}/actions/{actionId}/versions/{actionVersion}/executions' \
--header 'Authorization: Bearer {token}' \
--form 'file=@"{pathToFile}"' \
--form 'callback="{\"noAuthUrl\":\"{callbackURL}\"}"'
```
### Upload a Base64-Encoded File
You can upload a Base64-encoded file when you call the IDP API to execute your versioned document
actions. For example:
```bash
curl --location 'https://idp-rt.{region}.anypoint.mulesoft.com/api/v1/organizations/{orgId}/actions/{actionId}/versions/{actionVersion}/executions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {token}' \
--data '{
"file": {yourBase64string},
"fileName": {testFileName.pdf}
}'
```
### Use a Different Salesforce Org to Execute Your Document Actions
If you have multiple Salesforce Orgs connected with your Anypoint Platform organization, you can
specify the Org to use when executing your document actions.
To specify a Salesforce Org, add the following header to the API call:
- `x-sfdc-core-tenant-id=<18-char-sfdc-org-id>`
Replace `<18-char-sfdc-org-id>` with your Salesforce Org ID.
## Retrieve the Results of the Execution
After a document action successfully processes a document, or after a reviewer verifies and submits
a document queued for review, the results are available for consumption. If a reviewer dismisses the
review, the execution status changes to `DISMISSED` and the extracted results aren’t submitted.
When you use the IDP API to execute your document actions, retrieve the results by calling the
`/executions` endpoint and providing an `executionId`, for example:
```bash
curl --location \
'https://idp-rt.{{region}}.anypoint.mulesoft.com/api/v1/organizations/{orgId}/actions/{actionId}/versions/{actionVersion}/executions/{executionId}' \
--header 'Authorization: Bearer {token}'
```
### Include Confidence Scores and Metadata in Results
By default, the API returns only the extracted field values. To retrieve additional metadata such as
confidence scores, field geometry (position and dimensions), and page numbers, add the
`valueOnly=false` query parameter to your GET request:
```bash
curl --location \
'https://idp-rt.{{region}}.anypoint.mulesoft.com/api/v1/organizations/{orgId}/actions/{actionId}/versions/{actionVersion}/executions/{executionId}?valueOnly=false' \
--header 'Authorization: Bearer {token}'
```
When you set `valueOnly=false`, the response includes the following additional information for each
extracted field and table item:
- `confidenceScore`: Confidence level of the extracted value (0-100)
- `geometry`: Position and dimensions of the field on the page
- `width`: Width of the field as a percentage of page width
- `height`: Height of the field as a percentage of page height
- `left`: Distance from the left edge as a percentage of page width
- `top`: Distance from the top edge as a percentage of page height
> [!NOTE] If **Location callouts** is disabled, `geometry` shows `null`.
- `pageNumber`: Page number where the field was found
This example is a fragment of a response that shows the additional information.
```json
...
"fields": {
"shipVia": null,
"fob": null,
"carrier": null,
"tax": {
"value": "71.05",
"confidenceScore": 99.9162,
"geometry": {
"width": 0.044640772,
"height": 0.011198458,
"left": 0.88380444,
"top": 0.49255127
}
},
"purchaseOrderDate": {
"value": "06/28/2024",
"confidenceScore": 99.906105,
"geometry": {
"width": 0.08811343,
"height": 0.011008841,
"left": 0.8385502,
"top": 0.20239446
}
},
...
```
> [!NOTE] The `valueOnly` parameter is available when calling the IDP API directly using HTTP
> requests. This parameter is not supported when using the IDP connector in Anypoint Studio.
## Execution Results Reference
When you query the results of an execution, the IDP API returns any of the following statuses:
- `ACKNOWLEDGED`: The document action execution request was received.
- `IN_PROGRESS`: The execution started.
- `RESULTS_PENDING`: The execution finished and IDP is processing the results.
- `MANUAL_VALIDATION_REQUIRED`: The execution finished but the results need manual validation.
- `FAILED`: The execution request finished unsuccessfully.
- `PARTIAL_SUCCESS`: The execution request finished but some sub-tasks failed.
- `SUCCEEDED`: The execution request finished successfully.
- `DISMISSED`: A reviewer dismissed the review of the execution. The extracted results weren’t
submitted.
> [!IMPORTANT] Resubmitting a document after a `FAILED`, `PARTIAL_SUCCESS`, or `DISMISSED` execution
> creates a new execution and consumes Automation Credits in full, in addition to the credits
> already consumed by the original execution. See
> [Automation Credit Consumption and Estimation](https://docs.mulesoft.com/idp/quotas-and-limits#automation-credits).
## IDP API Documentation
To confirm the endpoints to call to trigger document action executions and retrieve results, refer
to the API documentation. The IDP API documentation is part of the specification and shows in the
API portal after you publish the document actions to Anypoint Exchange.
## See Also
- [Submit Document to MuleSoft IDP](https://docs.mulesoft.com/rpa-builder/latest/toolbox-mulesoft-idp-submit-document-to-mulesoft-idp)
- [Retrieve Results from MuleSoft IDP](https://docs.mulesoft.com/rpa-builder/latest/toolbox-mulesoft-idp-retrieve-results-from-mulesoft-idp)
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Publishing Document Actions](https://docs.mulesoft.com/idp/publishing-document-actions)
---
product: IDP
---
# Publishing Document Actions
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
You can build an automated pipeline for document processing by integrating your published document
actions with RPA, Mule applications, and other systems. Publishing a document action makes it
discoverable in RPA and available in Anypoint Exchange as an API that you can call.
> [!WARNING] Do not delete document action assets from Anypoint Exchange. Because the asset is
> discoverable, existing integrations might be using it. Deleting the asset from Exchange breaks
> those integrations and leaves an orphan document action in the IDP UI that is no longer tied to
> any Exchange asset. To retire a document action, see
> [Retire a Document Action](#retire-document-action).
## Document Action Versioning
You can use document action versioning to avoid breaking existing integrations when you modify a
published document action. IDP follows semantic versioning but only increases the minor version
number when you republish a document action.
For example, when you publish a document action for the first time, IDP sets the version to `1.0.0`.
If you modify this document action later and republish it, IDP sets the version number to `1.1.0`,
and so on.
Consider this behavior when publishing document actions and ensure you call the desired version of
the published document action in your integrations.
### View Published Document Action Versions
You can view any published version of a document action and review the configuration without making
changes, which helps you compare different versions.
To view a published version:
1. In the IDP sidebar, click **Document Actions**.
2. Select the document action you want to review.
3. In the version dropdown list, select the version you want to view.

The document action opens in read-only mode, showing all the configuration details for that
version.
## Before You Begin
Ensure you have any of the following Anypoint permissions:
Manage Actions
Gives a user complete access to IDP and assigns reviewer permission by default for every document
action.
Build Actions
Enables a user to create, edit, publish, and execute document actions and assign reviewers to the
actions.
## Publish a Document Action
To publish a document action:
1. Open the document in edit mode either by:
- Creating a new document action.
- Opening an existing document action in view mode and clicking **Open in Builder**.
2. Click **Publish**.
3. Verify the name and version of the asset and click **Publish**.
4. Wait for the confirmation message and click **Close**.
## Retire a Document Action
After a document action is published to Anypoint Exchange, you cannot delete it from the IDP UI.
This behavior is intentional to prevent breaking existing integrations.
To retire a document action that you no longer use, rename it in the IDP UI to indicate that it is
deprecated. For example, add **(Deprecated)** or **(Do not use)** to the name. That way your team
knows not to use this document action for new integrations, while existing integrations can continue
to use the published version.
## See Also
- [Reviewing Processed Documents](https://docs.mulesoft.com/idp/reviewing-processed-documents)
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
- [Processing Documents and Retrieving Results With the API](https://docs.mulesoft.com/idp/automate-document-processing-with-the-idp-api)
- [Processing Documents and Retrieving Results With RPA](https://docs.mulesoft.com/idp/automate-document-processing-with-rpa)
---
product: IDP
---
# Quotas and Limits
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
The following table shows the quotas and limitations of the IDP service:
| Limit | Description |
|---|
Accepted File Formats | PDF, PNG, JPG, TIFF (150 DPI or more recommended) The document action builder does not support previewing TIFF files. However, you can extract data and review results from these files. |
File Size Limits | | Upload via UI | Upload via API |
|---|
10 files per upload 50 pages per file 8 MB per file
| 1 file per API request 150 pages per file 15 MB per file
| |
Prompt Limits | 30 per document action If Customize Schema is disabled. English prompts Prompts in other languages are not fully supported. Unique prompts Duplicate prompt names or instructions are not allowed. The Generic document action supports duplicate instructions if Customize Schema is enabled. 128,000 tokens per request for Einstein prompts The total number of tokens in a request includes: The text contained in the source document to analyze The image to analyze with image recognition capabilities The sum of all field, table, column names with their corresponding intructions and the schema built through Customize Schema Approximately 1,000 tokens that IDP uses to process the request
|
Prompt Response Limits | 128 characters for IDP NLP prompts Approximately 3,000 output words for Einstein prompts using GPT-4o (gpt-4o-2024-05-13) Approximately 4,000 output words for Einstein prompts using GPT-4o (gpt-4o) or GPT-4o Mini (gpt-4o-mini) Approximately 48,000 output words for Einstein prompts using Einstein GEMINI-3.5
|
Request Limits | |
Document Languages | Language support varies depending on the selected large language model (LLM) in document actions. For a list of supported languages by provider, see: |
Polling Limits | 10-second interval for retrieving results Applications must avoid polling for results more often than every 10 seconds. |
Checkboxes | Accuracy of checkbox processing varies by model depending on form complexity. Test thoroughly on many representative documents to confirm acceptable performance for your use case. For more information about model performance when processing checkboxes, see Supported Models. |
Location Callouts | 40 fields and table cells combined Location callouts support a maximum of 40 fields, including table cells. Each table cell counts as a field. Enable this feature if your document action contains 40 or fewer fields and table cells combined.
Enabling location callouts on documents larger than 50 pages impacts extraction performance. For optimal performance on large documents, disable location callouts unless specifically required for your use case. |
## Token Usage and Estimation
A token is a unit of text that a large language model (LLM) processes. Tokens are essential for
breaking down input data into manageable pieces that can be analyzed and generated. These are some
estimated conversions that might help understand token lengths:
- 1 token ~= 4 characters
- 1 token ~= ¾ words
- 1-2 sentences ~= 30 tokens
- 1,500 words ~= 2048 tokens
When analyzing images, each model uses a different tokenization strategy that affects how they
calculate tokens. Refer to each provider’s documentation for additional guidance:
- [Gemini: token usage estimation for images](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding)
- [OpenAI: token usage estimation for images](https://developers.openai.com/api/docs/guides/images-vision)
## Automation Credit Consumption and Estimation
IDP consumes Automation Credits per execution, based on the number of pages in the submitted
document. Every execution counts toward consumption, including resubmissions of the same document,
retries of a failed or partially failed execution, and reprocessing runs. IDP doesn’t deduplicate
submissions or discount credits for documents that were already processed.
To estimate Automation Credit consumption, use the following formula:
`(number of submissions) x (pages per document) x (credits per page)`
Count every submission, not only unique documents. For example, if you submit 100 invoices with 2
pages each, and 20 of those invoices are resubmitted once due to retries, the total number of
submissions is 120, not 100.
For the current credits-per-page rate, see
[Automation Credits Usage and Rates](https://docs.mulesoft.com/general/automation-credits-usage-and-rates).
## Document Retention Policy
IDP retains the document files and extracts data as needed to process the document extractions. IDP
uses the following features to enhance data retention:
- Document Action Editor
IDP temporarily stores the files you modify in the editor during the testing process and
immediately removes these files after you close the editor. IDP also removes the extracted data
and the files when you end the session or upload a new file.
- Document Action Execution Endpoint
When you use the execution endpoint API, IDP stores the files in an S3 bucket and stores the data
extracted during the execution securely.
For all successful executions, IDP retains this data for 24 hours. For executions that require human
review, IDP retains this data for seven days after the user task is completed. IDP retains any
incomplete tasks for 30 days. Currently, you cannot configure these retention periods.
## Data Residency Policy
IDP uses AWS services such as S3 and RDS to store files and the extracted data. IDP currently
supports two regions: US East (Virginia) and EU Central (Frankfurt, Germany). IDP stores the data
closest to your Anypoint control plane region to ensure GDPR compliance. For example, if your
Anypoint control plane runs in the EU region, IDP stores your data in the EU Central (Frankfurt,
Germany) data center.
For a list of supported regions and their corresponding API endpoints, see
[Supported Regions](https://docs.mulesoft.com/idp/automate-document-processing-with-the-idp-api#supported-regions).
## See Also
- [Automation Credits Usage and Rates](https://docs.mulesoft.com/general/automation-credits-usage-and-rates)
- [Supported Models](https://docs.mulesoft.com/idp/supported-models)
---
product: IDP
---
# Reviewing Processed Documents
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
After processing a document, IDP queues it for review if:
- At least one field marked as _visible_ shows a confidence score lower than the configured
threshold.
- At least one field marked as _visible_ and _required_ is missing or could not be extracted.
In this case, a user must review the document to verify the values for the conflicting fields. After
you submit the review, the status of the extraction changes to `SUCCEEDED`. If you dismiss the
review instead, the status changes to `DISMISSED` and the extraction isn’t approved.
## Before You Begin
Before you can review a document, ensure that:
- You are assigned as a reviewer in the corresponding document action.
## Review and Correct Extracted Values
To review the results of a processed document:
1. In the navigation panel, click **Review Tasks**.
2. Click the name of the document to review.
3. In the **Results** panel, verify the values extracted from each field.
During this step, you can modify the values that require adjustment.
IDP highlights fields in yellow when the extracted values have a confidence score below the
configured threshold.
4. After reviewing all values, click **Submit This Page**.
If there are more than one results page, click **Submit and Next** and continue the process
until you review all pages.
## Dismiss a Review Without Approving the Results
If you don’t want to approve the extracted results of a document, dismiss its review. When you
dismiss a review, IDP changes the status of the execution to `DISMISSED` and doesn’t submit the
extracted results. If you defined a callback URL for the execution, IDP calls it to notify that the
review was dismissed.
> [!WARNING] You can’t undo this action. To process a dismissed document again, resubmit it as a new
> execution. Resubmitting the document creates a new execution and consumes additional credits. A
> dismissed execution remains billable and consumes Automation Credits.
To dismiss a review:
1. In the navigation panel, click **Review Tasks**.
2. Click the name of the document whose review you want to dismiss.
3. Click **Dismiss Review**.
4. In the confirmation message, confirm that you want to dismiss the review.
## See Also
- [Processing Documents and Retrieving Results With the API](https://docs.mulesoft.com/idp/automate-document-processing-with-the-idp-api)
- [Processing Documents and Retrieving Results With RPA](https://docs.mulesoft.com/idp/automate-document-processing-with-rpa)
- [Adding Reviewers](https://docs.mulesoft.com/idp/adding-reviewers)
---
product: IDP
---
# Security Best Practices
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Securing your IDP implementation requires an intermediary API layer to enforce granular access
control, along with governance practices for reviewer access. These measures help align with
enterprise security standards for Non-Human Accounts, Separation of Duties, and Change Management.
Native IDP access is controlled at the Anypoint Platform Business Group level, which means any
connected app within that organizational unit can invoke any document action or version.
To enforce granular access control, implement two intermediary APIs in each Business Group: an
Anypoint IDP System API (SAPI) for authorization and an Anypoint IDP Call-Back Experience API (XAPI)
for callback authentication.
## Anypoint IDP SAPI and ACL Management
The primary purpose of the SAPI is to provide a granular authorization layer and environment
separation.
### Granular Authorization via ACL
The SAPI references an Access Control List (ACL) maintained in a Postgres database such as AWS
Aurora.
- Each client (consumer) must request its own unique client credentials for the SAPI in the Anypoint
Exchange for both production and non-production environments.
- At runtime, the SAPI extracts the `client_id` from the Okta JWT bearer token and validates it
against the ACL.
- The SAPI ensures that the specific client is authorized for the requested `actionId` AND
`actionVersion`.
- If not authorized, the SAPI returns a `403 Forbidden` error.
### Environment Separation (SIT to Production)
Because IDP uses a single design/runtime environment, the SAPI facilitates System Integration
Testing (SIT):
- Map SIT-specific credentials to a test version of a document action in the ACL.
- Keep production credentials locked to a stable version.
- After testing is complete, issue new production credentials and disable the SIT credentials.
### Cryptographic Nonce Generation
When the SAPI forwards a valid request to IDP, it also generates a cryptographic nonce (key), stores
the nonce in an Anypoint Object Store, and adds a cross-reference to the document’s execution ID.
This is the foundation for securing the callback.
## Anypoint IDP Call-Back XAPI
By design, the native callback URL from IDP to your solution cannot support client authentication
(OAuth) or IP restrictions. The XAPI authenticates these callback requests.
### Nonce Validation
When IDP finishes processing, it calls the XAPI. The nonce generated by the SAPI is included in this
call as a query parameter. The XAPI validates this nonce against the execution ID in the Object
Store.
### Error Handling
| Scenario | Response |
|---|
Nonce is not recognized | 401 Unauthorized
|
Nonce is recognized but does not correlate to the specific execution ID | 403 Forbidden
|
### Downstream Delivery
If authorized, the XAPI retrieves the forward URL for the specific Process API (PAPI) from the
Postgres database and routes the status update accordingly.
## ACL Data Model and Operations
The ACL database record acts as the source of truth connecting the following:
| Element | Description |
|---|
Identification | client_id, org_id, actionId, and actionVersion
|
Routing | The callback PAPI URL specific to that document type |
Status | An indicator to enable or disable the record |
> [!IMPORTANT] Limit access to the ACL table to the operations team. Implement a database trigger to
> log every Insert, Update, and Delete operation in an ACL\_Log table for auditing.
## Reviewer and Access Governance
Follow these practices to control who can access and review documents in your IDP implementation:
- Assign User Group permissions
Use CloudHub User Groups rather than individual accounts when assigning reviewers during the
design phase.
- Manage identity access
Control these groups through an identity platform such as IIQ with the team manager as the
approver.
- Restrict IP access
Apply IP allow-listing policies to your downstream Process APIs (PAPIs) to ensure they accept
requests only from the XAPI.
## See Also
- [Data Extraction Best Practices](https://docs.mulesoft.com/idp/data-extraction-best-practices)
- [IDP Permissions](https://docs.mulesoft.com/idp/permissions)
- [Analyzing Documents Using Pre-Built Schemas](https://docs.mulesoft.com/idp/creating-document-actions)
---
product: IDP
---
# Supported Models
> For the full documentation index, see: https://docs.mulesoft.com/llms.txt
Einstein supports these predictive multimodal models:
- OpenAI’s `GPT-4o (gpt-4o)` LLM
- OpenAI’s `GPT-4o Mini (gpt-4o-mini)` LLM
- OpenAI’s `GPT-5.1` LLM
- OpenAI’s `GPT-5.2` LLM
- Google’s `GEMINI-3.5 Flash` LLM
- Anthropic’s `Claude Sonnet 4.6` LLM
- Anthropic’s `Claude Opus 4.6` LLM
> [!WARNING] **Einstein OpenAI GPT-4o and Einstein OpenAI GPT-4o Mini retire January 31, 2027**.
>
> To prevent service interruption, migrate actions to a supported model by January 31, 2027.
When creating a document action, you can select the model and extraction settings such as PII
masking or image recognition. Each model performs differently under various conditions, so select
the one that aligns with your specific requirements.
For additional details on GPT models' lifecycle and deprecation, see
[Microsoft Foundry Models lifecycle and support policy](https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirements?view=foundry-classic&tabs=text).
This table compares the supported models by stability, image recognition performance, location
callout support, and how each model provides confidence scores. The **Notes** column includes
recommendations and limits for each model, such as supported languages and the maximum number of
fields.
| Model Name | Description | Stability | Image Recognition | Location Callouts | Confidence Score | Notes |
|---|
| Suitable for most tasks, performing well on documents in non-Latin languages. Can compare font sizes and identify certain font styles. | | | | | |
Einstein OpenAI GPT-4o Mini | Fast and useful for focused tasks. Tends to exhibit lazy reasoning. | | | | | |
| Suitable for most tasks. Improved instruction following and accuracy compared to GPT-4o. | | | | | Meets EU data residency requirements Ask the model to not make up information to prevent hallucinations List of languages supported by OpenAI models
|
| Suitable for documents with charts, tables, and complex layouts due to improved visual understanding. | | | | | |
Einstein GEMINI-3.5 Flash | Fast and the strongest all-round performer in current testing. Handles structured documents and invoices, including non-English formats (localized dates, currency, and thousand separators). Leads in checkboxes and handwriting. | | | | | |
Einstein Anthropic Claude Opus 4.6 | High-accuracy extraction on structured and semi-structured documents with complex or varied layouts, including invoices. Favors conservative, no-guess answers over made-up values. | | | | | Supports up to 15 fields per document action Ask the model to not make up information to prevent hallucinations List of languages supported by Anthropic models
|
Einstein Anthropic Claude Sonnet 4.6 | Good for general document extraction tasks requiring a balance of accuracy and speed. Performs well on structured and semi-structured documents with complex or varied layouts. | | | | | Supports up to 15 fields per document action Ask the model to not make up information to prevent hallucinations List of languages supported by Anthropic models
|
## Retired Models
After a model retires, IDP temporarily routes requests for that model to a current model.
Eventually, IDP removes the retired model from the product and you can no longer select it. To avoid
errors or service interruptions, update your document actions to use a supported model as soon as
possible.
| Model Name | Retirement Date | Suggested Replacement |
|---|
Einstein GEMINI-2.0 Flash 001 | | Einstein GEMINI-3.5 Flash |
Einstein GEMINI-2.5 Flash | | Einstein GEMINI-3.5 Flash |
## Confidence Scores by Model
Each model returns a confidence score for every extracted value. Depending on the model, the score
is calculated or self-reported. This applies to all document action types.
- **Calculated**: IDP derives the confidence score from model probabilities rather than
self-reported estimates. This score reflects model certainty and is generally more stable, but it
doesn’t guarantee that the extracted value is accurate.
- **Self-reported**: IDP prompts the model to rate its own confidence when model probabilities
aren’t available. This score reflects the model’s self-assessment and is generally less stable
than a calculated score, but it provides a baseline estimate.
Self-reported confidence scores become less reliable as document processing complexity increases.
Reliability depends not only on schema complexity, such as processing numerous fields or complex
tables, but also on document quality, prompt logic, and structural variability across document
groups. Low-quality scans, prompts that require data transformation alongside extraction, and
inconsistent field availability across uploads can all degrade model self-assessment. Fields that
are correctly returned as not found can show a low or 0% confidence score, which sends the document
to human review even though the extraction is correct.
IDP continues to refine how it requests self-reported confidence scores, which reduces how often
this happens. However, because the model estimates its own confidence, no level of complexity
guarantees consistent scores. Prompt instructions about confidence, such as
`Fields that return "Not found" must have a 99% confidence rate`, don’t reliably change the reported
score.
To get more reliable results with self-reported confidence scores:
- Keep the document action as simple as possible. Remove fields, tables, and prompts that aren’t
required, and consider splitting large extractions into multiple document actions.
- Test the document action against a large, representative set of documents, including documents
where optional fields are missing, before moving to production.
- Account for this behavior when setting confidence thresholds and assigning reviewers.
- If confidence scores for not-found fields are critical for your use case, select a model that uses
calculated confidence scores.
## Model Errors
In some scenarios, the LLMs stop generating a response and provide an error code to understand the
reason that caused this behavior. If the error occurs during the execution of a document action, IDP
provides this error in the `statusMessage` attribute of the response object.
These are some of the most common error codes and their suggested fixes:
| Error Code | Error Description | Suggested Fix |
|---|
| The request exceeded the maximum input token limit. | See Using long context under GPT-4.1 prompting best practices to understand how to refine your prompts. |
| The response exceeded the maximum output token limit. | Split the document or select an OpenAI model for this extraction. |
| The document potentially contains Sensitive Personally Identifiable Information (SPII). | Delete the conflicting field, or use GPT models to abstract the information. |
For a complete list of error codes, refer to each of the model provider’s documentation:
- OpenAI models:
[The completion object](https://developers.openai.com/api/reference/resources/completions)
Select **Show properties** under **choices** to see the details.
- Google models:
[Finish Reason](https://docs.cloud.google.com/python/docs/reference/vertexai/latest?utm_source=chatgpt.com)
## See Also
- [OpenAI’s Prompt Engineering Guide](https://developers.openai.com/api/docs/guides/text)
- [Analyzing Documents With Custom User-Defined Schemas](https://docs.mulesoft.com/idp/analyzing-documents-with-einstein)