# Function

## Overview

![The Function Node.](/files/Wf2sEP3XOEHJP9IFmZ21)

The **Function** **Node** is customized by the user. The number and **Data Types** of the **Input** and **Output** **Sockets** and the functionality are defined in the **Node's** own **Logic**, which is accessed by either double clicking the **Node** or the **Function** on the **Function's** list.

The **Node's** **Logic** has two special **Nodes**: [**Function Input**](/incari-studio/toolbox/functions/function/function-input.md) and [**Function Output**](/incari-studio/toolbox/functions/function/function-output.md).

**Functions** can be exported and then imported in a different **Project**.

## Inputs

| Input                 | Type                                           | Description                                                           |
| --------------------- | ---------------------------------------------- | --------------------------------------------------------------------- |
| *Pulse Input* (►)     | **Pulse**                                      | A standard **Input Pulse**, to trigger the execution of the **Node**. |
| `Input Parameter [n]` | *Defined in the **Function Input*** ***Node*** | Parameter received by the **Function**.                               |

## Outputs

| Output                 | Type                                            | Description                                                                                                                            |
| ---------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| *Pulse Output* (►)     | **Pulse**                                       | A standard **Output Pulse**, to move onto the next **Node** along the **Logic Branch**, once this **Node** has finished its execution. |
| `Output Parameter [n]` | *Defined in the **Function Output*** ***Node*** | Parameter returned by the **Function**.                                                                                                |

## Creating a Function

To add a **Function**, *click* on the add icon on the top left of the **Functions** tab on the left panel of the **Logic Editor** and type in the desired name of the **Function**. Then, to open the **Function's** **Logic Graph**, *double-click* on the **Function** **Node**. There, the **Logic** of the **Function** can be defined.

See an example in the image below.

![](/files/BlGnSx7i5QbDRplESN6y)

## Exporting and Importing a **Function**

For exporting a **Function**, *right-click* it on the **Function's** list or on the **Node**, select Export and save the **Blueprints** file.

![](/files/6CqC3uMQctZcfrpEblMo)

![](/files/whY7xk85CUj1Ggz9liSy)

For importing a **Function**, *right-click* on the **Function's** list or on the **Logic Graph**, select Import, and find the **Blueprints** file.

## See Also

* [**Logic Editor**](/incari-studio/modules/logic-editor.md)
* [**Function Input**](/incari-studio/toolbox/functions/function/function-input.md)
* [**Function Output**](/incari-studio/toolbox/functions/function/function-output.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.incari.com/incari-studio/toolbox/functions/function.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
