Setting up n8n workflow for Telegram Business Bot private message responses

Hi everyone! I’m trying to build an automated response system for my Telegram business account using n8n and running into some issues.\n\nMy setup process:\n\n1. Generated a bot through BotFather\n2. Linked it to my business profile in Telegram’s Business Bot Settings\n3. Set up webhook reception for incoming DMs in my n8n instance\n4. Created an AI processing step for message analysis and response creation\n5. Attempting to send replies via HTTP Request node using Bot API\n\nMy API call structure:\n\njson\n{\n "chat_id": "<sender_chat_id>",\n "business_connection_id": "<connection_id>", \n "text": "Sample response"\n}\n\n\nThe problem:\nI keep getting “400 Bad Request: message text is empty” even though the text field contains content.\n\nWhat I’ve tested:\n- Removing business_connection_id parameter\n- Using plain ASCII text only\n- Testing with cURL and Postman directly\n- Confirming users have initiated conversations\n\nMy questions:\n- Are there special API permissions needed for business bot messaging?\n- Should I use a different endpoint or authentication method?\n- What could trigger the empty text error when content is present?\n\nAny guidance would be appreciated!

Had the same issue with my Telegram business automation setup. Turned out n8n wasn’t handling the text variable from my AI node properly. The content looked fine in the workflow preview, but invisible whitespace or undefined values were sneaking through. First, try hardcoding a simple test message - that’ll tell you if it’s a variable problem or API config issue. Also double-check your bot permissions. Business bots sometimes need explicit Telegram approval before they can send automated responses. I had to restart my business connection after updating bot settings (nowhere in their docs, of course) but it fixed those annoying 400 errors.

same thing happened to me too - it was the business_connection_id that caused it. just use chat_id and text for the sendMessage call. once I ditched the business connection part, my bot started workin’ again. might be a bug with the API.

Had this exact problem with my business bot last month. Your HTTP headers are probably the issue, not the payload. Make sure you’re using application/json content-type and format your bot token correctly in the auth header as bot<YOUR_TOKEN> - no extra spaces. Double-check you’re hitting the right endpoint: https://api.telegram.org/bot<token>/sendMessage. I was pulling in hidden characters from my environment variable that didn’t show in logs but broke the request. Also verify your n8n expression syntax when grabbing text from previous nodes.