Telegram notify service migration (2025.11) not very clear

Please edit your post and use the preformatted text button </> not the quote button to format your config.

I updated all mine too. I had to use secrets to hide the chat ids but that can easily be replaced with entities when that becomes available later.

One other issue is that you can’t currently send more than one picture in a message. That too will be added later (using a different service, see: https://github.com/orgs/home-assistant/discussions/2356 ).

A few examples:

Old (send photo):

  - action: notify.telegram_general
    data:
      message: ' '
      data:
        photo:
        - url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
          caption: >
            {% if is_state('binary_sensor.shed_door_contact', 'on') %}
              The shed door is open.
            {% else %}
              The shed door is closed.
            {% endif %}

New:

  - action: telegram_bot.send_photo
    data:
      target: !secret telegram_general_chat_group_id
      url: 'http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture'
      caption: >
        {% if is_state('binary_sensor.shed_door_contact', 'on') %}
          The shed door is open.
        {% else %}
          The shed door is closed.
        {% endif %}

Old (send message):

  - action: notify.telegram_system_log
    data:
      title: "⏹️ <b>Lounge dehumidifier stopped</b>"
      message: >
        Peak electricity rate is active.

        Relative humidity: {{ states('sensor.lounge_room_humidity')|round(0,even,'unknown') }}%

        Condensation chance: {{ states('sensor.lounge_room_condensation_chance') }}%

New:

  - action: telegram_bot.send_message
    data:
      target: !secret telegram_system_log_chat_group_id
      title: '⏹️ <b>Workshop dehumidifier stopped</b>'
      message: >
        Peak electricity rate is active.

        Humidity: {{ states('sensor.workshop_humidity')|round(0,even,'unknown') }}%

        Condensation chance: {{ states('sensor.workshop_condensation_chance') }}%

Old (choose chat group to send to):

  - action: >
      {% if is_state_attr('event.backup_automatic_backup','event_type','failed') %}
        notify.telegram_alert
      {% else %}
        notify.telegram_system_log
      {% endif %}
    data:
      title: >
        {% if is_state_attr('event.backup_automatic_backup','event_type','in_progress') %}
          📅 <b>Automatic backup</b>
        {% elif is_state_attr('event.backup_automatic_backup','event_type','completed') %}
          ✅ <b>Automatic backup</b>
        {% elif is_state_attr('event.backup_automatic_backup','event_type','failed') %}
          ❌ <b>Automatic backup</b>
        {% else %}
          ❓ <b>Automatic backup</b>
        {% endif %}
      message: >
        Backup {{ state_attr('event.backup_automatic_backup','event_type')|replace('_',' ') }}.
        {% if is_state_attr('event.backup_automatic_backup','event_type','failed') %}
          Failed reason: {{ state_attr('event.backup_automatic_backup','failed_reason')|replace('_',' ')|title }}
        {% else %}
          
        {% endif %}

New:

  - variables:
      alert: !secret telegram_alert_chat_group_id
      sys_log: !secret telegram_system_log_chat_group_id
  - action: telegram_bot.send_message  
    data:
      target: >
        {% if is_state_attr('event.backup_automatic_backup','event_type','failed') %}
          {{ alert }}
        {% else %}
          {{ sys_log }}
        {% endif %}
      title: >
        {% if is_state_attr('event.backup_automatic_backup','event_type','in_progress') %}
          📅 <b>Automatic backup</b>
        {% elif is_state_attr('event.backup_automatic_backup','event_type','completed') %}
          ✅ <b>Automatic backup</b>
        {% elif is_state_attr('event.backup_automatic_backup','event_type','failed') %}
          ❌ <b>Automatic backup</b>
        {% else %}
          ❓ <b>Automatic backup</b>
        {% endif %}
      message: >
        Backup {{ state_attr('event.backup_automatic_backup','event_type')|replace('_',' ') }}.
        {% if is_state_attr('event.backup_automatic_backup','event_type','failed') %}
          Failed reason: {{ state_attr('event.backup_automatic_backup','failed_reason')|replace('_',' ')|title }}
        {% else %}
          
        {% endif %}

Old (send multiple photos):

  - action: notify.telegram_general
    data:
      message: ' '
      data:
        photo:
        - url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
          caption: Driveway
        - url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
          caption: Electronics Workshop
        - url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
          caption: Mechanical Workshop
        - url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
          caption: Patio
        - url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
          caption: Rear Deck
        - url: http://10.1.1.241:10443/endpoint/@scrypted/webhook/public/<redacted>/takePicture
          caption: Side Deck
        - url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
          caption: Washing Line

New (separate services for now):

  - action: telegram_bot.send_photo
    data:
      target: !secret telegram_general_chat_group_id
      url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
      caption: Driveway
  - action: telegram_bot.send_photo
    data:
      target: !secret telegram_general_chat_group_id
      url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
      caption: Electronics Workshop
  - action: telegram_bot.send_photo
    data:
      target: !secret telegram_general_chat_group_id
      url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
      caption: Mechanical Workshop
  - action: telegram_bot.send_photo
    data:
      target: !secret telegram_general_chat_group_id
      url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
      caption: Patio
  - action: telegram_bot.send_photo
    data:
      target: !secret telegram_general_chat_group_id
      url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
      caption: Rear Deck
  - action: telegram_bot.send_photo
    data:
      target: !secret telegram_general_chat_group_id
      url: http://10.1.1.241:10443/endpoint/@scrypted/webhook/public/<redacted>/takePicture
      caption: Side Deck
  - action: telegram_bot.send_photo
    data:
      target: !secret telegram_general_chat_group_id
      url: http://10.1.1.241:11080/endpoint/@scrypted/webhook/public/<redacted>/takePicture
      caption: Washing Line