I have a list of invoices on my google sheet. I want to run a scneario everyday to use HTTPS “GET” module and check if the status of any has changed from “issued” to “paid” and everytime it happens I want to update my google sheet to change the invoice’s status.
What is the problem & what have you tried?
Everytime I download a whole list of invoice’s from a whole month so the number of them may change. To help it I wanted to use iterator to seperate them to seperate bundles so each invoice is a bundle. But when i get to the “search rows” to map the data I can only map data from only one invoice and there’s no boundles to map from, but in the Summary of the iterator module everything works fine. What do I do to have the all other boundles possible to map.
I have them in seperate bundles as I want to and it’s like this in iterrator module summary. But I don’t have it like this while mapping data in the next module.
Google Sheets - Search rows → Iterator → Google Sheets - Search rows → HTTP
If I understood your requirement correctly, all you need is:
Google Sheets - Search rows → HTTP GET → Google Sheets - Update a row
“Google Sheets - Search rows” already acts as an Iterator and produces one bundle for each row found. Just do what you want with the row values and then update the spreadsheet using the rownumber.
If that doesn’t make sense, please post screenshots of your scenario so we can better understand the issue.
So the first module is http GET request where I download the list of all invoices from one month from another website to check if the status of any of them has changed from “issued” to “paid”. If it did I wanted to search the inovice by it’s number that’s already in the sheet and change it’s status in the sheet.The output is one bundle that separates them as each collection is a different invoice. Then I wanted to use the iterator to separate them to make every invoice a different bundle. After that I wanted to use the “Search row’“ module to find the invoice by it’s number. The problem is that there’s a possibility that more than one invoice might have changed it’s status and I don’t know how to map it so that no matter how many inovices has changed it’s status, all of them are found in the sheet and their’s status get changed. When i try to map anything I only get to map the data from only the first invoice on the list and that’s it. The iterator separates them in different boundles but the next module doesn’t see it that way. It only sees the one specific boundle with one invoice’s data. I hoped I explained it well enough for you to get it!
First of all, invalidate your API key, as it was exposed in the image.
You’re going to map id to the filter in Google Sheets. The green pill is the field your mapping. The value beside it is just an example of one of the executions, so that you make sure you’re mapping the right field.
Your solution works. Credit-wise it’s not the best option, however. You can try to flatten the structure of Data to an array that contain only the ids of “paid” invoices and iterate over that.
Thank you so much. Actually I think there was some glitch in make.com, beacuse it didn’t work with all the data sent. It’s working now when I rebuilt the whole scenario. Thank you so much for help!
Iterator mapping issues are one of the more confusing things to run into in Make, especially when everything looks correct on the surface. What usually happens is that the iterator processes the array fine, but the downstream modules lose the connection to the individual bundle values. This often comes down to how the iterator is positioned in the scenario relative to the modules that need its output.
The key thing to understand is that an iterator turns an array into sequential bundles, and each module after it receives those bundles one at a time. If your mapping panel is not showing the iterator fields, try clicking on the module that comes right after the iterator and check whether the iterator appears in the mapping dropdown. Sometimes Make needs you to run the scenario at least once so it can detect the data structure coming out of the iterator.
Also double-check that you are not accidentally placing a router or another iterator between the first iterator and the module where you need the values. That can break the bundle chain. If you are working with nested arrays, you may need two iterators in sequence, one for the outer array and one for the inner.
If none of that helps, share a screenshot of your scenario structure and the data the iterator is outputting. That makes it much easier to spot where the chain is getting disconnected.