Skip to main content

I’m looking to trigger a zap when a message is posted in one of ~6 public slack channels. I can’t use the standard “new message posted to channel” as it only lets you select a single channel. The other option I’ve been trying is “new public message posted anywhere” with a filter step where I’ve noted the channels that I’m interested in. The issue is that pulls in all of the threaded messages, which I don’t want. I’ve seen older posts about adding a filter like thread ts time = ts time or where thread ts time = doesn’t exist, but those don't seem to work. Any ideas? I know I can set up 6 individual zaps to accomplish this, but I’d prefer to have this contained within one. Thanks!

You’re on the right track with using “New Public Message Posted Anywhere” together with a Filter step. That’s the common approach when you want to handle multiple Slack channels in one Zap. The main challenge is just filtering out the threaded replies.

Here’s how you can manage it:

  1. Exclude threaded messages

    • Slack provides ts (the message timestamp) and thread_ts (the parent timestamp if it’s part of a thread).

    • Add a Filter so it only continues when thread_ts is empty or when thread_ts equals ts. That way, you’ll only get top-level posts.

  2. Limit to your specific channels

    • In the same Filter, check for Channel ID or Channel Name to match the 6 channels you need.

    • You can add them individually using OR conditions.

  3. Optional: cleaner setup with Paths

    • If you ever want to manage more channels, you could switch to Paths instead of a long filter. Each Path can check for a channel and branch off accordingly.

Since Slack’s “New Message Posted to Channel” trigger only works with one channel, your current approach with “New Public Message Posted Anywhere” + a Filter is the best way to keep everything inside one Zap.


Hey ​@eslosburg,

Great to see you want to utilize Zapier for automating Slack. Your workflow will look something like this so you don’t have to make 6 different Zaps-

 


In the path condition, you can filter for the specific channel as well as exclude the thread message to only continue if thread_ts doesn’t exist. After that you can send this data to other apps depending on your needs. Hope it helps!


@Ashar Malik Easyaiz Thanks for the reply. This was something that I tried initially, but it turns out that messages posted in channels that 100% are not threaded are showing data in all of the thread-related fields. Not sure if that is universal or specific to our workspace. 

 

@Sparsh from Automation Jinn This looks interesting and will definitely give this a try! Is there a way to have them merge back into a single path once the filter logic is applied to each path?


Hey ​@eslosburg,

I don’t think it’s possible to merge them back into one path. But it should be able to achieve what you want to try here. As you are adding path conditions here not every path will run and also Path action in Zapier doesn’t count a task so you don’t have to worry about efficiency. Hope it helps!


Hi ​@eslosburg , Thanks for clearing that up. I’ve seen this before too. In some Slack workspaces, Zapier will still show a thread_ts value even on main posts (basically it just equals the ts).

A workaround is to set your filter so it only continues when thread_ts equals ts. That should let only the main messages through and skip replies.

If that still doesn’t work the same in your setup, you could add a small Code step or a Formatter step to compare the two values and only continue when they match. It’s one extra step but gives you more control.