RPC for dynamic collection spec not working inside array spec items β€” {{parameters.X}} returns empty

:bullseye: What is your goal?

I want to load dynamic template parameters via RPC for each item inside an array spec in a custom app
module.

Specifically: I have a params field of type collection inside an array spec. The collection’s fields are
defined dynamically by an RPC that fetches parameter definitions from my API using designId and
version. These two values are selected by the user at the parent level (via options.nested chain before
the array).

:thinking: What is the problem & what have you tried?

The RPC is called but {{parameters.designId}} and {{parameters.version}} resolve to empty inside the
array spec item, causing a 404 from my API.

The same RPC works correctly in a single-item module where params is placed directly inside the
options.nested chain (not inside an array).

Module structure that works (no array):
{
β€œname”: β€œdesignId”, β€œtype”: β€œselect”,
β€œoptions”: {
β€œstore”: β€œrpc://getDesigns”,
β€œnested”: [{
β€œname”: β€œversion”, β€œtype”: β€œinteger”,
β€œoptions”: {
β€œnested”: [
{ β€œname”: β€œparams”, β€œtype”: β€œcollection”, β€œspec”: [β€œrpc://GetParams”] }
]
}
}]
}
}

Module structure that fails (params inside array):
{
β€œname”: β€œdesignId”, β€œtype”: β€œselect”,
β€œoptions”: {
β€œstore”: β€œrpc://getDesigns”,
β€œnested”: [{
β€œname”: β€œversion”, β€œtype”: β€œinteger”,
β€œoptions”: {
β€œnested”: [{
β€œname”: β€œcontents”, β€œtype”: β€œarray”,
β€œspec”: [
{ β€œname”: β€œfileName”, β€œtype”: β€œtext” },
{
β€œname”: β€œparams”, β€œtype”: β€œcollection”,
β€œspec”: [β€œrpc://GetParams”]
}
]
}]
}
}]
}
}

RPC communication.json:
{
β€œurl”: β€œ/file/design/parameter/{{parameters.designId}}?version={{parameters.version}}”,
β€œmethod”: β€œGET”,
β€œheaders”: { β€œAuthorization”: β€œBearer {{connection.accessToken}}” },
β€œresponse”: { β€œoutput”: β€œ{{body}}” }
}

Everything I have tried for the params spec inside the array:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Approach β”‚ Result β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ spec: [β€œrpc://GetParams”] β”‚ 404 β€” {{parameters.de β”‚
β”‚ β”‚ signId}} is empty β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ spec: { β€œstore”: β€œrpc://GetParams”, β€œqs”: { β€œdesignId”: β€œ{{designId}}” } β”‚ 404 β€” not resolved β”‚
β”‚ } β”‚ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ spec: { β€œstore”: β€œrpc://GetParams”, β€œqs”: { β€œdesignId”: β”‚ 404 β€” not resolved β”‚
β”‚ β€œ{{parameters.designId}}” } } β”‚ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ spec: { β€œstore”: β€œrpc://GetParams?designId={{parameters.designId}}&versio β”‚ 404 β€” not resolved β”‚
β”‚ n={{parameters.version}}” } β”‚ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚ RPC works βœ“ β€” but β”‚
β”‚ Moving params outside the array (to version.options.nested) β”‚ breaks my use case β”‚
β”‚ β”‚ (see below) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Moving params outside the array is not an option for me because my use case requires per-item different
parameter values (bulk invoice generation for hundreds of members, each with different billing data).

My question: Is there any supported way to pass designId and version from the parent options.nested
chain into an RPC called from within an array spec item? Or is this a known platform limitation?

Related threads with the same unresolved issue: #75691, #92289, #10852

:clipboard: Error messages or input/output bundles

The RPC call results in an HTTP 404 from my API.

Debugging confirms that {{parameters.designId}} and {{parameters.version}} are both resolving to empty
strings when the RPC is called from within the array spec item context. The URL is constructed with
empty values instead of the user-selected ones.

Hello @kobori.masamichi

Welcome to the make.com official community

Simple truth: Make currently doesn’t support accessing parent parameters inside array item RPCs.

What you can do

  1. Move the RPC outside the array (best supported way), OR
  2. Preload the parameters once and reuse them inside the array, OR
  3. Pass needed values manually into each array item (if possible)
    In Simple form terms Think of each array item like its own β€œmini form” it can’t see what was selected above it. Your setup is correct it’s just a platform limitation, not something you can fully fix with config right now.