Telegram
The Telegram connector enables interaction with Telegram bots, allowing for message automation and update retrieval within security workflows.
Telegram is a widely-used messaging platform known for its security and speed. The Telegram Turbine Connector allows users to integrate Telegram's messaging capabilities directly into Swimlane Turbine's security workflows. With this connector, security teams can automate the sending and deletion of messages, manage chat interactions, and retrieve bot updates, enhancing communication and response times during security incidents. The connector's low-code integration streamlines the process, making it accessible for users to leverage Telegram's API without the need for coding expertise.
Supported Version
- The Telegram connector supports Bot API 9.2 version.
Additional Documents
Prerequisites
To utilize the Telegram connector within Swimlane Turbine, ensure you have the following:
- Custom authentication with the Telegram bot using these parameters:
- URL: The endpoint URL for the Telegram API.
- API Token: The unique token provided by Telegram for bot authentication.
Authentication Methods
Setup Instructions:
To create a new Telegram bot and obtain an authentication token, follow these steps:
- Open Telegram and find BotFather:
- Open the Telegram app (mobile or desktop)
- Search for @BotFather in the search bar
- Start a conversation with BotFather
- Create a new bot:
- Send the /newbot command to BotFather
- BotFather will prompt you for a bot name (this is the display name shown in contact details)
- Provide a name for your bot (e.g., "My Security Bot")
- Set the bot username:
- BotFather will ask for a username for your bot
- The username must be:
- 5-32 characters long
- Not case sensitive
- Only include Latin characters, numbers, and underscores
- End with 'bot' (e.g., tetris_bot or TetrisBot)
- Enter a unique username (e.g., my_security_bot)
- Receive your authentication token:
- After successfully creating the bot, BotFather will generate and display an authentication token
- The token will look like: 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
- Important: Copy and securely store this token immediately
- Security considerations:
- Keep your token secure and private
- Anyone with access to your token can control your bot
- Do not share the token publicly or commit it to version control
- Store the token securely (e.g., in a password manager or secure vault)
- Configure the connector:
- Use the token as the API Token in the Telegram connector authentication settings
- The URL should be set to: https://api.telegram.org/bot
Capabilities
This Telegram Connector provides the following capabilities:
- Delete Mesage
- Delete Messages
- Get Me
- Get Updates
- Send Message
Delete Mesage
- This action usesto delete a message, including service messagesClick Here.
Delete Messages
- This action uses to delete multiple messages simultaneouslyClick Here.
Get Me
- This action returns basic information about the bot in form of a User objectClick Here.
Get Updates
- This action uses to receive incoming updates using long polling. Returns an array of Update objectsClick Here.
Send Message
- This action uses to send text messagesClick Here.
Configurations
Telegram Bot Authentication
This asset is used to authenticate with the Telegram bot.
Configuration Parameters
Parameter | Description | Type | Required |
|---|---|---|---|
url | A URL to the target host. | string | Required |
api-token | API token for the Telegram bot. | string | Required |
verify_ssl | Verify SSL certificate | boolean | Optional |
http_proxy | A proxy to route requests through. | string | Optional |
Actions
Delete Mesage
This action usesto delete a message, including service messages.
Endpoint
- URL: deleteMessage
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
chat_id | number | Optional | Unique identifier for the target chat. |
message_id | number | Optional | Unique identifier of the message to delete. |
Input Example
{"json_body":{"chat_id":7416146050,"message_id":3}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
ok | boolean | Output field: ok |
result | boolean | Result of the operation |
Output Example
{"status_code":200,"response_headers":{"Server":"nginx/1.18.0","Date":"Thu, 04 Dec 2025 06:59:36 GMT","Content-Type":"application/json","Content-Length":"25","Connection":"keep-alive","Strict-Transport-Security":"max-age=31536000; includeSubDomains; preload","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Expose-Headers":"Content-Length,Content-Type,Date,Server,Connection"},"reason":"OK","json_body":{"ok":true,"result":true}}
Delete Messages
This action uses to delete multiple messages simultaneously.
Endpoint
- URL: /deleteMessages
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
chat_id | number | Optional | Unique identifier for the target chat. |
message_ids | array | Optional | Unique identifiers of the messages to delete. |
Input Example
{"json_body":{"chat_id":7416146050,"message_ids":[3,4,5]}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
ok | boolean | Output field: ok |
result | boolean | Result of the operation |
Output Example
{"status_code":200,"response_headers":{"Server":"nginx/1.18.0","Date":"Thu, 04 Dec 2025 07:07:51 GMT","Content-Type":"application/json","Content-Length":"25","Connection":"keep-alive","Strict-Transport-Security":"max-age=31536000; includeSubDomains; preload","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Expose-Headers":"Content-Length,Content-Type,Date,Server,Connection"},"reason":"OK","json_body":{"ok":true,"result":true}}
Get Me
Returns basic information about the bot in form of a User object.
Endpoint
- URL: /getMe
- Method: GET
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
ok | boolean | Output field: ok |
result | object | Result of the operation |
result.id | number | Unique identifier |
result.is_bot | boolean | Result of the operation |
result.first_name | string | Name of the resource |
result.username | string | Name of the resource |
result.can_join_groups | boolean | Result of the operation |
result.can_read_all_group_messages | boolean | Result of the operation |
result.supports_inline_queries | boolean | Result of the operation |
result.can_connect_to_business | boolean | Result of the operation |
result.has_main_web_app | boolean | Result of the operation |
Output Example
{"status_code":200,"response_headers":{"Server":"nginx/1.18.0","Date":"Thu, 04 Dec 2025 05:45:16 GMT","Content-Type":"application/json","Content-Length":"249","Connection":"keep-alive","Strict-Transport-Security":"max-age=31536000; includeSubDomains; preload","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Expose-Headers":"Content-Length,Content-Type,Date,Server,Connection"},"reason":"OK","json_body":{"ok":true,"result":{"id":8328642250,"is_b...
Get Updates
Retrieve incoming updates via long polling, returning an array of Update objects in Telegram.
Endpoint
- URL: getUpdates
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
limit | number | Optional | Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100. |
offset | number | Optional | Identifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates. By default, updates starting with the earliest unconfirmed update are returned. |
timeout | number | Optional | Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only. |
allowed_updates | array | Optional | A JSON-serialized list of the update types you want your bot to receive. For example, specify ["message", "edited_channel_post", "callback_query"] to only receive updates of these types. |
Input Example
{"json_body":{"limit":1,"offset":0,"timeout":10,"allowed_updates":["message","edited_channel_post","callback_query"]}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
ok | boolean | Output field: ok |
result | array | Result of the operation |
result.update_id | number | Unique identifier |
result.message | object | Result of the operation |
result.message.message_id | number | Unique identifier |
result.message.from | object | Result of the operation |
result.message.from.id | number | Unique identifier |
result.message.from.is_bot | boolean | Result of the operation |
result.message.from.first_name | string | Name of the resource |
result.message.from.language_code | string | Result of the operation |
result.message.chat | object | Result of the operation |
result.message.chat.id | number | Unique identifier |
result.message.chat.first_name | string | Name of the resource |
result.message.chat.type | string | Type of the resource |
result.message.date | number | Result of the operation |
result.message.text | string | Result of the operation |
Output Example
{"status_code":200,"response_headers":{"Server":"nginx/1.18.0","Date":"Thu, 04 Dec 2025 06:26:36 GMT","Content-Type":"application/json","Content-Length":"260","Connection":"keep-alive","Strict-Transport-Security":"max-age=31536000; includeSubDomains; preload","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Expose-Headers":"Content-Length,Content-Type,Date,Server,Connection"},"reason":"OK","json_body":{"ok":true,"result":[{}]}}
Send Message
This action uses to send text messages.
Endpoint
- URL: sendMessage
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
business_connection_id | string | Optional | Unique identifier of the business connection on behalf of which the message will be sent. |
chat_id | number | Optional | Unique identifier for the target chat. |
message_thread_id | number | Optional | Unique identifier for the target message thread (topic) of the forum. |
direct_messages_topic_id | number | Optional | Identifier of the direct messages topic to which the message will be sent; required if the message is sent to a direct messages chat. |
text | string | Optional | Text of the message to be sent, 1-4096 characters after entities parsing. |
parse_mode | string | Optional | Mode for parsing entities in the message text. |
entities | array | Optional | Parameter for Send Message |
entities.type | string | Optional | Type of the entity. |
entities.offset | number | Optional | Offset in UTF-16 code units to the start of the entity. |
entities.length | number | Optional | Length of the entity in UTF-16 code units. |
entities.url | string | Optional | For “text_link” only, URL that will be opened after user taps on the text. |
entities.user | object | Optional | For “text_mention” only, the mentioned user. |
entities.user.id | number | Optional | Unique identifier for this user or bot. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. |
entities.user.is_bot | boolean | Optional | True, if this user is a bot. |
entities.user.first_name | string | Optional | User's or bot's first name. |
entities.user.last_name | string | Optional | User's or bot's last name. |
entities.user.username | string | Optional | User's or bot's username. |
entities.language | string | Optional | For “pre” only, the programming language of the entity text. |
entities.custom_emoji_id | string | Optional | For “custom_emoji” only, unique identifier of the custom emoji. |
link_preview_options | object | Optional | Link preview generation options for the message. |
link_preview_options.is_disabled | boolean | Optional | True, if link previews for messages should be disabled. |
link_preview_options.url | string | Optional | URL to use for the link preview. If empty, then the first URL found in the message text will be used. |
link_preview_options.prefer_large_media | boolean | Optional | True, if the media in the link preview is supposed to be enlarged. |
link_preview_options.prefer_small_media | boolean | Optional | True, if the media in the link preview is supposed to be shrunk. |
link_preview_options.show_above_text | boolean | Optional | True, if the media content should be shown above the text. |
Input Example
{"json_body":{"business_connection_id":"string_or_null","chat_id":123456789,"message_thread_id":123,"direct_messages_topic_id":1234,"text":"Your message text here","parse_mode":"MarkdownV2","entities":[{"type":"bold","offset":0,"length":4,"url":"https://google.com","user":{"id":123456789,"is_bot":false,"first_name":"John","last_name":"Doe","username":"john_doe"},"language":"en","custom_emoji_id":"1234567890"}],"link_preview_options":{"is_disabled":false,"url":"https://google.com","prefer_large_media":false,"prefer_small_media":false,"show_above_text":false},"disable_notification":false,"protect_content":false,"allow_paid_broadcast":false,"message_effect_id":"1234567890","suggested_post_parameters":{"price":{"amount":100,"currency":"USD"},"send_date":26784},"reply_parameters":{"message_id":123456789,"chat_id":123456789,"allow_sending_without_reply":true,"quote":"123456789","quote_parse_mode":"MarkdownV2","quote_entities":[{"type":"bold","offset":0,"length":4,"url":"https://google.com","user":{"id":123456789,"is_bot":false,"first_name":"John","last_name":"Doe","username":"john_doe"},"language":"en","custom_emoji_id":"1234567890"}]},"reply_markup":{"inline_keyboard":[[{"text":"Button 1","callback_data":"data1"},{"text":"Open Google","url":"https://google.com"}]]}}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
ok | boolean | Output field: ok |
result | object | Result of the operation |
result.message_id | number | Unique identifier |
result.from | object | Result of the operation |
result.from.id | number | Unique identifier |
result.from.is_bot | boolean | Result of the operation |
result.from.first_name | string | Name of the resource |
result.from.username | string | Name of the resource |
result.chat | object | Result of the operation |
result.chat.id | number | Unique identifier |
result.chat.first_name | string | Name of the resource |
result.chat.type | string | Type of the resource |
result.date | number | Result of the operation |
result.text | string | Result of the operation |
Output Example
{"status_code":200,"response_headers":{"Server":"nginx/1.18.0","Date":"Thu, 04 Dec 2025 06:39:43 GMT","Content-Type":"application/json","Content-Length":"244","Connection":"keep-alive","Strict-Transport-Security":"max-age=31536000; includeSubDomains; preload","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Expose-Headers":"Content-Length,Content-Type,Date,Server,Connection"},"reason":"OK","json_body":{"ok":true,"result":{"message_id":5,"from"...
Response Headers
Header | Description | Example |
|---|---|---|
Access-Control-Allow-Methods | HTTP response header: Access-Control-Allow-Methods | GET, POST, OPTIONS |
Access-Control-Allow-Origin | HTTP response header: Access-Control-Allow-Origin | * |
Access-Control-Expose-Headers | HTTP response header: Access-Control-Expose-Headers | Content-Length,Content-Type,Date,Server,Connection |
Connection | HTTP response header: Connection | keep-alive |
Content-Length | The length of the response body in bytes | 249 |
Content-Type | The media type of the resource | application/json |
Date | The date and time at which the message was originated | Thu, 04 Dec 2025 06:26:36 GMT |
Server | Information about the software used by the origin server | nginx/1.18.0 |
Strict-Transport-Security | HTTP response header: Strict-Transport-Security | max-age=31536000; includeSubDomains; preload |