For the complete documentation index, see llms.txt. This page is also available as Markdown.

Discord Placeholders

Every placeholder available in Discord webhook embeds, organised by what each event actually adds.

Placeholders insert live data into your Discord embed. Which ones are available depends on the event the webhook is subscribed to. A placeholder that doesn't exist for the event renders blank, which is the usual reason an embed looks half-empty. Check the event's section below before using a variable.

Dashboard → Integrations → Webhooks → (a webhook) → Discord Embed Template. Hovering that field shows the list for the current event.

There are eleven events but only seven distinct variable sets, because several events share identical lists. The two shared blocks are defined once below, and each event lists only what it adds.

Block A: customer (every event)

Available in all eleven events.

{store_id}
{customer.id}
{customer.steam.id}
{customer.steam.name}
{customer.steam.avatar_url}
{customer.minecraft.id}
{customer.minecraft.name}
{customer.minecraft.avatar_url}
{customer.profile.id}
{customer.profile.platform}
{customer.profile.name}
{customer.profile.avatar_url}

Use {customer.profile.*} if you want one template that works everywhere. The steam and minecraft variants are blank on the wrong platform, but profile resolves to whichever identity the customer actually used, and {customer.profile.platform} tells you which.

Block B: product object

Available in Delivery, Subscription and Discord Linked to Order events. Not available in Order Completed, Refund Completed or Chargeback Created.


Delivery events

Delivery Item Added, Delivery Item Activated, Delivery Item Revoked and Delivery Item Used all share exactly the same variables.

Block A + Block B, plus:

Because all four share one variable set, {revoke_reason} and {revoked_at} technically exist on Delivery Item Added. They'll simply be empty. Only use them on the Revoked event.

Order Completed

Block A only, no product object. Use {product_names} for a summary line.

Refund Completed

Block A, plus:

Chargeback Created

Block A, plus:

Chargeback Created is Refund Completed minus {store_refund_amount}, with {chargeback_at} in place of {created_at}. Copying a refund template across leaves one blank field.

Subscription Activated and Subscription Renewed

Identical variable sets.

Block A + Block B, plus:

{billing_cycle_sequence} is how you tell a first payment from a renewal: 1 is the initial charge. The initial_* amounts are what they paid at signup, useful for spotting subscribers still on an old promotional price.

Subscription Canceled

Everything from Activated / Renewed, plus:

Discord Linked to Order

Block A + Block B, plus:

Think before you publish these

Ready-made embeds using these variables are on Steam Templates and Minecraft Templates. Full payload schemas are in the webhook developer docs.

Last updated