I was about to make a new post for this same concept. I’ll repost here and upvote your topic instead.
The idea is:
Improve the Human in the Loop Slack integration by including the Channel ID and Message Timestamp in the output, allowing users to update the original Slack message after an approval/decline action.
My use case:
When using the Human in the Loop node in n8n to send Slack messages with “Approve” or “Decline” buttons, the response webhook only returns a boolean (approved: true/false
). It does not provide the original message’s Channel ID or Timestamp, so there’s no way to update the message in Slack after a button is pressed.
I think it would be beneficial to add this because:
Without the ability to update the message, users are left with stale messages in Slack that continue to show “Approve” or “Decline” buttons—even after an action has been taken. Worse, Slack displays an error saying “Slack cannot handle payload”. This degrades the user experience and creates confusion.
By providing the Channel ID and Message Timestamp, workflow creators could cleanly update or replace the Slack message to indicate the decision has been made.
Any resources to support this?
-
Slack message update API: chat.update method | Slack
-
Example error message from Slack: “Slack cannot handle payload”
-
n8n forum posts related to similar complaints (can be added here if you have links)
- Human In The Loop (Slack) Cannot Update Approve/Disapprove Button After Interaction
- Building an integration with the slack Event API, to get message reaction events into N8N (Similar but not the same)
Are you willing to work on this?
Yes, if guidance is provided on how to extend the output from the Human in the Loop node or access underlying message metadata.