Better way for validating values than routers with filters?

Hello to everyone!
One of the scenarios must validate the data from the task in Clickup before further action can be taken on its basis. In the case of an incorrect value, I change the task status in Clickup along with a comment. The problem is that there are a dozen or so of these values, and the scenario has grown to such a size that it can no longer be saved.

I considered combining some filters, but I will lose the ability to see which value is incorrect. The last resort for me is to split it into 2 scenarios connected by an http request to another webhook, but maybe there is a better solution to the problem of validating multiple values ​​in a scenario?

I would be grateful for any help, tips and sharing your experiences with scenarios that required validation of multiple values.

What if you did one router with many paths, where each path checks the value. If it’s incorrect, then save it to a variable. For the final path, you do whatever you need to CU?

Hello @Warpech,

Welcome to the Make Community!

You could use something like SmartSuite or Airtable.
Pop the data into one of those first and use formulas to do all the validations.
Once added to SmartSuite or Airtable, wait a period of time and query the record back and add it to Clickup, with the error message, if applicable.
Alternatively, use a second scenario pull the record from SmartSuite or Airtable then add it to Clickup.
Finally, add the Clickup reference/link back to the item in SmartSuite or Airtable as a validation that it was added to CU.

It involves for products and possibly adds to the cost, but is more maintainable.

Curious to hear what other options are out there to handle this!

Hey there,

what are you validating exactly here? It would be helpful if you share some sample data you will be checking.

Without knowing that, you can maybe have a separate scenario for each custom field instead? Have a trigger in ClickUp that is “when custom field changes” and make a new scenario for each separate custom field. This way you wont have a hundred modules in a single scenario making it easier to manage and easier to track when some of them run.

Sounds good, definitely worth to try.

Basically I grab ~ 20 different fields from Clickup task and validate different scenarios.
eg. if the value is X or Y and other value is D the pass to next stage or change task status to error and post comment with error message. That gives the user chance to correct data and retry. If all validation steps pass I do some actions in different space in Clickup and Google sheet. I can not do it with incomplete data or incorrectly filled fields. It is difficult to describe it in details but I definitely can share few screenshots:





If wish to have 1 module to set all validation and continue only if all test have passed… :pensive:

That’s quite the complex flow you have there.

I definitely suggest splitting it in separate scenarios for easier management. The initial trigger starts the first validation scenario - if it fails it fails, if it passes it triggers the second validation scenario and so on.

Or alternatively, like Donald suggested, look for an external tool to handle the validations. For example, we validate ClickUp email fields with a python script hosted on pythonanywhere and call it with an SSH module from a Make scenario.

Here is an update.
@AutomateMyLife I did according to your guidance and it works fine.
Set variable module produces error message in case if it does not pass validation (pass through filter). I have also gathered all error messages with Get multiple variables module from “validation branches”.

Now I try to find fancy way to merge all error messages in one. Then I going to have filter checking if message length is 0 (no errors) then continue. Otherwise I direct it to fallback branch with error feedback.

I have tried to aggregate error messages from Get multiple variables module with Array agregator but I get 1 collection with 1 array of 1 collection with all my fields.
I want to join all error messages from module 230 seperated with new line. Any idea?