Analyse
IntegrationsCraftingStore

Integrations

CraftingStore

Connect CraftingStore's Gold webhook to Analyse so every purchase is attributed to the player, Campaign, and creator that drove it.

The CraftingStore integration is a first-class alternative to Tebex. Every purchase on your CraftingStore webstore flows into Analyse and gets attributed to the player, Campaign, and creator code that drove it.

Requires the Gold plan

CraftingStore only exposes webhooks on the Gold plan. If you're on Free or Silver, use the fallback command or upgrade in your CraftingStore dashboard.

How the integration works

  1. A player buys something on your CraftingStore store.
  2. CraftingStore sends a POST to a unique Analyse URL set up for that Server, with a JSON payload you configure.
  3. Analyse verifies the HMAC-SHA256 signature on the X-Signature header using the secret you configured in CraftingStore.
  4. The purchase is attached to the player (matched by in-game name), their originating Campaign, and any creator code you pass.
  5. All of this happens in under a second.

Setup

Everything happens in two places: Analyse (URL + secret) and the CraftingStore admin (paste URL, paste secret, paste payload).

  1. 1

    Open the CraftingStore integration in Analyse

    Go to Settings → Integrations → CraftingStore → Connect.

  2. 2

    Generate a signing secret

    Analyse shows you a webhook URL and a button to generate a secret. Keep this panel open.

  3. 3

    In CraftingStore, add a webhook

    Open your CraftingStore admin, go to the webhooks section, create a new endpoint. Paste the Analyse URL into the URL field, the secret into the secret field.

  4. 4

    Paste the payload template

    Analyse gives you a minified JSON payload with CraftingStore's native {placeholder} syntax. Paste it into CraftingStore's payload field exactly as-is.

  5. 5

    Save the webhook in CraftingStore

    After the first real purchase (or test event) fires, the Analyse card flips to a green "Connected" badge.

The secret goes from Analyse to CraftingStore

This is the opposite direction of the Tebex flow. With Tebex, Tebex generates the secret and you paste it into Analyse. With CraftingStore, Analyse generates the secret and you paste it into CraftingStore.

The payload we expect

Analyse expects this shape (all values as strings — CraftingStore substitutes placeholders as strings and Analyse coerces numeric values on its side):

json
{
"transaction_id": "{transaction_id}",
"in_game_name": "{in_game_name}",
"uuid": "{uuid}",
"price": "{price}",
"payment_name": "{payment_name}",
"email": "{email}",
"timestamp": "{timestamp}",
"gateway": "{gateway}",
"coupon": "{coupon}"
}

Keep the key names exactly as shown. The {placeholder} values on the right are CraftingStore's own syntax — CraftingStore replaces them at delivery time. Copy the minified single-line version from the Analyse modal.

How players get matched

Analyse matches the purchase to a player by the in-game name on the webhook (case-insensitive). If a player with that username has ever joined the Server, the purchase is linked to them and inherits their originating Campaign. Unmatched purchases are still recorded at the Server level but show as "Unmatched" on the Revenue page.

CraftingStore sends a UUID alongside the name when available; Analyse stores that on the purchase for reference but doesn't rely on it for matching (it lines up with the Tebex flow that way).

Refunds and chargebacks

CraftingStore only fires webhooks for completed real payments. Refunds, chargebacks, and manual admin payments do not trigger the webhook — this is a CraftingStore design choice, not an Analyse one.

If you need to correct revenue for a refund:

  • Recommended: issue the refund from the CraftingStore dashboard (standard), then adjust the purchase manually in Analyse if you need the revenue chart to reflect it.
  • Or handle it with the fallback command at the point of the adjustment.

The webhook endpoint

Each Server in Analyse has its own unique CraftingStore webhook URL — that's how multi-Server networks keep revenue separated. If your Network has one CraftingStore store serving multiple Servers, set up multiple webhooks in CraftingStore, each pointing at the right Analyse URL.

Rotating the secret

If the secret leaks (or you want to rotate as hygiene), open the CraftingStore card in Analyse and click Regenerate secret. Analyse replaces the stored secret, shows you the new value once, and any incoming webhooks signed with the old secret start returning 401. Paste the new secret into CraftingStore to restore delivery.

Disconnecting

Disconnecting deletes the Analyse integration row. Existing purchases stay visible, but new CraftingStore webhooks start returning 404 because the integration no longer exists. You can reconnect at any time with a fresh secret.

Testing the integration

CraftingStore doesn't have a built-in "Send test event" button at the time of writing. The easiest way to test:

  1. Buy a cheap test package on your own store (you can refund yourself after).
  2. Check the Analyse Revenue page — the purchase should appear within a second.
  3. If it doesn't, the most common culprit is a mismatched secret (returns 401) or a missing projectId query parameter on the URL (returns 400).