Telegram Trigger on Private Message Only

Describe the problem/error/question

I am trying to only have the Telegram bot reply on a private conversation only. The bot is inside supergroups and I don’t even want the bot to trigger if a message came in from a supergroup.

What is the error message (if any)?

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version: latest
  • Database (default: SQLite): n/a
  • n8n EXECUTIONS_PROCESS setting (default: own, main): own
  • Running n8n via (Docker, npm, n8n cloud, desktop app): n8n cloud
  • Operating system: macOS

It looks like your topic is missing some important information. Could you provide the following if applicable.

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:


I have changed to this expression.

{{ json['message']['chat']['type'] == 'private' }}

and it works, but only sometimes. Which is weird. Every so often it still gets triggered by a supergroup message.

Hey @Daniel_Invincible,

The trigger option you are trying to use isn’t one that we support but looking at your expression it is going to trigger on ‘true’ or ‘false’ rather than private.

Instead you may want to trigger on message or on channel_post then in the next node filter for private messages before going to the switch node.

Sure, the only issue is the bot is in a big supergroup that is being used for other messages. Therefore I do get a lot of these supergroup messages inbound. Because of n8n’s pricing model, I need to be careful of the amount of executions I use.

Your solution means I need to have the workflow trigger, then end right away when I realize it’s not from a private message, but a supergroup message.

Because I only have 50k executions per month, and I have around 10-15k messages a day from my supergroup, I will run out of executions very very fast.

This is why I wanted to have a trigger option for ONLY private messages.

Here is an example message from a supergroup and from a private message:

as you can see, they ‘type’ field is either supergroup or private. So I made an express to simply check if it’s private or supergroup. But yeah for some reason this doesn’t really work.

Would really appreciate if you can help me out here so that I don’t run out of executions within a few days.