Skip to main content
Checkout Champ sends funnel transactions to Datalyr as GET postbacks, one Export Profile per event type.

Before you start

Contact support to have your shared secret installed. Postbacks start once it is in place.

Connect

1

Open the source

Open Sources, find Checkout Champ, and select connect.
2

Install the tracking script

Copy the Global Head Script. It is the standard Datalyr dl.js snippet.
3

Paste it into Checkout Champ

Open Account Settings → Global Scripts. Paste the script. Save.
4

Publish the funnel

Open Events. Confirm a pageview row arrives from your funnel.
5

Create five Export Profiles

Copy each URL from the connection dialog into its own Checkout Champ Export Profile.
Paste each URL exactly. The bracketed placeholders such as [orderId] are Checkout Champ field tokens.

The five Export Profiles

Every URL is a GET to https://webhooks.datalyr.com/checkoutchamp/YOUR_WORKSPACE_PUBLIC_ID. Create all five. Refunds, rebills, chargebacks, and cancellations reach Datalyr only through their own Export Profile. Add the Purchase profile to the main order and to every upsell.

Auth

We compare a shared secret in constant time. There is no HMAC signature. Send the secret as the secret query parameter, or as the X-CheckoutChamp-Secret header. The query parameter wins when both are present.

Event mapping

We lowercase and trim event_type, then normalize it. Any other value passes through lowercased and counts as no revenue. A missing event_type or order_id returns HTTP 400. We resolve the visitor in this order, stopping at the first useful match. No match sets visitor_id to cc_<order_id>. Keep the email parameter on every Export Profile. Without it, no Checkout Champ transaction can be attributed. When nothing resolves, we queue the postback, retry the lookup after 20 seconds, then write the event.

Revenue

The event value is gross, taken from the amount parameter. Checkout Champ revenue is gross only. No commission, tax, or fee is subtracted.
Refund and chargeback amounts are recorded positive, not negative. They are separate metrics, and no report subtracts them from revenue.
We record 0 when amount is missing, negative, above 1000000, non-numeric, or a string containing the letter e. Currency is the currency parameter uppercased, or USD when absent.

Test orders

We mark an order test when card_last4 is 0000. Reports exclude those rows, but conversion rules still fire on them.

Delivery behavior

Add &transaction_id=[transactionId] to the Recurring URL. Without it, a rebill deduplicates on the order ID and the UTC date. A redelivery crossing midnight then records it twice.

Every HTTP status

Verify

  1. Open the funnel landing page in a private window with ?utm_source=doctest.
  2. Open Events. Confirm a pageview row exists.
  3. Complete one order with a card ending 0000.
  4. Open Events. Find the purchase row.
  5. Confirm value, currency, and event_data.order_id.
  6. Confirm event_data.is_test is true.
  7. Refund that order in Checkout Champ. Confirm a refund row arrives.

When it does not work

A Shopify store behind a Checkout Champ funnel needs no extra work, because we drop the Shopify copy. See Shopify. Next, create a conversion rule so these orders reach your ad platforms.