Event SpecsInsurance

Insurance Event Spec

This page defines all standard events for insurance and insurtech businesses on Datafly Signal. Use these snake_case event IDs in your datafly.track() calls so your pipelines stay compatible with the pre-built insurance blueprint and the vendor mapping table below. The set covers the full lifecycle: discovery, quote journey, application and purchase, retention, and claims.

💡

Insurance has no native event set in GA4 or Meta CAPI. Signal maps these canonical events onto each vendor’s lead-gen and ecommerce events — e.g. quote_requested → generate_lead, policy_purchased → purchase. Where an event also overlaps the GA4 ecommerce set (e.g. view_item, add_to_cart, purchase, search, sign_up, login, generate_lead), reuse the GA4-recommended name as-is.

All events are sent via datafly.track(). Properties are passed as a flat object in the second argument.

⚠️

Never put raw PII (email, phone, name, date of birth, address) in track() properties. Identifiers for match-rate (email, phone) are collected separately via datafly.identify() and hashed server-side by the blueprint before delivery.


Discovery Events

view_item_list

Fired when a user views a list of cover options, plans, or comparison results.

datafly.track('view_item_list', {
  item_list_id: 'car-quotes',
  item_list_name: 'Car Insurance — Comparison Results',
  insurance_type: 'car',
  items: [
    { item_id: 'COMP-PLUS', item_name: 'Comprehensive Plus', price: 480.00, index: 0, item_category: 'car' },
    { item_id: 'TPFT', item_name: 'Third Party Fire & Theft', price: 320.00, index: 1, item_category: 'car' }
  ]
})
PropertyTypeRequiredDescription
item_list_idstringOptionalMachine-readable identifier for the list of cover options
item_list_namestringOptionalHuman-readable name of the list being browsed
insurance_typestringOptionalLine of business (e.g. car, home, life, travel, pet, health)
itemsarrayOptionalArray of cover options displayed (see Items Array Schema)

select_item

Fired when a user clicks a specific cover option or plan within a list or comparison grid.

datafly.track('select_item', {
  item_list_id: 'car-quotes',
  item_list_name: 'Car Insurance — Comparison Results',
  insurance_type: 'car',
  items: [
    { item_id: 'COMP-PLUS', item_name: 'Comprehensive Plus', price: 480.00, index: 0, item_category: 'car' }
  ]
})
PropertyTypeRequiredDescription
item_list_idstringOptionalIdentifier of the list the option was selected from
item_list_namestringOptionalName of the list the option was selected from
insurance_typestringOptionalLine of business
itemsarrayOptionalArray containing the selected option (see Items Array Schema)

Fired when a user submits a search (e.g. searching the knowledge base, looking up a provider, or filtering products).

datafly.track('search', {
  search_term: 'multi car insurance',
  insurance_type: 'car'
})
PropertyTypeRequiredDescription
search_termstringRequiredThe search term entered by the user
insurance_typestringOptionalLine of business the search relates to

view_search_results

Fired when search or comparison results are returned to the user.

datafly.track('view_search_results', {
  search_term: 'multi car insurance',
  results_count: 12,
  insurance_type: 'car'
})
PropertyTypeRequiredDescription
search_termstringRequiredThe search term the results relate to
results_countnumberOptionalNumber of results returned
insurance_typestringOptionalLine of business

view_promotion

Fired when a promotional banner or offer (e.g. a discount or bundle) is visible to the user.

datafly.track('view_promotion', {
  promotion_id: 'MULTICAR10',
  promotion_name: 'Multi-Car 10% Off',
  creative_name: 'multicar-hero-v2.jpg',
  creative_slot: 'homepage-hero'
})
PropertyTypeRequiredDescription
promotion_idstringOptionalIdentifier for the promotion
promotion_namestringOptionalHuman-readable name of the promotion
creative_namestringOptionalName or URL of the creative asset shown
creative_slotstringOptionalSlot or placement where the promotion appeared

select_promotion

Fired when a user clicks a promotional banner or offer.

datafly.track('select_promotion', {
  promotion_id: 'MULTICAR10',
  promotion_name: 'Multi-Car 10% Off',
  creative_name: 'multicar-hero-v2.jpg',
  creative_slot: 'homepage-hero'
})

Accepts the same properties as view_promotion.


Quote Events

quote_started

Fired when a user begins a quote journey (opens the quote form or configurator).

