Usage
The Telegram CP section is visible under Telegram in the Craft CP nav, with three pages: Channels, Logs, and Settings.
Channels list
Telegram → Channels lists every configured channel with its enabled state and number of active automations. From here a channel can be edited, cloned, enabled/disabled, or deleted — including in bulk, by selecting multiple rows.
Creating a channel
Open Telegram → Channels → New Channel. The edit screen has two tabs.
General tab
| Field | Description |
|---|---|
| Name | Display name shown throughout the CP (e.g. Ecommerce). Required. |
| Handle | Internal key used from code and console commands (e.g. ecommerce). Lowercase letters, numbers, hyphens and underscores only. Required, must be unique. |
| Channel Prefix | Optional text prepended to every message sent through this channel — takes priority over the global prefix from Settings. |
| Bot Token | The Telegram bot token from @BotFather. Supports environment variables ($TELEGRAM_BOT_TOKEN). Required. |
| Chat ID | The destination group/channel's chat ID, usually a negative number. Supports environment variables. Required. |
| Thread ID | Optional numeric forum-topic ID, for Telegram supergroups that use topics/threads. |
Once a channel has been saved, two buttons appear next to the delivery fields:
- Verify Token — calls the Telegram Bot API to confirm the bot token is valid and the bot can be reached, without sending a message.
- Send Test Message — sends an actual message to the configured chat ID, the fastest way to confirm the chat ID and bot are both correct.
Automation tab
The Automation tab lists every available event trigger — both the plugin's built-in Craft events and any custom event types registered by other installed plugins (see Developer API) — grouped first by provider (which plugin the event comes from) and then by group (a logical category within that plugin, e.g. Entries, Orders, Payments).
- Use the search box to filter events by name.
- When more than one provider has registered events, provider tabs let you jump straight to that plugin's events instead of scrolling the full list.
- The counter in the toolbar (
n / total enabled) shows how many events this channel currently subscribes to. - Toggling an event on subscribes this channel to it — when that event fires anywhere in Craft (or is dispatched by another plugin), this channel receives a message.
- Each event row can have a message override: a custom template using
the same
{{ variable }}placeholders as the event's default template. Leaving it blank uses the default template supplied by the plugin that registered the event.
Saving the form (Save) applies both tabs at once.
Deleting a channel
Use Delete Channel on an existing channel's edit screen, or the bulk delete action from the Channels list. Deleting a channel removes its automation subscriptions; it does not delete previously written log rows.
Verifying a channel / sending a test message
Two independent ways to confirm a channel actually works:
- Per channel, from the channel's edit screen: Verify Token (checks the bot credentials) and Send Test Message (sends a real message to that channel's chat).
- Globally, from Telegram → Settings → Test: pick a Test Channel and Test Message, then use Send Test Message to send it — useful for confirming end-to-end delivery without opening a specific channel record. See Settings.
Both actions write a log row, so a failed test is visible in Telegram → Logs even if the CP notification is missed.
Logs
Telegram → Logs lists delivery attempts and automation activity, most
recent first. Each row shows its type (delivery, event,
automation), status (success, failed, skipped, info), the
associated event handle and channel, and a message.
- Use the search box to filter by log message, event, or channel.
- Use the status filter to narrow to
Success,Failed,Skipped, orInforows only — useful for triaging failed deliveries without the noise of successful ones. - Clear Logs empties the entire log table. This cannot be undone.
Whether successful deliveries and skipped events are logged at all is controlled globally in Settings → Logs; log table size is capped by the Log Entry Limit setting, with older rows trimmed once the limit is reached.
A typical flow, end to end
- An admin creates a
developerchannel pointing at the team's alerts group, and enables the built-in Email failed trigger on it. - A shop plugin dispatches its own
shop.orderCompletedevent type after checkout (registered per Developer API); the admin enables it on theecommercechannel and writes a custom message template for it. - From then on, every completed order posts to the
ecommercegroup using that template, and every failed outbound email posts to thedevelopergroup using the built-in default template — no further code changes needed to adjust wording, since both templates can be edited from the channel's Automation tab at any time.