Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slack For Incident Notifications #212

Open
michaeljguarino opened this issue Apr 25, 2022 · 4 comments
Open

Slack For Incident Notifications #212

michaeljguarino opened this issue Apr 25, 2022 · 4 comments

Comments

@michaeljguarino
Copy link
Member

Use Case

We currently have a generic webhook systems incidents send to, which can be picked up by n8n or zapier for further integrations, but we should add first-order support for slack (and perhaps mattermost/teams?) since it'll be so useful

Ideas of Implementation

  • create public slack app
  • add an oauth registration system to account page
  • add some way to register a webhook as a slack webhook
  • build slack formatters for most eligible events

Message from the maintainers:

Excited about this feature? Give it a 👍. We factor engagement into prioritization.

@gittysachin
Copy link

Yes @michaeljguarino, we can start with the public slack app. We can add authentication to it as well. We can trigger the slack webhook from n8n as well but I have a few questions -

  1. should we be storing the event first in the database (queue where we keep track of all the messages sent or yet to be delivered) before/after sending the message?
  2. Is this feature going to be the only slack/teams message that gets delivered to users/channels or there's a set of slack/teams command we'll introduce that will enable users who have the slack/teams app integrated into their workspace, that will enable bi-directional communication (probably returning some data or approving something as per the slack/teams command request)?

@michaeljguarino
Copy link
Member Author

The webhook system does persist into the database and retry so that should help with that. My thought was there should be webhook types for standard formats like slack, teams, etc and we add logic to change the way the event is delivered there from simply serializing the object to for instance generating a slack message using their block system

@gittysachin
Copy link

Yes @michaeljguarino, slack messages using blockit builder (blocks system) and similarly for teams (using adaptive cards designer) messages are doable.

  • Do we need to do using n8n/zapier workflow managers or these messages will be triggered from plural system itself without any other workflow layer?

  • If we want to send messages to private slack workspaces then need to store the authentication token and other details that we get after slack authorization because permissions will be needed to send messages to private workspaces (or start with public workspaces only?).

  • Lastly what are all eligible events that we're going to implement in this version?

@michaeljguarino
Copy link
Member Author

With slack, you can set the webhook endpoint to an incoming webhook which doesn't need a secret, so that seems doable, we might need to store auth secrets for others though.

Ideally we make the big destinations like slack as first class citizens, then have generic webhooks for the rest of the usecase.

The eligible events are implemented here: https://github.com/pluralsh/plural/blob/master/apps/core/lib/core/pubsub/protocols/deliverable.ex and of course we can add others. We'll need to improve the payload function to support the various webhook types basically

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

2 participants