Guide

Link tracking.

Every link you send gets rewritten to a short link that tells you which group clicked it. Here's exactly what happens, what we record, and how to put it on your own domain.

How it works

You don't have to do anything to turn link tracking on. When you send a message that contains a URL, we find it and swap it for a short link just before the message goes out:

You type:   Tickets are live! https://yourclub.nl/tickets

They see:   Tickets are live! https://promotionbot.net/r/aB3xY9k

Anyone who taps that short link is sent straight on to your real page. The redirect is instant, and it keeps working forever — even if you later cancel, downgrade, or delete the campaign it came from. A link printed on a poster does not stop working because your billing changed.

Links you paste that are already PromotionBot short links are left alone, so re-sending an old message doesn't shorten it twice.

Why every group gets its own link

This is the part most link shorteners can't do. If you send the same message to twelve groups, we mint twelve different short codes — all pointing at the same page. That's what lets the Analytics page tell you that the first-years group clicked 40 times and the alumni group clicked twice.

A few consequences worth knowing:

  • Re-sending the same campaign to the same group reuses that group's code, so clicks accumulate rather than resetting.
  • Your click counts are per-group, but we cannot tell you who clicked. WhatsApp doesn't give us that, and we don't try to work it out.
  • Because clicks are attributed to the group that received the message, forwarded messages count towards the group they were forwarded from.

Cooldowns and daily caps still apply

Link tracking doesn't change how often we'll send. The 20-hour per-group cooldown and your per-category daily caps run first — if a group is skipped for either reason, no message goes out and no link is minted for it, so it simply won't appear in that campaign's click breakdown. A group showing zero clicks and a group that never received the message look different in Analytics for exactly this reason.

What we record when someone clicks

Deliberately very little:

  • The time of the click.
  • A country, derived from the IP address and then discarded.
  • A browser family, e.g. "Chrome/Android" or "Safari/iOS".
  • A referrer, if the browser sends one. WhatsApp usually doesn't.

We do not store the IP address, and we don't set any cookie on the person clicking. See the privacy policy for the full picture.

Automatic rewriting only covers links you send through WhatsApp. For everything else — an Instagram bio, a QR code on a poster, a newsletter button — use the Links page in the app to create standalone tracked links.

You give it one destination and a list of channel names, and you get one link per channel:

Destination:  https://yourclub.nl/tickets
Channels:     Instagram bio · Poster QR · Newsletter

→ promotionbot.net/r/aB3xY9k   (Instagram bio)
→ promotionbot.net/r/Qm2pL7t   (Poster QR)
→ promotionbot.net/r/9xKd4Wv   (Newsletter)

Each one carries its own utm_source on the destination, so the traffic also lands correctly in your own analytics — Google Analytics, Plausible, Shopify, whatever you use — without you configuring anything. The UTM parameters go on the destination, never on the short link, which is what keeps the link you paste short enough to say out loud.

You can repoint a batch link at a different page later without the code changing, which matters when the poster is already printed. If a link needs to stop working, disable it rather than deleting it — deleting also erases its click history and cannot be undone.

Link tracking is included on the Team and Pro plans and during your trial. On Starter, links in your messages are sent through exactly as you typed them.

Using your own domain PRO

On Pro you can serve short links from your own subdomain, so people see links.yourclub.nl/r/aB3xY9k instead of our domain. Setup is one DNS record.

1. Pick a subdomain — never your main domain

Use something like links.yourclub.nl, go.yourclub.nl, or l.yourclub.nl.

Do not point your apex domain (yourclub.nl) or www at us. A hostname you give us is locked down to serving redirects and nothing else — every other path returns a 404. If you point a hostname that currently serves your website at us, that website goes offline. This is the single most common way to break this setup, and it is not reversible from our side: you'd have to change the DNS record back yourself.

2. Add the CNAME

In the app, go to Settings → Sending → Link tracking domain, enter your subdomain, and we'll show you the exact record. It looks like this:

Type:    CNAME
Name:    links.yourclub.nl
Target:  links-origin.promotionbot.net

If your DNS is already hosted on Cloudflare, start with "DNS only" — the grey cloud. Either setting can work (a proxied record puts your Cloudflare in front of ours, which Cloudflare supports), but DNS-only is the simpler path and the one we test against. If your subdomain sits at "pending" for more than about 15 minutes, toggling the cloud is the first thing to try.

3. Wait for it to go active

We check every 15 seconds and the status flips from pending to active on its own, usually within a few minutes of the DNS record propagating. Once it's active, all new links use your domain. Links minted before the switch keep resolving on the old one — they're already out in the world, so we never break them.

What this does not touch

  • Your email keeps working. A CNAME on a subdomain has no effect on the MX, SPF, DKIM or DMARC records on your apex domain.
  • Your website keeps working, as long as you followed step 1 and used a subdomain that wasn't already serving something.
  • Downgrading off Pro doesn't break existing links. They keep resolving on your domain; only newly-created links fall back to ours. Upgrade again and your domain resumes immediately, with no re-verification.

Troubleshooting

My domain is stuck on "pending"

In order of likelihood: the CNAME is orange-clouded in Cloudflare (set it to DNS only); the record hasn't propagated yet (give it 15 minutes); or there's a typo in the record name. Check the record resolves with dig links.yourclub.nl CNAME — you should see our origin as the target.

My links aren't being shortened

Check your plan — Starter sends links through as-is. If you're on Team or Pro, note that we only rewrite links starting with http:// or https://; a bare yourclub.nl/tickets isn't recognised as a link and is sent verbatim.

My click numbers look lower than I expected

Some WhatsApp clients pre-fetch links to build the preview card, and some don't. More often, the groups you expected to click were skipped by a cooldown or a daily cap and never received the message at all — check the campaign's delivery breakdown before concluding the audience didn't care.

Can I see clicks per person?

No. Attribution is per-group by design, and we don't store anything that would let us identify an individual clicker.

Try it free   See plans