Human in the Loop

Approvals in the Fylamynt workflow

Prasen Shelar
May 18, 2021

Workflows can automate a series of steps but oftentimes there are occasions where human intervention is required during the ‘run’ operation. One such example is dynamic auto-scaling of clusters based on workload changes. If the system encounters a spike in workload, a PagerDuty alert is fired, triggering a Fylamynt workflow. 

Once triggered, the workflow automatically gets a list of all running pods and totals the number of running pods. The next conditional step checks to see if the running pod count exceeds a predefined limit, example 5000. If it is more than 5000, a notification is sent to the Ops engineer for approval to continue scaling up.

Inserting Approval Nodes 

You can add an Approval node anywhere in your workflow for manual review or approval of a task before the workflow runs to completion. This action is easily added to the editor canvas a a step as you are creating your workflow.

Did you Slack me?

When the workflow encounters an approval step during its run, a Slack message is sent to the appropriate Slack channel. Slacks users in the channel can then “Approve” or “Deny” the action directly from Slack. 

In the same example for scaling of clusters, during the approval step, the engineer gets a query: “Should we add nodes to the cluster?” 


If the engineer selects “Approve”, the workflow will continue to execute a series of actions, in this case, scaling up to a 20 node cluster. Once the approval is auto-processed, a Slack message is sent, letting the engineer know that the workflow  “Successfully updated cluster node group to 20 nodes”



In this case, if the conditional rule fails for whatever reason (such as Approve/Deny request timed out), a Jira issue is created and marked as P0.

Our tight integration with Slack streamlines workflow communications, allowing team members to step seamlessly into a workflow and make the appropriate decision, all without even having to leave Slack.