Quick overview
This workflow syncs Telegram bot conversations with Zoho Desk by creating or reusing contacts and tickets for incoming Telegram messages, and sending public Zoho Desk ticket comments back to the original Telegram chat using an n8n Data Table for user mapping.
How it works
- Triggers when a Telegram bot receives a new or edited message.
- Normalizes the Telegram payload (message text, user ID, chat ID, and department ID) and upserts a Telegram↔Zoho Desk mapping in an n8n Data Table.
- Creates a Zoho Desk contact when no contact is linked yet, then saves the Zoho Desk contact ID back to the Data Table.
- Fetches the contact’s Zoho Desk tickets, selects an existing open ticket when available, otherwise creates a new ticket in the specified Zoho Desk department.
- Appends the Telegram message to the Zoho Desk ticket as a private plain-text comment, marking edited messages as updates.
- Receives Zoho Desk Ticket Comment Add/Update webhook events, looks up the related Telegram chat via the contact mapping, and ignores non-public comments or unknown contacts.
- Retrieves the comment plain text from Zoho Desk and sends it to the user via Telegram.
Setup
- Create and connect Zoho Desk OAuth2 API credentials with scopes for contacts, tickets, and webhooks, and ensure all Zoho Desk API URLs use your correct data center domain (for example, .com vs .eu).
- Create a Telegram bot with BotFather and add Telegram API credentials to both the Telegram Trigger and the “Send Agent Reply to Telegram” step.
- Set your target Zoho Desk department ID in the input-normalization step so new tickets are created in the correct department.
- Publish the workflow, then run the manual “Initial Setup” once to create the n8n Data Table and register the Zoho Desk webhook pointing to your workflow’s webhook URL.
- In Zoho Desk, optionally disable email notifications for public comments if you don’t want contacts to receive email replies in addition to Telegram messages.