# 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** (![2%](/mulesoft/current/en-us/idp/_images/visibility-icon.png)) 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** (![2%](/mulesoft/current/en-us/idp/_images/focus-icon.png)) 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:
SettingDescriptionAvailable FromConsiderations

Location callouts

Show a bounding box around the analyzed value in the document preview.

March 10th, 2026

  • 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.

Multimodal

Enables the model to read and interpret images within documents.

May 8th, 2025

  • Cannot be used simultaneously with PII masking.

  • Accuracy of checkbox processing varies by model depending on form complexity.

    See Supported Models for more information about how each model performs when processing checkboxes.

Model

Select the predictive large language model (LLM) to use when executing this document action.

February 5th, 2025

Choose the model that best fits your document processing needs. See Supported Models for additional details about each model.

PII Masking

Mask personally identifiable information from your documents before sending them to the predictive model.

February 5th, 2025

  • Salesforce Organization Preferences override this setting.

  • Reduces character limit to 120,000 per request.

    See Prompt Limits for additional details.

  • 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:
SettingDescriptionAvailable FromConsiderations

Location callouts

Show a bounding box around the analyzed value in the document preview.

March 10th, 2026

  • 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.

Multimodal

Enables the model to read and interpret images within documents.

May 8th, 2025

  • Cannot be used simultaneously with PII masking.

  • Accuracy of checkbox processing varies by model depending on form complexity.

    See Supported Models for more information about how each model performs when processing checkboxes.

Model

Select the predictive large language model (LLM) to use when executing this document action.

February 5th, 2025

Choose the model that best fits your document processing needs. See Supported Models for additional details about each model.

PII Masking

Mask personally identifiable information from your documents before sending them to the predictive model.

February 5th, 2025

  • Salesforce Organization Preferences override this setting.

  • Reduces character limit to 120,000 per request.

    See Prompt Limits for additional details.

  • 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 PromptDetailed 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
IssueDescription

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 (![4%](/mulesoft/current/en-us/idp/_images/prompt-dropdown.png)), 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 ![50%](/mulesoft/current/en-us/idp/_images/driver-license-example.png) - 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 ![50%](/mulesoft/current/en-us/idp/_images/timesheet-examples.png) - 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 ![50%](/mulesoft/current/en-us/idp/_images/medical-license-handwriting-example.png) - 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 ResolutionID

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.

W-17330495

## 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 ResolutionID

Completed executions no longer stay in status ACKNOWLEDGED.

W-17064164

Failed executions that include Einstein prompts no longer show status IN_PROGRESS.

W-17465241

Required table columns are now shown in the corresponding page during reviews.

W-17485449

## 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) }' ```
1If you are in the EU region, use the eu1.anypoint.mulesoft.com domain.
2Replace <connected-app-client-id> with the client ID from your connected app.
3Replace <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.
ComponentDetails

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 TypeDescription

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
MetricP50 (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 ScenarioRequests per MinuteAverage LatencyP95 LatencyError RateConfiguration

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
SpecificationValue

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
ComponentDetails

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) }' ```
1If you are in the EU region, use the eu1.anypoint.mulesoft.com domain.
2Replace <connected-app-client-id> with the client ID from your connected app.
3Replace <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:
RegionBase URL

US East (Virginia)

https://idp-rt.us-east-1.anypoint.mulesoft.com

EU Central (Frankfurt)

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. ![25%](/mulesoft/current/en-us/idp/_images/document-action-version-selector.png) 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:
LimitDescription

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 UIUpload 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

    • 30,000 tokens per request for Einstein prompts when PII masking is enabled

    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

  • IDP fails the execution when the number of requests exceeds the Einstein rate limit for the Salesforce Org

    • When using Einstein and Customize Schema is enabled: 300 requests per minute

    • When using Einstein and Customize Schema is disabled: (300 / number Einstein of prompts in document action) requests per minute

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
ScenarioResponse

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:
ElementDescription

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 NameDescriptionStabilityImage RecognitionLocation CalloutsConfidence ScoreNotes

Einstein OpenAI GPT-4o

Suitable for most tasks, performing well on documents in non-Latin languages. Can compare font sizes and identify certain font styles.

High

  • Standard performance

  • Low accuracy on reading checkboxes in forms

Not supported

Calculated

  • Ask the model to not make up information to prevent hallucinations

  • List of languages supported by OpenAI models

Einstein OpenAI GPT-4o Mini

Fast and useful for focused tasks. Tends to exhibit lazy reasoning.

High

  • Standard performance

  • Low accuracy on reading checkboxes in forms

Not supported

Calculated

  • Ask the model to not make up information to prevent hallucinations

  • List of languages supported by OpenAI models

Einstein OpenAI GPT-5.1

Suitable for most tasks. Improved instruction following and accuracy compared to GPT-4o.

High

  • Medium accuracy on reading checkboxes in forms

Not supported

Calculated

  • Meets EU data residency requirements

  • Ask the model to not make up information to prevent hallucinations

  • List of languages supported by OpenAI models

Einstein OpenAI GPT-5.2

Suitable for documents with charts, tables, and complex layouts due to improved visual understanding.

High

  • Medium accuracy on reading checkboxes in forms

  • Performs slightly better than earlier GPT models when reading checkboxes and tables

Not supported

Calculated

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.

Standard

  • Best of the tested models at reading checkboxes and handwriting in multimodal mode

Supported

Self-reported

  • Ask the model to not make up information to prevent hallucinations

  • List of languages supported by Gemini models

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.

Standard

  • Performs well on handwritten documents

  • Medium accuracy on reading checkboxes in forms

Not supported

Self-reported

  • 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.

High

  • Performs better than Einstein OpenAI GPT-5.2 on handwritten documents

  • Medium accuracy on reading checkboxes in forms

Not supported

Self-reported

  • 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 NameRetirement DateSuggested Replacement

Einstein GEMINI-2.0 Flash 001

June 1, 2026

Einstein GEMINI-3.5 Flash

Einstein GEMINI-2.5 Flash

October 16, 2026

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 CodeError DescriptionSuggested Fix

length

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.

MAX_TOKENS

The response exceeded the maximum output token limit.

Split the document or select an OpenAI model for this extraction.

SPII

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)