Or how to send incidents for PagerDuty to Discord.
Any ideas on what’s the best way?
Or how to send incidents for PagerDuty to Discord.
Any ideas on what’s the best way?
Hey,
I think you can use webhooks for this. You can add a webhook endpoint to your account via the menu at “Integrations” > “Generic Webhooks v3”. (I think this is available for all accounts.. If not, check with your account team.)
There’s more on those in the knowledge base: https://support.pagerduty.com/main/docs/webhooks. You can choose which actions will send an update to the webhook as well.
It looks like Discord will allow you to create webhook destinations on channels in your Discord server: https://hookdeck.com/webhooks/platforms/how-to-get-started-with-discord-webhooks
That is what I would try. I don’t have a Discord server handy at the moment to try it out myself.
HTH,
--mandi
Thanks
{
"incident": {
"id": "ABC123",
"title": "Server Down",
"status": "triggered",
"urgency": "high"
}
}
and Discord is expecting something such as
{
"content": "🚨 **PagerDuty Alert**: Server Down",
"embeds": d
{
"title": "Incident Triggered",
"description": "Server Down",
"color": 16711680,
"fields": d
{
"name": "Status",
"value": "Triggered"
},
{
"name": "Urgency",
"value": "High"
}
]
}
]
}
I’m not seeing a way to convert this without throwing some middleware in there.
Is everyone using some middleware or I’m the first wanting to send PD data into Discord?
we had an internal hackweek project for a Discord bot a while back, but the dev has since left. The code wasn’t open sourced and it’s in Elixir. So I’m not entirely sure what all got implemented. I’ll ask around internally and see what’s up.
Hi
Ok. From eng. I’ve not seen this feature used this way before.
If you are on the Enterprise plan for Incident Management, there is a setting in Incident Workflows that will allow you to add a generic external destination for incident information via an API call. You set up the destinations in Workflow Integrations.
You can also choose how the body of the message will be delivered to the remote endpoint using the templating engine. It would look something like:
{
"content": {{incident.title}},
"embeds": b
{
"title": {{incident.title}},
"description": {{incident.custom_fields.description}},
"color": 16711680,
"fields":
{
"name": "Status",
"value": {{incident.status}}
},
{
"name": "Urgency",
"value": {{incident.urgency}}
}
]
}
}
That might get you where you’re going. Otherwise, yeah, you’d need some kind of middleware to get something really custom.
HTH,
--mandi
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.