Replies, moderation and rewards
Choose an action and who it affects. Format Combot replies, add buttons, run several actions or pick a message at random.
In this article
What the bot does when a rule matches
You have told the bot which question or event to notice. Now choose an action under THEN.
All 14 action types are covered below. The available selection depends on the event. For moderator-command examples, first create a reply-target command and limit access to the intended moderators.
Who the action affects
Back to Anna and Ilya. Anna replies to Ilya's message with a command. To warn Ilya, choose the replied-to user under Apply to, not the command's author.
Depending on the event, the editor offers:
- By user / Command caller — whoever wrote the message or ran the command.
- Replied-to user — the author of the message being replied to.
- Affected user — for example, the member who was added or removed.
- Performer — whoever added or removed the member.
- Applicant — whoever is requesting to join the chat.
- Both — both available people. If they are the same person, choosing Both does not apply the same action twice to them.
- Invite link creator — for join requests. This is the person recorded as the link's creator in this chat's Combot catalog.
For example, a request arrives through Ilya's link, and you want to award XP to Ilya. Choose the link creator, not the applicant. This rewards a request, not a completed join. If you need to confirm the result first, use a thank-you command after a moderator checks the invitation.
The person recorded in the Combot catalog matters: Telegram's technical link creator may be someone else. For two different recipients, such as the applicant and the link creator, add two separate actions with explicitly selected targets.
If the intended person is unknown, the action for them is skipped. The bot must not award XP to a newcomer instead of an unknown inviter. An aggregate reaction count likewise does not let you select an unidentified participant.
1. Send message
For example: reply to “where is the recording” with a materials link and brief instructions.
Format the text and add variables or buttons. Send it to the source chat or the configured log channel. For destinations and formatting, see Format the reply.
2. Delete message
For example: remove new stickers from a sticker-free topic, provided members know the rule. Select that topic and the Sticker type in the conditions, then add deletion as the action.
The bot deletes the message that triggered the rule. It needs permission to delete messages.
For a command, that message is the command itself. If Anna replies /team_warn to Ilya, the action deletes /team_warn, not Ilya's message. Removing the bot's previous reminder is a different setting.
3. Warn user
For example: Anna notices a breach of the conversation rules and replies to the member with /team_warn.
The action adds a warning — normally one. It belongs to the chat's shared warning system. If accumulated warnings lead to a mute or ban in your settings, an Automation warning can move the person closer to that consequence.
Check the warning settings first, not just the bot's reply text.
4. Mute user
For example: a moderator gives someone in an argument a 15-minute break using a prepared reply command.
A mute restricts messaging. Set the duration in minutes, hours, days or weeks. An empty duration means a permanent mute, not “decide later”.
You can combine a warning with a mute when needed. Choose deliberately: a short break and a warning are two separate consequences.
5. Ban user
For example: a moderator removes an account posting spam and prevents it from returning.
A ban removes the person and prevents them from joining again until the ban expires or is lifted. Set a duration for a temporary ban; without one, it is permanent.
In the restriction builder, a ban cannot be combined with a kick or mute as another form of the same restriction.
6. Kick user
For example: someone was added to a work group by mistake, and a moderator wants to remove them without permanently blocking their return.
A kick removes the member once. They can join again under the chat's usual rules, such as by invitation or join request. To prevent their return, choose a ban.
7. Unmute user
For example: a moderator decides to end a member's break early.
The action restores messaging within the chat's general permissions. It does not remove every other restriction or count as passing a CAPTCHA. Any remaining newcomer verification is a separate matter.
8. Unban user
For example: the team reconsiders a decision after an appeal and wants to let the person return.
Unbanning removes the joining restriction. It does not automatically add the person back: they still need to join in an available way.
9. Delete user's messages
For example: a spammer posted several advertisements before being banned. A moderator wants to remove those too.
The builder offers this cleanup after you select a ban or kick. It uses messages available to Combot and is subject to Telegram's limits. Do not assume the bot can remove someone's entire history from years of conversation.
10. Remove warning
For example: a warning was issued by mistake. A moderator removes one warning through a prepared rule.
This reduces the warning count by one. If the person has already been muted or banned, removing a warning does not itself restore their permissions. That requires separate actions.
11. Change XP
For example: Ilya gives a newcomer a detailed explanation. Anna replies to his message with /reward_member, and Ilya receives 25 XP.
Enter 25 to add experience or -25 to subtract it. This is a change: adding 25 to 100 XP produces 125, rather than setting the total to 25.
XP must be enabled in the chat. Use nonzero integers from −99,999 to 99,999. In the thank-you example, Apply to must select the replied-to user.
12. Change REP
For example: alongside XP for the helpful explanation, you want to give Ilya one reputation point.
Enter 1 to add it or -1 to subtract it. Reputation must be enabled. Allowed values are nonzero integers from −999 to 999. Here too, you specify a change, not a new total.
Running the command again can award XP and REP again. If a reward should be given only once, moderators need to keep track of that separately.
13. Approve join request
For example: open-lesson organizers have prepared a separate invitation and want requests through it approved without a manual click.
Select Join request, the required link and the approval action. Without limiting the source and audience, the rule may approve far more requests than intended.
A link is not a payment or identity check: someone can pass it to another person.
14. Decline join request
For example: requests through a particular invitation are temporarily declined while the team continues reviewing requests through other links.
This action is available for join-request events. It declines the request but is not the same as permanently banning the person.
Do not leave two overlapping rules trying to approve and decline the same request. Check which links and users match each rule first.
Format the bot's reply and choose where it goes
A good automated reply helps someone take the next step. After “where is the assignment”, for example, a short explanation and a materials button may be enough. You do not need to send the whole course handbook.
Text: one question, one clear answer
The editor works like Combot's welcome-message editor: you can format text and add links or variables. The text field holds up to 4096 characters; watch the counter.
A support reply might look like this:
Can't sign in to your account? Open the instructions using the button below. If they don't help, tell us which step went wrong. Don't post your password in the chat.
You still need text when adding an image. An image URL alone is not enough for an otherwise empty message.
Using names and other variables
A variable is a placeholder the bot replaces with relevant information. For example:
Welcome to {chat.title}! Course materials are in the pinned message.
{chat.title} becomes the group's name. Take more care with people's names: the event's author and the new member are not always the same person.
The menu includes:
{from.title}— the event author's display name. For example, address the person who asked a question.{from.username}— their username. Useful in a moderator note, but not everyone has one.{from.id}— the user's numeric ID. For example, help the team identify exactly which account a note concerns.{chat.title}— the chat's name. Useful in welcomes and reusable information messages.{chat.username}— the chat's public username, if it has one.{chat.id}— the chat's numeric ID, if a service note needs it.{message.id}— the ID of the message associated with the event. For example, help the team investigate a request.{message.timestamp}— the message timestamp, when available. Not every event has a message or all of its properties.
Do not build the entire reply around a field that may be empty. Addressing someone by display name is usually clearer than relying on a username they may not have.
If Anna adds Ilya to the chat, {from.title} may contain Anna's name: she initiated the event. That is why the general welcome above avoids a person's name. Selecting an action target does not change the variables.
Names matter especially in moderator commands. If Anna runs a command on Ilya's message, {from.title} refers to Anna. Selecting Ilya for a reward does not change it. “A helpful reply has been recognized. Thanks for helping!” is safer than accidentally thanking the moderator by name.
Buttons: provide the right link directly
Instead of “find the materials section on the website”, add an Open materials button with a direct link.
Each button has text and a URL. Arrange buttons in rows: Materials in the first row, for example, and Rules plus Feedback in the second. A custom emoji icon requires its ID.
These are link buttons. They do not themselves assign roles, award rewards, run another trigger or complete a CAPTCHA.
Images: add a cover to your message
For example, add a course-cover link to a new-cohort welcome. Enter the image URL under Pictures; Show pictures above text chooses its position.
The image appears through Telegram's link preview. This is not a photo album: several URLs do not mean several separate photo attachments.
Start with one accessible image and check the result in Telegram. If no preview appears, check the link itself. Saving a rule does not guarantee that the picture will appear.
Where to send the reply
Choose Source chat to reply to the participant. For example, a recording question arrives in the course group and the information appears there too.
Choose Log channel for messages to the team, such as notifications about checklist changes. Connect the destination first and make sure Combot can write there.
Within the destination, you can configure topics:
- Current topic: for example, reply in the same Support topic where the question appeared.
- Selected topic: for example, use a command to post information in both Support and Newcomer questions.
- General topic: send to the general area rather than a separate discussion topic.
Each selected topic receives its own message. Repeating the same ID within one action does not produce an extra copy. A log destination can have selected topics too if it supports them; use that destination's topic IDs, not those of the source group.
More topics mean more sends counted against the action limit. See the numerical examples in Limits.
You cannot select arbitrary external chats or members' direct messages here. If the log channel is unavailable, a message intended for the team is not redirected to the main chat.
A standalone message or a reply to a question
Normal message suits a welcome or announcement that should appear as a standalone message.
Reply to trigger is useful for a payment question: the instructions are linked to that particular message as a reply.
Use this in the original discussion location, where the message exists. If the action sends to another chat or topic, do not assume the connection to the original message will remain. Check which mode the editor shows.
Avoid a pile of repeated reminders
Ilya asks about recordings today, then Marina asks an hour later. If the old reply is no longer needed, enable Delete previous same: the next send removes the previous reply associated with that action.
The rule has a shared cleanup setting. For each sending action, choose:
- Use trigger setting — follow the rule's choice. Changing it on the rule also changes this action's behavior.
- No cleanup — keep this action's replies even if the rule enables cleanup.
- Delete previous same — enable cleanup for this action specifically.
For example, replace information messages for members but keep logs as a record. Select No cleanup for the log action.
Cleanup is tracked separately for each sending action and topic. A Support reminder replaces its previous version there; a Study reminder replaces its own. Log messages are removed in the log destination.
Two action rows with identical text still keep separate previous replies. For example, a random welcome replaces the previous reply from its own action, not the last welcome from the entire set. Reordering rows does not change that.
The setting does not search the whole chat for identical text or delete members' messages. It also does not mean “delete after five minutes”: another reply is needed. Old reminders sent before the cleanup mechanism was updated may remain. Check the behavior using new sends.
Multiple actions and different replies
Sometimes one reply is not enough. A rule breach may need both a warning and an explanation. A welcome, on the other hand, could benefit from some variety. Two execution modes cover these tasks.
Run all actions
In Run all mode, Combot follows the list from top to bottom.
A moderator command might:
- Warn the member.
- Send an explanation: “Please discuss ideas without personal attacks.”
- Delete the command message itself.
Put actions in the order you need them. If a warning succeeds but the explanation cannot be sent, the warning is not automatically undone. After setup, check both the bot's reply and the effect on the member.
A long list may reach the action limit. Sending to several topics with cleanup, for example, costs more than one information message. See Limits for the calculation.
Choose one random reply
A club could prepare three welcomes:
- “Welcome! Tell us a little about yourself.”
- “Great to have you in the club. Start with the pinned information.”
- “Hello! Explore the topics and join the conversation.”
Add them as three sending actions and choose Random one. When someone joins, Combot selects one action from this set.
Random selection does not guarantee alternation. Two newcomers in a row may get the same text. You cannot set separate probabilities for the options.
The Always star: required actions plus a random choice
Suppose stickers are not allowed in Study. You want to remove them every time and randomly choose one of three short requests to post stickers in Off-topic.
- Create a trigger for a sticker in Study. Mark the Delete message action with the Always star.
- Leave the three reminder actions unstarred.
- Choose Random one.
The bot performs the required deletion and one selected send. The selected actions keep their order in the list.
If every action is starred, all of them run: there is nothing left to select. If none is starred, one random action runs. This chooses actions after the conditions match; it does not randomly decide whether to respond to the rule at all.