After some quick research, it looks like the POST format of the Slack webhook API requires a specific JSON format as discussed.
This means you cannot just point Meraki to Slack, since you will need some middleware to format the data first. Zapier does this with their integration. Alternatively, you could write a micro-service to do this.
https://api.slack.com/incoming-webhooks#enable_webhooks
Expected Slack format
POST https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
Content-type: application/json
{
"text": "Hello, world."
}
Meraki Format
{
"alertData" : {
"kbTotal" : 10750,
"nodeTag" : "",
"period" : 1200,
"usageThreshold" : 10240
},
"alertId" : "643451796765320956",
"alertType" : "Network usage alert",
"networkId" : "L_123456789123456789",
"networkName" : "Network - 1",
"networkUrl" : "https://n1.meraki.com/...",
"occurredAt" : "2018-10-25T17:17:38.623000Z",
"organizationId" : "123456",
"organizationName" : "Organization",
"organizationUrl" : "https://n1.meraki.com/o/.../organization/overview",
"sentAt" : "2018-10-25T17:17:46.608245Z",
"sharedSecret" : "asdf1234",
"version" : "0.1"
}
Middleware would convert JSON to look like this, where "text" could be the "alertType" and then you could parse out any other important details to format the message.
POST https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
Content-type: application/json
{
"text":"Network usage alert /n more info.."
}