Skip to content

A shopper profile was created

POST

When an identity creates a new person; identities on endpoints with include_pii.

Media typeapplication/json
WebhookEvent_WebhookProfile_
object
api_version
Api Version

The payload version

string
default: v1
Allowed value: v1
created
required
Created

When the event happened

string format: date-time
data
required
WebhookData_WebhookProfile_

The event’s object

object
object
required
WebhookProfile

The topic’s object

object
created_at
required
Created At

When the profile was created

string format: date-time
first_seen_at
required
Any of:
string format: date-time
id
required
Id

The profile

string
/^prof_[0-9a-f]{32}$/
identities
Any of:
Array<object>
ProfileIdentity
object
consent
required
Consent

True only when the shopper ticked the marketing-consent box on their newest run that showed it; anything else, including a skipped page or a quiz without the box, is false

boolean
first_seen_at
required
Any of:
string format: date-time
kind
required
Kind

Email | phone | shopify_customer_id. A new kind may be added, so skip one you do not know. shopify_customer_id arrives when the shopper takes a quiz logged in to the store or places an order linked to a quiz session; its consent is always false

string
last_seen_at
required
Any of:
string format: date-time
value
required
Value

The email (lowercase), the phone (E.164), or the Shopify customer as a gid://shopify/Customer/ GID

string
identities_from_session
required
Identities From Session

Every identity kind that session contributed so far (email | phone | shopify_customer_id), not only what this event changed

Array<string>
last_seen_at
required
Last Seen At

The latest moment the profile was seen

string format: date-time
quiz_id
required
Any of:
string
/^quiz_[0-9a-f]{32}$/
session_id
required
Any of:
string
/^sess_[0-9a-f]{32}$/
share_orders
required
Share Orders

Orders bought through this shopper’s shared results

Array<object>
ProfileShareOrder
object
amount
required
Money

Its total in the store’s currency

object
amount
required
Amount

A decimal string, as “79.97”

string
currency
required
Currency

ISO 4217 code

string
buyer_person_id
required
Any of:
string
/^prof_[0-9a-f]{32}$/
created_at
required
Created At

When the order was placed

string format: date-time
matched_tier
required
Matched Tier

How the order was tied to the quiz session: line_item_property | cart_attribute | pixel_claim | email. The first two: the quiz put the product in the cart; pixel_claim: the checkout pixel named the session; email: the order’s email belongs to the shopper

string
order_id
required
Order Id

The Shopify order id

string
order_name
required
Any of:
string
quiz_id
required
Any of:
string
/^quiz_[0-9a-f]{32}$/
quiz_name
required
Any of:
string
session_id
required
Any of:
string
/^sess_[0-9a-f]{32}$/
via
required
Via

Retake: bought in a session started from this shopper’s shared result (session_id is that session’s); shared_page: bought straight from the shared results page (session_id is the shopper’s own)

string
Allowed values: retake shared_page
urls
required
Urls

Dashboard: the profile’s page on the dashboard

object
key
additional properties
string
id
required
Id

The event id, also sent as the webhook-id header; deduplicate on it

string
/^evt_[0-9a-f]{32}$/
type
required
Type

The topic: quiz.started | quiz.finished | quiz.abandoned | identity.captured | quiz.published | experiment.started | experiment.ended | profile.created | profile.updated | export.completed | webhook.endpoint.disabled | ping

string

Any 2xx within 10 seconds acknowledges the event

410 ends the delivery and disables the endpoint; any other 4xx but 408 and 429 ends it

Retried, as are 408, 429, a timeout and a network error: seven retries over about 28 hours, then the delivery is dead