Thanks for your patience as I learn this, and apologies if I come across obtuse. I'm still not getting the result I expect. I still only get one file from each question. Here is a detail of the flow.
Condensed

Don't need anything for new response or get, those work
Create item

Initialize Variable - Not sure if needed

Apply to Each 1 - Not needed if Variable isn't

Parse JSON for PDF

Schema for Parse JSON PDF
{
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"link": {
"type": "string"
},
"id": {
"type": "string"
},
"type": {},
"size": {
"type": "integer"
},
"referenceId": {
"type": "string"
},
"driveId": {
"type": "string"
},
"status": {
"type": "integer"
},
"uploadSessionUrl": {}
},
"required": [
"name",
"link",
"id",
"type",
"size",
"referenceId",
"driveId",
"status",
"uploadSessionUrl"
]
}
}
Get file using content path

Expression for Get file - first(body('Parse_JSON_COP_PDF'))?['name']
Add attachment - Expression is same in Get file content

Condition

Expression -
empty(outputs('Get_response_details')?['body/rc0f5347cf1c045d7b67f0d23981070ed'])
If Yes

Schema for Parse JSON Install Images
{
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"link": {
"type": "string"
},
"id": {
"type": "string"
},
"type": {},
"size": {
"type": "integer"
},
"referenceId": {
"type": "string"
},
"driveId": {
"type": "string"
},
"status": {
"type": "integer"
},
"uploadSessionUrl": {}
},
"required": [
"name",
"link",
"id",
"type",
"size",
"referenceId",
"driveId",
"status",
"uploadSessionUrl"
]
}
}
Apply to each 2


Expression - first(body('Parse_JSON_INSTALL_IMAGES'))?['name']