Slack Based Approval for Workflows/Pipelines

Workflows and Pipelines can include Approval steps, which require deployments to receive approval before they can proceed.
With Slack approval Integration now any workflow or pipeline that needs approval can be approved via Slack. This reduces the waiting time for approval significantly. As now folks on Collaboration tool like Slack can Approve/Reject the deployment

Doc URL : https://docs.harness.io/article/0ajz35u2hy-approvals#slack_based_approvals

3 Likes

Thanks Pranjal and team for all the hard work!

This looks great! Is there any way to send extra data with those Slack approval messages? Any variables/expansions?

1 Like

Interesting idea!

I know we can send a message around the approval/decline. Variable to be consumed something downstream?

-Ravi

Yeah, I see this as more informational than transactional (for now :D). Just something people can see, I wouldn’t expect them to interact with it more than clicking on a link they were presented with.

1 Like

@CaptainMorgantown We do send some context that is related to current execution of workflow/pipeline.
So if you are looking for lets say which artifact is being deployment as per of current execution. It will come as part of this context.

2 Likes

Nice!

As you mentioned on Slack, anybody in the designated channel can approve it. Could an option to restrict it to the user group be added do you think? The idea being that we could post the approval to a public deployments channel for visibility and discussion, but still keep the RBAC feature.

I think for now we’ll stick with the notifications only and let users follow the link into Harness for this reason.

2 Likes

+1 to user group restrictions/some sort of permissions. It’s really helpful for our SE team to know when new builds happen but they probably shouldn’t be approving them. We could set up another type of notification for others but seems best to have a single source of truth?

1 Like

Did this feature disappear? The link to the docs in the first post doesn’t mention anything about Slack now.

Hmm let me ask around bud!

@domclealfa There are limitations in the Slack api that don’t allow us to do correct error handling. So we changed the current approach. We’ll take up a solution soon.

You can still use Slack for Notifications, as covered here: https://docs.harness.io/article/kf828e347t-notification-groups. You’ll get a Slack message in response to the events you select, including links to the deployments, etc.

Also, If you want to send a custom slack payload from anywhere in a Workflow then use a Shell Script command:

url=[https://hooks.slack.com/services/<TOKEN>](https://hooks.slack.com/services/%3CTOKEN%3E)

payload='
{
"text": "Deployed to *${infra.kubernetes.namespace}*",
"attachments": [
{
"author_name": "${deploymentTriggeredBy}",
"text": "Deployment text",
"color": "#00a3e0"
}
]
}'

curl -s -X POST -H "Content-type: application/json" -d "$payload" $url
1 Like

Okay, thanks Michael - will keep an eye out a future solution!