@richardjlo just tested it, and it is working fine for me.
I had a quick look at your workflow, and it seems to me that the split batches node is not needed. The HTTP node will automatically iterate over all items returned by the Airtable node.
Check the workflows below.
The first one is getting data from Airtable, then downloading one attachment, and then sending the email with Mailgun.
The second one is doing the same, but this time it’s downloading both attachments and sending them with Mailgun.
The Airtable table that I used looks as shown below.
Also, keep in mind that I used the Mailgun sandbox.
I hope this helps. If not, let me know.
Workflow 1
{
"nodes": [
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"url": "={{$node[\"Airtable\"].json[\"fields\"][\"Photo1\"][0][\"url\"]}}",
"responseFormat": "file",
"dataPropertyName": "data1",
"options": {}
},
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
860,
300
]
},
{
"parameters": {
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"text": "asasasasasasasas",
"attachments": "data1"
},
"name": "Mailgun",
"type": "n8n-nodes-base.mailgun",
"typeVersion": 1,
"position": [
1200,
300
],
"credentials": {
"mailgunApi": "asasasas"
}
},
{
"parameters": {
"operation": "list",
"application": "appXK4YYl2hKGCNCJ",
"table": "T1",
"additionalOptions": {}
},
"name": "Airtable",
"type": "n8n-nodes-base.airtable",
"typeVersion": 1,
"position": [
490,
300
],
"credentials": {
"airtableApi": "asasasa"
}
}
],
"connections": {
"Start": {
"main": [
[
{
"node": "Airtable",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Mailgun",
"type": "main",
"index": 0
}
]
]
},
"Airtable": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
}
}
}
Workflow 2
{
"nodes": [
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"url": "={{$node[\"Airtable\"].json[\"fields\"][\"Photo1\"][0][\"url\"]}}",
"responseFormat": "file",
"dataPropertyName": "data1",
"options": {}
},
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
900,
190
]
},
{
"parameters": {
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"text": "asasasasasasasas",
"attachments": "data1,data2"
},
"name": "Mailgun",
"type": "n8n-nodes-base.mailgun",
"typeVersion": 1,
"position": [
1490,
310
],
"credentials": {
"mailgunApi": "asasasas"
}
},
{
"parameters": {
"operation": "list",
"application": "appXK4YYl2hKGCNCJ",
"table": "T1",
"additionalOptions": {}
},
"name": "Airtable",
"type": "n8n-nodes-base.airtable",
"typeVersion": 1,
"position": [
490,
300
],
"credentials": {
"airtableApi": "asasasa"
}
},
{
"parameters": {
"url": "={{$node[\"Airtable\"].json[\"fields\"][\"Photo2\"][0][\"url\"]}}",
"responseFormat": "file",
"dataPropertyName": "data2",
"options": {}
},
"name": "HTTP Request1",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
890,
450
]
},
{
"parameters": {
"mode": "mergeByIndex"
},
"name": "Merge",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
1190,
310
]
}
],
"connections": {
"Start": {
"main": [
[
{
"node": "Airtable",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Airtable": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
},
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Mailgun",
"type": "main",
"index": 0
}
]
]
}
}
}