Telegram Node - Force Reply + Reply Keyboard

Describe the issue/error/question

WHen using the Telegram NOde to send messages to a user - its possible to automatically enter the user into a reply dialogue and also present custom buttons using the Reply Markup options. What I don’t seem to be able to do is both at the same time - which must be a very common use case.

Is this a limitation of the Node or (my) user error? If a limitation of the Node - is it possible to do this another way? I read that I could use HTTP request to build a custom node though I’m not sure how to do this.

Thank you!

What is the error message (if any)?

Please share the workflow

{
  "nodes": [
    {
      "parameters": {
        "operation": "append",
        "application": "={{$node[\"Get ActiveBaseID\"].json[\"ActiveBaseID\"]}}",
        "table": "Feed",
        "options": {}
      },
      "name": "Add to Airtable",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 1,
      "position": [
        1300,
        1580
      ],
      "credentials": {
        "airtableApi": {
          "id": "1",
          "name": "Airtable account"
        }
      }
    },
    {
      "parameters": {
        "keepOnlySet": true,
        "values": {
          "string": [
            {
              "name": "Lat Long",
              "value": "={{$json[\"results\"][0][\"geometry\"][\"location\"][\"lat\"]}},{{$json[\"results\"][0][\"geometry\"][\"location\"][\"lng\"]}}"
            },
            {
              "name": "Formatted Address",
              "value": "={{$json[\"results\"][0][\"formatted_address\"]}}"
            },
            {
              "name": "Place ID",
              "value": "={{$json[\"results\"][0][\"place_id\"]}}"
            },
            {
              "name": "Sender",
              "value": "={{$node[\"Set Sender\"].json[\"SenderName\"]}}"
            },
            {
              "name": "Sent Via",
              "value": "Telegram Bot"
            },
            {
              "name": "Status",
              "value": "New"
            }
          ],
          "number": [
            {
              "name": "Sender ID",
              "value": "={{$node[\"Set Sender\"].json[\"SenderID\"]}}{{0}}"
            }
          ]
        },
        "options": {}
      },
      "name": "Set AT Field Properties",
      "type": "n8n-nodes-base.set",
      "typeVersion": 1,
      "position": [
        1120,
        1580
      ]
    },
    {
      "parameters": {
        "chatId": "={{$node[\"Set Sender\"].json[\"ChatID\"]}}",
        "text": "=What kind of location is this?",
        "replyMarkup": "replyKeyboard",
        "replyKeyboard": {
          "rows": [
            {
              "row": {
                "buttons": [
                  {
                    "text": "Recipient Location",
                    "additionalFields": {}
                  }
                ]
              }
            },
            {
              "row": {
                "buttons": [
                  {
                    "text": "Supplier Location",
                    "additionalFields": {}
                  }
                ]
              }
            },
            {
              "row": {
                "buttons": [
                  {
                    "text": "Other POI Location",
                    "additionalFields": {}
                  }
                ]
              }
            }
          ]
        },
        "replyKeyboardOptions": {
          "resize_keyboard": true,
          "one_time_keyboard": true
        },
        "additionalFields": {
          "reply_to_message_id": "={{$node[\"Set Sender\"].json[\"MessageID\"]}}"
        }
      },
      "name": "Confirmation",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        1480,
        1580
      ],
      "credentials": {
        "telegramApi": {
          "id": "4",
          "name": "Telegram account"
        }
      }
    }
  ],
  "connections": {
    "Add to Airtable": {
      "main": [
        [
          {
            "node": "Confirmation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set AT Field Properties": {
      "main": [
        [
          {
            "node": "Add to Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database you’re using (default: SQLite):
  • Running n8n with the execution process [own(default), main]:
  • Running n8n via [Docker, npm, n8n.cloud, desktop app]:

I don’t have an answer but am interested in this.