AutomationBeyond text

Files, reactions and team checklists

Explore rules for PDFs, photos, voice messages, reactions and Telegram checklists, with examples for course chats and working teams.

In this article

Photos, videos, files and other messages

A course chat receives notebook photos, PDFs and voice messages. A club shares music and stickers. A work group exchanges contacts and polls. Combot has settings for each message type.

Start with a practical task: “ask for a short description alongside a long video” or “show a reminder after a PDF”. Then choose the corresponding message type and its options.

Numbers usually support lower and upper limits, while values support inclusions and exclusions. If Telegram does not provide a property such as file size, that does not mean the size is zero. Try the rule with files your members actually use.

Photo

Situation: a photography chat discusses pictures, but contributors sometimes forget the posting guidelines.

You can check:

  • File size: for example, reply to large photos with advice on sending them. Size comes from the largest photo version available to the bot; units are bytes, KB or MB.
  • Album/media group: for example, remind someone to caption a collection when a photo belongs to a media group.
  • Live photo: distinguish this format from ordinary pictures.
  • Spoiler: for example, handle hidden photos separately in a film discussion.

Text underneath a photo is configured as a caption. An album can reach the bot as several messages, so the reminder is not guaranteed to appear just once for the whole collection.

Video

Situation: students send recordings of their presentations. For videos longer than five minutes, you want to ask for a brief description.

Choose Video and the required duration. You can use seconds, minutes or hours.

Other options include size, file type and name, album membership and spoilers. For example, the name can identify files marked “presentation”, while size can prompt an author to share an especially large video as a link.

Enter a type as an extension such as .mp4 or a technical identifier such as video/mp4 — a MIME type. This describes the format; it does not assess recording quality.

Animation

Situation: a work group has a separate GIF topic. When a matching animation appears in another selected topic, the bot asks the sender to move it there.

You can check size, duration, file type and name, and spoilers. For example, identify especially large animations.

If someone sends the same file as a document, an animation rule is not a substitute for a document rule: the way it was sent matters.

Audio

Situation: music club members share recordings, and you ask them to include the artist and title.

Check whether these fields exist and what text they contain. For example, ask the sender to label a recording if the title is missing. Size, duration, file type, file name and album membership are also available — useful for distinguishing long recordings from short ones.

The bot reads the information attached to the audio file. It does not identify the artist by listening to the music.

Document

Situation: course participants submit assignments as PDFs. After a file, the bot reminds them to include the lesson number and a question for the reviewer.

Choose .pdf or application/pdf as the file type. Add size, name or album conditions if needed. For example, handle files containing “portfolio” in their names separately.

This rule recognizes a document of the right type. It does not read the assignment or confirm that a teacher has reviewed it.

Sticker

Situation: your community has its own sticker pack, and you want reminders about allowed packs in certain discussions.

Enter a pack name or link. You can select particular packs or exclude them from the rule.

Other properties are available too:

  • Size: for example, select stickers using a size threshold.
  • Type: a regular sticker, mask or custom emoji sticker.
  • Animation and video: for example, distinguish moving stickers from the rest. The Regular type alone does not mean a still image.
  • Premium animation: a separate property for these stickers.
  • Associated emoji: its presence and value. For example, recognize a sticker associated with 👍.
  • Custom emoji IDs: select a particular custom emoji.

Voice message

Situation: support receives a seven-minute voice message. The team cannot quickly tell what happened.

Set a minimum duration of two minutes and a reply: “Please briefly describe your question in text so we can help sooner.” You can also check file size and type.

Combot checks the duration, not the meaning of the speech. A text-phrase search does not transcribe voice messages.

Video note

Situation: people submit answers as round video notes. For longer answers, you want to suggest an ordinary video.

Choose Video note and the required duration. You can check size too. Video notes and ordinary videos are separate options, so choose the one you need.

Contact

Situation: organizers share contact cards. A known phone number can trigger information about what to contact that person for.

Available properties include phone number or country calling code, Telegram ID, first name, last name and whether the contact is a chat member.

The check concerns the person on the card. If Anna sends Ilya's contact, Ilya's phone number does not become Anna's.

A contact card may have no Telegram ID. Therefore, “contact is not a member” does not always prove the bot identified the person and checked their membership: cards without a known ID can fall into this category too.

Location and venue

Situation: a hiking chat shares meeting points. For a point inside a selected area, the bot can send information about the meeting place.

Define the area by latitude, longitude and a radius in meters. This checks the shared point; it does not track a person.

You can also select live locations, their duration in seconds, heading in degrees and proximity-alert radius. For example, distinguish live routes from one-off location pins.

For a shared venue, the address and, when provided, Foursquare or Google Place ID or type are available. For example, identify the card for a particular venue.

Sharing a location does not prove the person is currently there. The bot does not gain ongoing access to their whereabouts.

Poll

Situation: a book club votes on its next book, while a course group posts quizzes. Separate rules can handle these differently.

