What is your goal?
To use the API to create scenarios that include the “Update Records in Bulk (Advanced)” module without an error in the UI.
What is the problem & what have you tried?
I am seeing a reproducible editor-hydration problem with the Airtable Update
Records in Bulk (advanced) module (airtable:bulkUpsertRecords, module version
3) when a new scenario is created through Make’s v2 API.
Summary
The scenario is accepted by the API and is reported as valid. A subsequent
GET /api/v2/scenarios/{scenarioId}/blueprint confirms that the module’s
mapper.records array and fieldsToMergeOn value are present and correct.
However, when the module is opened in the Make editor, the required Records
control is completely blank and displays:
Records: Field must not be empty.
The UI therefore cannot display or safely edit configuration that Make has
already stored in the scenario blueprint.
Environment
- Make region:
us2 - Scenario created through the Make v2 API
- Module:
airtable:bulkUpsertRecords - Module version:
3 - Airtable mapper uses field IDs with
useColumnId: true typecast: true- Observed on August 9, 2026
Reproduction steps
- Create a new scenario through the API containing an Airtable
airtable:bulkUpsertRecordsv3 module. - Supply a valid mapper containing
base,table,select: "map",
records,fieldsToMergeOn,typecast: true, anduseColumnId: true. - Confirm that scenario creation succeeds and the scenario is not marked
invalid. - Retrieve the saved blueprint through
GET /api/v2/scenarios/{scenarioId}/blueprintand confirm that the
mapper.recordsentries are still present. - Open the same Airtable module in the Make scenario editor.
Sanitized mapper shape
{
"module": "airtable:bulkUpsertRecords",
"version": 3,
"parameters": {
"__IMTCONN__": 1234567
},
"mapper": {
"base": "appREDACTED",
"table": "tblREDACTED",
"select": "map",
"records": [
{
"record": [
{
"id": "fldMERGE_KEY",
"type": "text",
"value": "{{7.external_id}}"
},
{
"id": "fldNAME",
"type": "text",
"value": "{{7.name}}"
}
]
}
],
"typecast": true,
"useColumnId": true,
"fieldsToMergeOn": [
"fldMERGE_KEY"
]
}
}
Actual result
- The editor renders Records as empty and raises the required-field error.
- The stored blueprint still contains every mapped record field.
- The merge-field control may render separately, which makes the module look
only partially configured. - The module cannot be safely maintained in the UI in this state.
This occurred independently in two bulk-upsert modules in the same new
scenario: one contained 15 mapped fields and the other contained 20. API reads
confirmed both mappers were intact before repair.
Expected result
When an API-created module contains a valid mapper.records array, the Make
editor should reconstruct and display the Records rows from the mapper. Missing
or incomplete UI metadata should not cause the editor to present stored
configuration as empty.
At minimum, one of these should happen:
- scenario creation enriches the module with the metadata needed by the
editor; or - the editor derives the dynamic Records control from the saved mapper when
the module is opened.
Proven workaround
I generated a full-metadata version of both modules, including complete
metadata.expect, metadata.restore, metadata.interface, and parameter
metadata, and then used the Make UI’s full-scenario Import Blueprint action.
After import:
- the editor rendered all 15 and 20 mapped fields correctly;
GET /api/v2/scenarios/{scenarioId}/blueprintstill returned the same mapper
values and merge keys; and- Make enriched the module metadata further when the modules were opened and
saved in the UI.
This confirms that the data mapper was valid and the failure was in editor
hydration/metadata handling.
The workaround is burdensome and risky for production scenarios because it
requires replacing the full blueprint just to make one valid module editable.
In addition, the UI import reset this instant-webhook scenario’s schedule from
Immediately to a 15-minute/indefinite schedule, which must then be corrected
separately before activation.
Requested fix
Please make airtable:bulkUpsertRecords v3 hydrate the Records UI directly from
mapper.records, or have API scenario creation generate the complete editor
metadata automatically. It would also be helpful if the editor warned that
stored mappings exist instead of rendering the control as empty.
I can provide a redacted before/after blueprint and screenshots privately if
that would help reproduce the issue.