The Telegram Bot
One bot, two completely different interfaces. Customers get a self-serve front door — free trial, gallery submission, support. Admins get the whole operations console: statistics, revenue, licence generation, device management, broadcasts, tracking and a two-way support desk, all inside Telegram.
Rationale
Why a Telegram bot
A commercial plugin needs a front door for people who have not bought yet, and an operations console for the person running it. Building both as web apps means two more surfaces to design, host, secure and log into. Telegram already has the account system, the push notifications and the mobile client.
So the same bot serves both. It checks who is talking to it and renders either the customer menu or the admin control panel — which means licence generation, analytics, marketing and support are all operable from a phone.
The bot is the visible half of Stage 3
The ticket routing, command handling and push notifications described here run on the licence server covered in Stage 3, built over a compatibility shim for a major node-telegram-bot-api version bump, with its own test suite.
Try it
Walk the bot
Both chats run side by side and talk to each other. Tap through the customer menu on the left and watch the admin panel on the right react — starting the bot raises a new-user notification, a trial request reports the issued key, a support message opens a ticket. Answer that ticket, broadcast, or DM from the right and it lands on the left.
Every screen, message and button label is taken from the production bot. Nothing is sent anywhere — there is no text input and no network request.
Both panels are live at once. Acting in one makes the other react — start the bot on the left and the admin is notified on the right; answer a ticket on the right and the reply lands on the left.
๐ค User
The customer journey
A new user hits a subscription gate first: the bot verifies channel membership before anything else, which turns every trial request into a channel subscriber.
| Screen | What the customer sees | Leads to |
|---|---|---|
| U0 — Subscription gate | “Subscription Required” with the channel handle and an I Have Subscribed button that re-checks membership | U1 |
| U1 — Main menu | Three stacked choices: free trial, share a project, help and support | U2 / U4 / U6 |
| U2 — Trial offer | 30 days, 1 device. Core tools unlimited (Selection Filter, Floor Tools); four premium tools share 10 uses. The customer replies with an email | U3 |
| U3 — Trial created | One licence key, plus the paste-into-License-Manager instruction. Invalid addresses and already-used emails get their own refusals | — |
| U4 — Share your project | Gallery submission: full name, then project details and photos over several steps | U5 |
| U5 — Submitted | Confirmation that the entry is queued for review | — |
| U6 — Help & Support | The next message becomes a support ticket routed to every admin | A7 |
One trial per email and per Telegram account
Two independent locks. Email alone is trivially farmed with aliases; a Telegram account is not. The channel-membership gate in front of both means a trial costs a real account and a subscription.
๐ Admin
The admin control panel
The same /start from an admin account returns a twelve-button control panel instead of the customer menu.
| Button | Opens |
|---|---|
| ๐ Statistics | Licence stats, website visitors, downloads, and an audience chart rendered as an image |
| ๐ฐ Revenue | Live figures from Paddle and the licences table |
| ๐ License Manager | Browse and edit issued licences |
| ๐ Search | Look up a customer, key or device |
| ๐ฑ Active Devices | Devices activated against each licence |
| ๐ฌ Message User | DM any user through the bot |
| ๐ธ Gallery Submissions | Review the pending queue from U4 |
| ๐ Manage Approved | Remove a published gallery entry |
| ๐ฅ Collect Emails | Export addresses by source: trials, purchases, purchase intents, or all |
| ๐ข Broadcast | Message every bot user |
| ๐ฐ Tracking | Eight in-add-in activity reports |
| ๐ Generate license | Trial or lifetime, with a nine-option tool and bundle picker |
Tracking is the one worth calling out: 24-hour and 7-day overviews, top tools, failures, versions in use, most active users, recent activity and checkout clicks — the same telemetry that prices the pixel economy, read from a phone.
Generate license mints a real key on the spot. Picking Pixy Ultimate Suite or any single tool returns a working licence the admin can hand over immediately — which is how support recoveries and one-off deals get done without touching the database.
A5
Typed commands
Buttons cover the common paths; commands cover everything else.
| Command | Action |
|---|---|
/ban <telegram_id> | Block a user from the bot |
/unban <telegram_id> | Unblock them again |
/msg <telegram_id> <text> | DM a user directly through the bot |
/activity | Add-in usage summary — 24h by default, /activity 72 for a custom window, /activity user@mail.com for one account |
/reply <ticketId> <text> | Answer a support ticket |
/close <ticketId> | Close a support ticket |
A6 & A7
Push notifications and the support desk
The bot also messages admins unprompted. A new user starting the bot, an upgrade checkout opening, an upgrade completing, a trial converting — each arrives as a message. Error-level server logs are fanned out the same way, so a production fault reaches a phone without a dashboard.
-
New user — username, name, Telegram id and any deep-link parameter. -
Checkout opened — email, target bundle, the exact amount payable after credit, and the licence key being upgraded. -
Purchase completed — confirms the same key was upgraded in place rather than reissued.
The support desk closes the loop. A customer message — from the bot’s Help flow or from the in-plugin support window — reaches every admin as a numbered ticket. An admin answers either with /reply 42 … or by swipe-replying to the ticket message with text or an image. Both deliver back to the customer’s chat and plugin support window, and the other admins see who answered.
Why this matters for a one-person product
Licensing, analytics, marketing and support are usually four tools with four logins. Collapsing them into a chat client that already has push notifications means the operational burden of a commercial product stays small enough for one person to carry.