--- title: "Functions editor" slug: "functions-editor" tags: ["Functions"] updated: 2026-08-03T14:44:18Z published: 2026-08-03T14:44:18Z canonical: "support.tulip.co/functions-editor" --- > ## 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 Functions As of r380, Functions is generally available. **Read more in the [Community thread](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&utm_medium=article-link&utm_campaign=all) to post your question or see if others have solved a similar topic!