Slack watch users not working correctly

I am trying to trigger a make automation when a new user joins our slack group.
I am currently using the “Watch Users” trigger but it seems to fire off anytime someone’s profile changes - including status.

Is there a better way to trigger my automation to run when a new member is added to slack?

Thanks in advace

Is there any way to add a filter by event type? Does the webhook send the event type?

Please share the output bundle of the trigger module WHEN a new user joins.

Please provide the input and output bundles of the modules by running the scenario (or get from the scenario History tab), then click the white speech bubble on the top-right of each module and select “Download input/output bundles”.
Screenshot_2023-10-06_141025

A.

Save each bundle contents in your text editor as a bundle.txt file, and upload it here into this discussion thread.

Uploading them here will look like this:

module-1-input-bundle.txt (12.3 KB)
module-1-output-bundle.txt (12.3 KB)

B.

If you are unable to upload files on this forum, alternatively you can paste the formatted bundles in this manner:

  • Either add three backticks ``` before and after the code, like this:

    ```
    input/output bundle content goes here
    ```

  • Or use the format code button in the editor:
    Screenshot_2023-10-02_191027

Providing the input/output bundles will allow others to replicate what is going on in the scenario even if they do not use the external service.

This will allow others to better assist you. Thanks!

2 Likes

image
Sharing a screenshot of the output info.

Unfortunately it only has an “Updated” field. This changes any time a user is active, inactive, changes their status etc. Nothing here allows me to easily filter the data for truly new users to slack.

I’ll have to make a workaround

Hi,

I’m facing the same issue. The “Watch User” module seems to fire on repeat whenever existing members change anything, and I need it to only welcome newcomers and assign them to the proper channels based on comparison with Airtable data.

Happy to learn about your workaround if you found it !

EDIT: I managed something that looks like a solution on Airtable:

Basically, whenever the module triggers, I have a “Get a User” Slack module collecting info on the User, which I use to get their e-mail address.

I then have an Airtable “Search Records” module comparing the e-mail with my user database on Airtable to look for a record that shares the same e-mail address (formula below).

({E-mail address}="{{5.profile.email}}")

Then, all you have to do is setup a filter, checking that the record ID does not exist, meaning that you have a new user registering. Pre-existing users will be filtered out at this step.

Nota: this of course means that later down the road you should setup your automation to update the Airtable user record with their Slack ID in a dedicated field to keep the comparison going !

Hope that helps :slight_smile: Of course, it is heavily reliant on Airtable, but maybe the idea of the process can be kept and applied elsewhere ?

I already have user info in my airtable database and wanted to save cycles on make. So here’s my clunky solution:

  1. setup a workflow in slack. When a user joins the #general channel in my slack instance, their user name is posted in to a private channel called #new-members
  2. In make.com I have an automation watching for any new posts in the #new-members channel. It takes the content of the message posted (<@XYZABVC>) and runs thru the rest of my automation with this user ID

Clunky but works!

I am still getting around the notion of cycles and workflow optimization, so there might be something I am missing, but in terms of operations, is it not better to just bar the workflow with a filter that prevents it from continuing if some conditions are not met rather than setup a new workflow on Make ?

1 Like