HTTP module returns all questionnaire answers correctly, but downstream modules cannot map fields from the answers[] array

:bullseye: What is your goal?

I want to retrieve completed questionnaire responses from the Auvo API using an HTTP module and automatically create a record in Airtable, with each questionnaire answer mapped to a specific Airtable field.

:thinking: What is the problem?

he HTTP module successfully retrieves all questionnaire answers from the API. In the module output, I can clearly see every response inside:

data.result.questionnaires.answers

However, downstream modules (Airtable Create Record, JSON Parse, Tools, etc.) do not expose these answers as selectable mapping fields.

In the mapping panel, I only see:

questionnaires
└─ answers
├─ questionDescription
└─ reply

The actual questionnaire items (such as “COMPANY NAME”, “DATE”, “PM2.5”, “PM10”, “CO2”, etc.) never appear as individual fields that can be mapped into Airtable columns.

As a result, although the HTTP output contains all the data correctly, I cannot use those values directly in later modules.

:test_tube: What have you tried so far?

Re-running the scenario multiple times
Refreshing the Airtable module fields
Recreating the HTTP and Airtable modules
Using JSON > Parse JSON
Using Iterator
Using Array Aggregator
Using Tools > Set Variable
Using Tools > Set Multiple Variables
Testing with different sample runs
Checking that the HTTP response contains all questionnaire answers correctly

:camera_with_flash: Screenshots: scenario setup, module configuration, errors

Hey there,

That’s how make shows arrays yes. If the array is static, you can use the order index of the specific items to map them. If the array is dynamic and items may have different order, you can use the map() function to find the specific ones you are looking for.

Welcome to the Make community!

Combining Map & Get (or First) functions to get Values from Arrays

The built-in functions map, get, first (or `last) allows you to access values within an array containing collections.

First, use the map function on an array, which returns another array of filtered values —
map(array; key; [key for filtering]; [csv-values for filtering])

Then, the built-in function get (or first/last) to get a specific, single item from the resulting array —
get(array; path)

You will get something that looks like these —

{{ get(map(array; "value"; "name"; "content-type"); 1) }}
{{ first(map(array; "value"; "name"; "content-type")) }}

Map Function Parameters: Step-by-Step

To easily remember how to use each of the parameters of the map function, think of it this way:

  1. From this array (of collections),
  2. I want to get all the the values for the property/key named _______,
  3. Where another property/key _______
  4. has the exact case-sensitive value _______

Example

1. From this array (of collections) user_column_data

2. I want to get all the the values for the property/key named string_value

3. Where another property/key column_id

4. has the exact case-sensitive value EMAIL

5. Output

e.g.: assuming your HTTP module is module #1:

{{ first(map(1.data.result.questionnaires.1.answers; "reply"; "questionDescription"; "EMPRESA COLETORA")) }}

:high_voltage: Make Input Markup: Copy-paste the above into the field, including start/end curly brackets for it to import as intended :warning:


For more information, the documentation for the above functions can be found in the Help Centre and the “Mapping with Arrays” link below. You should also complete the tutorials in the Make Academy, especially Using get() and map() functions as this is the most important knowledge you need to understand so that you can successfully apply it when building scenarios using Make.

Links & Guides

Here are some useful links and guides you can use to learn more on how to use the Make platform, apps, and app modules. I’d also recommend going through the Make Academy if you haven’t yet!

Learn Make

How-Tos

@samliew
P.S.: investing some effort into the tutorials in the Make Academy will save you lots of time and frustration using Make!