Connect Your Slack Workflows to Any App with Webhooks

With webhook triggers, you can run your Slack automations instantly and integrate them with a much wider range of software.

Written by
Matt Jasinski
and

June 2, 2025

Back in late 2023, Slack updated their workflow automation features with an impressive array of new options. 

But while the new options give you several ways to automate your work with the communications app, there aren’t many choices for automation triggers. 

Thankfully, they’ve included one versatile option that makes it easy to connect Slack to the rest of your software: webhook triggers. 

In this tutorial, we’ll show you how to build automations in Slack with webhook triggers, which will let you run your automations on demand from apps like Zapier, Make, Airtable, and many more. 

We’ll also demonstrate how to pass variables into the webhook to give your automation dynamic data to work with.

Creating a webhook-triggered automation in Slack

To begin, open up Slack and sign into your account. You’ll need a paid plan at any tier to access automated workflows. 

Make a new automation

You can find automations in the navigation bar on the left, although it may be hidden by default. You can click “more” to see all the hidden options, including “Automations”. 

Accessing automations in Slack

After selecting “Automations”, you’ll see several templates you can use to quickly start building automations, but we’ll start from scratch by clicking on “New Workflow” in the top right. 

Creating a new workflow in Slack

Add a webhook trigger to your automation

To set up your new automation, you’ll need to choose an event that starts the workflow. For this tutorial, that will be “From a Webhook”. 

Selecting a webhook trigger

As it says in the description of the webhook trigger, this means your Slack automation will run whenever a request is sent to a custom URL. 

A new webhook trigger in Slack

Add variables to your webhook trigger

If you’d like, you can set up variables in your webhook trigger to make sure your automation has some dynamic data loaded in from the start. 

Just click “Set up variables”. 

Then, enter a “Key” (label) and a data type for each variable you want to include. For our example in this tutorial, we’re building a simple automation to send Slack alerts for each new contact in an Airtable CRM. 

As such, we’ll just include some basic info like “Name”, “Email”, and “Service Requested”. 

Variable options in a webhook trigger

These will all be text variables, but you can also set different variable types like Slack Channel ID and Slack User ID. 

Adding variables like this isn’t strictly necessary. However, if you don’t provide any variables, then the only data your trigger will process will be some simple metadata like the timestamp for when the request was sent. 

You’d need to use search steps to find and retrieve additional information. 

a webhook trigger with three variables

Once your variables are all set, click “Continue.”

Configure your automated actions

Now, you can create an automated action that will run whenever the webhook receives a request. Just choose the app and action that you want to automate, and fill in the relevant fields and settings. 

Adding an automated action to send a Slack channel message

As an example, we’ll make a simple Slack action that sends a custom message to a channel, but you can create any action you’d like in dozens of different apps. 

To configure a Slack channel message, you just need to specify a channel to send the message in, and compose your message. 

Choosing a channel to send the message to

In actions like this Slack message, you can include any of the variables sent over in your webhook. Just click “Insert a variable” to bring up the list of variables and select one to add it to the message. 

Inserting variables into the automated action

In our example, we’ll insert all three variables into the message - name, email, and serviceRequested. 

A configured Slack channel message

Save and publish your automation 

Once your action is configured, click “Save”. 

You can add additional actions to the automation if you’d like, but we’ll stick with this one action for our example. When your automation is complete, click on “Finish up” to publish it and give it a name. 

Clicking "Finish up" to publish the automation

Once published, your automation will run whenever you send a request to the webhook URL. 

A successfully published automation

Triggering the automation

Unfortunately, there are no built-in testing features in Slack’s workflow portal, which is a feature we’d like to see added soon. 

However, you can still test your automation by sending a request to the webhook URL.

You can send a request like this from any number of different apps, such as Zapier, Make, or Postman. Any app that lets you write custom HTTP requests with JSON formatting is fine. 

For the sake of this tutorial, we'll use Airtable.

Airtable: low-code databases and automations 

If you’re not familiar, Airtable is a low-code database app. We frequently use it at XRay to build custom apps and automated workflows. 

We’re a certified gold services partner at Airtable, so you can reach out to us if you need any help with Airtable implementation or building new custom features. 

Our example Airtable base

For our example, we’re using a simplified CRM in Airtable which tracks some basic info about each contact. You can see that table pictured below. 

An Airtable base with basic CRM data

Under this base’s “Automations” tab, we’ve created an automation that runs whenever a new contact is added to the Contacts table. 

An Airtable automation with a custom script

The most important step here is the custom script, which we’re using to send a request to the Slack URL. 

A custom script in Airtable that will send an HTTP request to the Slack webhook

If you’d like to follow along in Airtable, you can find a template of our custom script in this tutorial’s resources board

Configure your HTTP request

The exact syntax and options will be slightly different based on the app you use to send the request, but the actual request will largely consist of the same components whether it’s in Airtable, Zapier, Make, or any other software. 

You’ll need the webhook URL, the request method, a header, and a body with any extra info you want to pass along (i.e., the variables we created earlier in Slack). 

Webhook URL

The webhook URL is easy to locate. Just open up your Slack automation and edit the trigger. 

Copying the webhook URL from the Slack trigger

You can copy the URL here and paste it into your request. 

The complete custom code used to send the request

Request method

The request method will be POST. 

Header

In the header, you’ll need to specify that the content type is JSON. 

Body

In the body, you can provide data for all the variables that you listed in Slack, using JSON formatting.

Input variables in Airtable

If you’re using Airtable to send your request, make sure to create matching input variables in Airtable to go with all your Slack variables. Input variables can be created on the lefthand panel of Airtable’s script editor. 

Input variables in Airtable

You’ll also need to declare a variable or constant that stores all of your variables as an array. You can see this in the second line of our script. 

Send the HTTP request

Once your request is configured, give it a test. Airtable makes that easy with a “Test” button in the top right corner of the script editor. 

Testing the webhook trigger by running the custom code

After testing, we can see a console message in Airtable confirming the script ran.

And instantly in Slack, there’s a new message sent to the correct channel, with all of our variables included. 

The resulting message sent in Slack by the automation

This webhook-triggered automation is all set. 

Enhancing your Slack automations with webhook triggers

With webhook triggers, you can get real-time responsiveness in your Slack automations, and integrate with apps that Slack doesn’t have native support for. It just takes a little configuration in Slack and a few lines of JSON. 

But if you’re not experienced with code, you can always ask AI for support, or reach out to our team at XRay.

By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.