datafly.track('quote_started', {
  insurance_type: 'car',
  coverage_level: 'comprehensive'
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business (e.g. car, home, life, travel, pet, health)
coverage_levelstringOptionalLevel of cover being configured (e.g. comprehensive, tpft, essential)

get_quote

Fired when a user requests a quote calculation mid-journey — for example clicking “Get my price” before viewing the full results. This is a high-intent engagement event referenced directly by the insurance blueprint.

datafly.track('get_quote', {
  insurance_type: 'car',
  quote_id: 'Q-10042',
  coverage_level: 'comprehensive'
})
PropertyTypeRequiredDescription
insurance_typestringRequiredLine of business
quote_idstringOptionalYour quote reference
coverage_levelstringOptionalLevel of cover requested

quote_requested

Fired when a user submits their details to request a quote. This is the primary lead event — ensure it fires reliably.

datafly.track('quote_requested', {
  insurance_type: 'car',
  quote_id: 'Q-10042',
  coverage_level: 'comprehensive',
  value: 480.00,
  currency: 'GBP'
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business
quote_idstringOptionalYour quote reference
coverage_levelstringOptionalLevel of cover requested
valuenumberOptionalEstimated annual premium
currencystringOptionalISO 4217 currency code

quote_received

Fired when a quote (or set of quotes) is returned to the user.

datafly.track('quote_received', {
  insurance_type: 'car',
  quote_id: 'Q-10042',
  value: 480.00,
  currency: 'GBP'
})

Accepts the same properties as quote_requested.


generate_lead

Fired when a user becomes a qualified lead — for example requesting a callback, downloading a policy document, or completing a contact form. Reuses the GA4-recommended lead event so it maps cleanly to each ad platform’s lead conversion.

datafly.track('generate_lead', {
  insurance_type: 'car',
  lead_type: 'callback_request',
  value: 480.00,
  currency: 'GBP'
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business
lead_typestringOptionalType of lead (e.g. callback_request, brochure_download, quote_submitted)
valuenumberOptionalEstimated value of the lead (typically annual premium)
currencystringOptionalISO 4217 currency code

Policy Events

view_item

Fired when a user views a specific policy or cover option. Also accepted as policy_viewed.

datafly.track('view_item', {
  insurance_type: 'car',
  value: 480.00,
  currency: 'GBP',
  items: [
    { item_id: 'COMP-PLUS', item_name: 'Comprehensive Plus', item_category: 'car', price: 480.00, currency: 'GBP' }
  ]
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business
valuenumberOptionalAnnual premium of the policy viewed
currencystringOptionalISO 4217 currency code
itemsarrayOptionalThe policy as an item (see Items Array Schema)

add_to_cart

Fired when a user adds a policy or optional add-on (e.g. breakdown cover, legal protection) to their basket before checkout.

datafly.track('add_to_cart', {
  insurance_type: 'car',
  value: 525.00,
  currency: 'GBP',
  items: [
    { item_id: 'COMP-PLUS', item_name: 'Comprehensive Plus', item_category: 'car', price: 480.00, currency: 'GBP' },
    { item_id: 'ADDON-BREAKDOWN', item_name: 'Breakdown Cover', item_category: 'car_addon', price: 45.00, currency: 'GBP' }
  ]
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business
valuenumberOptionalCombined annual premium of the items added
currencystringOptionalISO 4217 currency code
itemsarrayOptionalPolicy and add-ons added (see Items Array Schema)

begin_checkout

Fired when a user begins the policy application (checkout). Also accepted as application_started.

datafly.track('begin_checkout', {
  insurance_type: 'car',
  value: 480.00,
  currency: 'GBP',
  items: [
    { item_id: 'COMP-PLUS', item_name: 'Comprehensive Plus', item_category: 'car', price: 480.00, currency: 'GBP' }
  ]
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business
valuenumberOptionalTotal annual premium of the application
currencystringOptionalISO 4217 currency code
itemsarrayOptionalPolicy and add-ons in the application (see Items Array Schema)

add_payment_info

Fired when a user submits their payment details during the application. Also accepted as application_submitted.

datafly.track('add_payment_info', {
  insurance_type: 'car',
  value: 480.00,
  currency: 'GBP',
  payment_type: 'credit_card',
  payment_frequency: 'annual',
  items: [
    { item_id: 'COMP-PLUS', item_name: 'Comprehensive Plus', item_category: 'car', price: 480.00, currency: 'GBP' }
  ]
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business
valuenumberOptionalTotal annual premium
currencystringOptionalISO 4217 currency code
payment_typestringOptionalPayment method (e.g. credit_card, direct_debit, paypal)
payment_frequencystringOptionalBilling frequency (e.g. annual, monthly)
itemsarrayOptionalPolicy and add-ons in the application (see Items Array Schema)

purchase

Fired when a policy is successfully purchased. Also accepted as policy_purchased. This is the primary conversion event — ensure it fires reliably.

datafly.track('purchase', {
  transaction_id: 'POL-55012',
  value: 480.00,
  currency: 'GBP',
  insurance_type: 'car',
  payment_frequency: 'annual',
  policy_term_months: 12,
  items: [
    { item_id: 'COMP-PLUS', item_name: 'Comprehensive Plus', item_category: 'car', price: 480.00, currency: 'GBP', quantity: 1 }
  ]
})
PropertyTypeRequiredDescription
transaction_idstringRequiredPolicy number — used for deduplication
valuenumberOptionalTotal annual premium
currencystringOptionalISO 4217 currency code
insurance_typestringOptionalLine of business
payment_frequencystringOptionalBilling frequency (e.g. annual, monthly)
policy_term_monthsnumberOptionalLength of the policy term in months
itemsarrayOptionalThe purchased policy and add-ons (see Items Array Schema)
⚠️

Always send transaction_id (the policy number) on purchase so platforms like Meta CAPI and GA4 deduplicate against any browser-side conversion.


policy_renewed

Fired when an existing policy is renewed.

datafly.track('policy_renewed', {
  transaction_id: 'POL-55012',
  value: 495.00,
  currency: 'GBP',
  insurance_type: 'car',
  policy_term_months: 12,
  items: [
    { item_id: 'COMP-PLUS', item_name: 'Comprehensive Plus', item_category: 'car', price: 495.00, currency: 'GBP', quantity: 1 }
  ]
})

Accepts the same properties as purchase.


policy_cancelled

Fired when a policy is cancelled. Map server-side to a refund where the cancellation triggers a premium return.

datafly.track('policy_cancelled', {
  transaction_id: 'POL-55012',
  value: 120.00,
  currency: 'GBP',
  insurance_type: 'car',
  cancellation_reason: 'switched_provider'
})
PropertyTypeRequiredDescription
transaction_idstringRequiredPolicy number being cancelled
valuenumberOptionalRefunded premium amount, if any
currencystringOptionalISO 4217 currency code
insurance_typestringOptionalLine of business
cancellation_reasonstringOptionalReason for cancellation (e.g. switched_provider, no_longer_needed)

Claim Events

claim_started

Fired when a user begins a claim.

datafly.track('claim_started', {
  insurance_type: 'car',
  policy_id: 'POL-55012',
  claim_type: 'accident'
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business
policy_idstringOptionalPolicy the claim relates to
claim_typestringOptionalType of claim (e.g. accident, theft, windscreen)

claim_submitted

Fired when a claim is submitted.

datafly.track('claim_submitted', {
  insurance_type: 'car',
  policy_id: 'POL-55012',
  claim_id: 'CLM-88021',
  claim_type: 'accident'
})
PropertyTypeRequiredDescription
insurance_typestringOptionalLine of business
policy_idstringOptionalPolicy the claim relates to
claim_idstringOptionalYour claim reference
claim_typestringOptionalType of claim

Account Events

sign_up

Fired when a user completes account registration (e.g. creating an online policy portal account).

datafly.track('sign_up', {
  method: 'email'
})
PropertyTypeRequiredDescription
methodstringOptionalRegistration method (e.g. email, google, apple)

login

Fired when a user signs in to their account or policy portal.

datafly.track('login', {
  method: 'email'
})
PropertyTypeRequiredDescription
methodstringOptionalLogin method (e.g. email, google, apple)

Items Array Schema

💡

Several events accept an items array — each policy, plan, or add-on is represented as an item object using GA4-style field names. Signal’s server-side blueprints automatically transform these to vendor-specific formats (e.g., Meta’s contents[] with id/title fields).

PropertyTypeDescription
item_idstringYour internal product/cover code (e.g. COMP-PLUS)
item_namestringCover or plan display name
item_categorystringLine of business or add-on category (e.g. car, car_addon)
item_brandstringUnderwriter or brand name
item_variantstringCover variant (e.g. Comprehensive, TPFT)
pricenumberAnnual premium for this item
quantitynumberNumber of units (typically 1 for a policy)
indexnumberPosition in list (0-indexed, relevant in list/comparison contexts)
currencystringISO 4217 currency code
couponstringDiscount or promo code applied to this item
discountnumberMonetary discount applied to this item
item_list_idstringIdentifier of the list the item was shown in
item_list_namestringName of the list the item was shown in

Vendor Mapping

The table shows how Signal maps insurance events to each vendor’s native event name. The blueprint handles the payload transformation; you only ever send the canonical Signal event.

Signal EventGA4Meta CAPITikTok Events API
view_item_listview_item_listViewContentViewContent
select_itemselect_itemViewContentClickButton
searchsearchSearchSearch
view_search_resultsview_search_resultsSearchSearch
view_promotionview_promotion(custom)(custom)
select_promotionselect_promotion(custom)(custom)
quote_startedquote_started(custom)(custom)
get_quoteget_quote(custom)(custom)
quote_requestedgenerate_leadLeadSubmitForm
quote_receivedquote_received(custom)(custom)
generate_leadgenerate_leadLeadSubmitForm
view_itemview_itemViewContentViewContent
add_to_cartadd_to_cartAddToCartAddToCart
begin_checkoutbegin_checkoutInitiateCheckoutInitiateCheckout
add_payment_infoadd_payment_infoAddPaymentInfoAddPaymentInfo
purchasepurchasePurchaseCompletePayment
policy_renewedpurchasePurchaseCompletePayment
policy_cancelledrefund(custom)(custom)
claim_startedclaim_started(custom)(custom)
claim_submittedclaim_submitted(custom)(custom)
sign_upsign_upCompleteRegistrationCompleteRegistration
loginlogin(custom)(custom)