How can have webhooks and HTTP Requests trigger upon scenario completion

Apologies if this is a very beginner question, basically I’m trying to run a “Scenario 2” after “Scenario 1” is completed, which I know I can use an HTTP module and a webhook to enable, but my challenge is the HTTP module gets triggered with every iteration as opposed to waiting for the scenario to finish before it triggers a request to the webhook.

I tried an “Incremental Function” but that didn’t work… Anyone know how to get around this?

Hi @GeeSkndr

What type of trigger do you have, polling or instant? If you have a polling trigger, you can set up such a filter before the HTTP module. The filter values should be from the trigger module.

Thanks for the suggestion!

I thought about using that approach but the trigger is a schedule and the scenario runs iteratively so the filter will keep triggering every iteration since the Bundle order position will match the total number of bundles every iteration.

For now to get around the issue, I just setup a filter at the beginning of the scenario that if the row number reaches a specific number (in my case 27) then trigger the HTTP module, which works but I need to remember to change it every time I add more entries to the sheet, not ideal but it’s a way :man_shrugging:

@GeeSkndr

  1. Please send a screenshot of the first trigger module output.
  2. What data do you iterate in the Iterator module?

Thanks @ponvaskon

To be honest I followed a youtube tutorial, I’m not exactly sure what the Iterator module is doing but the scenario works (retrieves google news metadata using an RSS list stored on a sheet).

This could fetch 10-50 rows (depends on if there are news)
The dilemma is since we don’t know the number of returned results, how do you trigger the 2nd scenario? When is it finished? The workaround is to tell it to stop once there are no more RSS links to process and the way I did that was by specifying the number of existing RSS links, but when that changes I need to be mindful and make that change on the filter also.

Combining Bundles Using Aggregators

Every result (item/record) from trigger/iterator/list/search/match modules will output a bundle. This can result in multiple bundles, which then trigger multiple operations in future modules (one operation per bundle). To “combine” multiple 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:

Mapping a Specific Structure Into a Complex Field

The Array Aggregator module is very powerful because it allows you to build a complex array of collections for a later module’s field to map multiple items (collections) to it.

This is done using the “Target structure type” field in an Array Aggregator module.

Here is an example:

As you can see, the “Map” toggle on complex fields are used when you have an array. You can easily build an array variable to map to a future module’s field, by using an Array Aggregator module and select the “Target Structure Type” as the future module’s field you have mapped the array into.

Example

Here is an example of how your scenario could look like:
Screenshot_2025-03-22_200314

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

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.

@GeeSkndr the ‘search rows’ module should return the dynamic placeholders Total number of bundles and Bundle order position that you should use in the filter before the HTTP request at the bottom route.