The discussion revolves around the Syntax for Data Explorer params in Automation. Ann Campbell is trying to automate a Data Explorer query that accepts a ‘group_name’ parameter, but is struggling with the syntax. Arkshine reproduces the issue and investigates the code, finding a potential problem with how parameters are transformed.
Akshine proposes a possible solution, and Ted Johansson confirms there was a bug and fixes it in a pull request. With the bug fixed, Ted Johansson explains that currently, there is no connection between the recipient list and the report parameters, so setting up one automation per group is required.
Ann Campbell and Ted Johansson discuss the need for a foreach feature to iterate over a set of groups, which would be convenient for sites with many groups. Ted Johansson notes down the request but cannot provide a timeline for its implementation. Sam Saffron appreciates the debugging efforts, and Ted Johansson is grateful for Arkshine’s investigation.
In your example, let’s say you want to check the moderators and admins groups, you are supposed to have:
key: group_name
value: moderators,admins
Technical stuff to help, don’t mind me.
I tried to understand looking at the code, and I think there is an issue here:
The params are transformed before run_query is called.
Let’s say you have this original value: [{"key":"group_names","value":"admins,moderators"}]
The transformed value will be: {{"key"=>"group_names", "value"=>"admins,moderators"}=>nil}
However, cast_params seems to expect {"group_names"=>"admins,moderators"}
I tried to test this naive change, and the params worked.
def self.params_to_hash(query_params)
params = JSON.parse(query_params)
params_hash = {}
params.each do |param|
key = param["key"]
value = param["value"]
params_hash[key] = value
end
params_hash
end
I’m looking into this now. When I read the original code I get the impression that it expects the parameters to be an array of arrays, so I’m a bit weary of just throwing the existing stuff out. Will try to figure out when this might happen.
This has been merged already, so once your site has been deployed you should be unblocked @ganncamp.
If I understand correctly, you want an automation that is a one-to-one mapping between a group and its report? (I.e. group_a receives a report with group_a data, etc.)
There is (currently) no connection between the recipient list and the report parameters, so to accomplish that you’d need to set up one automation per group. In this case you might want to change the parameter to group_id.
This does indeed seem like a convenient thing to have, especially for sites with lots and lots of groups. I’ll note down the request, but I can’t say when we’ll get to it.