Receive Interactive Events (Button presses) from Slack

I let Retool send a message to Slack with a button action block. Right now there does not seem to be a way to process if the user presses the Button. It should be easy to configure a callback URL to Retool (a different workflow) when the button is pressed. Would be incredible!

Hi @Florian_Juengermann, welcome to the forum! :wave:

To clarify, are we are trying to run the Workflow with the click of a button?

If this is the case,

Enable the "Webhook" trigger for your Workflow:


Create an App with a button to use as the trigger, create a "Resource query" with "Retool Workflow" as the resource, select the option to only run when manually triggered, and choose the workflow you would like to run when we click the button:


Finally, add an event handler to the button to run the query when the button is clicked:


Let us know if you have any questions or if your use case is different. :slightly_smiling_face:

Sorry, it was a bit unclear on my side. I mean when a user clicks a button in Slack.

For that to work, the Retool Slack app needs to configure some callback URLs and then probably route back to the right user, etc. so I understand if that's not an easy feature to build. But it would be super cool to build more advanced Slack bots with Retool Workflows.

Aha! Thank you for clarifying. This is a cool use case, I personally have not seen it before but I'm curious to see if other users have any experience with it.

Let me see what I can find internally.:male_detective:

Thanks. For now, we have a workaround so it's not critical but would love to build more Slack apps.
For others that might be interested, what we do now is:

  1. After sending the message, have another Slack Action that adds an emoji reaction to the message
  2. Set up a Zapier hook on message reaction added. You have to ignore the reaction from the Retool bot. This way you can just press the reaction icon as a user and it acts like a button.
  3. Zapier calls a new Retool workflow URL

Just jumping on this thread, would love to know if there's any progress on Florian's initial request. A button that triggers a workflow from within Slack is exactly my usecase. Did you find any answers Paulo?

Hi @fergus, welcome to the forum! :wave:

After some trial and error, I found that making this work is not within Retool, it may just be a setting on Slack's end.

Here is an example of a Slack resource query block that creates the Slack block:

Here is what gets created:

I was able to open google.com when clicking the Approve button by setting the url property I got from Slack API docs:

...
               {
					"type": "button",
					"text": {
						"type": "plain_text",
						"emoji": true,
						"text": "Approve"
					},
					"style": "primary",
					"value": "click_me_123",
                    "url": "https://google.com"
				},
...

We just need to find a way to make a POST request instead.

Here are a couple of Slack docs that may be useful:

https://api.slack.com/interactivity/handling#payloads