Slack Notifications in Personal Settings

Currently, receiving slack notifications about build events is managed at the org-level and configured per pipeline, without support for filtering by the user that triggered the build. I’d like to be able to individually subscribe to receive slack notifications that are sent to me as DM’s, and only be notified about my builds.

The reason the pipeline-level filters don’t work for me is that our team contributes to many repos with their own pipelines, and these repos are shared by many teams beyond my own. If I subscribe to every build event in every pipeline that I sometimes use, I would be drowning in notifications. It’d be amazing if I could subscribe to anything I do anywhere, and a cherry on top would be to also filter down by branch name. Our prod deploys happen only in main/master branches, so I’d like to be able to target those specifically.

Use cases:

  • Find out when my build failed
  • Find out when my build is blocked and ready for approval

The second one in particular is important to me because our builds trigger when code merges to main in GitHub, and often I forget that Buildkite does this automatically. I’d like the reminder that I need to manually approve it to deploy to production, otherwise it sits there forgotten, which delays our team’s production lead time metrics and can create coordination confusion with other people that have code to deploy to prod but aren’t sure if my change is ready to go.

Hi @maxnorth!

Welcome to the community! :wave:

You can have more control over when each channel receives notifications with the notify attribute

Before adding a notify attribute to your pipeline.yml , ensure an organization admin has set up a Slack integration for the channel or user that you want to post to. For detailed information about setting up a Notification Service, see the Slack integration page.

You can also use conditionals on the Notifications to trigger Build notifications only under certain conditions. You can check all the supported variables here: Using Conditionals | Buildkite Documentation

Particularly speaking about the build.state, the state of the overall build is not available when executing a job. If a job is executing, the state of the build can’t be failed or passed as well, because there’s still a job executing.
It’s not possible to evaluate build.state without using an API to fetch the build and look at the states of the finished jobs. If you’re within a job running within the build then the build is still running, too.

Hope this helps!

Cheers,

Hi Paula, thanks for your response. The suggestions you provided won’t quite work for what I’m looking for, I’d like Buildkite to allow individuals to personally subscribe to any pipelines triggered by them, without having to hardcode themselves into the buildkite.yaml file for each pipeline.

Sorry to bring up an old thread, but I was also hoping for the same functionality that Maxnorth is asking for.

Wondering if BuildKite has this on the roadmap?

Hey @jonathanyeong :wave:

Welcome to the buildkite community!

You can refer our public roadmap here Feature Roadmap | Buildkite.

If you’re aiming to subscribe to pipelines for an individual user, you can set up an individual notification service and use the filters to choose the required pipeline and states.

We also support branch filtering to choose the builds based on the branch for notification.

Let us know if this will help and share more details about your use case if you see a gap.

Cheers,
Priya

Thanks for the reply! Hmm, this is not ideal because it sends an email rather then notify through slack.

We honestly want something like the notify command

notify:
  - slack: "@someuser"

But the problem is I’m not sure how to pass @someuser so it targets the slack user that kicked off the build.

Do you have any suggestions?

Hey @jonathanyeong :waving_hand:

Good news is that we recently introduced an improved Slack Workspace notification service, which should cover the use case you’re looking at here! This one works by connecting to a single slack workspace once, and allows for more flexible notifications (including the pattern you are trying to do here).

Have you already had a look at that one? If not, I would suggest giving it a try and see if it covers your use case!

Hey Jeremy, is that different then the other Slack integration? Seems like I need to request additional permissions?

Hey @jonathanyeong that’s correct - we’ve made improvements to our Slack integration through this integration to allow for more flexibility with sending notifications from your pipelines.

Hey Jeremy, thanks for the reply. I was able to enable the updated integration. In the docs, it’s mentioned that the build creator would be mentioned

# Build creator mentions
Build creators will be mentioned in notifications if the email address associated with their Slack account is attached to their Buildkite account.

But in the notification docs it only shows how to notify someone by providing username or user id.

You can notify a user in all workspaces configured through your Slack or Slack Workspace notification services by providing their username or user ID, respectively, in the pipeline.yml.

I was wondering if we can notify a user dynamically, based on who created the build. Like

notify:
  - slack: "<user-who-created-build>"

It looks like I’ll need a plugin to achieve what I want GitHub - envato/build-failed-notify-slack-buildkite-plugin: @'s the creator of the failed build via a mapping file