I’ve attached the export of my flow below, along with the loop node input and output. why is it just iterating over one item? Even when I do a full test run or publish it and let it run on its own?
I’ve reduced the amount of info in the input and output copy for space sake, its quite a lot of text, I left two to show the format, and the output is only showing one
JSON Flow Export
{
“created”: “1743783002634”,
“updated”: “1743783002634”,
“name”: “Image Generation”,
“description”: “”,
“tags”: ,
“pieces”: [
“@activepieces/piece-sftp”,
“@activepieces/piece-file-helper”,
“@activepieces/piece-csv”,
“@activepieces/piece-claude”,
“@activepieces/piece-openai”,
“@activepieces/piece-google-sheets”
],
“template”: {
“displayName”: “Image Generation”,
“trigger”: {
“name”: “trigger”,
“valid”: true,
“displayName”: “New File”,
“type”: “PIECE_TRIGGER”,
“settings”: {
“pieceName”: “@activepieces/piece-sftp”,
“pieceVersion”: “~0.3.1”,
“pieceType”: “OFFICIAL”,
“packageType”: “REGISTRY”,
“input”: {
“auth”: “{{connections[‘thz0UHfV5B8g6RdNm8vGJ’]}}”,
“path”: “./vhosts/unhouseless.com/”,
“ignoreHiddenFiles”: false
},
“inputUiInfo”: {
“customizedInputs”: {}
},
“triggerName”: “new_file”
},
“nextAction”: {
“name”: “step_2”,
“skip”: false,
“type”: “PIECE”,
“valid”: true,
“settings”: {
“input”: {
“auth”: “{{connections[‘thz0UHfV5B8g6RdNm8vGJ’]}}”,
“filePath”: “{{trigger[‘path’]}}”
},
“pieceName”: “@activepieces/piece-sftp”,
“pieceType”: “OFFICIAL”,
“actionName”: “read_file_content”,
“inputUiInfo”: {
“customizedInputs”: {}
},
“packageType”: “REGISTRY”,
“pieceVersion”: “~0.3.1”,
“errorHandlingOptions”: {
“retryOnFailure”: {
“value”: false
},
“continueOnFailure”: {
“value”: false
}
}
},
“nextAction”: {
“name”: “step_1”,
“skip”: false,
“type”: “PIECE”,
“valid”: true,
“settings”: {
“input”: {
“file”: “{{step_2[‘file’]}}”,
“readOptions”: “text”
},
“pieceName”: “@activepieces/piece-file-helper”,
“pieceType”: “OFFICIAL”,
“actionName”: “read_file”,
“inputUiInfo”: {
“customizedInputs”: {}
},
“packageType”: “REGISTRY”,
“pieceVersion”: “~0.1.5”,
“errorHandlingOptions”: {
“retryOnFailure”: {
“value”: false
},
“continueOnFailure”: {
“value”: false
}
}
},
“nextAction”: {
“name”: “step_3”,
“skip”: false,
“type”: “PIECE”,
“valid”: true,
“settings”: {
“input”: {
“csv_text”: “{{step_1[‘text’]}}”,
“has_headers”: true,
“delimiter_type”: “,”
},
“pieceName”: “@activepieces/piece-csv”,
“pieceType”: “OFFICIAL”,
“actionName”: “convert_csv_to_json”,
“inputUiInfo”: {
“customizedInputs”: {}
},
“packageType”: “REGISTRY”,
“pieceVersion”: “~0.4.2”,
“errorHandlingOptions”: {
“retryOnFailure”: {
“value”: false
},
“continueOnFailure”: {
“value”: false
}
}
},
“nextAction”: {
“name”: “step_9”,
“type”: “CODE”,
“valid”: true,
“settings”: {
“input”: {
“csvJson”: “{{step_3}}”
},
“sourceCode”: {
“code”: “export const code = async (inputs: { csvJson: { [key: string]: any } }) => {\n // Extract the keys from the first object to use as headers\n const headers = Object.keys(inputs.csvJson[0]);\n \n // Create an array of arrays, where each sub-array represents a row\n const arrayData = inputs.csvJson.map(row => headers.map(header => row[header]));\n\n return { arrayData };\n};”,
“packageJson”: “{\n "dependencies": {}\n}”
},
“inputUiInfo”: {},
“errorHandlingOptions”: {
“retryOnFailure”: {
“value”: false
},
“continueOnFailure”: {
“value”: false
}
}
},
“nextAction”: {
“name”: “step_4”,
“skip”: false,
“type”: “LOOP_ON_ITEMS”,
“valid”: true,
“settings”: {
“items”: “{{step_9[‘arrayData’]}}”,
“inputUiInfo”: {
“customizedInputs”: {}
}
},
“displayName”: “Loop on Items”,
“firstLoopAction”: {
“name”: “step_5”,
“skip”: false,
“type”: “PIECE”,
“valid”: true,
“settings”: {
“input”: {
“auth”: “{{connections[‘Qpqd60ozGmTLAhIhYceqc’]}}”,
“model”: “claude-3-7-sonnet-latest”,
“prompt”: “Tarot Vision Weaver: Image Prompt Compiler\nYou are the Tarot Vision Weaver, a specialized image prompt compiler that transforms descriptive elements into cohesive, spiritually-resonant tarot card image prompts. Your purpose is to blend symbolic elements, archetypes, and visual motifs into unified creative directives for generating tarot imagery.\nCore Structure:\nFor each card, you will receive and integrate:\n5. {{step_4[‘item’][‘Card Name’]}}\n{{step_4[‘item’][‘personal_connection’]}}\n{{step_4[‘item’][‘theme_soecification’]}}\n{{step_4[‘item’][‘artistic_style’]}}\nSacred Process:\nContemplation: Reflect deeply on the card’s traditional meanings and the user’s personal connection\nIntegration: Weave together the symbolic elements with the specified theme\nManifestation: Express this synthesis through the requested artistic style\nCompletion: Present a cohesive Prompt that honors all elements\nResponse Structure:\nYour completed response should follow this template:\nCard Essence: Brief insight into the spiritual significance of this particular card and its meaning within the user’s journey\nSymbolic Elements:\nKey symbols traditionally associated with this card\nPersonalized symbols based on the user’s connection\nThematic elements that anchor the spiritual message\nVisual Atmosphere:\nColor palette suggestions that resonate with the card’s energy\nLighting recommendations to enhance the symbolic meaning\nCompositional guidance to balance the visual hierarchy\n{{step_4[‘item’][‘Full Prompt’]}}\nThe Full Prompt should be a seamless integration of all elements, structured in a way that honors both the traditional symbolism of the card and the user’s personal connection, expressed through the specified artistic style, and incorporating any thematic specifications.\nThis approach creates a sacred vessel for the user’s intentions to manifest through the power of visual symbolism—allowing the eternal wisdom of the tarot to speak through contemporary visual language in a way that honors each seeker’s unique spiritual journey.\nDoes this structure resonate with your vision for the Tarot Vision Weaver? I can refine any aspects that need further development.”,
“maxTokens”: “4096”,
“temperature”: “.7”,
“systemPrompt”: “You are the Harmonic Weaver, an image prompt compiler that transforms multiple descriptive elements into cohesive, powerful image prompts. Your purpose is to blend various concepts, themes, and visual elements into unified creative directives that can be used with image generation systems.\nCore Functions:\nAnalyze and extract key visual elements from user descriptions\nIdentify potential conflicts between elements and resolve them creatively\nOrganize elements into a harmonious structure that follows best practices for image generation\nReturn a refined, cohesive prompt that captures the essence of all input descriptions\nMethodology:\nBegin by acknowledging all elements provided by the user\nIdentify the core theme or subject that should anchor the image\nArrange supporting elements in order of visual hierarchy\nApply appropriate artistic direction (style, lighting, composition, perspective)\nInclude technical parameters when relevant (aspect ratio, quality modifiers)\nInteraction Flow:\nListen attentively to all descriptions provided\nConfirm understanding of the user’s vision\nPresent the compiled prompt in a clear, structured format\nOffer alternatives or variations if requested\nRefine based on feedback\nResponse Structure:\nWhen providing the compiled prompt, organize it as follows:\nCore Subject: The primary focus of the image\nEnvironment: Setting, background, atmosphere\nStylistic Approach: Artistic style, medium, aesthetic\nTechnical Parameters: Any specific generation parameters\nComplete Prompt: The full, ready-to-use compiled prompt”
},
“pieceName”: “@activepieces/piece-claude”,
“pieceType”: “OFFICIAL”,
“actionName”: “ask_claude”,
“inputUiInfo”: {
“customizedInputs”: {}
},
“packageType”: “REGISTRY”,
“pieceVersion”: “~0.1.2”,
“errorHandlingOptions”: {
“retryOnFailure”: {
“value”: false
},
“continueOnFailure”: {
“value”: false
}
}
},
“nextAction”: {
“name”: “step_6”,
“skip”: false,
“type”: “PIECE”,
“valid”: true,
“settings”: {
“input”: {
“auth”: “{{connections[‘1uldP3l33P90yZo0kss6V’]}}”,
“model”: “dall-e-3”,
“prompt”: “{{step_5}}”,
“quality”: “hd”,
“resolution”: “1024x1792”
},
“pieceName”: “@activepieces/piece-openai”,
“pieceType”: “OFFICIAL”,
“actionName”: “generate_image”,
“inputUiInfo”: {
“customizedInputs”: {}
},
“packageType”: “REGISTRY”,
“pieceVersion”: “~0.4.0”,
“errorHandlingOptions”: {
“retryOnFailure”: {
“value”: false
},
“continueOnFailure”: {
“value”: false
}
}
},
“nextAction”: {
“name”: “step_7”,
“skip”: false,
“type”: “PIECE”,
“valid”: true,
“settings”: {
“input”: {
“auth”: “{{connections[‘ISONiJLJPJbMrVqKoYelX’]}}”,
“values”: {
“A”: “{{step_4[‘item’][‘Card Name’]}}”,
“B”: “{{step_5}}”,
“C”: “{{step_6[‘created’]}}”
},
“sheetId”: 0,
“as_string”: false,
“spreadsheetId”: “17aZT-z_4ZuIVWva1iAUrGsRFl0Uz0pHfuDZXyX6cEwg”,
“first_row_headers”: true,
“includeTeamDrives”: false
},
“pieceName”: “@activepieces/piece-google-sheets”,
“pieceType”: “OFFICIAL”,
“actionName”: “insert_row”,
“inputUiInfo”: {
“schema”: {
“values”: {
“A”: {
“type”: “SHORT_TEXT”,
“required”: false,
“description”: “Name”,
“displayName”: “Name”,
“defaultValue”: “”
},
“B”: {
“type”: “SHORT_TEXT”,
“required”: false,
“description”: “Prompt”,
“displayName”: “Prompt”,
“defaultValue”: “”
},
“C”: {
“type”: “SHORT_TEXT”,
“required”: false,
“description”: “ImageURL”,
“displayName”: “ImageURL”,
“defaultValue”: “”
},
“D”: {
“type”: “SHORT_TEXT”,
“required”: false,
“description”: “Image”,
“displayName”: “Image”,
“defaultValue”: “”
}
}
},
“customizedInputs”: {}
},
“packageType”: “REGISTRY”,
“pieceVersion”: “~0.12.2”,
“errorHandlingOptions”: {
“retryOnFailure”: {
“value”: false
},
“continueOnFailure”: {
“value”: false
}
}
},
“displayName”: “Insert Row”
},
“displayName”: “Generate Image”
},
“displayName”: “Ask Claude”
}
},
“displayName”: “Convert CSV to Array”,
“customLogoUrl”: “https://cdn.activepieces.com/pieces/ai/code/file-code.svg”
},
“displayName”: “Convert CSV to JSON”
},
“displayName”: “Read File”
},
“displayName”: “Read File Content”
}
},
“valid”: true,
“schemaVersion”: “1”
},
“blogUrl”: “”
}
Loop Node Input:
{
“jsonData”: [
{
“Card Name”: “The Fool”,
“personal_connection”: “My Uranus is in my 8th House of Capricorn, and it is conjunct with my Moon, Saturn, and Neptune. It opposes my Chiron in my 2nd House of Cancer, and forms part of an 8th House Capricorn Stellium, which also includes my Sun, Moon, Saturn, Uranus, Neptune, and my Venus (positioned at the end of my 7th House in Sagittarius). It is also Sextile my North Node in my 10th House of Pisces.”,
},
{
“Card Name”: “The Magician”,
“personal_connection”: “My Mercury is my Chart Ruler, its placed in my 9th House of Aquarius, and is trined my ascendant and squared my Pluto.”,
},
]
}
Loop Output:
{
“item”: {
“Card Name”: “The Fool”,
“personal_connection”: “My Uranus is in my 8th House of Capricorn, and it is conjunct with my Moon, Saturn, and Neptune. It opposes my Chiron in my 2nd House of Cancer, and forms part of an 8th House Capricorn Stellium, which also includes my Sun, Moon, Saturn, Uranus, Neptune, and my Venus (positioned at the end of my 7th House in Sagittarius). It is also Sextile my North Node in my 10th House of Pisces.”,
},
“index”: 1,
“iterations”: [
{}
]
}