# Call a reusable workflow

Control / subflow

call a sub-workflow, macro, mapping or reusable fragment

Page: <https://meridian.online/operations/call-a-reusable-workflow>

## Status

Not built yet.

arcform does not do this yet; it would live in how a Protocol runs. [Its place on the roadmap](https://meridian.online/roadmap#call-a-reusable-workflow)

## Variants

- [Reuse steps inside the flow](https://meridian.online/operations/call-a-reusable-workflow/reuse-steps-inside-the-flow): Embed a saved group of steps, a sub-pipeline or a named subquery in the flow so rows pass through it as if its steps were written in place.
- [Declare a workflow's inputs and outputs](https://meridian.online/operations/call-a-reusable-workflow/declare-workflow-inputs-and-outputs): Mark the points where a reusable workflow receives rows, files or variables from its caller and hands results back.
- Fill a template pipeline at run time: Inject field names and settings from rows into a template pipeline, then run it.
- Other reuse features: Deployment capture, remote groups, saved schemas and saved expressions that support reuse without calling a fragment.
- Pass rows and file names between steps: Hand rows or a list of file names from one step of a workflow to a later one through the workflow result.
- Run a workflow once per row: Call a child pipeline or workflow for each input row or group of rows, passing the row as parameters and collecting the results.
- [Replay a recorded recipe of steps](https://meridian.online/operations/call-a-reusable-workflow/replay-a-recorded-recipe): Apply a saved sequence of preparation steps or recorded commands to the current data.
- [Define a reusable macro or function](https://meridian.online/operations/call-a-reusable-workflow/define-a-reusable-macro): Write a parameterised macro or function once and call it from many queries or flows.
- Run another workflow: Start a separate pipeline, job or process from this one, passing it parameters or a table.

## What other tools call it

Meridian's classification; an independent blind rating agreed on 86.2% of 312 rows (exact class, version 2).

- Azure Data Factory: [`Data Flow`](https://learn.microsoft.com/en-us/azure/data-factory/control-flow-execute-data-flow-activity) (read 2026-09-27)
- Azure Data Factory: [`Execute Pipeline`](https://learn.microsoft.com/en-us/azure/data-factory/control-flow-execute-pipeline-activity) (read 2026-09-27)
- Azure Data Factory: [`Flowlet`](https://learn.microsoft.com/en-us/azure/data-factory/concepts-data-flow-flowlet) (read 2026-09-27)
- Azure Data Factory: [`Power Query activity`](https://learn.microsoft.com/en-us/azure/data-factory/control-flow-power-query-activity) (read 2026-09-27)
- Azure Data Factory: [`User defined functions`](https://learn.microsoft.com/en-us/azure/data-factory/concepts-data-flow-udf) (read 2026-09-27)
- Alteryx Designer: [`Macro Input`](https://help.alteryx.com/current/en/designer/tools/interface-tools/macro-input-tool.html) (read 2026-09-27)
- Alteryx Designer: [`Macro Input In-DB`](https://help.alteryx.com/current/en/designer/tools/in-database/macro-input-in-db-tool.html) (read 2026-09-27)
- Alteryx Designer: [`Macro Output`](https://help.alteryx.com/current/en/designer/tools/interface-tools/macro-output-tool.html) (read 2026-09-27)
- Alteryx Designer: [`Macro Output In-DB`](https://help.alteryx.com/current/en/designer/tools/in-database/macro-output-in-db-tool.html) (read 2026-09-27)
- Bruin: [`Macros (user-defined)`](https://getbruin.com/docs/bruin/assets/templating/macros.html) (read 2026-09-27)
- Apache DataFusion: [`Common Table Expressions (CTE)`](https://datafusion.apache.org/user-guide/features.html) (read 2026-09-27)
- Apache DataFusion: [`Subqueries`](https://datafusion.apache.org/user-guide/features.html) (read 2026-09-27)
- Apache DataFusion: [`WITH RECURSIVE`](https://datafusion.apache.org/user-guide/sql/select.html) (read 2026-09-27)
- dbt-utils: [`ephemeral`](https://docs.getdbt.com/docs/build/materializations) (read 2026-09-27)
- DuckDB: [`CREATE MACRO`](https://duckdb.org/docs/current/sql/statements/create_macro) (read 2026-09-27)
- Duckle: [`Run Job`](https://github.com/slothflowlabs/duckle/blob/f85f8960edfb6efbf4cb89d58a7b32e16df0e867/website/docs/components.html) (read 2026-09-25)
- Duckle: [`Run Pipeline`](https://github.com/slothflowlabs/duckle/blob/f85f8960edfb6efbf4cb89d58a7b32e16df0e867/frontend/src/workflow-ui/palette-data.ts) (read 2026-09-25)
- Duckle: [`Trigger Pipeline`](https://github.com/slothflowlabs/duckle/blob/f85f8960edfb6efbf4cb89d58a7b32e16df0e867/frontend/src/workflow-ui/palette-data.ts) (read 2026-09-25)
- EasyMorph: [`Call another module/project`](https://help.easymorph.com/doku.php?id=transformations:call) (read 2026-09-27)
- EasyMorph: [`Call with another table`](https://help.easymorph.com/doku.php?id=transformations:callwithanothertable) (read 2026-09-27)
- EasyMorph: [`Input`](https://help.easymorph.com/doku.php?id=transformations:input) (read 2026-09-27)
- AWS Glue: [`Custom visual transforms`](https://docs.aws.amazon.com/glue/latest/dg/custom-visual-transform.html) (read 2026-09-27)
- AWS Glue: [`Data preparation recipe`](https://docs.aws.amazon.com/glue/latest/dg/glue-studio-data-preparation.html) (read 2026-09-27)
- Apache Hop: [`Add filenames to result`](https://hop.apache.org/manual/latest/workflow/actions/addresultfilenames.html) (read 2026-09-27)
- Apache Hop: [`Copy rows to result`](https://hop.apache.org/manual/latest/pipeline/transforms/copyrowstoresult.html) (read 2026-09-27)
- Apache Hop: [`Delete filenames from result`](https://hop.apache.org/manual/latest/workflow/actions/deleteresultfilenames.html) (read 2026-09-27)
- Apache Hop: [`Files from result`](https://hop.apache.org/manual/latest/pipeline/transforms/filesfromresult.html) (read 2026-09-27)
- Apache Hop: [`Files to result`](https://hop.apache.org/manual/latest/pipeline/transforms/filestoresult.html) (read 2026-09-27)
- Apache Hop: [`Get Rows from Result`](https://hop.apache.org/manual/latest/pipeline/transforms/getrowsfromresult.html) (read 2026-09-27)
- Apache Hop: [`Get records from stream`](https://hop.apache.org/manual/latest/pipeline/transforms/getrecordsfromstream.html) (read 2026-09-27)
- Apache Hop: [`Injector`](https://hop.apache.org/manual/latest/pipeline/transforms/injector.html) (read 2026-09-27)
- Apache Hop: [`Mapping input`](https://hop.apache.org/manual/latest/pipeline/transforms/mapping-input.html) (read 2026-09-27)
- Apache Hop: [`Mapping output`](https://hop.apache.org/manual/latest/pipeline/transforms/mapping-output.html) (read 2026-09-27)
- Apache Hop: [`Metadata Injection`](https://hop.apache.org/manual/latest/pipeline/transforms/metainject.html) (read 2026-09-27)
- Apache Hop: [`Multi Mapping`](https://hop.apache.org/manual/next/pipeline/transforms/multi-mapping.html) (read 2026-09-27)
- Apache Hop: [`Pipeline`](https://hop.apache.org/manual/latest/workflow/actions/pipeline.html) (read 2026-09-27)
- Apache Hop: [`Pipeline Executor`](https://hop.apache.org/manual/latest/pipeline/transforms/pipeline-executor.html) (read 2026-09-27)
- Apache Hop: [`Simple Mapping`](https://hop.apache.org/manual/latest/pipeline/transforms/simple-mapping.html) (read 2026-09-27)
- Apache Hop: [`Workflow`](https://hop.apache.org/manual/latest/workflow/actions/workflow.html) (read 2026-09-27)
- Apache Hop: [`Workflow Executor`](https://hop.apache.org/manual/latest/pipeline/transforms/workflow-executor.html) (read 2026-09-27)
- KNIME Analytics Platform: [`Call Workflow (Row Based)`](https://api.hub.knime.com/nodes/*43pZbg5OybSsWzmb?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Call Workflow (Table Based)`](https://api.hub.knime.com/nodes/*91g91KJ5NcE0TJRI?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Call Workflow Service`](https://api.hub.knime.com/nodes/*EkT0WUPnhzoKf3YG?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Input (Credentials)`](https://api.hub.knime.com/nodes/*T0ZphJki5btJ9yNo?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Input (File)`](https://api.hub.knime.com/nodes/*LY4Cs9xl2pySTAd8?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Input (JSON)`](https://api.hub.knime.com/nodes/*nBH3LP3nmxGrE_0X?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Input (Row)`](https://api.hub.knime.com/nodes/*jTxkQKXn9DkKRLfj?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Input (Table)`](https://api.hub.knime.com/nodes/*oyBCABe-opg-Assd?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Input (Variable)`](https://api.hub.knime.com/nodes/*VLtSgPwCn2dZrJuf?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Output (File)`](https://api.hub.knime.com/nodes/*3otqVNwkxsXZrb33?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Output (JSON)`](https://api.hub.knime.com/nodes/*zOsWiRPweohTpd8S?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Output (Row)`](https://api.hub.knime.com/nodes/*BQZdYIJZv06Q9UiY?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Container Output (Table)`](https://api.hub.knime.com/nodes/*sma6KF7pwZETNOdi?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`KNIME Integrated Deployment (extension)`](https://api.hub.knime.com/extensions/org.knime.features.buildworkflows) (read 2026-09-27)
- KNIME Analytics Platform: [`Workflow Input`](https://api.hub.knime.com/nodes/*SjCp1LKYnOOV8KMB?details=full) (read 2026-09-27)
- KNIME Analytics Platform: [`Workflow Output`](https://api.hub.knime.com/nodes/*9xSDVHDks-V8M3VU?details=full) (read 2026-09-27)
- Apache NiFi: [`Input Port`](https://nifi.apache.org/nifi-docs/user-guide.html) (read 2026-09-27)
- Apache NiFi: [`Output Port`](https://nifi.apache.org/nifi-docs/user-guide.html) (read 2026-09-27)
- Apache NiFi: [`Process Group`](https://nifi.apache.org/nifi-docs/user-guide.html) (read 2026-09-27)
- Apache NiFi: [`Remote Process Group`](https://nifi.apache.org/nifi-docs/user-guide.html) (read 2026-09-27)
- OpenRefine: [`Apply…`](https://openrefine.org/docs/manual/running#reusing-operations) (read 2026-09-27)
- OpenRefine: [`Extract…`](https://openrefine.org/docs/manual/running#reusing-operations) (read 2026-09-27)
- OpenRefine: [`Import schema`](https://openrefine.org/docs/manual/wikibase/overview#import-and-export-schema) (read 2026-09-27)
- Pentaho Data Integration: [`Copy rows to result`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`ETL metadata injection`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Get files from result`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Get records from stream`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Get rows from result`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Injector`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Job Executor`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`MapReduce Input`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`MapReduce Output`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Mapping`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Mapping Input Specification`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Mapping Output Specification`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Set files in result`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Simple Mapping (sub-transformation)`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Single Threader`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Pentaho Data Integration: [`Transformation Executor`](https://docs.pentaho.com/pdia-data-integration/9.3-data-integration/pdi-transformation-steps-reference-overview) (read 2026-09-27)
- Polars: [`DataFrame.pipe`](https://docs.pola.rs/api/python/stable/reference/dataframe/modify_select.html) (read 2026-09-27)
- Polars: [`Expr miscellaneous (group)`](https://docs.pola.rs/api/python/stable/reference/expressions/miscellaneous.html) (read 2026-09-27)
- Polars: [`LazyFrame.pipe_with_schema`](https://docs.pola.rs/api/python/stable/reference/lazyframe/miscellaneous.html) (read 2026-09-27)
- Power Query M: [`Function values`](https://learn.microsoft.com/en-us/powerquery-m/function-values) (read 2026-09-27)
- RapidMiner Studio: [`Custom Subprocess`](https://docs.rapidminer.com/latest/studio/operators/extensions/Custom%20Operators/utility/custom_subprocess.html) (read 2026-09-27)
- RapidMiner Studio: [`Execute Process`](https://docs.rapidminer.com/latest/studio/operators/utility/execute_process.html) (read 2026-09-27)
- RapidMiner Studio: [`Execute Process from Custom Extension`](https://docs.rapidminer.com/latest/studio/operators/extensions/Custom%20Operators/data_access/custom_execute_process.html) (read 2026-09-27)
- RapidMiner Studio: [`Metadata Helper`](https://docs.rapidminer.com/latest/studio/operators/extensions/Custom%20Operators/utility/metadata_helper.html) (read 2026-09-27)
- RapidMiner Studio: [`Subprocess`](https://docs.rapidminer.com/latest/studio/operators/utility/subprocess.html) (read 2026-09-27)
- RapidMiner Studio: [`Subprocess (Caching)`](https://docs.rapidminer.com/latest/studio/operators/extensions/Operator%20Toolbox/utility/caching_subprocess.html) (read 2026-09-27)
- RapidMiner Studio: [`Subprocess (In Database)`](https://docs.rapidminer.com/latest/studio/operators/extensions/In-Database%20Processing/indb_utility/indb_subprocess.html) (read 2026-09-27)
- RapidMiner Studio: [`Work on Subset`](https://docs.rapidminer.com/latest/studio/operators/blending/attributes/selection/work_on_subset.html) (read 2026-09-27)
- SQLMesh: [`@WITH`](https://github.com/SQLMesh/sqlmesh/blob/23b237cea7218cc8f338b89c14f0957394a0003b/docs/concepts/macros/sqlmesh_macros.md) (read 2026-09-27)
- SQLMesh: [`EMBEDDED`](https://github.com/SQLMesh/sqlmesh/blob/23b237cea7218cc8f338b89c14f0957394a0003b/docs/concepts/models/model_kinds.md) (read 2026-09-27)
- SQLMesh: [`Jinja macros`](https://github.com/SQLMesh/sqlmesh/blob/23b237cea7218cc8f338b89c14f0957394a0003b/docs/concepts/macros/jinja_macros.md) (read 2026-09-27)
- Tableau Prep: [`Insert Flow`](https://help.tableau.com/current/prep/en-us/prep_build_flow.htm) (read 2026-09-27)
- Talend: [`tDataprepRun`](https://help.qlik.com/talend/en-US/components/8.0/data-preparation/data-preparation-component) (read 2026-09-27)
- Talend: [`tHMap`](https://help.qlik.com/talend/en-US/components/8.0/data-mapping/data-mapping-component) (read 2026-09-27)
- Talend: [`tHMapFile`](https://help.qlik.com/talend/en-US/components/8.0/data-mapping/data-mapping-component) (read 2026-09-27)
- Talend: [`tHMapInput`](https://help.qlik.com/talend/en-US/components/8.0/data-mapping/data-mapping-component) (read 2026-09-27)
- Talend: [`tHMapRecord`](https://help.qlik.com/talend/en-US/components/8.0/data-mapping/data-mapping-component) (read 2026-09-27)
- Talend: [`tRunJob`](https://help.qlik.com/talend/en-US/components/8.0/orchestration/orchestration-component) (read 2026-09-27)
- VisiData: [`exec-<macroname>`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/macros.py#L150) (read 2026-09-23)
- VisiData: [`macro-record`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/macros.py#L241) (read 2026-09-23)
- VisiData: [`macro-sheet`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/macros.py#L242) (read 2026-09-23)
- VisiData: [`replay-all`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/cmdlog.py#L484) (read 2026-09-23)
- VisiData: [`replay-row`](https://github.com/saulpw/visidata/blob/7609212ec2febafa9caba7183cbebfaf49627909/visidata/cmdlog.py#L483) (read 2026-09-23)
