cancel
Showing results for 
Search instead for 
Did you mean: 

Meraki Webhooks & MS Teams

Here to help

Meraki Webhooks & MS Teams

Created Incoming Webhook in our MS Teams environment; however, does not require a "secret" as it's anonymous.  Meraki dashboard requires to input a secret.  Does anyone know how to get around this?

14 REPLIES 14
Building a reputation

Re: Meraki Webhooks & MS Teams

Meraki does not validate the secret.  Instead, the value is included in the payload sent to your environment.  It's up to you to validate the secret (if you choose to do so).

 

If you're not going to validate the shared secret, you can enter any value you want.

Here to help

Re: Meraki Webhooks & MS Teams

Yeah, I read that in a different article; however, my alerts are not showing up in my Teams environment.

Comes here often

Re: Meraki Webhooks & MS Teams

I have the same issue, I have installed the incoming webhook connector into my teams channel, used the URL it generated and pointed the Meraki webhook to that URL. The alerts are not being delivered, yet if I use the E-mail address of the channel and set it as an alert recipient from the dashboard those messages do make it in.

 

Has any one gotten this integration working yet?

Highlighted
Building a reputation

Re: Meraki Webhooks & MS Teams

I'm not using Microsoft Teams, so I don't have a good way to test that end of the integration.

 

However, I did a quick test yesterday with ngrok and a simple Node.js receiver.  It took a little longer than I expected for the notifications to start arriving, but it did eventually work.  I wasn't keeping close track, but I would guess that it was 10 or 15 minutes.

 

I set my webhook to receive configuration change notifications only.  I didn't add it to the top-level notification list.  I then toggled a setting on the notification page a few times to cause the notifications to go out.

 

Here's one of the notifications as an example to look at:

 

{  
   "alertData":{  
      "name":"Alerts",
      "url":"/manage/configure/alerts",
      "changes":{  
         "rogueAp":{  
            "label":"A rogue AP is detected",
            "oldText":"{\"enabled\":false}",
            "newText":"{\"enabled\":true}",
            "changedBy":"Someone (someone@company.com)",
            "ssidId":null
         }
      },
      "userId":123456
   },
   "alertId":"1234567890123456789",
   "alertType":"Settings changed",
   "occurredAt":"2018-10-29T14:41:39.953568Z",
   "organizationId":"654321",
   "organizationName":"Org Name",
   "organizationUrl":"https://n123.meraki.com/o/5pWeda/manage/organization/overview",
   "networkId":"N_1234567890123456",
   "networkName":"A Network Name",
   "networkUrl":"https://n123.meraki.com/A-Network-Name/n/HakdfJH/manage/nodes/list",
   "version":"0.1",
   "sharedSecret":"asharedsecret",
   "sentAt":"2018-10-29T14:51:47.623106Z"
}
Comes here often

Re: Meraki Webhooks & MS Teams

anyone have this working with Microsoft Teams yet?

Here to help

Re: Meraki Webhooks & MS Teams

Negative

New here

Re: Meraki Webhooks & MS Teams

Just checking to see if anyone has had any success with using the Meraki Webhooks with MS Teams?  I just tried configuring it this morning and the tests all fail.

JTe
Conversationalist

Re: Meraki Webhooks & MS Teams

I have manage to do this with Microsoft flow. First create Microsoft flow with http receiver and then send that infromation as MessageCard format to MS Teams as webhooks.

Meraki-Flow-Teams.pngMS Flow

I am currently using combination of different Meraki webhooks in my HTTP receiver to get all information from Meraki.

 

{
    "type": "object",
    "properties": {
        "alertData": {
            "type": "object",
            "properties": {
                "kbTotal": {
                    "type": "integer"
                },
                "nodeTag": {
                    "type": "string"
                },
                "period": {
                    "type": "integer"
                },
                "usageThreshold": {
                    "type": "integer"
                },
                "vpnType": {
                    "type": "string"
                },
                "peerIdent": {
                    "type": "string"
                },
                "peerContact": {
                    "type": "string"
                },
                "connectivity": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "userId": {
                    "type": "string"
                },
                "changes": {
                    "type": "object",
                    "properties": {
                        "globalRecipients": {
                            "type": "object",
                            "properties": {
                                "label": {
                                    "type": "string"
                                },
                                "ssidId": {},
                                "newText": {
                                    "type": "string"
                                },
                                "oldText": {
                                    "type": "string"
                                },
                                "changedBy": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "countNode": {
                    "type": "integer"
                },
                "bssids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "minFirstSeen": {
                    "type": "integer"
                },
                "maxLastSeen": {
                    "type": "integer"
                },
                "countIsContained": {
                    "type": "integer"
                },
                "reason": {
                    "type": "string"
                },
                "wiredMac": {
                    "type": "string"
                },
                "mac": {
                    "type": "string"
                },
                "ip": {
                    "type": "string"
                },
                "connected": {
                    "type": "string"
                },
                "uplink": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "portDesc": {
                    "type": "string"
                },
                "portNum": {
                    "type": "integer"
                },
                "prevStatus": {
                    "type": "integer"
                },
                "status": {
                    "type": "integer"
                }
            }
        },
        "alertId": {
            "type": "string"
        },
        "alertType": {
            "type": "string"
        },
        "deviceMac": {
            "type": "string"
        },
        "deviceName": {
            "type": "string"
        },
        "deviceSerial": {
            "type": "string"
        },
        "deviceUrl": {
            "type": "string"
        },
        "networkId": {
            "type": "string"
        },
        "networkName": {
            "type": "string"
        },
        "networkUrl": {
            "type": "string"
        },
        "occurredAt": {
            "type": "string"
        },
        "organizationId": {
            "type": "string"
        },
        "organizationName": {
            "type": "string"
        },
        "organizationUrl": {
            "type": "string"
        },
        "sentAt": {
            "type": "string"
        },
        "sharedSecret": {
            "type": "string"
        },
        "version": {
            "type": "string"
        }
    }
}

Sending information to MS Teams is pretty simple operation. Just format and send it to MS Teams webhook address.

Flow2Teams.pngFlow2Teams

New here

Re: Meraki Webhooks & MS Teams

Could you export/share out this MSFlow? We are having an issues getting this to work in our environment. 

 

thank you

JTe
Conversationalist

Re: Meraki Webhooks & MS Teams

You can download exported Flow from https://1drv.ms/u/s!ArsWMmlHspG7yxdwMNUbomLve8tN

 

 

 

JRV
Conversationalist

Re: Meraki Webhooks & MS Teams

Did you have any luck APittman? I'm getting failures on submitting a test webhook from Meraki using the flow in the thread.

JTe
Conversationalist

Re: Meraki Webhooks & MS Teams

That test webhook is not working either in our dashboard, but if you just put that Flow url there and save configuration it will send those webhooks Smiley Happy 

JRV
Conversationalist

Re: Meraki Webhooks & MS Teams

Interesting. Thanks for the feedback! I'll give it a try.

 

J.R.

JRV
Conversationalist

Re: Meraki Webhooks & MS Teams

Wanted to let you know that worked. Appreciate the tip!

Welcome to the Meraki Community!
To start contributing, simply sign in with your Cisco account. If you don't yet have a Cisco account, you can sign up.