FAQ & troubleshooting
Postbacks
My postback isn’t firing
Work through this checklist:
- Is the event within the unsub window? Leaves after the window (
cancel/trash) fire no postback. Check your campaign’s unsub-window setting. - Is the campaign active? Paused campaigns create no new leads and fire no postbacks. Resume it if needed.
- Is the postback URL public? We block private/loopback IPs and non-
http(s)schemes. Your tracker must be on a public host. - Is the
{click}placeholder in your deep link? If the deep link doesn’t carry your tracker’s click id macro, the click will be empty and your tracker can’t match the postback. - Is there a global postback set? If the campaign has no per-campaign postbacks, it falls back to your Profile’s global templates. Make sure at least one of the two is configured.
My tracker shows no click match / “unknown click”
You either:
- Forgot to replace
{click}in the deep link with your tracker’s own click id macro (e.g.{subid}for Keitaro,{clickid}for Binom), or - Sent traffic directly to the deep link without going through your tracker’s redirect — the click id was never injected.
Make sure traffic enters through your tracker’s campaign link, which injects the click id before redirecting to the deep link.
cancel and trash postbacks aren’t arriving
Both fire only within the unsub window after the subscriber joined. A leave
after the window still moves the lead to cancel / trash but fires no
postback. Adjust the unsub window in the campaign editor if you want a longer
(or infinite) window.
Leads & subscribers
Organic joins aren’t showing up as leads
By design. A subscriber who joins your chat without ever starting the bot through your deep link has no click id — so no lead is created and no postback is fired. These organic joins appear in the Activity journal only.
A subscriber re-joined — what happens to their lead?
The existing lead returns to approve and the approve postback fires again.
If they also started the bot again with a new click, the lead’s click id is
updated and the wait postback fires again. No second lead is created.
→ Leads
What’s the difference between cancel and trash?
cancel — the subscriber left voluntarily (they pressed Leave/unsubscribe).
trash — the subscriber was kicked or banned by an admin.
Both respect the unsub window, both move the lead out of approve.
Bots & chats
My bot lost admin rights — now what?
When the bot loses admin in a chat, it stops receiving join/leave events for that chat. Affected campaigns are flagged (⚠️) and you receive a notification from @altercpatopbot.
To fix it: re-promote the bot to admin in the Telegram channel/group. Campaigns will resume automatically once admin rights are restored.
→ Bots
The chat isn’t showing up in the campaign editor
The chat must have your bot as an admin. Telegram has no “list my chats” API — we learn about a chat the moment the bot is added or promoted to admin. Promote the bot in the channel/group, then refresh the campaign editor.
Billing & plans
Free vs paid — what’s the actual difference?
Plans differ by one thing only: the number of active campaigns you can run.
| Plan | Active campaigns | Price |
|---|---|---|
| Kitten | 1 | Free |
| Kitty | 15 | $24 / 30 days |
| Tiger | Unlimited | $88 / 30 days |
A downgrade never auto-pauses your existing campaigns — you just can’t create new ones until you’re back under the limit.
What happens when my plan expires?
- Immediately: dashboard access is cut.
- +7 days: the public API stops working (
unpaiderror). - +7 days: your active campaigns are auto-paused (not deleted).
Re-paying does not auto-resume paused campaigns — you re-activate each one manually. You can always activate the free Kitten plan to keep one campaign running at no cost.
API & Profile
How do I rotate my API key?
Click Regenerate on the Profile page. The old key stops working immediately. Update any scripts or integrations before rotating.