Help me understand why these HTTP Get & JSON Parser modules are acting this way

Hi all -

I am creating a scenario that starts with grabbing two files from the internet, using HTTP Get, then parses each of them to get mappable fields, using JSON Parser.

It’s a strange result I’m getting which is that if I run the first HTTP Get then the JSON Parser it works perfectly .If I run the second HTTP Get then the JSON Parser it works perfectly. But if I connect those two, so that the file i1 is gotten and parsed, then file 2 is gotten and parsed, it starts cranking out multiple operations as if its iterating through the file or something.

Here is the first get/parse pair running by itself. One operation per module and correct result.

Now I move the little clock so that the other get/parse pair of modules can run on the other file:

Perfect result again.

But if I put them together, the second get/parse modules send out 9 operations and from what I can tell, each is identical. The first data file does contain 9 items, but since it’s going through the parser and not even operating on the data, I’m confused about why it’s happening.

I have a feeling this is one of those simple things that I somehow am not getting, but it’s breaking my brain looking at it. Any help much appreciated!

Hey there,

Your parse JSON module is outputting multiple bundles (9). This consumes 1 operation. Subsequent modules then run (operate) for that number of bundles - hence you are getting 20 operations in total.

You can use an array aggregator after the first 2 modules with its source as the HTTP get a file module to save ops.
You can also use the HTTP make a request module and enable the parse JSON option to save more ops. (this way you don’t need a parse JSON module)

If you’ve got more questions or want to solidify your understanding of how data mapping, iterators, aggregators, bundles and more, I highly reccomend you check out the Make Academy free courses - they will save you a lot of headaches.
-@HarveyM

Combining Bundles Using Aggregators

To “combine” output bundles into a single variable, you’ll need to use an aggregator of some sort.

Aggregators are modules that accumulate multiple bundles into one single bundle. An example of a commonly-used aggregator module is the Array aggregator module. The next popular aggregator is the Text Aggregator which is very flexible and can apply to many use-cases like building of JSON, CSV, HTML.

You can find out more about the other types of aggregator modules here:

Example

Here is an example of how your scenario could look:
Screenshot_2025-03-14_200358

This is just an example. Your final solution may or may not look like this depending on your requirements.

For more information, see the Flow control page in the Make Help Centre, which covers the following:

  • Repeater
  • Iterator
  • Array aggregator

and also,

  • Setting up an iterator
  • Learn when to use an Iterator in your scenarios
  • Customizing the output
  • Learn when to use an Array Aggregator in your scenarios

You should also take note of the following important details:

  • Bundles outputted from the source module and any other modules between the source module and the aggregator module are not outputted by the aggregator and thus items in these bundles are not accessible by the modules in the flow after the aggregator.

Hope this helps! Let me know if there are any further questions or issues.

@samliew

P.S.: Investing some effort into the Make Academy will save you lots of time and frustration using Make.