Make.com (formerly Integromat) Iterator and Array Aggregator Finally Explained - Tutorial 2023

  Рет қаралды 20,860

TechflowAI - Producing Time

TechflowAI - Producing Time

Күн бұрын

Пікірлер: 111
@TechflowAI
@TechflowAI 2 жыл бұрын
Do you have any more questions about Iterators or Aggregators? Let me know 👇
@g-luu
@g-luu 2 жыл бұрын
Great videos, i am a bit stuck with trying to send an array from a webhook to sendgrid module. I always get error 400. So was wondering id i do need to use the iterator and aggregator for my scenario to work?
@TechflowAI
@TechflowAI 2 жыл бұрын
​@@g-luu thank you! Trying my best to provide a ton of value. 400 Error Code usually means something is wrong with your request most likely in the body. What do you want to achieve on Sendgrid?
@g-luu
@g-luu 2 жыл бұрын
@@TechflowAI thanks for your swift response i managed to get around this issue. The array was not being passed properly so i ended up stringifying it and it worked like a charm.
@TechflowAI
@TechflowAI 2 жыл бұрын
@@g-luu You're welcome! Perfect! Glad you found a solution that works now. :)
@g-luu
@g-luu 2 жыл бұрын
@@TechflowAI what do you have next for us? Enjoying your videos you got potential to get big and fast.
@sumnerman2
@sumnerman2 Жыл бұрын
Tremendous explanation and exactly what I was looking for. Now I can send all Google Sheets search results in a single email instead of sending 48 emails 😅 Thanks a lot!
@TechflowAI
@TechflowAI Жыл бұрын
Great win!! 😊 Thank you for sharing and glad it helped you 💪
@Ikram_Adil_de
@Ikram_Adil_de 7 ай бұрын
how did you do that please? I am also facing the same isssue
@TechflowAI
@TechflowAI 7 ай бұрын
Use a text aggregator to bundle up all rows from a "search row" module into a single text string. Then you can put it into an email module to send it to yourself (or someone else).
@nunomarques2288
@nunomarques2288 6 ай бұрын
How do you collect each output from operation 1, operation 2, .... Operation 1 OUTPUT Bundle 1Collection ValueLong String Bundle order position 1 Total number of bundles 1 Operation 2 OUTPUT Bundle 1Collection ValueLong String Bundle order position 1 Total number of bundles 1
@TechflowAI
@TechflowAI 6 ай бұрын
@nunomarques2288 you'll have to aggregate your data in order to join the outputs of different operations back together. Make sure to use the right module as your source. Rule of thumb: That should be the LAST module that shows (1) operation at the top right when you execute your scenario.
@nunomarques2288
@nunomarques2288 6 ай бұрын
And how can I collect all the strings of the output? OUTPUT Bundle 1Collection ArrayArray 1Collection question What to do for a dog who lost her puppies? 2Collection question What is the meaning of lost puppy? 3Collection question What is the best age to get a puppy? 4Collection question Is it normal to struggle with a puppy? __IMTAGGLENGTH__ 4@@TechflowAI
@jeffmitch8847
@jeffmitch8847 2 жыл бұрын
Awesomeness! I like the detail and breakdown you give. The other make videos go too fast to read or even process what is happening. Integromat also has them out of order. I’d like to see more!
@TechflowAI
@TechflowAI 2 жыл бұрын
Hey Jeff, thank you very much for your feedback! That's highly appreciated and motivates us to create more videos like that. We're currently preparing something very big behind the scenes. ;) Afterwards we'll get back to producing high value KZbin content weekly as well. Stay tuned for more. 🔥
@uxuixde
@uxuixde Ай бұрын
Thank You :)
@TechflowAI
@TechflowAI Ай бұрын
You're most welcome! 😊 Glad it helps. Happy automating, Manuel
@ns8928
@ns8928 2 ай бұрын
Great explanation!
@TechflowAI
@TechflowAI 2 ай бұрын
Thank you! 😊 Glad it helped 💪
@saudiblender3086
@saudiblender3086 5 ай бұрын
Thank you so much, you explained it better than Make LOL 👍👍👍👍
@TechflowAI
@TechflowAI 5 ай бұрын
Thanks! 😊 I've been using Make (Integromat) longer than most of them. 😅
@mindbenderai
@mindbenderai 6 ай бұрын
How can i lookup multiple rows in make and how can i get row id ...im having issues in it
@TechflowAI
@TechflowAI 5 ай бұрын
You can use the "Google Sheets - Search Rows" module with a filter to get multiple rows out. The "Google Sheets - Search Rows (Advanced)" does not provide the row IDs.
@felipedelamaza2950
@felipedelamaza2950 Жыл бұрын
How can you make a filter to only insert new data of your GET request?? I made one Sceneario but everytime I run it, It repeat the same data and I want to insert only the new one.
@TechflowAI
@TechflowAI Жыл бұрын
This depends on the actual API that you're connecting to. In my case, it's always the 5 days forecast so the data changes every ~3 hours as there are data points for every 3 hours. If you use another API endpoint you usually have so-called "query parameters" that allow you to pass certain filter attributes to the API and then get data back. For example, it could be "Get only data after date X and before Y". You could store these dates in a data store and get them before your next run. Then change the date filters to variables mapped from your data store as the following: "Get only data after date Y (before from your previous run to avoid the same data) and before addDays(Y;1) (to get the data until the next day)" Does that make sense?
@tobimahony
@tobimahony Жыл бұрын
That's exactly what my problem ist right now and I have a pretty similar scenario like @TechflowAI does. Among other data I have a certain id coming from my http request module. I use an iterator module after that to fill my Google sheet with the "Add a row" module. Between the iterator and the "Add a row" module I'm using the "Search rows" module to get data from my Google sheet. Between "Search a row" and "Add a row" im working with a filter to find similar id's. How do I set up the filter to only let new id's come through?
@wheres_bears1378
@wheres_bears1378 2 жыл бұрын
What do you do when those values don’t show? Many times when I try to do this is just shows “value” and nothing else
@TechflowAI
@TechflowAI 2 жыл бұрын
This is a known and annoying bug that we're seeing a couple of times as well. Mostly it's an issue with the array structure which might have some unnecessary complexity within like [[ ]] or something similar. You could try simplifying the array structure first. Also, running the scenario once might help or using a "Set Variable" module to work on an array with functions instead of doing it directly in the Iterator. Furthermore, you should definitely open a ticket to raise awareness of this issue, and hopefully they'll be able to fix it soon.
@wheres_bears1378
@wheres_bears1378 2 жыл бұрын
@@TechflowAI Thanks for your reply, it happens often and it’s very annoying haha
@denarisoftware-onlinedonat624
@denarisoftware-onlinedonat624 Жыл бұрын
How does the flow work once the iterator has finished its bundles? What if I wanted to update a status field, saying "Done" or something, but only after all bundles are processed.
@TechflowAI
@TechflowAI Жыл бұрын
You can have an aggreagtor with your iterator as the source. That would combine all bundles back into 1 and continue with only 1 bundle. OR You can set a filter right before your status field updating module with the conditions: Bundle Order Position = Total Number of Bundles. That way, only the very last bundle of your iterator will proceed to the last step. Let me know if that helped! :)
@marcomartelli5643
@marcomartelli5643 6 ай бұрын
Hi, maybe it's an easy question. I am trying to get datas from Shopify orders. Shopify modules has more than one array, but it looks in the Iterator you can select only one array. How can I select more than one of them, so every row would contain "basic" datas and more than one array of datas?
@TechflowAI
@TechflowAI 5 ай бұрын
Which data do you actually need? Do you want to output line items into separate rows on Google Sheets? If so, you can chain multiple Iterators one after another going one level deeper each time. Then put the "Add a row" module last and select all values from detailed to more generic details of one specific Shopify order that you want to have in your Google Sheet. Does that help?
@JatinNagpal1
@JatinNagpal1 Жыл бұрын
Thanks! Explained well.
@TechflowAI
@TechflowAI 11 ай бұрын
Thank you! Appreciate your feedback. :)
@KarinaMikhli
@KarinaMikhli 2 жыл бұрын
Thanks for this. Would love to see how you set up the woocommerce example too. And are there times it's better to just use the split function instead of an iterator? I find myself having to convert arrays from clickup dropdowns/multi-select fields, so sometimes I have to use both a split and a switch :(. It works most of the times but sometimes not quite the way I want it to and then have to reach out to support.
@TechflowAI
@TechflowAI 2 жыл бұрын
The WooCommerce example is pretty similar to the standard one. You basically map the array of the line items[ ] into the iterator to split up the line items. Then you can do whatever you want to do with each line item and afterwards combine it back together into an array and add it to your invoicing system, for example. The split function is very handy if you want to directly map something into the target text field of another module. I wouldn't say that it's in general better or worse than using the iterator. It's just used differently. The split function does not generate multiple bundles that can be processed individually. It just splits up a text string into an array based on a delimiter. Since you're in our Integromasters Mind group, you can also ask all your questions there and get very detailed support. :) This video, including blueprints, will also be uploaded to the course backend, so you have full access to it.
@KarinaMikhli
@KarinaMikhli 2 жыл бұрын
@@TechflowAI thank you and will do.
@ammaralzhrani6329
@ammaralzhrani6329 2 жыл бұрын
Great channel
@TechflowAI
@TechflowAI 2 жыл бұрын
Thank you! 😊
@fritzbarnes1
@fritzbarnes1 Жыл бұрын
For WooCommerce, I have a scenario working to split out the line items, but then each line item has an unknown number of meta items with key and value. i want to split those into separate columns when i write a row to Google Sheets. I haven't figured out how to do this yet. (Very new to Make.)
@TechflowAI
@TechflowAI Жыл бұрын
Unknown number of fields into columns is not the easiest thing to do. Howany fields could it have? How do you want them to populate your Google Sheet? Specific values into specific columns with the same key? Just in the order as they come in? Could it also be, all keys + values as string within one column? If you share a bit more insights on your desired outcome, I'll be able to suggest some possible solutions. :) Cheers, Manuel.
@fritzbarnes1
@fritzbarnes1 Жыл бұрын
@@TechflowAI Thank you. Well, to keep it simple, assume there are only four posible values, "student_name", "student_email", "student_cell", and "student_dorm_address". It is a limited number of meta values, there are a few more than that but that is enough to get the concept. So I would like to put the meta values in specific columns based on the meta key.
@TechflowAI
@TechflowAI Жыл бұрын
@@fritzbarnes1 I understand. In that case, you can use the first(map()) function combination and map the correct values based on the meta key into the right columns. It could be something like this: For "student_name" I assume that the key in the metafields[] array is called "studentName". The collection within metafields[] might look like this: "metafields": [ { "key": "studentName", "value": "Manuel" }, .... ] Your function would be: first(map(metafields[];value;key;studentName)) metafields[] should be mapped into the function. The rest needs to be literally written out. This will search your metafields array, return "value" where the "key" equals "studentName". first() simply gets the first item of your filtered array and transforms it into a string. That should be it. Then use the same function for your other columns and you're good to go. e.g. first(map(metafields[];value;key;studentEmail))
@andreaslovestocook
@andreaslovestocook 2 жыл бұрын
Manuel, I know you added the Google Sheet in between the two so you could explain the output of the Iterator, but is that sheet necessary? Can you have the Aggregator read the Iterator's information directly or is that intermediary necessary? Thank you!
@TechflowAI
@TechflowAI 2 жыл бұрын
Good question! 😊 No, it's not required. You could use the aggregator directly. I just put it there to demonstrate where to put a module if you want to process each individual bundle of the array. You use the iterator to split it up, then do any action (like Google Sheets or something else). Does that answer your question?
@andreaslovestocook
@andreaslovestocook 2 жыл бұрын
@@TechflowAI Yes, it does. Thank you Manuel.
@jobeTLM
@jobeTLM Жыл бұрын
how can you have a stop iterator so you can continue doing other things that don't need the loop?
@TechflowAI
@TechflowAI Жыл бұрын
You have 3 options: 1.) Use a Router BEFORE the Iterator and have a 2nd path to perform the other actions if you don't need any of the iterated data in your 2nd path. 2.) Use an Array Aggregator (or Text or Numeric etc) with the Iterator as Source Module to combine the bundles back into 1. 3.) Add a filter after the last action that needed the loop with Bundle Order Position = Total Number of Bundles to let it continue only when all bundels have been processed. Hope this helps! :) Let me know if you have any further questions. Cheers, Manuel
@basketdmc
@basketdmc Жыл бұрын
I was interested it the invoice part. I have that issue now
@TechflowAI
@TechflowAI Жыл бұрын
Where exactly are you stuck right now?
@basketdmc
@basketdmc Жыл бұрын
@@TechflowAI I can't automate invoice, because I don't know obviously what the customer will require. If customer wouldn't want product xyz the invoice fails because I had to create a line for all products. It needs to be dynamic
@TechflowAI
@TechflowAI Жыл бұрын
@@basketdmc usually line items are dynamic as there can be 1 or unlimited. That's where the Iterator and Aggregators come in. Use the iterator to split up the line items into individual bundles. Then use the Array Aggregator to put them back together into the format that your invoicing system requires. Hint: If you connect your invoicing module after the Array Aggregator, you can use the "Custom Target Structure" within your Array Aggregator for easy formatting. If you want more flexibility of how your invoice should look like, you can also use the Text Aggregator and format it in any way you like. Both variations will work with a dynamic amount of line items.
@LtFoodstamp
@LtFoodstamp Жыл бұрын
Oh, I really hoped you'd click on that QBO module to see how you've mapped the line items to it so that the number of line items can vary. I have no idea how to do this part.
@TechflowAI
@TechflowAI Жыл бұрын
That's a good question! Whenever you work with dynamic amounts, you want to use the Array Aggregator. To use it in combination with the QBO module, add the Array Aggregator, connect the QBO module afterwards. Then go back to the Array Aggregator module and select the "Custom Target Structure". In the dropdown, it should show you the QBO line items. Select it and fields will appear to easily map the values for each line item. (If they're coming in as an array from your source module, use an Iterator first) Afterwards, go back to your QBO module and turn on the "Map" slider for your line items and simply map the full array of your Array Aggregator. That's it! Let me know if that worked.
@LtFoodstamp
@LtFoodstamp Жыл бұрын
@@TechflowAI Thanks for providing this. I will try it out!
@TechflowAI
@TechflowAI Жыл бұрын
@@LtFoodstamp let me know if it worked!
@katoennet
@katoennet 2 жыл бұрын
Hi, great tutorial! I wonder if you know of any way to store the entire JSON output bundle from a rest call as a log or txt file? I thought to access this through the make rest api (scenarios endpoint) but isn't accessible that way. For example: I gave a Woocommerce Orders api GET call which I would like to process outside make/integromat. I would like to export or email the raw output bundle from this call.
@TechflowAI
@TechflowAI 2 жыл бұрын
Yes, you can use the HTTP module to make the API call and then DON'T tick the "parse response" box. That way you'll get the RAW JSON response and can store it elsewhere. Furthermore, you can use a parse JSON module right after that to parse the raw JSON and get it into the mappable format in case you need that as well. For webhooks, you can use the JSON pass-through in the advanced settings to receive the raw format in case you want to store it somewhere and then also use the parse JSON module as mentioned above.
@frankdemury4438
@frankdemury4438 2 жыл бұрын
thank you you are clear. But i have a question. I used to use Zapier and now i would like to change to Make. (integromat) But Zapier wrote every my orders (linee by item like you explained) with also the shipping linee but i don't understand how can i make it in Integromat is a different array.
@TechflowAI
@TechflowAI 2 жыл бұрын
Good question Frank. After you've used the iterator to split up the line items, you should still be able to access the original data that is coming from your eCommerce system which also include the shipping data. That way you can map the data to your following modules as well. Hope this helps! If not, please reach out to me personally and send some screenshots so I can help you further. :) facebook.com/manuelgick
@frankdemury4438
@frankdemury4438 2 жыл бұрын
​@@TechflowAI Thank you. I wrote you in messenger maybe it will be more clear!
@TechflowAI
@TechflowAI 2 жыл бұрын
@@frankdemury4438 We got it solved via Messenger. 💪🔥
@wheres_bears1378
@wheres_bears1378 2 жыл бұрын
Subscribed 👍
@TechflowAI
@TechflowAI 2 жыл бұрын
Thank you for your support! :)
@strtgy
@strtgy 5 ай бұрын
How can I make it so that after the first round it only takes the new values?
@TechflowAI
@TechflowAI 5 ай бұрын
Can you please elaborate on your use case? What do you mean by "after the first round"?
@strtgy
@strtgy 5 ай бұрын
@@TechflowAI I call an API that gives back new subscribers at an event. The automaton catches up all the subscribers, but I would like to get only the new ones since the last call. How can I proceed?
@TechflowAI
@TechflowAI 5 ай бұрын
@@strtgy Usually an API offers a data parameter "since" (or similar) that can be passed along to only get the new ones back. Otherwise, you can also use the "Created date" or something similar after getting all subscribers back to filter only those that are the new ones to proceed through the rest of your scenario.
@strtgy
@strtgy 5 ай бұрын
@@TechflowAI thanks! is exactly how I did but this makes me waste a high number of operations especially if the size of the array grows... I will check the "since" parameter how can I save the parameter so that in the next MAKE call I can populate it correctly?
@TechflowAI
@TechflowAI Ай бұрын
If there is no module yet available for the API you're connecting to, you could develop a custom app which will handle it all on the backend (with 1 operation). Alternatively, you could store the "next" token in a data store and get it from there before you call the new leads, then update the data store afterwards again. That way you don't have to get all leads everytime but only start at the most event "next" token. Otherwise, an API often has a "skip" parameter that allows you to skip the first X amount of entries. Same here, you could store that value in a data store, get it before your request and update it afterwards. APIs also allow for date filtering in many cases which you could use to output only leads older than date X. Hope this helps! Feel free to reach out at info@techflow.ai if we should look into this together briefly.
@globetrotter1449
@globetrotter1449 2 жыл бұрын
How do you get data store using table aggravator to one email!
@TechflowAI
@TechflowAI 2 жыл бұрын
Where are you stuck? You can use the "Search Records" data store module to get the rows you want to use, then aggregate them to a table and add them to the email content. To format it properly it's maybe better to use the text aggregator and create a valid HTML table structure with it. Then it comes out nicely.
@globetrotter1449
@globetrotter1449 2 жыл бұрын
one email for all the updates instead of all the records at the end?
@TechflowAI
@TechflowAI 2 жыл бұрын
@@globetrotter1449 yes, you can achieve that by using the text aggregator as it will combine ALL records into ONE single output which you can use in ONE email, no matter how many records you have.
@globetrotter1449
@globetrotter1449 2 жыл бұрын
@@TechflowAI thanks brother, what’s ur email so I can show u a picture of what taking about
@TechflowAI
@TechflowAI 2 жыл бұрын
@@globetrotter1449 ​ you can contact me through our website @ techflow.ai
@isaiahkimiti6520
@isaiahkimiti6520 2 ай бұрын
My aggregator does not aggregate. Have 3 output items under iterator and still 3 after aggregation
@TechflowAI
@TechflowAI 2 ай бұрын
Double check your source module inside the aggregator. It should be the last module that has (1) operation when you execute the full scenario. It needs to be the module that has multiple bundles as output. Let me know if that worked. :) Cheers, Manuel
@isaiahkimiti6520
@isaiahkimiti6520 2 ай бұрын
@@TechflowAI okay.. thanks for reply
@TechflowAI
@TechflowAI 2 ай бұрын
You're most welcome. :) did it work?
@isaiahkimiti6520
@isaiahkimiti6520 2 ай бұрын
@@TechflowAI yes it did. Greatly appreciate 👍🏿
@TechflowAI
@TechflowAI 2 ай бұрын
Awesome, good to hear! 💪
@sebastianprohaska3203
@sebastianprohaska3203 Жыл бұрын
Is it also possible to collect Data with 2 Modules (Example Search Row Google Sheets) and to use both output for another Task (Example send an e-mail)?
@TechflowAI
@TechflowAI Жыл бұрын
Great question! Yes, for sure. That's possible. You can use a Google Sheets search rows module, then a text aggregator afterwards to format it into 1 text output for your email, then another search rows module and yet another text aggregator for your second part. Lastly the email module with both outputs of the 2 text aggregators. Does that help?
@sebastianprohaska3203
@sebastianprohaska3203 Жыл бұрын
@@TechflowAI Many Thanks !
@TechflowAI
@TechflowAI Жыл бұрын
@@sebastianprohaska3203 you're most welcome! Glad it helps. :)
2 жыл бұрын
I have you experienced that in some cases some arrays / collections don"t show as options in the Array Aggregator Module? I've been trying to use it with Notion and it's causing me a lot of trouble.
@TechflowAI
@TechflowAI 2 жыл бұрын
Unfortunately that is a known bug and somehow Make hasn't fixed it yet. Please open a support ticket to create some more buzz around it. A workaround that SOMETIMES work is: Create the iterator, disconnect anything that comes after, send some test data through, reconnect the array aggregator. In some cases, the variables will appear then. Hope it helps!
2 жыл бұрын
@@TechflowAI ok. Thanks 👍
@TechflowAI
@TechflowAI 2 жыл бұрын
@ I actually just created a feature request for this. You can upvote it here: www.make.com/en/app-improvement-ideas/p/make-all-fields-available-in-array-aggregator-after-iterator
2 жыл бұрын
@@TechflowAI Thank you! I just upvoted. But in fact it also happens not just after the iterator but also for some other modules like Notion. It would not return some property values array.
@TechflowAI
@TechflowAI 2 жыл бұрын
Basically the issue is, that the array aggregator only shows values to be selected that are predefined by previous modules interface. Like when the data structure is clear based on how the module is developed on the backend. If you have dynamic data, it will not be shown in the aggregator and that's the big problem.
How to build a Calculator with Make.com (formerly Integromat) | Tutorial 2023
9:05
TechflowAI - Producing Time
Рет қаралды 1,3 М.
How Iterators & Aggregators Work In Make.com
29:02
Nick Saraev
Рет қаралды 10 М.
💩Поу и Поулина ☠️МОЧАТ 😖Хмурых Тварей?!
00:34
Ной Анимация
Рет қаралды 1,5 МЛН
How to use the Make.com (formerly Integromat) Webhook - Tutorial 2023
10:17
TechflowAI - Producing Time
Рет қаралды 24 М.
Top 27 ChatGPT Make.com Automations [Automate With AI]
16:06
Arrays & Collections in Integromat Explained [2022 Tutorial]
12:35
Max van Collenburg
Рет қаралды 15 М.
Iterator and Aggregator Basics in Make.com
5:40
Yang
Рет қаралды 1,7 М.
This Free AI System Will Create Unique Content in Seconds!
13:32
Hasan Aboul Hasan
Рет қаралды 151 М.
7 Awesome Integromat Scenario Examples
22:42
Max van Collenburg
Рет қаралды 33 М.
[Webinar] Build a Custom Web App with Make
1:01:15
Make
Рет қаралды 24 М.
How to use AGGREGATORS in Integromat [2022 Tutorial]
9:56
Max van Collenburg
Рет қаралды 10 М.
Make.com Course. Day 1.  Make essentials, JSON, Arrays and Collections, Data Structures.
46:13