Skip to main content

Event Subjects & Payloads

Event Subjects

Bold Penguin event payloads are categorized by subject. You can receive event payload for the following subjects:

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.

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.

KeyTypeDescription
owner.idstringUUID of the owner
owner.first_namestringOwner's first name
owner.last_namestringOwner's last name
owner.emailstringOwner's email address
owner.phonestringOwner's phone number
owner.auth_uidstringUnique identifier from user's IDP
owner.is_guestbooleanWhether the user is a guest

Question Set

Question Set Actions

When subscribed to the Question Set event, it 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.

Question Set Payload

KeyTypeDescription
application_form_idstringUUID of the application form
answersarrayThe answers that were completed by the user
codestringProgrammatic identifier for the question set
completedbooleanWhether the question set is completed
completed_atstringThe time the question set was completed
idstringUUID of the question set
ownerowner objectThe owner of this question set (see above)
reference_idstringApplication form reference ID
tenantstringTenant name
titlestringUser 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, it will send a webhook payload for every request state listed in the table below.

KeyDescription
quote_request:finishedQuote request is complete
quote_request:selectedQuote request is selected to bind

Quote Request Payload

KeyTypeDescription
annual_pricestringAnnual rate in USD
application_form_idstringUUID of the application form
attachmentsarrayDocuments relevant to the quote request (see Quote Request Attachments
carrierstringCarrier name
idstringUUID of the quote request
monthly_pricestringMonthly rate in USD
ownerowner objectThe owner of this question set (see above)
productsarrayProducts included in the quote
quote_numberstringNumber received from the carrier for this quote event
recommendedbooleanWhether this quote request was recommended to the user
reference_idstringApplication form reference ID
request_statusstringStatus of the quote request
scorestringScore used to rank this quote request
tenantstringTenant name
translated_messagesarrayContains zero or more translated message objects
urlstringURL 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, and attachment_type which denotes the type of file
  • 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
      • General Liability
      • Professional Liability
      • Workers Compensation
  • request_status

    • Quote requests will be returned as either quote_request:finished or quote_request:selected. Requests that are returned as quote_request:finished require you to look at the request_status field in the payload to determine the actual status of the request. The request_status field can contain several common values depending on what is returned. These values include:
      • completed - Carrier returned a quote
      • ineligible- Prospect did not qualify (DNQ)
      • failed - Carrier returned an error
      • timed_out - Carrier did not respond in time

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>"
}

Application Form

Application Form Actions

When subscribed to the Application Form event, it will send a webhook payload for every Application Form request state listed in the table below.

ActionDescription
application_form:finished_quotingOne or more quote events occurred
application_form:inactiveTimeout in consumer portal
application_form:exchange_borrowLend-borrow
application_form:exchange_borrow_returnLend-return
application_form:exchange_matchMatched in the Exchange
application_form:transferred_into_tenantTenant transfer occurred, but no reason was supplied
application_form:taken_overApp form is taken over by another agent

Application Form Payload

KeyTypeDescription
answersarrayThe answers that were completed by the user
clonedbooleanWhether this application form has been cloned
created_atstringThe time the application form was created
finished_quote_requests_countnumberNumber of quote requests that have finished
idstringUUID of the application form
inactivebooleanWhether this application form is inactive
lockedbooleanWhether this application form is locked
ownerowner objectThe owner of this question set (see above)
owner_idstringDEPRECATED. Use owner.id
owner_is_guestbooleanDEPRECATED. Use owner.is_guest
parent_idstringUUID of the parent application form
parent_tenantstringThe name of the tenant responsible for transferring the application form
parent_tenant_idstringThe UUID of the tenant responsible for transferring the application form
question_setsarrayThe question sets
quote_requestsarrayThe quote requests
quote_requests_countnumberNumber of quote requests that were created
reference_idstringApplication form reference ID
routing_outcomestringThe name of the destination subdomain based on routing rules
statestringApplication form state: incomplete, in_progress, completed, quoted
tenantstringTenant name
updated_atstringThe 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": "Mike",
"last_name": "Jones",
"email": "mike.jones@gmail.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": "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_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": "2019-12-05",
"alias": "2019-12-05",
"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"
}
]
}
]
}