Skip to main content
Point Genlook at any HTTPS endpoint and receive a signed POST request for every try-on, every completed try-on session, and every attributed order. Wire it into your backend, a Zapier-style automation, or an internal data pipeline.
Webhooks only fire for identified shoppers: they’re logged in, or they submitted their email through the widget. When an anonymous visitor identifies themselves, their earlier try-ons are replayed to your endpoint at that moment.

Set up

1

Open Integrations

Shopify: In the Genlook app, go to Integrations.WooCommerce, PrestaShop, and other platforms: Sign in at app.genlook.app, open your site, then go to Integrations.
2

Add your endpoint URL

Find Webhook, enter the HTTPS URL Genlook should call, and save.
3

Store the signing secret

Saving generates a signing secret and shows it once. Store it now; later visits only confirm that a secret exists. If you lose it, rotate to get a new one.

Events

try_on_session intentionally duplicates the product_tried_on events of the same session: consume whichever granularity fits your pipeline and ignore the other. Its sessionId is stable, so re-deliveries of the same session can be deduplicated on it.

Request format

Every delivery is a POST with a JSON body and these headers: The body is always the same envelope; only data changes per event:

Product fields

Products in product_tried_on and try_on_session payloads carry the ids plus every catalog detail Genlook could resolve. A field that can’t be resolved is omitted, never sent as null or empty.

Payloads by event

product_tried_on

try_on_session

Distinct products, most-tried first, each with the product fields above plus per-product counts:

order_try_on_attributed

tryOnCount is the shopper’s try-on count in the attribution window at order time, and productMatch is true when the order contains a product they tried on.

Verify the signature

Compute HMAC-SHA256 of the raw request body with your secret and compare it, timing-safe, against the hex after sha256=. Reject the request on mismatch.
Parse the JSON only after the signature checks out, and compute the HMAC over the raw bytes, not a re-serialized object.

Delivery and retries

  • Respond with a 2xx quickly; Genlook times out after 5 seconds.
  • Failed deliveries (timeouts, 408, 429, and 5xx) are retried up to 3 times with exponential backoff, then dropped. Webhooks are best-effort: treat your own systems as the source of truth for anything critical.
  • Deliveries can arrive out of order; use occurredAt and sessionId rather than arrival time.