> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.graze.social/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Using Custom Nodes

Once you've got the hang of [Nodes for Beginners](https://www.graze.social/docs/nodes-for-beginners), you'll find yourself building the same pieces of logic again and again. A **Custom Node** saves a piece of feed logic so you can reuse it across your feeds and share it with other Graze users. You can also use the custom nodes other people have shared.

## What is a custom node?

A custom node is a piece of feed logic, built in the same editor you use for feeds, wrapped up so it can be dropped into any feed as a single block.

For example, a "word list" custom node might look for your words in a post's text, hashtags and hidden tags, and in the alt text of its images and videos. Get that right once, save it as a custom node, and every feed you add it to gets the same careful matching.

Custom nodes can have **parameters**: settings the person using the node fills in, such as a list of words, an on/off switch for part of the logic, or a choice from a drop-down. That's what makes one node useful to lots of different feeds. The [Custom Node API](https://www.graze.social/docs/custom-node-api) explains how to build them.

Custom nodes are especially handy for [Content Moderation](https://www.graze.social/docs/content-moderation). Come and show off what you've built in [our Discord](https://discord.com/invite/n936Bz7Pug).

## Finding custom nodes

Click **Custom Nodes** in the sidebar. The page shows **Your Library** (the nodes you've made) and lets you search the nodes other people have shared. Anyone, even without logging in, can browse public custom nodes at [graze.social/custom-nodes](https://www.graze.social/custom-nodes).

Click a node to open its page. You'll see its description, its logic and its parameters, and buttons to:

- **Add to Feed**: pick one of your feeds to add the node to.
- **Remix**: start a new custom node of your own from a copy of this one.

You can also add custom nodes while you're editing a feed: search for them in the editor's custom nodes palette and add one straight to the feed you're working on.

## Using a custom node in your feed

A custom node sits in your feed like any other node. Fill in its parameters to suit your feed and press **Save**.

Click the down arrow (**View Custom Node**) to see the logic inside. From there you can:

- **Reset Parameters**: put every parameter back to the author's default.
- **Detach Custom Node**: turn the node into ordinary nodes in your feed that you can edit freely. Detaching can't be undone, and the detached logic no longer receives updates from the author.

## Keeping a custom node up to date

Authors improve their nodes over time. Each saved change is a new version, and each copy of the node in your feed runs one particular version.

### Auto-update

Click **Enable Auto-Update** on the node in your feed, then **Save**. From then on, when the author saves a new version, your feed switches to it automatically and keeps your parameter values. Auto-update is set separately for each node in each feed, and it's off until you turn it on. Click **Disable Auto-Update** to stop.

There's one exception. If a new version changes or removes a parameter, your values might no longer mean the same thing, so that version is **not** applied automatically. The node shows **Needs Review**, and your feed keeps running its current version until you decide.

### Updating by hand

Without auto-update, an **Update Available** badge appears on the node when there's a newer version. Click it, or **Apply Update**, to open the **Update Custom Node** window. It shows:

- the author's notes for each version since yours, if they wrote any;
- what has changed in the node's logic;
- a **Reset Parameters to Default** checkbox, if you'd rather start from the new defaults.

Click **Apply Update**, then save your feed.

### Choosing a version

The **Version** button on the node lists every version under "Run this node at", with the author's notes. Pick one to move your feed to that version, older or newer. If a version would change the node's settings, it warns: "Changes this node's settings; some of your values will be reset."

Picking a version yourself turns auto-update off for that node, so your choice sticks.

### Messages on your feed

Your feed's page can show a banner about its custom nodes:

- **An update is waiting for you.** A new version changed a setting, so it wasn't applied automatically. Choose **Take the update** (drops values the new version no longer has and uses the author's defaults for anything new), **Keep my version** (stays where you are and turns auto-update off for that node) or **Decide later**.
- **A node is no longer linked to the node it came from.** It keeps filtering your feed exactly as before, but can't receive updates. To reconnect it, remove it from the feed and add it again. Re-adding picks up the latest version, which may change what your feed matches.

## Making your own custom node

Go to **Custom Nodes** and click **Create**. Give your node a **Node Name** and a **Node Description**, choose whether to **Make public**, build its logic and parameters, and click **Publish**.

Public nodes appear in search, so other people can find and use them. Private nodes are just for you.

### Changing a node you've published

Open your node and click **Edit**. When you save:

- Use **Change Log (optional)** to say what changed. People updating to your new version see these notes, so a sentence helps them decide.
- Graze tells you how far your change reaches, for example "Saving this updates 12 feeds". Some of those feeds may use your node through another custom node that contains a copy of it. Those copies stay on the version they were made with.
- If a change would break your node for the people using it, the save is refused with a message saying what to fix. See [Custom Node API](https://www.graze.social/docs/custom-node-api).

Every save becomes a new version. Click **Version History** on your node's page to look back through earlier versions.

### Deleting a node

If no feed uses your node, deleting it removes it.

If feeds do use it, deleting **archives** it instead, even though the confirmation says it can't be undone. An archived node is hidden from search but keeps running on every feed that has it, so nobody's feed breaks. Its page shows an **Archived** badge, and you can bring it back with **Restore**.