Adding users to Slack channels and managing errors

Hello everyone,

Apologies if this has already been solved before, I am still a beginner with Make.

TL;DR: I want to automate member administration on Slack and do not know how to handle errors such as “already_in_channel”

Context

I am managing a community of 100+ people, spread across different locations. I want to setup a communication platform across those sites, and Slack seems like the obvious choice. However, the Slack UI is very painful for large-scale user management without using other tools such as Azure AD, etc…
Additionnally, arrivals and departures in the workspace are to be expected every month or so.
I am right at that spot where there are too many users for me to do it manually, and we do not have enough resources to have an IT department, which makes automation the obvious solution.

Previous actions:

Here is my current scenario:

The process is designed as such:

  • When a new user is added
  • Get information on that user, most notably the email
  • Compare the information with our Airtable user database (the formula I wrote is ({E-mail address}="{{5.profile.email}}")
  • If the user is in the database, add it to the relevant channels based on Airtable information
  • Edit the Airtable record in order to check the “Added to Slack” Checkbox field

Current issue:

As can be seen on the picture above, it happens that the user already is in the channels, especially when it comes to general channels. The whole workflow then stops and displays an error.
I have tried to work with Errror Management modules, but I am not sure I got it right. Should I add a “Ignore” module to every module as displayed below ? Or maybe there is a more elegant solution ?

BONUS QUESTION

Am I correct in thinking that with the configuration below, setting “Slack onboarding” to “Yes” will check the Checkbox, but leaving “Welcome bag” to “Empty” will not change anything ? I don’t know how to tell Make to only edit a few fields and fear that it will void my whole record on module activation.
image

Thank you in advance !!!

Hi @Clement_Lpr and welcome!

You could add an Ignore module to an error route, like you’ve done, or you can do something like Slack List Members in Channel and see if the user is already there. If so, mark them as added. Otherwise, add them.

Correct, Yes or No will update the field and Empty will leave it as-is.

2 Likes

Thanks for the answer ! Another user suggested that I use the “Resume” error modules.

I am pretty sure there are more elegant ways of doing this, i.e the solution you mentioned, where I would compare the list of channels my user already is in and only add it to the relevant channels, but with my current knowledge of Make, adding a “Resume” module to every single “Add to channel” module does the trick for now :smiley: I am not sure how this will impact my monthly usage though.

Thank you very much for the clarification regarding record update as well !

If you use Resume, it will allow you to offer substitute values for the module the Resume is connected to. This keeps the scenario running and makes the original module look like it was successful, except it’s using values you specified.

For example that module outputs “Channel type”, “Users”, and “Public Channel”.
In the resume module, you’d be able to fill these values in manually and if the Slack module failed for any reason and went to the Resume route, the scenario would continue with whatever you’ve filled in the values. Hope that makes sense.

Ignore just forgets the module and continues.
Hopefully nothing else depends on the output from that module, though.
Otherwise, those downstream modules could fail.
While Ignore would probably work in this case, it’s also probably not the best practice.

Also, unless you use a filter between Slack and the Ignore or Resume module, you don’t really know why the module failed, you’re just assuming it’s because the user was already added to the channel, but there are other possible type of failures.

2 Likes