Integrations - Ephemeral Message Buttons - Silent Links

Hi guys

I am working on some Mattermost integrations. Therefore I have some questions:

  1. When will interactive message buttons be a available for ephemeral messages? I need them to let the user choose and then post. But all others should not see the message where the current user makes a call.

  2. Is it possible to open a link silently? Like: I click on the link and (for the user) nothing happens, but the link will be called in background.

Both of the questions could solve my problem… :slight_smile:

Thanks for your help

  1. We don’t have any concrete plans for it at the moment. I understand there are a few good reasons you might want to do this, and I think it would be nice to have, but it just hasn’t been prioritized yet.

  2. Can you explain more specifically what you would be wanting to do here and why? Are you wanting to make an HTTP request directly from the user’s browser?

Thank you for your answer.

  1. Would actually solve all my problems…

I just want to let the user pick from several options in a ephemeral message and then replace it with a message visible to all.

  1. I would display several options, users clicks one, call to the link in background, service posts via webhook.

This would also work to implement Giphys (finally) in a good way. The current solution is just not satisfying. Lots of our people are complaining that they don’t have giphys anymore since we moved from slack. But I don’t see a way to implement it.

At the end I implemented a slash command, opening a browser window, letting the user pick a giphy, a webhook posting it back to the channel. This gives some choices for the users but it’s still a bad implementation.

With epemeral messages and buttons I can just let the user loop through updates untill he picks a giphy, then replace the message.

Edit: Giphy is the big thing, everybody wants it, can’t understand why there is no native implementation for it. Have a look at Microsoft Teams, they got it right, you can even make your own memes right in Teams.

Hi @codehobbit - that makes a lot of sense. For now, we have a feature idea for ephemeral message buttons you can upvote here:

If it’s something you’re interested in contributing, let us know and we can help with guidance on it.

We’re also currently working with the team at Gfycat to explore building a built-in integration that would allow for better gif selection.

i’m trying to do exactly the same for my team now, since i know it’s optional in Slack i tried to the same over here, but got stuck since buttons are not available for ephemeral message

any other suggestions how to resolve it ?

Are you trying to implement gifs? If yes, I have a solution that works with preview and selection of several gifs. I would need to upload it to github, in case someone is interested. Or I can deploy it somewhere, with some minor changes it should work for several users.

Yes i’m trying to implement gif slash command, my approach was sending the user ephemeral message with gif as a response and 2 buttons one with the text “random” (to get a different gif), and one button for posting ur selection.
But then i realized buttons are working only at “in_channel” response.

I saw u wrote something about opening new window and then selecting the GIF but it seems to me like a bad user experience for gif selection, am i write ?

anyway i would love to see a visual solution of how u implemented it, or a better explanation.


Hi @michaelAkrawi Following up on this - did you receive assistance to this elsewhere or do you still need help with this? If you still need assistance please let me know and I will ask one of our engineers to take a look.


As i read at your documentation, there is no option to use buttons in ephemeral messages.

If there is an option to this let me know


Hi everyone,

I was able to get message buttons working in ephemeral messages on 4.9 (probably works in earlier versions too but I didn’t try).

I tested it with slash commands by having my server respond with:

  "attachments": [
      "pretext": "This is the attachment pretext.",
      "text": "This is the attachment text.",
      "actions": [
          "id": "button1",
          "name": "Ephemeral Message",
          "integration": {
            "url": "",
            "context": {
              "action": "do_something_ephemeral"
        }, {
          "id": "button2",
          "name": "Update",
          "integration": {
            "url": "",
            "context": {
              "action": "do_something_update"


The only change I had to make from the documentation was the addition of the id fields to the actions of the attachment.

I created a ticket to look at updating it for ephemeral messages so you don’t have to include the id field, like you don’t have to for regular messages.

1 Like