If anyone has more expertise with Make, please chime in. I’ll explain based on how this works in Zapier. And vote this feature request up!
Because the only way to get a specific row in a Glide table is to know the Row ID, I have to get all rows, then use this code step to find a row matching the desired condition. (This code came from a helpful community member a while back - I can’t seem to locate the original post).
let Num = inputData.Num.split(",");
let rowIDs = inputData.rowIDs.split(",");
let index = Num.findIndex(Num => Num.includes(inputData.search));
output = {rowID: rowIDs[index]};
In this case, “Num” is the Glide column I’m searching and “search” is the value I’m looking for.
I’ve had a few Zapier runs that seem to not be working as expected, and I’m pretty sure it’s because this code step is finding partial matches, when I really should only use an exact match.
Could any Javascript experts tell me if that’s possibly what’s going on or not, and what the adjustment to the code would be to only return exact matches?
I think it was me a while back in a Zapier post. But I think this should be much easier to do in Make. Can you share how you’re structuring the input and what should your input look like?
You should use get & map functions to do this, not code.
I’ve been meaning to shift more integrations over to Make (I know it would be more economical), but I have a lot of complex workflows in Zapier and my experience with Make is fairly limited.
That is one specific example, but what I really want to be able to do is search a Glide table by any basic column and return the Row ID (or IDs) that meet the search criteria.
Regular Glide table. I want to search the column that contains quote numbers and return the Row ID of the matching row. The issue I was having with the code is that some of the rows have longer IDs and the code was finding quote numbers within those longer IDs. I need an exact match, or better yet, a no-code solution.
Another case that would be useful would be to search a date-time column and return Row IDs of all rows on that match the day.
1/Get Rows table. Get all rows from your Glide Table. This becomes a problem if you have more than 1000 rows though, if I recall right Glide can’t get more than 1000 rows at once. If the log is too long for a GT, it will also return broken JSON.
2/If your Get Rows table work correctly, you’ll get an array of rows in return. Work with this syntax to get your rowID back.
Try to read through the rows array; get the name of the person (or people, in cases where you need multiple matches), where their email is thinh@lowcode.agency).
In your example for the Variable value, are Name and Email column names in the Glide table? How does it work if the Glide column names include a slash? Does it work to use the internal column names? I have yet to get the Tools step to produce anything.
Here’s my output from the Get Rows step. It seemed to handle 1800 rows ok.
Those are “columnIDs”. I just happen to have those as human-friendly version (old app).
You can get these columnIDs in Show API > curl > Add rows in the Data view. So yeah, they are the internal column names.
You can just write it in any module where you want to extract the value. Say you want to set that value back to Glide using a Glide module, just use that formula in that module.