Event Subjects & Payloads
Event Subjects
Bold Penguin event payloads are categorized by subject. You can receive event payload for the following subjects:
Subject | Key | Description |
---|---|---|
Question Set | question_set | All questions that a customer or agent has completed for a page during the application process. |
Quote Request | quote_request | The quote response from a carrier. |
Carrier | carrier | Carrier events and actions such as a bridge to an off-platform carrier. |
Application Form | application_form | The current state of an insurance application. |
Bold Penguin recommends capturing the Application Form payload first. It contains a snapshot of the entire data set in one payload. This will prevent having to piece together Question Set and Quote Request events in order to have a complete representation of the Application Form.
When subscribing to all three subjects, the data in the Application Form will include all data sent in the Question Set and Quote Request payloads. The Question Set and Quote Request events are more useful for tracking real time metrics or behaviors if you need to capture information without waiting for an Application Form to complete.
Payloads should not exceed a few hundred kilobytes. It's recommended that you configure your server to ensure you can receive payloads of this size or larger.
Event Headers
You can find the specific subject:action
that triggered this event payload in
the X-Emperor-Event
header for the HTTP POST for the delivery.
Owner Object
The event payloads for Question Set, Quote Request, and Application Form
each include an owner
object. The owner
object information is populated
based on the login information we receive from your IdP via SAML
during single sign on and can be beneficial for tracking and commissions. The
output of the owner
object is visible in the Example Payload of each
subject below.
Key | Type | Description |
---|---|---|
owner.id | string | UUID of the owner |
owner.first_name | string | Owner's first name |
owner.last_name | string | Owner's last name |
owner.email | string | Owner's email address |
owner.phone | string | Owner's phone number |
owner.auth_uid | string | Unique identifier from user's IDP |
owner.is_guest | boolean | Whether the user is a guest |
Question Set
Question Set Actions
When subscribed to the Question Set event, Bold Penguin will send a webhook payload
for every Question Set that is completed
. If an existing Question Set is
edited and completed again, another payload event will be triggered for that
Question Set upon it being completed
.
Key | Description |
---|---|
question_set:completed | Question set is completed |
Question Set Payload
Key | Type | Description |
---|---|---|
application_form_id | string | UUID of the application form |
answers | array | The answers that were completed by the user |
code | string | Programmatic identifier for the question set |
completed | boolean | Whether the question set is completed |
completed_at | string | The time the question set was completed |
id | string | UUID of the question set |
owner | owner object | The owner of this question set (see above) |
reference_id | string | Application form reference ID |
tenant | string | Tenant name |
title | string | User facing title for the question set |
Question Set Example Payload
{
"id": "7d6583a2-5742-46d9-acaa-1088ccc51ec1",
"completed_at": "2019-11-21 13:44:24 -0500",
"title": "Contact Information",
"code": "contact_info",
"completed": true,
"application_form_id": "1fb718d9-7819-4f2d-bda9-2e0645c0f94a",
"reference_id": "ABC-789-JKL",
"tenant": "ABC Brokerage",
"owner": {
"id": "46912066-9be9-4a04-97ea-5505a1acde0e",
"first_name": "Mike",
"last_name": "Jones",
"email": "mike.jones@gmail.com",
"phone": "555-444-3333",
"auth_uid": "e700e280-db75-43fa-b2dd-d16adb2fecef",
"is_guest": "false"
},
"answers": [
{
"code": "CoverageTypes",
"value": ["BOP"],
"alias": ["BOP"],
"question_text": "What types of coverage would you like?"
},
{
"code": "Naics",
"value": "Advertising agencies",
"alias": "541810",
"question_text": "What's your main profession?"
},
{
"code": "mqs_first_name",
"value": "John",
"alias": "John",
"question_text": "Business owner's first name"
},
{
"code": "mqs_last_name",
"value": "Doe",
"alias": "Doe",
"question_text": "Last name"
},
{
"code": "mqs_email",
"value": "john.doe@boldpenguin.com",
"alias": "john.doe@boldpenguin.com",
"question_text": "Email address"
},
{
"code": "mqs_phone",
"value": "6145555555",
"alias": "6145555555",
"question_text": "Telephone number"
},
{
"code": "mqs_business_name",
"value": "Test Company",
"alias": "Test Company",
"question_text": "Business name"
},
{
"code": "mqs_address_1",
"value": "100 E Broad St",
"alias": "100 E Broad St",
"question_text": "Physical business address"
},
{
"code": "mqs_city",
"value": "Columbus",
"alias": "Columbus",
"question_text": "City"
},
{
"code": "mqs_state",
"value": "Ohio",
"alias": "OH",
"question_text": "State"
},
{
"code": "mqs_zipcode",
"value": "43215",
"alias": "43215",
"question_text": "Zip code"
}
]
}
Quote Request
Quote Request Actions
When subscribed to the Quote Request event, Bold Penguin will send a webhook payload for every request state listed in the table below.
Key | Description |
---|---|
quote_request:finished | Quote request is complete |
quote_request:selected | Quote request is selected to bind |
Quote Request Payload
Key | Type | Description |
---|---|---|
annual_price | string | Annual rate in USD |
application_form_id | string | UUID of the application form |
attachments | array | Documents relevant to the quote request (see Quote Request Attachments |
carrier | string | Carrier name |
id | string | UUID of the quote request |
monthly_price | string | Monthly rate in USD |
owner | owner object | The owner of this question set (see above) |
products | array | Products included in the quote |
quote_number | string | Number received from the carrier for this quote event |
recommended | boolean | Whether this quote request was recommended to the user |
reference_id | string | Application form reference ID |
request_status | string | Status of the quote request |
score | string | Score used to rank this quote request |
tenant | string | Tenant name |
translated_messages | array | Contains zero or more translated message objects |
url | string | URL to retrieve the requested quote |
attachments
- This field contains an array of one or more attachment objects which will
contain an
id
, which is a UUID,filename
, which is a string, andattachment_type
which denotes the type of file
- This field contains an array of one or more attachment objects which will
contain an
carrier
- This field contains the name of the carrier associated with this quote
- Consult your account team for your current list of enrolled carriers
products
- This field contains an array of one or more of the following enumerated
strings
Business Owner's Policy
Commercial Auto
Commerical Flood
Cyber Liability
Liability
Other/Not Sure
Professional Liability
Umbrella
Workers Compensation
- This field contains an array of one or more of the following enumerated
strings
request_status
- Quote requests will be returned as either
quote_request:finished
orquote_request:selected
. Requests that are returned asquote_request:finished
require you to look at therequest_status
field in the payload to determine the actual status of the request. Therequest_status
field can contain several common values depending on what is returned. These values include:completed
- Carrier returned a quoteineligible
- Prospect did not qualify (DNQ)failed
- Carrier returned an errortimed_out
- Carrier did not respond in time
- Quote requests will be returned as either
Quote Request Example Payloads
Example 1: Attachments
{
"request_status": "finished",
"annual_price": "1032.0",
"monthly_price": "86.0",
"quote_number": "ABC123789",
"score": "100.0",
"id": "6d1e47a5-0d7b-43de-ad81-aaf11d6f4513",
"products": [
"Business Owner's Policy"
],
"recommended": true,
"carrier": "Big Carrier",
"application_form_id": "1fb718d9-7819-4f2d-bda9-2e0645c0f94a",
"reference_id": "ABC-789-JKL",
"tenant": "ABC Brokerage",
"url": "https://<domain>-agent.beta.boldpenguin.com/application_forms/<application-form-id>/latest/quote_requests/<quote-request-id>",
"owner": {
"id": "46912066-9be9-4a04-97ea-5505a1acde0e",
"first_name": "Mike",
"last_name": "Jones",
"email": "mike.jones@gmail.com",
"phone": "555-444-3333",
"auth_uid": "e700e280-db75-43fa-b2dd-d16adb2fecef",
"is_guest": "false"
},
"attachments": [
{
"id": "d865f3fe-4eb3-421e-b3c0-093b04287505",
"filename": "quote.pdf",
"attachment_type": "quote_pdf"
}
]
}
Example 2: Request Status Ineligible
{
"annual_price": null,
"application_form_id": "027c2e6a-f61d-4dd3-854b-429cb5b7359c",
"attachments": [],
"carrier": "Big Carrier",
"id": "d35f8684-c0b6-43a3-84dd-b8b9a60eff71",
"monthly_price": null,
"owner": {
"auth_uid": "42610f3a-94de-4772-af55-baa5b1e30fa2",
"email": "mike.jones@gmail.com",
"first_name": "Mike",
"id": "f94cc5e9-ad08-4da0-a267-523f46904599",
"is_guest": false,
"last_name": "Jones",
"phone": null
},
"price_details": {
"fees": [],
"new_total_premium": null,
"taxes": []
},
"products": [
"General Liability"
],
"translated_messages": [
{
"code": "04.01.01.00",
"phrase": "We are unable to process your request at this time",
"status": "Carrier Technical Error",
"category": "Connection Timeout",
"description": "Connection Timeout"
},
{
"code": "04.04.01.00",
"phrase": "Failed to create quote",
"status": "Carrier Technical Error",
"category": "Unable to quote at this time",
"description": "Unable to quote at this time"
}
],
"quote_number": null,
"recommended": false,
"reference_id": "BTR-FWC-TX5",
"request_status": "ineligible",
"score": "3.75",
"tenant": "Business Coverage",
"url": "https://<domain>-agent.beta.boldpenguin.com/application_forms/<application-form-id>/latest/quote_requests/<quote-request-id>"
}
Example 3: Request Status Completed
{
"annual_price": "1818.0",
"application_form_id": "027c2e6a-f61d-4dd3-854b-429cb5b7359c",
"attachments": [],
"carrier": "ABC Carrier",
"id": "7557634d-329f-48ab-9da6-f55f395aed1b",
"monthly_price": "164.38",
"owner": {
"auth_uid": "42610f3a-94de-4772-af55-baa5b1e30fa2",
"email": "mike.jones@gmail.com",
"first_name": "Mike",
"id": "f94cc5e9-ad08-4da0-a267-523f46904599",
"is_guest": false,
"last_name": "Jones",
"phone": null
},
"price_details": {
"fees": [],
"new_total_premium": null,
"taxes": [] },
"products": [
"General Liability"
],
"quote_number": "GLQ1226780",
"recommended": false,
"reference_id": "BTR-FWC-TX5",
"request_status": "completed",
"score": "16.25",
"tenant": "Business Coverage",
"url": "https://<domain>-agent.beta.boldpenguin.com/application_forms/<application-form-id>/latest/quote_requests/<quote-request-id>"
}
Carrier
Carrier Actions
When subscribed to the Carrier event, Bold Penguin will send a webhook payload for every request state listed in the table below.
Action | Description |
---|---|
carrier:bridged_to_off_platform_carrier | An agent has clicked to bridge to an off platform carrier |
Carrier Event Payload
Key | Type | Description |
---|---|---|
application_form_id | string | UUID of the application form |
carrier | string | Name of the carrier |
carrier_id | string | UUID of the carrier |
carrier_portal_url | string | Bridge URL for off-platform bind |
owner | owner object | The owner of this question set (see above) |
reference_id | string | Application form reference ID |
Carrier Example Payload
{
"application_form_id" : "1fb718d9-7819-4f2d-bda9-2e0645c0f94a",
"carrier": "Carrier Partner",
"carrier_id": "8fcc18a9-1255-4fff-ch76-2g0644a0f94y",
"carrier_portal_url": "https://www.example-bridge-url.com",
"owner" : {
"id": "46912066-9be9-4a04-97ea-5505a1acde0e",
"first_name": "First",
"last_name": "Last",
"email": "sales@boldpenguin.com",
"phone": "555-444-3333",
"auth_uid": "e700e280-db75-43fa-b2dd-d16adb2fecef",
"is_guest": "false",
},
"reference_id": "ABC-XYZ-123"
}
Application Form
Application Form Actions
When subscribed to the Application Form event, Bold Penguin will send a webhook payload for every Application Form request state listed in the table below.
Action | Description |
---|---|
application_form:exchange_borrow | Lend-borrow |
application_form:exchange_borrow_return | Lend-return |
application_form:exchange_match | Matched in the Exchange |
application_form:finished_quoting | One or more quote events occurred |
application_form:inactive | Timeout in consumer portal |
application_form:taken_over | App form is taken over by another agent |
application_form:transferred_into_tenant | Tenant transfer occurred, but no reason was supplied |
application_form:transfer_to_wholesaler | Application form was transferred to a wholesaler |
Application Form Payload
Key | Type | Description |
---|---|---|
answers | array | The answers that were completed by the user |
cloned | boolean | Whether this application form has been cloned |
created_at | string | The time the application form was created |
finished_quote_requests_count | number | Number of quote requests that have finished |
id | string | UUID of the application form |
inactive | boolean | Whether this application form is inactive |
locked | boolean | Whether this application form is locked |
owner | owner object | The owner of this question set (see above) |
owner_id | string | DEPRECATED. Use owner.id |
owner_is_guest | boolean | DEPRECATED. Use owner.is_guest |
parent_id | string | UUID of the parent application form |
parent_tenant | string | The name of the tenant responsible for transferring the application form |
parent_tenant_id | string | The UUID of the tenant responsible for transferring the application form |
question_sets | array | The question sets |
quote_requests | array | The quote requests |
quote_requests_count | number | Number of quote requests that were created |
reference_id | string | Application form reference ID |
routing_outcome | string | The name of the destination subdomain based on routing rules |
state | string | Application form state: incomplete , in_progress , completed , quoted |
tenant | string | Tenant name |
updated_at | string | The time the application form was last modified |
Note:
The question_sets
array will be sorted in the order that the Question Sets
were displayed to the end user.
The answers
array are currently not sorted in any particular order.
Application Form Example Payload
{
"id": "1fb718d9-7819-4f2d-bda9-2e0645c0f94a",
"owner_id": "46912066-9be9-4a04-97ea-5505a1acde",
"parent_id": null,
"locked": false,
"state": "quoted",
"reference_id": "ABC-789-JKL",
"owner_is_guest": false,
"quote_requests_count": 2,
"finished_quote_requests_count": 2,
"created_at": "2019-11-21 13:44:02 -0500",
"updated_at": "2019-11-21 13:46:23 -0500",
"cloned": false,
"inactive": false,
"tenant": "ABC Brokerage",
"parent_tenant": "Commercial Insurance Center",
"routing_outcome": "boldpenguin",
"owner": {
"id": "46912066-9be9-4a04-97ea-5505a1acde0e",
"first_name": "First",
"last_name": "Last",
"email": "sales@boldpenguin.com",
"phone": "555-444-3333",
"auth_uid": "e700e280-db75-43fa-b2dd-d16adb2fecef",
"is_guest": "false",
},
"question_sets": [
{
"id": "39bfab6a-a5d7-4b17-927f-093e15b4b659",
"completed_at": "2019-11-21 13:44:24 -0500",
"title": "Contact Information",
"code": "contact_info",
"completed": true
},
{
"id": "24707e72-f382-429e-a4aa-8a96963e6fe5",
"completed_at": "2019-11-21 13:44:31 -0500",
"title": "Select Coverage",
"code": "coverage",
"completed": true
},
{
"id": "860a0bb2-c8c0-4f10-bc21-ac1a023bd096",
"completed_at": "2019-11-21 13:44:31 -0500",
"title": "General",
"code": "general",
"completed": true
},
{
"id": "77a187af-f6da-46d2-91a3-a98088c825e1",
"completed_at": "2019-11-21 13:44:51 -0500",
"title": "MQS",
"code": "master_question_set",
"completed": true
},
{
"id": "c286cc85-bf64-4ed9-9d1a-cb067eff6f42",
"completed_at": "2019-11-21 13:45:44 -0500",
"title": "Big Carrier",
"code": "big_carrier",
"completed": true
},
{
"id": "b6a30ba2-039c-47b3-b117-c0e358479e71",
"completed_at": "2019-11-21 13:45:50 -0500",
"title": "Mega Carrier",
"code": "mega_carrier",
"completed": true
}
],
"answers": [
{
"code": "CoverageTypes",
"value": ["BOP", "Liability"],
"alias": ["BOP", "Liability"],
"question_text": "What types of coverage would you like?"
},
{
"code": "Naics",
"value": "Advertising agencies",
"alias": "541810",
"question_text": "What's your main profession?"
},
{
"code": "mqs_phone",
"value": "6145555555",
"alias": "6145555555",
"question_text": "Telephone number"
},
{
"code": "mqs_business_name",
"value": "Test Company",
"alias": "Test Company",
"question_text": "Business name"
},
{
"code": "mqs_address_1",
"value": "100 E Broad St",
"alias": "100 E Broad St",
"question_text": "Physical business address"
},
{
"code": "mqs_state",
"value": "Ohio",
"alias": "OH",
"question_text": "State"
},
{
"code": "mqs_first_name",
"value": "First",
"alias": "First",
"question_text": "Business owner's first name"
},
{
"code": "mqs_last_name",
"value": "Last",
"alias": "Last",
"question_text": "Last name"
},
{
"code": "mqs_email",
"value": "sales@boldpenguin.com",
"alias": "sales@boldpenguin.com",
"question_text": "Email address"
},
{
"code": "mqs_zipcode",
"value": "43215",
"alias": "43215",
"question_text": "Zip code"
},
{
"code": "mqs_city",
"value": "Columbus",
"alias": "Columbus",
"question_text": "City"
},
{
"code": "mqs_has_fein",
"value": "Yes",
"alias": "Yes",
"question_text": "Does your business have a Federal Employer Identification Number (FEIN)?"
},
{
"code": "mqs_building_stories",
"value": 1,
"alias": 1,
"question_text": "How many stories is this building?"
},
{
"code": "mqs_building_year_built",
"value": 2000,
"alias": 2000,
"question_text": "What is the approximate year the building you occupy was constructed?"
},
{
"code": "mqs_building_construction",
"value": "Frame",
"alias": "Frame",
"question_text": "Which of the following describes the construction of your building?"
},
{
"code": "mqs_currently_insured",
"value": "Yes",
"alias": "Yes",
"question_text": "Do you currently have insurance for this business?"
},
{
"code": "mqs_legal_entity",
"value": "LLC",
"alias": "LLC",
"question_text": "What is your legal entity type?"
},
{
"code": "mqs_fein",
"value": "*********",
"alias": "*********",
"question_text": "Federal Employer Identification Number (FEIN)"
},
{
"code": "mqs_year_established",
"value": 2000,
"alias": 2000,
"question_text": "In what year did you start your business?"
},
{
"code": "mqs_years_of_experience",
"value": 20,
"alias": 20,
"question_text": "How many years of experience do you have in this profession?"
},
{
"code": "mqs_annual_policy",
"value": "Yes",
"alias": "Yes",
"question_text": "Does your business operate year round?"
},
{
"code": "mqs_full_time_employees",
"value": 0,
"alias": 0,
"question_text": "How many full time associates do you currently employ?"
},
{
"code": "mqs_part_time_employees",
"value": 0,
"alias": 0,
"question_text": "How many part time associates do you currently employ?"
},
{
"code": "mqs_estimated_annual_revenue",
"value": 200000,
"alias": 200000,
"question_text": "What do you estimate your annual gross revenue will be for the next 12 months?"
},
{
"code": "mqs_building_ownership",
"value": "Yes",
"alias": "Yes",
"question_text": "Do you own the building at this location?"
},
{
"code": "mqs_area_occupied",
"value": 2000,
"alias": 2000,
"question_text": "Approximately how many square feet does your business occupy of this building (not total square feet of building)?"
},
{
"code": "mqs_building_square_footage",
"value": 2000,
"alias": 2000,
"question_text": "What is the approximate total square footage of the building you occupy (including space you don't occupy)"
},
{
"code": "mqs_coverage_start_date",
"value": "2026-02-15",
"alias": "2026-02-15",
"question_text": "When would you like your policy to start?"
},
...
],
"quote_requests": [
{
"request_status": "completed",
"annual_price": "1032.0",
"monthly_price": "86.0",
"quote_number": "ABC123789",
"score": "100.0",
"id": "6d1e47a5-0d7b-43de-ad81-aaf11d6f4513",
"products": [
"Business Owner's Policy"
],
"recommended": true,
"carrier": "Big Carrier"
},
{
"request_status": "completed",
"annual_price": "1304.0",
"monthly_price": null,
"quote_number": "456321789",
"score": "5.125",
"id": "5e557181-395c-4a75-9537-b094926a480e",
"products": [
"Business Owner's Policy"
],
"recommended": true,
"carrier": "BIG Carrier",
"url": "http://<domain>/application_forms/118e6203-ed91-4e9d-a68c-80006ce3b03a/latest/quote_requests/7e45a6e3-c59d-4ae5-9e9d-fb8abd8709fa",
"price_details": {
"new_total_premium": null,
"taxes": [],
"fees": []
},
"attachments": [
{
"id": "281abe0c-0db4-4591-bf8b-469504c41142",
"filename": "quote.pdf",
"attachment_type": "quote_pdf"
}
]
}
]
}