The following settings are available:

  • Type and participation: regular poll or quiz, anonymity, multiple answers, vote changes, members-only participation and closed status. For example, send guidance about discussing answers after a new quiz.
  • Numbers and time: option count, total votes, voting period in seconds and closing time. For example, identify polls with many options.
  • Text: question, answer option, explanation and description. For example, recognize a poll whose question contains “Next book”.
  • Formatting: formatting in the question, explanation and description; attachments to the explanation and description. For example, distinguish quizzes with extra materials.
  • Additional fields: country-code restrictions, when provided, and correct-answer IDs. Here, 0 means the first option, not the absence of an answer.

If the closing-time field asks for a Unix timestamp, enter a timestamp in seconds, not “30 minutes remaining”. This setting is useful if you already work with that format.

The rule checks poll information in the received event. There is no separate trigger for every vote, and some fields may be missing.

Dice and other game emoji

Situation: members roll 🎲 in the club's Off-topic discussion. A particular result can trigger a playful reply.

Choose the game emoji and result. 🎲 and 🎯 have different possible values, so check the selected game. Another roll can trigger the same reply again.

Game

Situation: someone shares a Telegram game, and the bot reminds them which topic to discuss it in.

You can check the game's title and description. This is not the outcome of a match: the rule does not learn who won or set a record.

Paid media

Situation: a themed chat shares paid posts. You want to reply with a reminder of the posting rules.

You can check the Telegram Stars price, number of items and their type: photo, video, live photo or a locked preview. For example, handle posts with several items separately.

Other options include the presence of a locked preview, size, duration, file type and name, video cover, video start time in seconds and any provided quality information. Use properties that exist for the relevant media type. A paid photo, for example, may have no MIME type.

These settings do not buy the post, spend Stars, unlock paid files or check whether a particular member has paid for them.

Reactions and team checklists

Not everything in a chat happens through new messages. People change reactions, and colleagues mark tasks on a list. Automation can notice these changes too.

Someone adds, removes or replaces a reaction

Suppose you want to notify the team about matching reaction changes in a work discussion. First choose User reaction, then select the change you care about:

  • Added — a reaction appeared that was not there before.
  • Removed — the person took a reaction away.
  • To match either kind of change, leave both direction options unselected.

For example, Ilya replaces 👍 with ❤️. This change includes both removing 👍 and adding ❤️.

This event works when Telegram provides the user's identity. A reaction on behalf of a channel or an anonymous administrator does not trigger it. Use your personal profile for a trial reaction.

You can include or exclude particular reactions. Enter an ordinary emoji as a symbol or a custom emoji as a numeric ID; paid reactions have a separate option.

One detail is easiest to explain with an example. Ilya already has 👍 on a message. He adds ❤️, giving him two reactions. A 👍 filter still sees that emoji: it checks what remains after the change, not only what was just added.

A filter for a particular reaction requires Added to be selected. It does not mean “someone removed this particular 👍”: the removed emoji may no longer be in the new set.

If someone removes a reaction and adds it again, the rule can run again. This condition alone is therefore not enough to “award one reward for one like”. For a moderator's personal thank-you, use a command from 11 ready-made scenarios.

A post has the required number of reactions

Suppose editors want to notice linked-channel posts that currently have a combined total of 20 to 30 👍 and ❤️ reactions.

Choose Reaction count, select the types to count and set a minimum of 20 and a maximum of 30.

  • 12 👍 and 10 ❤️ match: the total is 22.
  • 10 👍 and 8 ❤️ do not match: the total is 18.
  • Another 50 reactions of a different type do not affect this count if you did not select that type.

You can include the types you want or exclude those you do not. Without a type filter, the total count is used. An empty boundary or 0 means “no limit on this side”. Two zeros do not mean “exactly zero reactions”.

This is not a one-time threshold alert. The bot receives a count of 20 and the rule matches. Later it receives 21 and can match again. Even if you want to notice a popular post only once, the range setting does not remember whether it has already notified you.

One practical option is a short log-channel notification with deletion of the previous reply for that sending action. Notifications are replaced, but this does not prevent repeated runs.

This event has no list of people who reacted. You cannot select “the twentieth person to react” and award them XP from the total count.

A particular checklist changes

A work group has a webinar preparation list: check the sound, assemble the presentation and email the participants. The team wants a brief notification when someone completes a task.

  1. Choose Checklist tasks done. If you want new items instead, choose Checklist tasks added.
  2. Copy the direct Telegram link to the message containing the list and enter it in the checklist condition.
  3. Add a sending action: “Tasks have been marked as done in the webinar plan. Take a look at what's left.”
  4. Optionally add a button linking to the same list.

Changes to a neighboring checklist should now produce no notification. The bot compares the link with the list itself, not with the separate “Tasks completed” service message.

Direct links can point to public or private chats, including individual topics. For a public link, Combot must know the matching chat username from the received data.

A link containing ?comment=… does not work. Open the checklist in the discussion chat itself and copy a direct link to its message.

Remove the link condition to cover every matching checklist in the selected chat or topic. For example, collect log notifications about all new tasks in a work group.

Do not say “Everything is ready for the webinar” for the tasks-done event. Someone may only have checked the sound; the other tasks could still be waiting.