---
url: https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/
title: "Automation Overview\n                #"
description: "Most of gh element has a special settings tab where you can configure additional functions that will be automatically triggered when the element is running. Thi"
lang: uk
updated: 2026-09-12T01:02:03.764Z
---

# Automation Overview [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#automation-overview)

Most of gh-element has a special settings tab where you can configure additional functions that will be automatically triggered when the element is running. This is called **Automation**.

The work of some gh-elements, such as [Quiz](https://gudhub.com/ru/docs/gh-elements/quiz/), [Calculator](https://gudhub.com/ru/docs/gh-elements/calculator/), [Smart Input](https://gudhub.com/ru/docs/gh-elements/smart-input/), and [String Join](https://gudhub.com/ru/docs/gh-elements/string-join/), is based on automation. But for most elements automation can be added additionally. There are a special [nodes](#node) to configure such processes. Their work are based on the [Rete.js](https://rete.js.org/#/docs) modular framework.

## Node [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#node)

An integral part of the element automation is the **node**. It is with the help of nodes that automation is configured. Due to them you can configure the automatic operation of the any gh-element.

Besides names and icon, **Node** consists of:

![Appearance of the node](https://bitbucket.org/AAtlas/gudhub-documentation/raw/master/Understanding_Gudhub/Automation/automation/node.jpg "Node")

-   [Setting button](#node-settings)
-   Delete button
-   [Input and Output sockets](#connections)

Each of nodes is responsible for different functions such as creating items or messages, retrieving data from items, updating items, and others. Accordingly, each of them has unique sets of settings.

> Every gh-element has a default node that cannot be deleted. For almost all of them, the default node is the [GH Element Node](https://gudhub.com/ru/docs/automation-nodes/gh-element-node/). But there are four elements that have their own unique default nodes:
> 
> -   **API** that have [API node](https://gudhub.com/ru/docs/automation-nodes/api-node/) and [](https://gudhub.com/ru/docs/automation-nodes/response-node/)[Response](https://gudhub.com/ru/docs/automation-nodes/response-node/) node
> -   **Smart Input** have [SmartInput node](https://gudhub.com/ru/docs/automation-nodes/smart-input-node/)
> -   **Quiz** with [Quiz Node](https://gudhub.com/ru/docs/automation-nodes/quiz-node/)
> -   **Trigger** contains [Trigger node](https://gudhub.com/ru/docs/automation-nodes/trigger-node/)

### Node Settings [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#node-settings)

Each of nodes has its own unique set of settings. But all of them have one standard option called **Notes**. It is designed to leave any notes in settings. That allows you to note the function of the node. This is very useful when you have a huge number of nodes, it helps not to get confused.

### List of Nodes [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#list-of-nodes)

There are many nodes that will help you set up automation of elements:

-   [API](https://gudhub.com/ru/docs/automation-nodes/api-node/)
-   [Calculator](https://gudhub.com/ru/docs/automation-nodes/calculator-node/)
-   Compare Items
-   [Constants](https://gudhub.com/ru/docs/automation-nodes/constansts/)
-   [Create Items API](https://gudhub.com/ru/docs/automation-nodes/create-items-api/)
-   [Delete Items](https://gudhub.com/ru/docs/automation-nodes/delete-items-node/)
-   Face Detector
-   [File Duplicate](https://gudhub.com/ru/docs/automation-nodes/file-duplicate/)
-   [File Reader](https://gudhub.com/ru/docs/automation-nodes/file-reader/)
-   [Filter](https://gudhub.com/ru/docs/automation-nodes/filter-node/)
-   [Fire Works](https://gudhub.com/ru/docs/automation-nodes/fireworks/)
-   [Get Item By Item Reference](https://gudhub.com/ru/docs/automation-nodes/get-item-by-item-ref/)
-   [Get Items](https://gudhub.com/ru/docs/automation-nodes/get-items/)
-   [GH Element Node](https://gudhub.com/ru/docs/automation-nodes/gh-element-node/)
-   [Go To Item](https://gudhub.com/ru/docs/automation-nodes/go-to-item/)
-   [Google Calendar](https://gudhub.com/ru/docs/automation-nodes/google-calendar/)
-   [If Condition](https://gudhub.com/ru/docs/automation-nodes/if-condition/)
-   [Item Constructor](https://gudhub.com/ru/docs/automation-nodes/item-constructor/)
-   [Item Destructor](https://gudhub.com/ru/docs/automation-nodes/item-destructor/)
-   [Iterator](https://gudhub.com/ru/docs/automation-nodes/iterator-node/)
-   [JSON Scheme](https://gudhub.com/ru/docs/automation-nodes/json-scheme/)
-   Merge Items
-   [Message Constructor](https://gudhub.com/ru/docs/automation-nodes/message-constructor/)
-   [Object Constructor](https://gudhub.com/ru/docs/automation-nodes/object-constructor/)
-   [Object Destructor](https://gudhub.com/ru/docs/automation-nodes/object-destructor/)
-   Object To Item
-   [Pop Up Form](https://gudhub.com/ru/docs/automation-nodes/pop-up-form/)
-   [Populate Element](https://gudhub.com/ru/docs/automation-nodes/populate-element/)
-   [Populate Items](https://gudhub.com/ru/docs/automation-nodes/populate-items-node/)
-   [Populate With Date](https://gudhub.com/ru/docs/automation-nodes/populate-with-date/)
-   Populate With Item Ref
-   [Quiz Form](https://gudhub.com/ru/docs/automation-nodes/quiz-form/)
-   [Quiz Node](https://gudhub.com/ru/docs/automation-nodes/quiz-node/)
-   [Request](https://gudhub.com/ru/docs/automation-nodes/request-node/)
-   [Response](https://gudhub.com/ru/docs/automation-nodes/response-node/)
-   [Send Email](https://gudhub.com/ru/docs/automation-nodes/send-email-node/)
-   [Send Message](https://gudhub.com/ru/docs/automation-nodes/send-message-node/)
-   [Smart Input Node](https://gudhub.com/ru/docs/automation-nodes/smart-input-node/)
-   [Trigger](https://gudhub.com/ru/docs/automation-nodes/trigger-node/)
-   [Turbo SMS](https://gudhub.com/ru/docs/automation-nodes/turbo-sms-node/)
-   [Twilio](https://gudhub.com/ru/docs/automation-nodes/twilio-sms/)
-   [Update Items API](https://gudhub.com/ru/docs/automation-nodes/update-items-api/)
-   [Verify Email](https://gudhub.com/ru/docs/automation-nodes/verify-email-node/)
-   [Voice Machine Detection](https://gudhub.com/ru/docs/automation-nodes/voice-machine-detection/)
-   [Website Checker](https://gudhub.com/Automation_Nodes/website_checker.md)

Some of them, can be used only in the certain gh-elements:

-   [Quiz](https://gudhub.com/ru/docs/gh-elements/quiz/)
-   [API](https://gudhub.com/ru/docs/gh-elements/api-element/)
-   [Trigger](https://gudhub.com/ru/docs/gh-elements/trigger/)
-   [Smart Input](https://gudhub.com/ru/docs/gh-elements/smart-input/)
-   [Task](https://gudhub.com/ru/docs/automation-nodes/task-node/)

## Connections [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#connections)

The connection between the nodes is carried out using **sockets**. Through them, you can transfer various data between nodes. More precisely, data is transmitted from the [output socket](#output-socket) of one node to the connected [input socket](#input-socket) of another node. Thus, a chain of nodes will be created.

There three types of data for sockets. Depending on them, the sockets may have different colors:

![Item socket](https://bitbucket.org/AAtlas/gudhub-documentation/raw/master/Understanding_Gudhub/Automation/automation/item-socket.jpg "Item") ![Object socket](https://bitbucket.org/AAtlas/gudhub-documentation/raw/master/Understanding_Gudhub/Automation/automation/object-socket.jpg "Object") ![Value socket](https://bitbucket.org/AAtlas/gudhub-documentation/raw/master/Understanding_Gudhub/Automation/automation/value-socket.jpg "Value")

Due to that colors, you can determine which data the socket accepts or transmits.

As you have already read, **Sockets** also are divided into [Input](#input-socket) and [Output](#output-socket) sockets. They are divided depending on whether the socket accepts a value or transmits it.

> Every of node has unique set of sockets. This means that some nodes may have no input or output sockets, have unique sockets, and also sockets can be added by the user.

### Input Socket [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#input-socket)

Most nodes require certain data to work. Namely, you have to transfer data that you need to process. All that data is transmitted to the node through the **input sockets**. This socket can also be a trigger to start the node if any data is received.

### Output Socket [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#output-socket)

Every node processes data in a certain way. But all of them produce some result that can be used in other nodes. Thus, there are **output sockets** to transmit data to the following nodes.

## Node Sequence [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#node-sequence)

As you already know, nodes must be connected to each other to perform certain actions. Sometimes nodes can build a complex structure. Then the question arises in what sequence the nodes work.

> The sequence of nodes work is determined by the [Rete algorithm](#rete-algorithm).

### Rete Algorithm [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#rete-algorithm)

The **Rete Algorithm** is based on a dynamic data structure that automatically reorganizes itself to optimize the search during its use. It is very effective due to matching algorithm for implementing rule-based systems. The data do not need to be compared with each of the rule, because the static data can be ignored. Read more about [Rete Algorithm](https://rete.js.org/#/docs/engine).

In addition, there is one thing you should remember. The **work starts from the starting node**. That node takes data from the current field or item. And then passes it to the next nodes, which start the work of the next nodes and so on.

> In other words, each node, having finished its process, transmits the received data and thus starts the work of the next node that use the transmitted data.

## Data Model [#](https://gudhub.com/ru/docs/understanding-gudhub/automation/automation-overview/#data-model)

All data of the element automation is contained in the object called automation. When the element automation is activated for the first time, this object will be added to the gh-element data model.

Копировать

```json
{
    "automation": {
        "active": 1,
        "model": {
            "id": "trigger@0.1.0",
            "nodes": {
                "data": {},
                "id": 1,
                "inputs": {
                    "inpItems": {
                        "connections": []
                    }
                },
                "name": "Gh Element Node",
                "outputs": {
                    "newValue": {
                        "connections": []
                    },
                    "oldValue": {
                        "connections": []
                    },
                    "updatedItems": {
                        "connections": []
                    },
                },
                "position": [
                    -9.49564801367302, 
                    194.07235901146416
                ]
            }
        }
    }
}
```

| Name | Type | Description |
| :-- | :-- | :-- |
| active | `boolean` | _shows whether the automation is activated in the element_ |
| model | `object` | _contains the model of the element automation_ |
| id | `string` | _contains version of the trigger_ |
| nodes | `object` | _contains all automation nodes_ |
| data | `object` | _contains data of the node settings_ |
| id | `number` | _contains ID of the node_ |
| inputs | `object` | _contains data about node input sockets; sockets may differ depending on the node_ |
| inpItems | `object` | _contains connections of the input socket; this property is unique for the certain node_ |
| connections | `array` | _contains data about the node that is connected to this socket_ |
| name | `string` | _contains name of the node_ |
| outputs | `object` | _contains data of all output sockets; all sockets are unique for each node_ |
| newValue | `object` | _contains data of the output socket connections; this socket is unique for the certain node_ |
| connections | `array` | _contains data of the node to which the socket is connected_ |
| position | `array` | _contains coordinates that determine the position of the node in the automation space in the element settings_ |
