Campaigns
A campaign ties a bot, a tracked chat, your welcome creative, and your postback URLs together — and gives you the deep link to send traffic to. Everything a subscriber does after clicking that link is tracked.

The campaign editor
Open Campaigns → Create campaign (or click a campaign name to edit it).
1. Bot
Pick one of your connected bots. The bot must be an admin of the chat you want to track — if your bot isn’t promoted yet, go to Bots first.
2. Chat
After you pick a bot, only chats where it is an admin are shown. If a chat is already used by another active campaign it won’t appear — each active campaign tracks a unique bot × chat pair.
3. Welcome message
What the subscriber sees as soon as they start your bot.
- Text — supports Telegram Markdown:
*bold*,_italic_,[link text](url),`code`. Keep it friendly. - Image / video — optional. Upload from your device (stored on our servers,
not as a Telegram
file_id). - CPA button — an optional inline button below the message. Fill in a
caption (button label) and a URL. The URL can contain macros —
the macro helper shows you the full list. The most common one is
{click}, which inserts the subscriber’s click id so your tracker can match the impression to the conversion.
4. Postback URLs
Five URL templates — one per lead event. When that event fires, we substitute your macros and fire a GET request to the URL.
| Field | When it fires |
|---|---|
| Wait | Subscriber pressed Start in the bot |
| Hold | Join request submitted (approval-required chats) |
| Approve | Subscriber joined / request approved |
| Cancel | Subscriber left voluntarily (within the unsub window) |
| Trash | Subscriber was kicked or banned (within the unsub window) |
Leave any field empty to skip that event’s postback. Leave all five empty to fall back to your global postbacks.
The macro helper button inserts the most common macros. The tracker preset dropdown pre-fills all five fields with a ready-made template for AlterCPA Lite (or another supported tracker) — just swap in your own credentials.
→ How tracking works has the full macro reference and delivery rules.
5. Unsub window
How long after joining a leave still counts as a “cancel” or “trash” and fires a postback. After the window the lead still moves to that status, but no postback is sent.
| Option | Window |
|---|---|
| 1 day | 86 400 s |
| 7 days | 604 800 s |
| 30 days | 2 592 000 s |
| Custom | Any duration in days |
| Always | No expiry — every leave fires a postback forever |

6. Lead notifications
Get a Telegram message from the service bot when a lead changes status in this
campaign. Only paid traffic (leads from a /start) triggers notifications
— organic joins are never notified.
| Level | What you receive |
|---|---|
| Off (default) | Nothing |
| Successful joins only | A message when a lead reaches Approve |
| Joins + new leads | Approve + new leads (Wait — bot start) |
| All status changes | Wait, Hold, Approve, Cancel, Trash |
The global Lead notifications toggle in your Profile must also be on for messages to arrive.
Triggered broadcasts (paid)
The campaign editor also has a Triggered broadcasts section — five cards, one per lead status — for auto-sending a follow-up message to a lead a while after it reaches that status (a warm-up, a win-back, a reminder). It’s a paid feature and is covered in full on the Broadcasts page.
7. Save & get the deep link
After saving the campaign the deep link is revealed:
t.me/YourBot?start=CAMPAIGNCODE-{click}Replace {click} with your tracker’s click macro — for example {subid} in
Keitaro or {clickid} in Binom. In AlterCPA Lite the macro is {click}. The
result is the URL you put in your ad or traffic source.
AlterCPA Lite only: if you’ve connected your tracker in Profile, a Create flow button also appears next to the deep link. Clicking it creates a Lite flow for you automatically and shows the ready-to-use flow URL.

Campaign lifecycle
| Action | Effect |
|---|---|
| Pause | Stops tracking new starts and joins. Deep link stays valid but the bot won’t create new leads until you resume. |
| Resume | Re-activates the campaign. |
| Delete | Soft-deletes the campaign. Leads, stats, and history are kept. The campaign disappears from the list but its data remains. |
Campaign limit
Your plan sets the maximum number of active (non-deleted, non-paused) campaigns.
Trying to create one past the limit returns an error: limit response. To add
more, either delete or pause an existing campaign, or
upgrade your plan.
A downgrade never auto-pauses existing campaigns — you just can’t create new ones until you’re back under the limit.