Empower your affiliates with our coupons feature, designed to enhance their promotional efforts. It lets your affiliates promote coupon codes assigned to them, and when a customer redeems an affiliate's code at checkout, the conversion is attributed back to that affiliate.
Coupon tracking can be set up in several ways:
Bulk import: add many coupons at once via CSV import.
JS tracking code: placed on your thank-you page.
API: for fully custom integrations.
Native app: for example, tracking coupons in the Stripe app.
⚠️ Important: The offer a coupon is associated with must be in Active status for the coupon to work. If the offer is Inactive, the coupon won't function regardless of the coupon's own status.
Add coupons
Coupons are assigned to individual affiliates. To add one, go to Affiliates → Coupons and click Add new coupon.
You can either create a coupon manually or import many at once from a CSV file.
In order to create a coupon, use the Add new coupon button, fill in the following information, and confirm the coupon creation.
Code: Coupon code your affiliate will be promoting.
Referral ID: Affiliate for which the coupon will be created.
Offer: Offer for which the coupon should be attributed.
Status: If the coupon should be active right away or you want to activate it later.
Import coupons in bulk (CSV)
If you're migrating from another platform or have a large batch of codes, use Import from CSV in the same Add new coupon modal. Your file needs three columns (Code, Offer ID, and Referral ID), and Trackdesk shows a validation preview before you commit. For the full walkthrough, see Import Coupons via CSV.
Redeem a coupon manually
In order to redeem a coupon manually, navigate to the conversion report and use the Manually redeem coupon button and fill in the following information.
Code: Coupon code you want to use (maps to an affiliate and offer).
Advertiser: On network accounts, the advertiser that the coupon belongs to. It defaults to your account's default, so pick the owning advertiser when you redeem a coupon on an offer that belongs to an advertiser. Accounts that are not networks do not see this field.
Conversion type: Conversion type for which you want to redeem the coupon.
Amount: Amount from which the commission will be counted in case of dynamic payout on the offer; if the conversion type is set to fixed, the amount is not required.
Country: Country of the customer who redeemed the coupon; if you don't know the country and have the offer set to global tracking, set it, for example, to
XX.Status: Status with which the conversion will be created.
External ID: Optional parameter of External ID.
Customer ID: Optional parameter of Customer ID.
View redeemed coupons
Redeemed coupons appear in two places under Reports: the Conversion Report and the Overview Report.
Tracking coupons via Zapier
Fill in the following information in the Zap action.
Use the Trackdesk action Create Coupon Conversion and fill in:
Coupon code: the code (maps to an affiliate and offer).
Conversion status: the status the conversion is created with.
Revenue origin ID: found on the Settings page under Your Trackdesk identifiers (top-right).
Conversion type code: the conversion type to redeem the coupon for.
Country of customer: the ISO 3166-1 alpha-2 country code; if unavailable, set it, for example, to
XX.Amount: required for order-value-based payouts; not required for fixed payouts.
External parameters: External ID, Customer ID, and AdvS1 to AdvS5.
For platform-specific setups, see Track Stripe Coupons via Zapier and Track Shopify Coupons via Zapier.
Tracking coupons via JS code
To redeem a coupon via JavaScript, place the relevant snippet on your thank-you page, right before the closing </body> tag, and fill in the coupon code(s).
If the conversion type uses a fixed payout (no order amount needed):
<!-- Trackdesk tracker begin -->
<script async src="//TENANT_ID.trackdesk.com/main.js"></script>
<script>
(function(t,d,k){(t[k]=t[k]||[]).push(d);t[d]=t[d]||t[k].f||function(){(t[d].q=t[d].q||[]).push(arguments)}})(window,"trackdesk","TrackdeskObject");
trackdesk("TENANT_ID", "conversion", {
couponCodes: ["COUPON_CODE"],
revenueOriginId: "REVENUE_ORIGIN_ID",
conversionType: "CONVERSION_TYPE"
});
</script>
<!-- Trackdesk tracker end -->
Replace these values:
TENANT_ID: your Tenant ID (it appears twice)COUPON_CODE: the coupon that was redeemed by the userREVENUE_ORIGIN_ID: your Revenue Origin IDCONVERSION_TYPE: the Conversion Type you want the coupon conversion to be created with
In case you have dynamic payouts set on the Offer, please use the following code:
<!-- Trackdesk tracker begin -->
<script async src="//TENANT_ID.trackdesk.com/main.js"></script>
<script>
(function(t,d,k){(t[k]=t[k]||[]).push(d);t[d]=t[d]||t[k].f||function(){(t[d].q=t[d].q||[]).push(arguments)}})(window,"trackdesk","TrackdeskObject");
trackdesk("TENANT_ID", "conversion", {
couponCodes: ["COUPON_CODE"],
revenueOriginId: "REVENUE_ORIGIN_ID",
conversionType: "CONVERSION_TYPE",
amount: {
value: "AMOUNT"
}
});
</script>
<!-- Trackdesk tracker end -->
Replace these values:
TENANT_ID: your Tenant ID (it appears twice)COUPON_CODE: the coupon that was redeemed by the userREVENUE_ORIGIN_ID: your Revenue Origin IDCONVERSION_TYPE: the Conversion Type you want the coupon conversion to be created withAMOUNT: the order amount to send to the system
Tracking coupons via API
To track coupon conversions through the API, send the coupon code in the couponCodes field of POST /tracking/conversion/v1, together with your revenueOriginId and conversionTypeCode, plus amount if the offer uses dynamic payouts. To redeem a coupon without creating a conversion, use POST /tracking/coupon/v1/redeem. It returns a coupon redemption ID (cid) that is used for conversion attribution.
Coupons with recurring subscriptions
If your offer pays affiliates across recurring billing cycles (e.g., monthly subscriptions), coupon attribution needs to persist across renewals. See Coupon Tracking With Recurring Subscriptions for how to set this up.







