---
schema_version: "1"
id: 8502d5c217be4853788930244527a977f35e12ca29b3437283531da78e4539b3
title: Generate Insurance Clauses Action
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/insurance_developer_guide/actions_obj_generate_insurance_clauses.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.insurance_developer_guide.meta/insurance_developer_guide/actions_obj_generate_insurance_clauses.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: c07b1adcb85c0b3e056e16bf877bf632bbee5ce80cffb4d6d61d9dc82e03b93e
description: Generate insurance clauses based on the specified quote and context information. You must specify either quote ID or context ID to generate insurance clauses.
---
# Generate Insurance Clauses Action

Generate insurance clauses based on the specified quote and context information. You must specify either quote ID or context ID to generate insurance clauses.

This action is available in API version 65.0 and later.

## Supported REST HTTP Methods

**URI**: /services/data/vXX.X/actions/standard/generateInsuranceClauses

Where XX.X is the latest API version.

**Formats**: JSON, XML

**HTTP Methods**: POST

**Authentication**: Authorization: Bearer TOKEN

Where TOKEN is your OAuth access token.

## Inputs

| Input | Type | Description |
| --- | --- | --- |
| contextId | string | Required if quoteId isn't specified. Context ID of the insurance quote. |
| instanceKeys | string | Required if quoteLineItemId isn't specified. Unique keys that identify the products to which quote line items belong. |
| optionFlags | Apex-defined | An Apex [runtime\_industries\_insurance.GenerateInsuranceClausesOptions](https://developer.salesforce.com/docs/atlas.en-us.264.0.insurance_developer_guide.meta/insurance_developer_guide/apex_class_runtime_industries_insurance_GenerateInsuranceClausesOptions.htm "HTML (New Window)") record that contains the configuration and execution options to generate the insurance clauses. |
| quoteId | string | Required if contextId isn't specified. ID of the insurance quote for adding eligible clauses. |
| quoteLineItemIds | string | Required if quoteLineItemId isn't specified. IDs of the quote line item for the quote. |

## Outputs

| Output | Type | Description |
| --- | --- | --- |
| asyncBulkRequestId | string | ID of the asynchronous bulk request. |
| errorsList | string | Errors that are encountered during the operation. |
| isSuccess | boolean | Indicates whether the operation is successful ( true ) or not ( false ). |

## Example

Sample Request

{
  "inputs": \[
    {
      "quoteId": "0Q0xx0000000001AAA",
      "contextId": "0000000i18tq18g0025175944829641764efd423f7dc44b98dd1e829086efc59",
      "quoteLineItemIds": \[
        "0QLxx0000000003CCC"
      \],
      "instanceKeys": \[
        {
          "instanceKey": \[
            "Auto",
            "Liability"
          \]
        }
      \],
      "optionFlags": {
        "generateClausesAsync": true,
        "generateManualClauses": false,
        "saveContext": true
      }
    }
  \]
}

This is a sample request to call this invocable action from Apex code.

// Sample Apex call for generateInsuranceClauses invocable action
public class GenerateInsuranceClausesInvoke {
    private static final String ACTION\_NAME = 'generateInsuranceClauses';

    public static Boolean invokeMethod(Map<String, Object> inputs, Map<String, Object> output) {
        if (output == null) {
            output = new Map<String, Object>();
        }

        try {
            Invocable.Action action = Invocable.Action.createStandardAction(ACTION\_NAME);

            // Either quoteId or contextId is required
            setInvocationParameter(action, inputs, 'quoteId', false);
            setInvocationParameter(action, inputs, 'contextId', false);

            // Optional inputs
            setInvocationParameter(action, inputs, 'quoteLineItemIds', false);
            setInvocationParameter(action, inputs, 'instanceKeys', false);

            // Optional optionFlags map
            if (inputs != null && inputs.containsKey('optionFlags')) {
                Map<String, Object> generateClauseOptions =
                    (Map<String, Object>) inputs.get('optionFlags');
                if (generateClauseOptions != null) {
                    runtime\_industries\_insurance.GenerateInsuranceClausesOptions apexOptions =
                        new runtime\_industries\_insurance.GenerateInsuranceClausesOptions();
                    if (generateClauseOptions.containsKey('saveContext')) {
                        apexOptions.SaveContext =
                            (Boolean) generateClauseOptions.get('saveContext');
                    }
                    if (generateClauseOptions.containsKey('generateManualClauses')) {
                        apexOptions.GenerateManualClauses =
                            (Boolean) generateClauseOptions.get('generateManualClauses');
                    }
                    if (generateClauseOptions.containsKey('generateClausesAsync')) {
                        apexOptions.generateClausesAsync =
                            (Boolean) generateClauseOptions.get('generateClausesAsync');
                    }
                    action.setInvocationParameter('optionFlags', apexOptions);
                }
            }

            List<Invocable.Action.Result> results = action.invoke();
            if (results != null && !results.isEmpty() && results\[0\].isSuccess()) {
                output.put('output', results\[0\].getOutputParameters());
                output.put('success', true);
                return true;
            }

            output.put('success', false);
            if (results != null && !results.isEmpty()) {
                output.put('errors', results\[0\].getErrors());
            }
            return false;
        } catch (Exception e) {
            output.put('success', false);
            output.put('errorMessage', e.getMessage());
            return false;
        }
    }

    private static void setInvocationParameter(
        Invocable.Action action,
        Map<String, Object> payload,
        String attribute,
        Boolean serializeJson
    ) {
        if (payload != null && payload.containsKey(attribute) && payload.get(attribute) != null) {
            if (serializeJson) {
                action.setInvocationParameter(attribute, JSON.serialize(payload.get(attribute)));
            } else {
                action.setInvocationParameter(attribute, payload.get(attribute));
            }
        }
    }
}

Sample Response

\[
  {
    "actionName": "generateInsuranceClauses",
    "errors": null,
    "invocationId": null,
    "isSuccess": true,
    "outcome": null,
    "outputValues": {
      "isSuccess": true,
      "asyncBulkRequestId": "750xx0000000001AAA",
      "errorsList": \[\]
    },
    "sortOrder": -1,
    "version": 1
  }
\]