# Define a reusable macro or function

Control / subflow

A variant of [Call a reusable workflow](https://meridian.online/operations/call-a-reusable-workflow).

Write a parameterised macro or function once and call it from many queries or flows.

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

## 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)

## What other tools call it

Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).

- Azure Data Factory: [`User defined functions`](https://learn.microsoft.com/en-us/azure/data-factory/concepts-data-flow-udf) (read 2026-09-27)
- Bruin: [`Macros (user-defined)`](https://getbruin.com/docs/bruin/assets/templating/macros.html) (read 2026-09-27)
- DuckDB: [`CREATE MACRO`](https://duckdb.org/docs/current/sql/statements/create_macro) (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)
- Polars: [`DataFrame.pipe`](https://docs.pola.rs/api/python/stable/reference/dataframe/modify_select.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: [`Metadata Helper`](https://docs.rapidminer.com/latest/studio/operators/extensions/Custom%20Operators/utility/metadata_helper.html) (read 2026-09-27)
- SQLMesh: [`Jinja macros`](https://github.com/SQLMesh/sqlmesh/blob/23b237cea7218cc8f338b89c14f0957394a0003b/docs/concepts/macros/jinja_macros.md) (read 2026-09-27)
