# Create reusable node types

Package repeatable workflow logic as a Custom Node Type with clear Properties, outputs, and a reusable contract.

## When a custom node helps

If several workflows repeat the same group of steps, a Custom Node Type can give that logic a clear name and reusable inputs. For example, your team might package a standard request preparation or formatting process rather than reconstructing it every time.

A custom node definition is distinct from an ordinary workflow. The definition describes reusable logic; an instance uses that definition inside a workflow.

## Define the reusable behavior

Open **Node Types** in the workflows area. Create a definition with a descriptive name and explanation. Add the steps in its editor and define the Properties the caller must provide.

Keep the contract small: give every input a useful label and help text, mark genuinely required values, and document the outputs another builder can use. Check both success and fallback behavior.

## Use a custom node in a workflow

The definition’s **Properties** are its public inputs. Configure **Label**, **Info**, and **Required** in the definition, then select those Properties through the variable picker in its internal steps. Values are supplied on each instance wherever the node is used.

For example, a reusable message-preparation node can take **Business name** and **Help URL**. A caller supplies the public details for that workflow rather than rebuilding the internal steps. A required input must be given wherever that node is used. Keep credentials in protected connections.

See [workflow and public Properties](/workflows/properties/#properties-in-custom-node-types) for the distinction between a workflow setting, a definition input, and an instance value.

Find the saved Custom Node Type in the node picker and add an instance. Configure its Properties for that workflow, then use its available outputs in subsequent steps.

Test the definition with realistic inputs before using it across many workflows. A useful reusable node should be understandable from its name, input labels, and description.

## Change an existing definition

Adding, removing, or renaming inputs and outputs can affect workflows that already use the definition. Review affected instances and their mappings when changing the contract. Do not assume that an output with a new name automatically replaces an existing reference.

## Copy and import definitions

Use the dedicated Copy/Import Node Type flow for a reusable definition. Its portable format is **`chatigram-node-type`, version 1**. Use **`chatigram-node`** only for an individual instance’s configuration.

When an imported workflow contains an unavailable Custom Node Type, resolve or replace it using the import guidance and **Change type** where offered. Review all input and output mappings before activation.

See [copy and paste](/workflows/copy-paste/) for the differences between the three portable formats.
