AutomationFlowsGeneral › Batch Render 10 SudoMock Designs Sequentially

Batch Render 10 SudoMock Designs Sequentially

Original n8n title: Sudomock - Sequential Batch Render (10 Renders)

SudoMock - Sequential Batch Render (10 Renders). Uses n8n-nodes-sudomock. Event-driven trigger; 8 nodes.

Event trigger★★★★☆ complexity8 nodesN8N Nodes Sudomock
General Trigger: Event Nodes: 8 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "SudoMock - Sequential Batch Render (10 Renders)",
  "nodes": [
    {
      "parameters": {},
      "id": "11111111-aaaa-bbbb-cccc-111111111111",
      "name": "When clicking Test workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        240,
        400
      ]
    },
    {
      "parameters": {
        "operation": "uploadPsd",
        "psdFileUrl": "https://drive.usercontent.google.com/download?id=1CVh67lYHkyCHRw6NGJYYWLRar65E6b9K&export=download",
        "psdName": "Batch Test Mockup"
      },
      "id": "22222222-aaaa-bbbb-cccc-222222222222",
      "name": "Upload PSD",
      "type": "n8n-nodes-sudomock.sudoMock",
      "typeVersion": 1,
      "position": [
        460,
        400
      ]
    },
    {
      "parameters": {
        "jsCode": "const mockupData = $input.item.json.data;\nconst pressureSO = mockupData.smart_objects.find(so => so.name === \"Pressure\");\n\nif (!pressureSO) {\n  throw new Error(\"Smart object 'Pressure' not found in mockup\");\n}\n\nconst designs = [\n  \"https://picsum.photos/seed/design1/1000/1000\",\n  \"https://picsum.photos/seed/design2/1000/1000\",\n  \"https://picsum.photos/seed/design3/1000/1000\",\n  \"https://picsum.photos/seed/design4/1000/1000\",\n  \"https://picsum.photos/seed/design5/1000/1000\",\n  \"https://picsum.photos/seed/design6/1000/1000\",\n  \"https://picsum.photos/seed/design7/1000/1000\",\n  \"https://picsum.photos/seed/design8/1000/1000\",\n  \"https://picsum.photos/seed/design9/1000/1000\",\n  \"https://picsum.photos/seed/design10/1000/1000\"\n];\n\nreturn designs.map((designUrl, index) => ({\n  json: {\n    mockupUuid: mockupData.uuid,\n    smartObjectUuid: pressureSO.uuid,\n    designUrl: designUrl,\n    batchNumber: index + 1\n  }\n}));"
      },
      "id": "33333333-aaaa-bbbb-cccc-333333333333",
      "name": "Prepare Designs",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        680,
        400
      ]
    },
    {
      "parameters": {
        "batchSize": 1
      },
      "id": "44444444-aaaa-bbbb-cccc-444444444444",
      "name": "Loop",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        900,
        400
      ]
    },
    {
      "parameters": {
        "operation": "render",
        "mockupUuid": "={{ $json.mockupUuid }}",
        "smartObjects": {
          "items": [
            {
              "uuid": "={{ $json.smartObjectUuid }}",
              "assetUrl": "={{ $json.designUrl }}",
              "fit": "cover"
            }
          ]
        },
        "exportOptions": {
          "imageFormat": "webp",
          "imageSize": 1920,
          "quality": 90,
          "exportLabel": "={{ 'render-' + $json.batchNumber }}"
        }
      },
      "id": "55555555-aaaa-bbbb-cccc-555555555555",
      "name": "Render",
      "type": "n8n-nodes-sudomock.sudoMock",
      "typeVersion": 1,
      "position": [
        1120,
        400
      ],
      "continueOnFail": true
    },
    {
      "parameters": {
        "jsCode": "const loopData = $('Loop').item.json;\nconst renderResult = $input.item.json;\n\nreturn [{\n  json: {\n    batchNumber: loopData.batchNumber,\n    mockupUuid: loopData.mockupUuid,\n    designUrl: loopData.designUrl,\n    renderedUrl: renderResult.renderedImageUrl || null,\n    success: !!renderResult.renderedImageUrl,\n    error: renderResult.error || null\n  }\n}];"
      },
      "id": "66666666-aaaa-bbbb-cccc-666666666666",
      "name": "Collect Result",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1340,
        400
      ]
    },
    {
      "parameters": {
        "jsCode": "const allResults = $input.all();\nconst mockupUuid = allResults[0]?.json?.mockupUuid || \"\";\n\nreturn [{\n  json: {\n    total: allResults.length,\n    successful: allResults.filter(r => r.json.success).length,\n    failed: allResults.filter(r => !r.json.success).length,\n    renderedUrls: allResults.filter(r => r.json.renderedUrl).map(r => r.json.renderedUrl),\n    mockupUuid: mockupUuid\n  }\n}];"
      },
      "id": "77777777-aaaa-bbbb-cccc-777777777777",
      "name": "Summary",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1340,
        600
      ]
    },
    {
      "parameters": {
        "operation": "deleteMockup",
        "deleteMockupUuid": "={{ $json.mockupUuid }}"
      },
      "id": "88888888-aaaa-bbbb-cccc-888888888888",
      "name": "Cleanup",
      "type": "n8n-nodes-sudomock.sudoMock",
      "typeVersion": 1,
      "position": [
        1560,
        600
      ]
    }
  ],
  "connections": {
    "When clicking Test workflow": {
      "main": [
        [
          {
            "node": "Upload PSD",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload PSD": {
      "main": [
        [
          {
            "node": "Prepare Designs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Designs": {
      "main": [
        [
          {
            "node": "Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop": {
      "main": [
        [
          {
            "node": "Summary",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Render",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Render": {
      "main": [
        [
          {
            "node": "Collect Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Collect Result": {
      "main": [
        [
          {
            "node": "Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summary": {
      "main": [
        [
          {
            "node": "Cleanup",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": []
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

SudoMock - Sequential Batch Render (10 Renders). Uses n8n-nodes-sudomock. Event-driven trigger; 8 nodes.

Source: https://github.com/sudomock/n8n-nodes-sudomock/blob/main/examples/batch-render-workflow.json — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

SudoMock - Complete API Test (All 7 Operations). Uses n8n-nodes-sudomock. Event-driven trigger; 11 nodes.

N8N Nodes Sudomock
General

SudoMock - Rate Limit Error Handling Test. Uses n8n-nodes-sudomock. Event-driven trigger; 9 nodes.

N8N Nodes Sudomock
General

Blotato. Uses googleSheets, @blotato/n8n-nodes-blotato. Event-driven trigger; 65 nodes.

Google Sheets, @Blotato/N8N Nodes Blotato
General

This template is a hands-on, practical exam designed to help you master n8n Expressions—the key to accessing and manipulating data in your workflows.

Stop And Error
General

This template is a hands-on, practical exam designed to test your understanding of the fundamental JSON data types. It's the perfect way to solidify your knowledge after learning the basics.

Stop And Error