diff --git a/components/helper_functions/actions/trigger-workflow-for-each/trigger-workflow-for-each.mjs b/components/helper_functions/actions/trigger-workflow-for-each/trigger-workflow-for-each.mjs new file mode 100644 index 0000000000000..4895f1701d7f4 --- /dev/null +++ b/components/helper_functions/actions/trigger-workflow-for-each/trigger-workflow-for-each.mjs @@ -0,0 +1,41 @@ +import helperFunctions from "../../helper_functions.app.mjs"; + +export default { + key: "helper_functions-trigger-workflow-for-each", + name: "Trigger Workflow For Each", + description: "Trigger another Pipedream workflow in your workspace for each object in an array.", + version: "0.0.1", + type: "action", + props: { + helperFunctions, + workflowId: { + type: "string", + label: "Workflow ID", + description: "The ID of the workflow to trigger. Workflow IDs are formatted as `p_******` and you can find a workflow's ID within the workflow builder URL.", + }, + objects: { + type: "any", + label: "Array of Objects", + description: "Use a custom expression (`{{steps.code.objects}}`) to reference an array of objects exported from a previous step to send to the triggered workflow.", + }, + }, + async run({ $ }) { + const { + workflowId, + objects, + } = this; + + try { + const results = []; + const triggerPromises = objects.map((object) => $.flow.trigger(workflowId, object)); + for await (const result of triggerPromises) { + results.push(result); + } + $.export("$summary", `Successfully triggered workflow ID **${workflowId}**`); + return results; + } catch (error) { + $.export("$summary", `Failed to trigger workflow ID **${workflowId}**.`); + throw error; + } + }, +}; diff --git a/components/helper_functions/package.json b/components/helper_functions/package.json index b059212611236..8eb5e60ee2519 100644 --- a/components/helper_functions/package.json +++ b/components/helper_functions/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/helper_functions", - "version": "0.4.1", + "version": "0.4.2", "description": "Pipedream Helper_functions Components", "main": "helper_functions.app.mjs", "keywords": [