Add more user information from Telegram

Title: Pass along the Telegram ID (which never changes) to Zammad’s User.

  1. What is your original issue/pain point you want to solve?
  • Currently the integration adds a Telegram @username if a username is found in the User Notes, and won’t do it if there is no public username found. I’d like to always have the Telegram user ID, which not only always exists (and never changes, as opposed to usernames which can change), but is also how we index users on our workflows/DBs.
  1. Which are one or two concrete situations where this problem hurts the most?
  • It’s specially bad when users don’t even have a username set; we have absolutely zero information about them on the Telegram platform…
  1. Why is it not solvable with the Zammad standard?
  • Not sure what “the Zammad standard” is, but this feature request requires some code changes (there’s no way to do it natively through the UI alone), which I’ve already prepared and will open a Pull Request as soon as this Feature Request is approved.
  1. What is your expectation/what do you want to achieve?
  • I always need, at the very least, the Telegram user ID (and not its username) when a Telegram user opens a ticket.

Code changes submitted here:

Your Zammad environment:

  • Average concurrent agent count: 10
  • Average tickets a day: 200
  • What roles/people are involved: C-level

Anything else which you think is useful to understand your use case:

  • We help community-centric businesses with their community needs; most of our clients have communities on Telegram and/or Discord, so naturally we need good levels of integration with these platforms. We are already developing most of the things we need, but easy changes like this should exist natively within Zammad (which will also improve the product for all Zammad customers).

Kind regards.

Pull Request open: Telegram add +user info by Chinoman10 · Pull Request #5449 · zammad/zammad · GitHub

This change does a few things:

  • Instead of adding a note in the format of Telegram @username, it does: Telegram @username [1234] (1234 being an example of an id);
  • If a telegram_username field exists (if one was added to the ‘Customer/User’ object), it’ll populate it;
  • If a Telegram @username is not found (some users don’t have them), then it sets the note as Telegram ID: 1234 instead.
  • If a telegram_id field exists (if one was added to the ‘Customer/User’ object), it’ll populate it as well;