2 Webhook to Workflow - an Example from Monday.com Shared by Zack Dutra, Bayside Covenant Church 3 months ago 14.0 Workflow Intermediate The Webhook to Workflow documentation is a little sparse, and implementation has some very specific pieces that you have to get right. Here's an example setup using a Monday.com board as the webhook trigger. This recipe isn't meant to be a complete solution, but rather one example for how this feature might be used, along with some information that may not be included in the documentation at this time. Workflow Type Setup Create a new Workflow Type in Rock, with any name for testing. Add the following text attributes: RawBody - this will be the body of what we receive from Monday.com WebhookResponse - this exact Attribute key is used to send a response back to the server as shown in the code: https://github.com/SparkDevNetwork/Rock/blob/abdd23cfb5365d931ca15834fcd8ed8c86738e94/RockWeb/Webhooks/LaunchWorkflow.ashx#L282 Under the default Start activity, add a new action (Attribute Set Value) named Set Workflow Response. We need to set the value of the WebhookResponse attribute to the attribute value of RawBody. Save the Workflow Type Webhook to Workflow Setup A starting point to look over first is here: https://community.rockrms.com/documentation/bookcontent/12/304#configuringawebhooktoaworkflow Under the Defined Types, open the Workflow Webhook type. Add a new defined value and name it Monday.com test In the process request field, you can add some lava to filter requests. For example, the lava {% if RawUrl contains 2276067152 %}True{% else %}False{% endif %} would filter in our case to Monday.com triggers with that board ID in the URL. Under Workflow Type, select the workflow type created in the previous step. Under Workflow Attributes, set RawBody to {{ RawBody }}, which will pass the body of the request into our workflow. There are other variables you can use in your workflow as well, which are documented in the Defined Type help text. Save the value. Monday.com Setup Create a board in Monday.com. If it doesn't already have a Status column, create one. Click the Automate button, search for Webhooks, and then select the "When a Status Changes to Something, Send a Webhook" template. Create the automation with the URL in this format, replacing your domain, workflowtypeid from the created workflow, and Monday board Id from the new Monday board: https://rocksolidchurch.com/Webhooks/LaunchWorkflow.ashx?WorkflowTypeId=1172&MondayBoardId=2276067152Click connect and adjust the trigger - as a sample, "when status changes to anything, send a webhook" Once you save your automation, you should already see a workflow run in the workflow history. That initial run is just Monday validating the Webhook. Monday is looking to be sure that you've sent back the RawBody in the WebhookResponse, which Rock handles for you when you set the WebhookResponse attribute. You can test your trigger and see what information is available to you by changing that status column. Once you do, you should see plenty of information you can access sent back to Rock in a JSON format. In this case, you'll get information about who made the change, the old and new statuses, the time it happened, the color of the status labels, and more. You can expand your workflow type above to parse this information and use it in your workflows. Potential Use CaseFor Bayside Church, one of our teams uses Monday.com to onboard team members. We allow them to trigger the onboarding of these members from Monday. The workflow matches the person from Monday to a person in Rock, adds them to groups, adds some profile notes, etc. The resulting workflow even does a POST request to update the original Monday item to let the user know that their request was processed.