This workflow corresponds to n8n.io template #17273 — we link there as the canonical source.
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 →
{
"id": "ogcWGpljXKKgzHYZ",
"name": "Restyle your Fashion Catalogs Every Season with dreem.ai",
"tags": [],
"nodes": [
{
"id": "ebe98a14-acbb-4989-8664-2f14af2c0c7a",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"width": 480,
"height": 896,
"content": "## Restyle your Fashion Catalogs Every Season with dreem.ai\n\n### How it works\n\nThis workflow runs on scheduled season-change dates, retrieves Shopify products, and filters for items tagged for seasonal restyling. It processes products in batches, generates updated female and male catalog images with dreem.ai, waits for render completion, then publishes completed shots back to Shopify. Slack notifications report skipped renders and when the full seasonal flip is complete.\n\n### Setup steps\n\n- Configure the schedule trigger for the intended seasonal dates, such as March 1 and September 1.\n- Connect Shopify credentials and confirm the product query, tag filter, and publish/update operations target the correct store and product image fields.\n- Connect dreem.ai credentials and configure the seasonal generation prompts or templates for female and male catalog shots.\n- Connect Slack credentials and choose the channels or recipients for skipped-render and completion notifications.\n\n### Customization\n\nAdjust the product tag used for eligibility, the seasonal styling prompts in the dreem.ai nodes, wait durations or completion checks, and whether both female and male shots are generated for every product."
},
"typeVersion": 1
},
{
"id": "5e042b13-ccbe-420b-9025-4bac24d1b41e",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
128
],
"parameters": {
"color": 7,
"width": 640,
"height": 352,
"content": "## Find seasonal products\n\nStarts the workflow on season-flip dates, retrieves products from Shopify, and filters the list down to products tagged for seasonal restyling."
},
"typeVersion": 1
},
{
"id": "b30feed5-1107-4b6d-925c-d6a25683c180",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
-48
],
"parameters": {
"color": 7,
"width": 432,
"height": 528,
"content": "## Batch loop control\n\nControls iteration over the filtered product list and sends the final Slack completion message once all products have finished processing."
},
"typeVersion": 1
},
{
"id": "fef01fdc-1f45-4413-b244-17bf59bd9314",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1696,
144
],
"parameters": {
"color": 7,
"width": 400,
"height": 464,
"content": "## Generate female render\n\nRequests a seasonal female catalog render from dreem.ai for the current product and waits before checking the render status."
},
"typeVersion": 1
},
{
"id": "947a661d-0891-4f3a-8eb4-04e266f57f9d",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2128,
128
],
"parameters": {
"color": 7,
"width": 416,
"height": 576,
"content": "## Handle female result\n\nChecks whether the female render is complete, publishes successful output to Shopify, or sends a Slack skipped notification for incomplete or failed output. The skipped notification node also receives failures from the nearby male completion check."
},
"typeVersion": 1
},
{
"id": "fc24ea07-f5f1-41b1-8ae5-ff3eb3278b1a",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1472,
736
],
"parameters": {
"color": 7,
"width": 848,
"height": 320,
"content": "## Generate male image\n\nAfter the female image is published, this lower canvas cluster generates the male seasonal render, waits for completion, checks the result, and publishes the male shot back to Shopify before returning to the batch loop."
},
"typeVersion": 1
},
{
"id": "80233ecb-2b83-41ed-ab72-662db02ad0a5",
"name": "Trigger Seasonal Update",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
608,
320
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 9 1 3,9 *"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "5766aef9-d01d-4016-ae50-40509031345c",
"name": "Fetch Products from Shopify",
"type": "n8n-nodes-base.shopify",
"position": [
832,
320
],
"parameters": {
"resource": "product",
"operation": "getAll",
"returnAll": true,
"authentication": "accessToken",
"additionalFields": {}
},
"credentials": {
"shopifyAccessTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "39372c0f-6c0a-4c03-b949-141b16772308",
"name": "Filter Seasonal Products",
"type": "n8n-nodes-base.filter",
"position": [
1056,
320
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ ($json.tags || '').split(',').map(t => t.trim()).includes('seasonal-restyle') }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f63ad85b-0827-4cce-85e3-3922adaa4987",
"name": "Notify Flip Completion",
"type": "n8n-nodes-base.slack",
"position": [
1520,
160
],
"parameters": {
"text": "Seasonal catalog restyle complete.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "C0BEBLUUHNZ"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.5
},
{
"id": "0bdbb8e5-c5c5-4507-a34d-596e8ac703cc",
"name": "Create Female Seasonal Design",
"type": "n8n-nodes-dreem.dreem",
"position": [
1744,
448
],
"parameters": {
"talentId": "b2c80190-4a00-4718-9d3f-c531472d5984",
"shotCodes": [
"model_front_women"
],
"callbackUrl": "={{ $execution.resumeUrl }}",
"outputFormat": "jpeg",
"frontImageUrl": "={{ $json.images[0].src }}",
"authentication": "apiKey",
"outputAspectRatio": 5
},
"credentials": {
"dreemApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "ee929c9b-29a1-4e3b-9b13-97cce1706c4f",
"name": "Wait for Design Render",
"type": "n8n-nodes-base.wait",
"position": [
1952,
448
],
"parameters": {
"resume": "webhook",
"options": {},
"httpMethod": "POST",
"resumeUnit": "minutes",
"resumeAmount": 20,
"limitWaitTime": true
},
"typeVersion": 1.1
},
{
"id": "0fe6c768-4e97-42c2-b0a9-7f28c34e4b4b",
"name": "Check Design Completion",
"type": "n8n-nodes-base.if",
"position": [
2176,
448
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body?.status ?? $json.status }}",
"rightValue": "completed"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "7d5b48e3-f487-4c2d-a982-2bb450ff5d00",
"name": "Update Shopify with Design",
"type": "n8n-nodes-base.shopify",
"position": [
2400,
368
],
"parameters": {
"resource": "product",
"operation": "update",
"productId": "={{ $('Process Products in Batches').item.json.id }}",
"updateFields": {
"images": "={{ ($('Process Products in Batches').item.json.images || []).map(i => ({ id: i.id })).concat(($('Wait for Design Render').item.json.body.outputs || []).map(o => ({ src: o.files[0].url }))) }}"
},
"authentication": "accessToken"
},
"credentials": {
"shopifyAccessTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "3ac3b229-7488-4e18-b1d2-0a6e5b2b3d7d",
"name": "Process Products in Batches",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1280,
320
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "79139836-9073-4db2-b35d-17efa031837d",
"name": "Notify Skipped Products",
"type": "n8n-nodes-base.slack",
"position": [
2400,
544
],
"parameters": {
"text": "=Seasonal restyle skipped *{{ $('Process Products in Batches').item.json.title }}* \u2014 render didn't finish.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "C0BEBLUUHNZ"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.5
},
{
"id": "a69a3e68-7fa8-49d4-833b-4c5db441e613",
"name": "Create Male Seasonal Design",
"type": "n8n-nodes-dreem.dreem",
"disabled": true,
"position": [
1520,
896
],
"parameters": {
"talentId": "ddb6969e-5099-4337-b528-2e85888eef38",
"shotCodes": [
"model_hands_in_pockets_front_men"
],
"callbackUrl": "={{ $execution.resumeUrl }}",
"outputFormat": "jpeg",
"frontImageUrl": "={{ $('Process Products in Batches').item.json.images[0].src }}",
"authentication": "apiKey",
"outputAspectRatio": 5
},
"credentials": {
"dreemApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "c478bbac-30a2-4c4a-b482-6102fd2a91aa",
"name": "Wait for Male Design Render",
"type": "n8n-nodes-base.wait",
"disabled": true,
"position": [
1728,
896
],
"parameters": {
"resume": "webhook",
"options": {},
"httpMethod": "POST",
"resumeUnit": "minutes",
"resumeAmount": 20,
"limitWaitTime": true
},
"typeVersion": 1.1
},
{
"id": "9a8bb0d4-f6f8-48cf-bd08-2d0729fff69f",
"name": "Check Male Design Completion",
"type": "n8n-nodes-base.if",
"disabled": true,
"position": [
1952,
896
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body?.status ?? $json.status }}",
"rightValue": "completed"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "45feae4c-0551-445e-b039-d3a58c2d7b36",
"name": "Update Shopify with Male Design",
"type": "n8n-nodes-base.shopify",
"disabled": true,
"position": [
2176,
896
],
"parameters": {
"resource": "product",
"operation": "update",
"productId": "={{ $('Process Products in Batches').item.json.id }}",
"updateFields": {
"images": "={{ ($('Update Shopify with Design').item.json.images || []).map(i => ({ id: i.id })).concat(($('Wait for Male Design Render').item.json.body.outputs || []).map(o => ({ src: o.files[0].url }))) }}"
},
"authentication": "accessToken"
},
"credentials": {
"shopifyAccessTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"binaryMode": "separate",
"executionOrder": "v1"
},
"versionId": "b8d94ee9-b8c9-463e-8032-9248ff5c47a3",
"nodeGroups": [],
"connections": {
"Wait for Design Render": {
"main": [
[
{
"node": "Check Design Completion",
"type": "main",
"index": 0
}
]
]
},
"Check Design Completion": {
"main": [
[
{
"node": "Update Shopify with Design",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify Skipped Products",
"type": "main",
"index": 0
}
]
]
},
"Notify Skipped Products": {
"main": [
[
{
"node": "Process Products in Batches",
"type": "main",
"index": 0
}
]
]
},
"Trigger Seasonal Update": {
"main": [
[
{
"node": "Fetch Products from Shopify",
"type": "main",
"index": 0
}
]
]
},
"Filter Seasonal Products": {
"main": [
[
{
"node": "Process Products in Batches",
"type": "main",
"index": 0
}
]
]
},
"Update Shopify with Design": {
"main": [
[
{
"node": "Create Male Seasonal Design",
"type": "main",
"index": 0
}
]
]
},
"Create Male Seasonal Design": {
"main": [
[
{
"node": "Wait for Male Design Render",
"type": "main",
"index": 0
}
]
]
},
"Fetch Products from Shopify": {
"main": [
[
{
"node": "Filter Seasonal Products",
"type": "main",
"index": 0
}
]
]
},
"Process Products in Batches": {
"main": [
[
{
"node": "Notify Flip Completion",
"type": "main",
"index": 0
}
],
[
{
"node": "Create Female Seasonal Design",
"type": "main",
"index": 0
}
]
]
},
"Wait for Male Design Render": {
"main": [
[
{
"node": "Check Male Design Completion",
"type": "main",
"index": 0
}
]
]
},
"Check Male Design Completion": {
"main": [
[
{
"node": "Update Shopify with Male Design",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify Skipped Products",
"type": "main",
"index": 0
}
]
]
},
"Create Female Seasonal Design": {
"main": [
[
{
"node": "Wait for Design Render",
"type": "main",
"index": 0
}
]
]
},
"Update Shopify with Male Design": {
"main": [
[
{
"node": "Process Products in Batches",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
dreemApishopifyAccessTokenApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Shopify product photos that still look like summer in October cost conversions .This workflow automates the seasonal restyle: tag the products you want refreshed, set the season's model, pose, and styling once per flip, and on the day the whole batch gets new-season product…
Source: https://n8n.io/workflows/17273/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow runs monthly to identify slow-selling Shopify products with no sales in the last 30 days, generates fresh on-model product imagery using Dreem.ai, appends the new photos to the products
A Shopify product page with only one photo reads like a listing nobody finished. This workflow runs weekly to find Shopify products that have only one image, generates multi-angle on-model photos with
This workflow turns every new Shopify product into a complete photo set with Dreem.ai: studio product shots plus an on-model render, generated from one photo and added straight back to the listing. Op
New products get attention; the back catalog doesn't. This workflow sweeps your Shopify catalog, finds every product that still has just one photo, and generates the missing studio product shots with
This workflow turns a product photo into a short product video with Dreem AI. Tag a product dreem-video in Shopify and the finished clip arrives in Slack for approval, then lands in the product's medi