Webhooks

How Llama Upsells uses Shopify webhooks — the mandatory GDPR compliance webhooks it handles, and how order webhooks feed Analytics.

Llama Upsells is a webhook consumer, not a webhook provider — there is nothing to subscribe to, and you don't need to configure anything in your theme or your own app to make this work. This page documents which Shopify webhooks the app registers and what it does with each, for merchants and partners who need this for a compliance or security review.

None of this requires action from you. The app registers these webhooks automatically when it's installed, and Shopify delivers them directly to the app's backend — never to your theme or storefront.

Mandatory compliance webhooks

Like every Shopify app, Llama Upsells registers the three mandatory GDPR compliance webhooks Shopify requires:

WebhookWhen Shopify sends it
customers/data_requestA customer asks the store for the personal data the store — and its apps — hold about them.
customers/redactA customer's data must be erased, typically 10 days after a store owner requests it (or automatically after a period of customer inactivity).
shop/redactA shop's data must be erased — sent 48 hours after the app is uninstalled, giving a merchant a window to reinstall without losing their configuration.

Customer data requests and redaction

Llama Upsells does not keep its own store of customer personal data. The only customer-related information the app touches — tags used to decide whether a shopper qualifies for a tag-gated discount or offer — is read live from Shopify at the time it's needed (see App Proxy) rather than saved into the app's database. There is no separate customer record for the app to hand back or delete, so both webhooks are acknowledged per Shopify's requirements without further action.

Shop redact

When Shopify sends shop/redact, the app removes the shop's stored data:

  • The shop's own record and installation state.
  • Cart and checkout settings.
  • Active tier, shipping, and product discount configuration (deactivated and cleared).
  • Cart restriction rules.
  • Stored sessions for the shop.
  • The shop's subscription/billing record.

This cleanup actually runs as soon as the app is uninstalled — the app doesn't wait for the shop/redact webhook before it stops serving a shop's storefront widgets and checkout extensions, since those already depend on the app being installed. The shop/redact webhook is Shopify's formal signal that the shop's data should be gone, and the app treats it the same way it treats an uninstall.

Order webhooks and Analytics

Llama Upsells also listens for Shopify's orders/create and orders/edited webhooks. These aren't compliance webhooks — they're how the app finds out an order happened at all, and they're the mechanism behind every number you see in Analytics: each order line is checked for a campaign marker, and only matching lines are recorded as campaign revenue.

That marker-matching model — including the attribution window, currency handling, and every edge case that changes the number you see — is documented in full on How revenue is attributed to campaigns. This page won't repeat it.

On this page