Incoming webhooks supporting GET

Why does Mattermost not support Incoming Webhooks with GET?

The problem is that Pingdom alerts with an HTTP GET. Slack has no problem with HTTP GET but in Mattermost not.
Is there a chance that Mattermost will in the future work with HTTP GET? At the moment is this problem the only Reason because our whole team doesn’t switch from Slack to Mattermost.

Hi Toni,

We’d like to make our incoming webhooks more compatible with Slack if possible, but I’m having trouble getting their incoming webhooks to work with a GET request using cURL. Are you able to send me an example where this is done?

Yes sure.

curl -X GET ‘https://hooks.slack.com/services/TXXXXXXXX/BXXXXXXXX/XXXXXXXXXXXX?message={“check”%3A%20"00000"%2C%20"checkname"%3A%20"Test)"%2C%20"host"%3A%20"Test"%2C%20"action"%3A%20"assign"%2C%20"incidentid"%3A%200000%2C%20"description"%3A%20"down"}

With this curl (Replace the X with your Webhook) do I get this output in Slack:

Hi Toni,

We haven’t been able to find any Slack documentation on how they handle different parameters with a GET request, so we aren’t planning on implementing them at this time. If you’d like to open a feature request to add support for them, you can do so here.

1 Like

I wanted to reply to this as its now 2021 and this still does not work.

We want to move from Slack to Mattermost but without this webhook working we have to stay with slack for our business.

Can you not use the Mattermost API to make GET requests to post messages this way? I’m not entirely sure what your specific usage would be, and how much flexibility/accessibility to modifications of code, as far as the application your using, but I’m interested to learn more about the application you’re trying to use Mattermost with, and hopefully be able to help you get it figured out!

Guys is this a joke? I’ve been breaking my ass off to call everyone into MatterMost and you don’t support even simple webhooks? How do you even plan to overtake slack with such poor functionality. There’s the whole universe in here but this basic thing is not working? Heavily disappointing.

Hi holms,

webhooks are working, but you need to use HTTP POST method as opposed to the GET method requested here. Personally I do think that using the GET method for sending messages should be discouraged and maybe Mattermost thinks the same.
Is there a specific reason why you would need to send webhooks using HTTP GET?

@agriesser my only use-case is a pingdom webhook, I can’t make it work with a mattermost. It just doesn’t work. I’ve actually thought to drop pingdom as we’re using cloudflare health checks too, but it appears those doesn’t even have a support for a webhook. Ofcourse there’s always a workaround to write cloudflare worker, or azure function to handle this situation… but I’d like to stick to pingdom if possible.

@holms - Can you please point me to the pingdom documentation which uses webhooks using the GET method?

From what I can read here: Webhooks or Slack Integration, it is a POST method.

Hey there,

I just signed up for a 30 day trial and pingdom and the webhook is not slack compatible, here’s the POST payload of one example request:

{
  "version": 1,
  "check_id": 12056403,
  "check_name": "mycheck",
  "check_type": "HTTP",
  "check_params": {
    "basic_auth": false,
    "encryption": true,
    "full_url": "https://myurl.com/monitoring.html",
    "header": "User-Agent:Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)",
    "hostname": "myurl.com",
    "ipv6": false,
    "port": 443,
    "responsetime_threshold": 30000,
    "shouldcontain": "OK",
    "url": "/monitoring.html",
    "verify_certificate": true
  },
  "tags": [],
  "importance_level": "HIGH",
  "custom_message": "",
  "previous_state": "UP",
  "current_state": "DOWN",
  "state_changed_timestamp": 1673237449,
  "state_changed_utc_time": "2023-01-09T04:10:49",
  "long_description": "This is a test message triggered by a user in My Pingdom",
  "description": "test",
  "first_probe": {},
  "second_probe": {}
}

Slack does not support these messages out of the box either, you will have to install the Pingdom App for slack to support this specific format and as far as I can tell there is no Pingdom App for Mattermost at the moment. If Pingdom would use the standard slack webhooks, Mattermost would also support them.

BTW, I just checked out uptrends, they have a fully customizable webhook integration, so you can make it work out of the box with Mattermost by just modifying the payload:

Might be worth a look at, as an alternative to Pingdom.

it does uses POST method, and I can’t do anything about it…? You either need to collaborate with them to fix it, or start supporting POST methods. Pingdom is the most popular service to attach to slack. Kind of basics of chatOPS approach. So either you support them, or they support you. I can’t do anything about this as a user right…?

I don’t understand this question, sorry. Pingdom does not allow you to modify the format of the POST message it sends to the webhook receiver, so while the method is OK for Mattermost, the format is not. Pingdom has its own syntax for the alerts it sends via webhooks and in order to understand this syntax, the receiver needs to know the format and neither Slack nor Mattermost do. For Slack, someone (not sure if Slack or Pingdom, but most likely Pingdom) created a plugin that needs to be installed on the receiver side in order to understand the format sent by Pingdom.

As explained above, I think you’re mixing up technical terms here. There’s a feature request wish in the Mattermost user voice forums with regards to supporting Pingdom Webhooks. If you’d like to see this feature implemented, you can vote for the feature wish there:

Please note that Mattemorst is open source and community driven, so if this feature is important for you, you could as well just write your own plugin and release it so it works for others. If you’re a paying customer, please get in touch with your CSM to raise your personal need for this integration.

I tried to verify this statement, but failed to do so - can you share links or statistics that prove this assumption?