Home Features Creators FAQs Blog
About Contact

How to Attribute Sales with Coupons in Instagram DMs

Checkout pages eat UTMs. A unique code in the Instagram DM is a backup when the click arrives at a shop that strips query strings, when the buyer pays in a store, or when two ads and a bio link already polluted last-click. It will leak into Telegram group chats. Budget for that. Ecommerce keyword playbooks already exist in SIZE, RESTOCK, and PRICE — this article is attribution, not a second keyword list.

Do not put a coupon in every auto DM. Use a code when you need to see which Reel or which creator actually moved an order, or when you are running a timed offer you can actually honour and turn off. Pair codes with UTMs on the same URL when the destination keeps them. Neither method is a magic join to HubSpot or Salesforce — you still match codes in the shop you already run.

When codes help

Drops, restocks, and influencer-specific Reels. One code per campaign, not per human, unless you can issue unique codes and staff the exceptions. A jewellery drop might send IGLOOK12 in the LINK DM for that Reel only. A restock of the navy tee uses IGNAVY18. If both Reels send SAVE10, you will never know which edit to remake, and you will train the comments to hunt the same tired code.

  • Creator collab: one code on that creator’s media (disclose the relationship in the DM). Do not reuse the house code; you will under-count the collab and over-count the grid.
  • In-store pickup: the associate can type the code at the till when UTMs never existed.
  • Shops that strip query strings on redirect: the code is the only honest join.

Product-drop sequencing — when to open the keyword, when to pause — is the product drop playbook. Attribution here is only: the code in that DM must match a code you can turn off when the drop ends.

When codes hurt

Stacking five codes in one DM. Codes that undercut your wholesale partners. Codes you cannot turn off when the Reel dies. Codes that promise a percentage you will not honour at the till. Codes printed on a Story that outlives the inventory. Codes so generous that Telegram resale becomes the real distribution.

If the DM says 20% off and the shop has a 10% cap, you taught a fight. If the influencer code stacks with a sitewide sale you forgot, you taught a margin hole. Write the combinability rule in the same bubble as the code: “IGLOOK12 is 10% on this lookbook SKU, not combinable with other offers, ends Sunday.” Then actually end it.

Leakage is a planning input, not a surprise

Someone will screenshot the code and post it in a group. Someone will comment LINK on a week-old Reel after you paused the visual but not the rule. Budget a leak rate in the offer, or use codes that only apply to the SKUs in that Reel. Do not chase every leaked use as fraud unless the pattern is bots.

If leakage would destroy the economics, do not put the code in an automated DM. Send the lookbook without a discount and take wholesale or custom pricing human. Attribution can be a tagged UTM on the lookbook form instead. Codes are a tool, not a requirement of comment-to-DM.

A drop week that you can actually close

  1. Create the shop code first (SKU list, end time, stacking rule). Do not invent the string in the Instagram caption before the till knows it.
  2. Name the automation after the media and put the code only in that DM.
  3. Tag the URL with a campaign that matches the code name so you have two joins if one breaks.
  4. When inventory hits zero, pause the rule and edit the DM to WAITLIST or “sold — next drop on the list,” not a 404 plus a live coupon.
  5. After the window, export orders with that code. That count is the attribution. Do not add bio sales “because the vibe was Instagram.”

If two creators post the same SKU, two codes. If you cannot issue two codes, you cannot honestly split credit. Say so in the recap instead of inventing a 50/50.

Public comments should not repeat the code

Keep the public reply to one line (“check your DMs”). Putting the code on the public thread is how you skip the DM, skip the disclosure line, and gift the discount to people who never saw the offer terms. The code belongs in the private reply with the terms.

What CommentLink does not do with coupons

It does not generate unique per-person Shopify discount codes. It does not sync redemptions from a catalog. It does not close the loop into a native CRM. You paste a code you already created into the DM (or a button that opens a URL that contains the code). The shop reports redemptions. You join them to the campaign name you chose.

If you need per-person uniqueness, issue codes in the tool that already does that and only automate the “here is how to request a code” line — or take those threads human. Pretending an automation platform minted a thousand unique till codes is how recaps get fiction into them.

Till script when UTMs never arrived

Associate line: “If they mention Instagram, ask which look — navy barrel or ecru straight — and type IGNAVY18 or IGECRU18. Do not stack with the weekend sale. Do not accept a screenshot of a creator’s MIRA15 on this till unless that creator’s collab is live.” That sentence is attribution. A unique per-person Shopify code is not something CommentLink mints. You paste a campaign code you already created.

In-store pickup is why codes exist beside UTMs. Checkout pages eat query strings. Two ads and a bio link already polluted last-click. The code is the backup join. Budget leakage into Telegram. Limit SKUs and shorten the window if a leak would destroy the margin.

Two creators, one SKU, two codes — or admit you cannot split

Mira’s Reel sends MIRA15 with a paid-partnership line. Arjun’s Reel sends ARJUN15. Your house lookbook sends IGLOOK12. If you cannot issue three codes, you cannot honestly split credit in the recap. Say so. Do not invent a 50/50. Do not reuse the house code on Mira’s media or you will under-count the collab and over-count the grid.

Public comments must not repeat the code. Public reply: “check your DMs.” The code belongs in the private reply with combinability and end time: “IGLOOK12 is 10% on this lookbook SKU, not combinable, ends Sunday.” Then actually end it. CommentLink does not sync redemptions from a catalog and does not close a native CRM loop. The shop reports redemptions. You join them to the campaign name.

Recap fiction to leave out

  • Bio sales “because the vibe was Instagram.”
  • Orders with no code and no tagged UTM counted as the Reel.
  • A leaked Telegram use treated as Mira’s conversion.
  • A still-live rule on a week-old Reel sending a code you already turned off at the till — that is an ops miss, not a channel insight.

When inventory hits zero, pause the rule and switch the DM to WAITLIST. A 404 plus a live coupon is how you teach a fight. Codes are a tool, not a requirement of comment-to-DM. If leakage would destroy economics, send the lookbook without a discount and attribute with a tagged form instead.

FAQ

Should every auto DM include a coupon?

No. Use codes when you need attribution or a timed offer you can actually honour.

Can I use one house code on every Reel?

You can, and then you cannot tell Reels apart. Prefer one code per campaign if attribution is the point.

What if the code leaks on Telegram?

Assume it will. Limit SKUs, shorten the window, or skip the code and attribute with UTMs or tags instead.

Do UTMs replace coupons?

Only when the checkout keeps the query string. Codes survive in-store and stripped redirects. Use both when you can.

Should the public comment include the code?

No. Public threads spread the discount without the terms. Keep the code in the DM.

Can CommentLink issue a unique code per commenter?

Not as a native shop feature. Paste a campaign code you already created, or handle unique issuance in the system that owns the till.

Can the till accept any Instagram screenshot as a code?

No. Train the SKU list and the live codes. A creator code on a non-collab day is not a house discount.

Do I need a code if UTMs survive checkout?

Not for digital join. Still useful for in-store and stripped redirects. Use both when you can.

Related reading

Send the link in a private DM

Connect Instagram with Meta login and send a private DM when someone comments a keyword.

See comment-to-DM