---
title: "Functions editor"
slug: "functions-editor"
updated: 2025-10-27T18:30:28Z
published: 2025-10-27T18:30:28Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.tulip.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Functions editor

*Learn how to create use the functions editor to create reusable logic across a workspace.*

          Who can use this feature?

          

As of r338, Functions is in Production Early Access. To request access, contact your Customer Success manager. Learn more in the Community thread [here](https://community.tulip.co/t/functions-production-release-available-for-early-access/15658).

The Functions editor is a visual editor where you can build a function’s sequential logic.

If you're new to using functions, read the feature overview [here](/r230/docs/functions).

## Create a function

To enter the Functions Editor, click **+ Create** on the **Functions Page**.

To edit an existing function, click on one from the list and then select **Edit**.

## Editor overview

The diagram below highlights each area of the functions editor.

![Functions editor diagram.jpg](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Functions%20editor%20diagram.jpg)

## Inputs and Outputs panel

The **Inputs and Outputs panel** lets you create and view inputs and outputs related to the function. Inputs and outputs pass data in a function.

To add an input or output, click **+** in the top right of each section and select the date type.

![add function output.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/add%20function%20output.png)

To edit, duplicate, or delete an input or output, click the **three-dot menu**. ![edit function input](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/edit%20function%20input.png)

In the above image, the input is italicized because it is not in use.

Once an input is used in the function logic, you can select **Where used** to see the logic blocks that use it. Click the block name to open the configuration in the details pane. ![functions view input where used](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/functions%20view%20input%20where%20used.gif)

          NOTE

          

You cannot delete an input that is used in the function.

## Assets panel

The **Assets panel** lets you create and view variables related to the function.

To create a new variable, click **+** next to **Variables**. A new variable will appear under **Unused variables** until it is used in a logic block.

![Functions assets tab](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Functions%20assets%20tab.png)

## Canvas

The **canvas** is a visual editor where you add logic to the function. The arrows between logic blocks show the consecutive steps in the function.

To build a function, hover over the **line** between two blocks and click **+**. Then, select an action or control flow from the menu. ![Functions canvas new block](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Functions%20canvas%20new%20block.png)

To rearrange the flow, click and drag a block to a different arrow. ![functions canvas](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/functions%20canvas.gif)

Use the navigation controls or your mouse/trackpad to zoom in and out of the canvas.

## Logic blocks

### Call

Functions begin with a **Call**, the event that references the function.

Inputs must be configured in the function call logic.

### Return

Functions end with a **Return**, the termination of the function execution.

Outputs must be configured in the return logic.

### Action

An **action block** can retrieve an existing table record, manipulate data, or run a connector function.

### Decision

Decision blocks are conditional logic that always have two paths–”yes” and “no”.

![functions decision block](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/functions%20decision%20block.png)

### Loop

Loops repeatedly execute for a configured list of items. The logic of a loop runs for each item in the list until all items have completed.

### Details pane

The details pane is a reactive configuration panel for viewing and editing function logic blocks. Select a block in the canvas to open its details.

![Functions details pane](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Functions%20details%20pane.png)

## Test

Click **Test** in the top right corner to test a function.

![functions test modal](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/functions%20test%20modal.png)

If the function has inputs, you must enter a value for each input before testing.

          Warning

          

A function test executes in real time and will affect production data.

For functions that run connectors, you can select the environment in the Test modal. The default environment is **Development**.

## Edit

To edit a function, navigate to the **Functions page**. Hover over a function and click the **Edit** on the right.

          NOTE

          

Functions are not individually published. Any changes to a function are applied in the development version of an app that uses the function. The function publishes with each app version.

Learn more about function **versions** [here](https://support.tulip.co/docs/functions#versions).

---

Did you find what you were looking for?

You can also head to [community.tulip.co](https://community.tulip.co/?utm_source=intercom&amp;utm_medium=article-link&amp;utm_campaign=all) to post your question or see if others have solved a similar topic!
