Data Autofill

The Data Auto-Fill feature allows updating policy information before committing. This alleviates the need for end-users or integrated systems to have all of the information required to establish a transaction.

For example, upon supplying a VIN for a vehicle, the auto-fill feature could be used to populate the Make, Model, Year, and features for the vehicle.

Data Auto-Fill is available for these transactions:

  • Policy Create

  • Policy Update

  • Endorsement Create

  • Endorsement Update

  • Renewal Create

  • Renewal Update

The supplementary auto-fill information can be retrieved from an internal plugin or external systems via an External Service Integration.


This feature is intended to be a substantial improvement over External Data Calls. Use of both for a single product is not supported. Support for external data calls will be removed from future releases, but not until a notice of deprecation is made and all customers have an opportunity to migrate.

Resolving the Auto-Fill Call Sequence

For each defined operation, Socotra will identify the sequence of external integration calls. This will always be a single list for a single request. To construct the list, Socotra will:

  • Use the sequence as given in the autofill property in the create or update request, if it is set. If the property is not set:

    • Use the call definition that has an operation property that equals <productName>.<transactionName>.<transactionAction>, such as personal-auto.newBusiness.create.

    • If there is no match Socotra will try <productName>.<transactionName>.*, such as personal-auto.newBusiness.*

    • If there is still no match Socotra will try <productName>.*.*, such as personal-auto.*.*

    • Finally, if there is no match Socotra will look for an operation with *.*.* (i.e., any transaction.)

If Socotra does find a match it will use the sequence as given, and otherwise there will be no auto-fill calls for the policy transaction.

transactionName can be any of:

  • newBusiness

  • endorsement

  • renewal

  • *

transactionAction can be any of:

  • create

  • update

  • *

Note, the following operation structures are not supported:

  • *.<transactionName>.<transactionAction>

  • <productName>.*.<transactionAction>

  • *.<transactionName>.*

  • *.*.<transactionAction>

After a match is made, Socotra will determine the sequence of calls to be made. This is in the form of external service integration names and references to the internal plugin (an array of strings).


When a transaction is being executed, the autofill process will work as follows:

  • Determine the series of external calls needed (an ordered list of external service integration names) based on the process listed in the previous section.

  • Assemble a request as defined in the Call Protocol section

  • The policy create/update request data (for new business) or endorsement / renewal data will be updated based on the response.

  • Repeat for each name in the integrations sequence

This will happen for these events:

  • Policy / quote creation

  • Draft policy / quote update

  • Endorsement creation

  • Endorsement update

  • Renewal creation

  • Renewal update

Merge Behavior

If any of the properties is missing from the response, it will be interpreted to mean “unchanged.” To clear a value the property can be set to null or an empty value. Properties omitted from an Auto-Fill response will be included unchanged in subsequent requests in the call chain and will be persisted as explicitly specified.


// Request:
{"fieldValues": {"color": ["blue"], "make":["camry"]}}

// Response:
{"fieldValues": {"make":["camry"]}} // fieldValue `color` is missing.

// Autofill request for a subsequent call / final policy transaction request contains:
{"fieldValues": {"color": ["blue"], "make":["camry"]}}

Flow Diagram


Setting Up Data Auto-Fill

External Calls

To establish and manage auto-fill integration points, use the External Service Integration API and create an integration with type data_autofill.

Then, establish the sequence of calls, or “operations” with the external calls endpoints documented in Data Autofill API.

Internal Plugin

Logic which does not depend on an external call can be embedded in a new plugin called DataAutofill which can take the place of an external call:

If the name in the call sequence equals internal then the call will be sent to the plugin instead of externally. The payload put in the data input object will be the same as for an external call, and the required response will be the same as well.

If the Autofill plugin is not defined and an internal call is specified, the transaction will fail.

API for “Per Event” Autofill

The following objects will have an optional, autofill property which is a sequence (array) of strings identifying external service integration names:

If the autofill property is set for the transaction being executed, then the sequence given will be used. If not, Socotra will check to see if there is a configured sequence for that product/transaction/event combination as described in the next section.

If autofill is missing or set to null, it will be deemed to be not specified so the default for the operation will be used. If autofill is set to an empty array, no autofill operations will run for that request.

See Data Autofill API for service endpoint details.