VINMASTER allows you to locate the correct ISO statistical symbols, as well as other relevant insurance information, for vehicles that are contained in ISO’s symbol and identification manual.
You can search the database by either VIN (vehicle identification number) or by the model name/description of the vehicle. VINMASTER also offers a trailer dataset that uses different search parameters (year_built and price_new).
VINMASTER files are flat files that are loaded into a table to look up the information. Unlike other integrations that call out to the vendor each time, this integration only involves calling out to the table(s).
VINMASTER offers several benefits:
- Saves time during application intake.
- Makes risk assessment much easier and more accurate.
- Increases data management efficiency.
Implement ISO VINMASTER
You have two options to implement VINMASTER with your BriteSuite:
- Use BriteCore’s LexisNexis C.L.U.E. plugin to provide vehicle information. If you choose to use our pre-written plugin, all you need to do is map your data (Steps 2 and 3.)
Note: Our team provides data mapping as an additional service.
- You can write your own plugin using custom logic.
Note: At this point, plugins are available only in the quote flow for auto policy.
To learn more about plugins, please refer to BriteCore’s plugins documentation.
This tutorial walks you through implementing VINMASTER in BriteCore if you want to write your own plugin. It can also help you understand how VINMASTER integrates with BriteSuite.
VINMASTER functionality
This section provides an overview of how VINMASTER works in BriteQuote.
Vehicle screen (Request data)
The VINMASTER button (labeled Lookup Vehicle) is located on the Vehicles screen of the quote flow. The required request parameters include:
- VIN
- Vehicle year
- State
- Policy effective date
Note: The Make and Model fields are blank when a new vehicle is added and prior to calling VINMASTER, Vehicle Performance has a default value of “Standard,” and Anti-lock brakes has a default value of “No.”
VINMASTER will update the default values if needed.
This response data from VINMASTER is updated on the Vehicles screen.
Note: This integration does not run automatically. The Agent must initiate the VINMASTER request by selecting the Lookup Vehicle button.
Vehicle screen (Response data)
The data returned from VINMASTER updates the following fields:
- VINMASTER updates the following fields:
- Make
- Model
- To continue, select the Primary Driver Assignment (a required field).
- VINMASTER updates the following additional fields:
- Performance
- Anti-lock brakes
- Select Comprehensive Coverage. VINMASTER updates the Comprehensive Symbol and the Anti-Theft Code so they can be used in rating.
- Select Collision Coverage. VINMASTER updates the Collision Symbol so it also can be used in rating.
Set up VINMASTER in BriteSuite
To set up VINMASTER in BriteSuite, you need to do the following:
Step 1: Obtain your VINMASTER license
Once you sign up with VINMASTER you will receive your licensed data. VINMASTER will send the data to BriteCore directly. The datasets are updated quarterly.
Step 2: Contact your BriteCore support team
BriteCore will load and deploy the data files to your site. Since this requires AWS access, a BriteCore engineer will handle this.
Step 3: Consider your configuration options
Consider your configuration options and fill out the VINMASTER configuration questionnaire.
Step 4: Load VINMASTER data files into production
VINMASTER Physical Damage data files are stored in an Amazon S3 bucket with the prefix vinmaster-vehiclefilesbucket
.
- Navigate to the Google Drive link and download some of the VINMASTER data files. They are the files that end with the
.prn
extension and thetrailer_symbols.yaml
file. - Create a folder named
new_vehicle_files
in the root the your S3 bucket. Note: Make sure you use the bucket that was created by the VINMASTER service. You can access it by going to:Service Catalog > Provisioned Products > VINMASTER > CloudformationStackARN > VehicleFilesBucket.
- Upload the vehicle data files to the
new_vehicle_files
folder. Note: Do not upload too many files at once, it will create errors and not all VINs would it make it to the database. Upload 5 or so at a time allowing time to process. - The VINMASTER Integration will parse and load the files into the database. When the file is processed it is automatically moved to
parsed_files
folder and removed fromnew_vehicle_files
.
For more information refer to the VINMASTER vendor web service Readme.
Note: You must be authorized to access the repo.
Step 5: Create the data mapping
Map the data from VINMASTER to your lines configuration. In this step, you are taking your specific user-defined fields from lines and mapping them to the data you are receiving from VINMASTER. (and back).
To learn more about how data mapping works in BriteCore, please refer to our data mapping documentation. Sample data for a POST/mappings request.
{
"data": {
"type": "mapping",
"attributes": {
"from": "vinmaster_vehicle",
"to": "quote",
"mapping": {
“template”: "””
{% set has_anti_lock = source.anti_lock_brake_indicator == 'S'%}
{% if source.anti_theft_indicator %}
{% set anti_theft_code = source.anti_theft_indicator|lower %}
{% else %}
{% set anti_theft_code = 'None' %}
{% endif %}
{% set performance = {
'1': 'performance_intermediate',
'2': 'performance_high',
'3': 'performance_sports',
'4': 'performance_sportsPremium'
}[source.performance_indicator] | default('performance_standard') %}
{
\"model\": \"{{source.basic_model_name}}\",
\"comprehensiveSymbol\": \"comprehensiveSymbol_{{source.comprehensive_rating_symbol}}\",
\"collisionSymbol\": \"collisionSymbol_{{source.collision_rating_symbol | int}}\",
\"hasAntiLock\": {{has_anti_lock}},
\"antiTheftCode\": \"antiTheftCode_{{anti_theft_code}}\", \"grossWeight\": {% if source.gross_vehicle_weight is not none %} \"{{source.gross_vehicle_weight}}\" {% else %} 0 {% endif %},
\"bodyStyle\": \"{{source.body_style}}\",
\"performance\": \"{{performance}}\",
\"circular_number\": \"{{source.circular_number}}\",
\"class_code\": \"{{source.class_code}}\",
\"combined_symbol\": \"{{source.combined_symbol}}\",
\"curb_weight\": \"{{source.curb_weight}}\",
\"daytime_running_lights\": \"{{source.daytime_running_lights}}\",
\"effective_date\": \"{{source.effective_date}}\",
\"electronic_stability_control_indicator\": \"{{source.electronic_stability_control_indicator}}\",
\"engine_cylinders\": \"{{source.engine_cylinders}}\",
\"engine_size\": \"{{source.engine_size}}\",
\"engine_type\": \"{{source.engine_type}}\",
\"field_change_indicator\": \"{{source.field_change_indicator}}\",
\"four_wheel_drive_indicator\": \"{{source.four_wheel_drive_indicator}}\",
\"full_model_name\": \"{{source.full_model_name}}\",
\"height\": \"{{source.height}}\",
\"horsepower\": \"{{source.horsepower}}\",
\"iso_make_code\": \"{{source.iso_make_code}}\",
\"make\": \"{{source.make}}\",
\"model_year\": \"{{source.model_year}}\",
\"ncic_make_code\": \"{{source.ncic_make_code}}\",
\"payload_capacity\": \"{{source.payload_capacity}}\",
\"price_new_symbol\": \"{{source.price_new_symbol}}\",
\"price_new_symbol_one_position\": \"{{source.price_new_symbol_one_position}}\",
\"restraint_indicator\": \"{{source.restraint_indicator}}\",
\"special_information_selector\": \"{{source.special_information_selector}}\",
\"state_exception\": \"{{source.state_exception}}\",
\"symbol_change_indicator\": \"{{source.symbol_change_indicator}}\",
\"tonnage_indicator\": \"{{source.tonnage_indicator}}\",
\"vehicle_series_rating_symbol\": \"{{source.vehicle_series_rating_symbol}}\",
\"vin\": \"{{source.vin}}\",
\"vin_change_indicator\": \"{{source.vin_change_indicator}}\",
\"wheelbase\": \"{{source.wheelbase}}\",
\"wmi\": \"{{source.wmi}}\"
}"””
}
}
}
}
Sample data mapping for trailers
{
"data": {
"type": "mapping",
"attributes": {
"from": "vinmaster_trailer",
"to": "quote",
"mapping": {
"template":
"""{\"collisionSymbol\": \"collisionSymbol_{{source.two_position_symbol|sub(\"^0+\", \"\")}}\", \"comprehensiveSymbol\": \"comprehensiveSymbol_{{source.two_position_symbol|sub(\"^0+\", \"\")}}\"}"""
},
},
}
}
Step 6: Write the plugin
If you are using BriteCore’s VINMASTER plugin, skip this step.
To write your own plugin, interface with VINMASTER at:
POST <integrations url>/vinmaster/physical-damage/search-by-vin/
For trailers:
POST <integrations url>/vinmaster/physical-damage/search-trailers/
Add this following script to the header of your HTML file:
<script src="https://unpkg.com/@britecore/ui-plugins-client"> </script>
You can now use the BriteCorePlugin helper so your plugin can communicate with BriteCore:
import { enabled, visible, onClick, plugin } from './lib';
plugin.initialize({
"button-row": {
buttons: [
{
text: "Lookup Vehicle",
callback: onClick,
visible: visible,
enabled: enabled,
},
],
},
});
Sample response from VINMASTER
{
"data": {
"anti_lock_brake_indicator": "S",
"anti_theft_indicator": "P",
"basic_model_name": "C230",
"body_style": "SEDAN 4D",
"circular_number": "0708",
"class_code": "34",
"collision_rating_symbol": "18",
"combined_symbol": "1818",
"comprehensive_rating_symbol": "18",
"curb_weight": 3405.0,
"daytime_running_lights": "S",
"effective_date": "2007-10-01",
"electronic_stability_control_indicator": "S",
"engine_cylinders": "6",
"engine_size": "2.5",
"engine_type": null,
"field_change_indicator": null,
"four_wheel_drive_indicator": null,
"full_model_name": "C230 SPORT",
"gross_vehicle_weight": 0.0,
"height": 55.6,
"horsepower": 201.0,
"iso_make_code": "MBNZ",
"make": "Mercedes Benz",
"model_year": 2006,
"ncic_make_code": "MERZ",
"payload_capacity": 0.0,
"performance_indicator": null,
"price_new_symbol": null,
"price_new_symbol_one_position": "L",
"restraint_indicator": "R",
"special_information_selector": null,
"state_exception": null,
"symbol_change_indicator": null,
"tonnage_indicator": "S",
"vehicle_series_rating_symbol": "L",
"vin": "WDBRF52H&6",
"vin_change_indicator": null,
"wheelbase": 106.9,
"wmi": "WDB"
}
}
}
Sample response for trailers
{
"data": {
"model_year_from": 1990,
"model_year_to": 2010,
"one_position_symbol": "1",
"price_bracket_from": 0,
"price_bracket_to": 6500,
"two_position_symbol": "01"
}
}
Step 7: Host your plugin in a public location
If you are using BriteCore’s VINMASTER plugin, BriteCore hosts the plugin for you.
Otherwise, each plugin is a HTML document rendered in a hidden iframe. BriteCore’s UI queries the plugins available and renders any plugin on the specified pages.
Since BriteCore’s UI runs in a browser, the request for the plugin must occur without credentials to a publicly available location, or BriteCore must host the plugin placing the HTML file behind our authentication.
Step 8: Register the plugin in BriteIntegrations
If you are using BriteCore’s VINMASTER plugin, BriteCore registers the plugin for you. Otherwise, you can register your plugin using our Plugin Manager web UI.