> For the complete documentation index, see [llms.txt](https://docs.aitheon.com/aitheon-core/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aitheon.com/aitheon-core/main-elements/inputs-and-outputs.md).

# Input and Output Sockets

A [**node** ](/aitheon-core/main-elements/nodes.md)(or a [**sub-graph**](/aitheon-core/main-elements/sub-graphs.md)) receives a message (information) through its Input socket. Then some logic in the node processes and a new message goes out as an output through the Output socket.

## Sockets

Sockets define what kind of message the node receives and sends out.

When you are making a[ **Provisional node**](/aitheon-core/aitheon-core-quick-start/add-provisional-node.md) or a [**request at Marketplace**](/aitheon-core/main-elements/marketplace.md#requests-tab), you can set up the node's socket.&#x20;

![](https://11324685-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MFodfgQtPYjVLJ1kJJi%2F-MIswMoAvffCeAPvHJiX%2F-MIsxL9J_r95lpHDjnDu%2Fsockets.png?alt=media\&token=04a42c2f-e028-4b3c-ac3f-403d313d7a0f)

If you know what data will "come in," choose the group and the type of socket from the list **(1)**. In this example, this is the **Common** group and **AnyData** type.

## Socket Groups

Usually, a socket group corresponds to a specific Aitheon service.

### Common

* Ping
* AnyData
* NumberSocket
* UrlsList
* ErrorSocket

### ProjectManager

* ProjectTaskId
* Project
* ProjectId
* Label
* Epic
* EpicId
* Comment
* Stage
* ProjectTask

### Communications

* MemberInfo
* Channel
* ChannelMember
* ChannelMemberMetadata
* Message
* ConnectionRequestAction
* ConnectionRequest
* TypingStatus
* Ping

### Marketplace

* StoreRequest

### Devices

* DevicePose

### ItemManager

* Item
* DeleteByID
* Category

### SmartInfrastructure

* CreateRobotTask

## AnyData

If you are not a developer, you don't need to know data types and sockets. You may outline the automation on the graph table just by using the **AnyData** socket of the **Common** group.&#x20;

![](https://11324685-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MFodfgQtPYjVLJ1kJJi%2F-MMKVfk9Uhufe82VuT67%2F-MMKlpJ88DwOL6HywuM6%2Fanydata.gif?alt=media\&token=1c2a3fbb-859d-4444-b010-119c9f12f0a0)

During the initial deployment, this socket will automatically transform to a socket of the corresponding type: &#x20;

![](https://11324685-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MFodfgQtPYjVLJ1kJJi%2F-MIswMoAvffCeAPvHJiX%2F-MIszmU8hXWEir9C8fqj%2Fmessage.png?alt=media\&token=3a069f6c-036c-4b86-859f-ebfea2c8ed77)

In this example, **outputAnyData** (this is the name, not a type of socket) with the socket of **AnyData** type will transform into a socket of **Message** type - due to the connected **incomingMessage** output socket.

So basically, **AnyData** socket allows you to build some business logic connecting nodes and sub-graphs without paying attention to technical details. If you describe your needs and use cases in a request or a provisional node properly, a developer will set up appropriate sockets and other settings for you.

## Mapping node

If you need to connect not corresponding sockets, you may[ **create a Mapping node**](/aitheon-core/aitheon-core-quick-start/create-mapping-mode.md).
