> For the complete documentation index, see [llms.txt](https://docs.skyone.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skyone.cloud/english/skyone-studio/modules/settings-and-operations/operations.md).

# Operations

"**Operations"** are atomic API calls, attached to a module, which encapsulate the execution of a previously configured function. In other words, operations are the actions that can be carried out by your module when they are subsequently added to a flow.

Example: imagine we have a module called "SalesY" and it can perform the following operations:

* List all sales for the day
* List the 10 best-selling products
* Add a product and its price

All these examples can be configured via operations.

{% hint style="info" %}
Without an operation, there is no way to use a module in your flows.
{% endhint %}

***

#### How to add an operation <a href="#how-to-add-an-operation" id="how-to-add-an-operation"></a>

1. Click on "**New operation"**.

<figure><img src="/files/1psLybSyiJKWrWdkPP8G" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You need to fill in the information in the "[Settings](/english/skyone-studio/modules/settings-and-operations.md)" section to enable the creation of operations.&#x20;
{% endhint %}

2. You will then be shown the screen for filling in the data for the new operation, which is divided into 4 stages:

* [General Information](#general-information)
* [Parameters](#parameters)
* [Request](#request)
* [Output structure](#output-structure)

Follow each item step by step:

#### **General Information** <a href="#general-information" id="general-information"></a>

1. Add the **name** and **description** of the new operation.
2. Then click on "**Next Step"**.

<figure><img src="/files/GwsDhRA3N73y8pCTw4bI" alt=""><figcaption></figcaption></figure>

#### **Parameters** <a href="#parameters" id="parameters"></a>

In this step you will configure the parameter that will be used in the module, always according to the type (Database, E-mail, REST, etc). To do this:

1. Click on "**Add parameter"**. The following modal will then be displayed:

<figure><img src="/files/PzpIHht9zuUTvSa86zWA" alt=""><figcaption></figcaption></figure>

The fields are:

1. **Name**: choose a name that best describes the parameter's function;
2. **Description**: describe the parameter's function;
3. **Type**: select here the type of data accepted by the parameter:
   1. **String**: any combination of alphanumeric characters
   2. **Number**: any number.
   3. **Boolean**: true/false
   4. **Object**: JSON object. Example: { "name" : "John" }
   5. **Array**: JSON array. Examples: \[ "A", "B" ], \[ "1", "2" ]
4. **Mandatory field:** makes the parameter mandatory when checked, so that it is always passed in the input JSON.
5. **Sensitive data**: when selected, this field denotes that the parameter value will not be published if the module is shared.
6. **Example**: add an example according to the data type specified in the Type field.
7. To finish, click "**Save changes".**

You can click on "**New parameter"** to add a new item, or choose the "**Next step"** button to continue with the settings ([Request](#request)).

{% hint style="info" %}
There is no limit to the number of parameters that can be created, but we recommend that you name and describe them in a structured way to make them easier to identify and use.
{% endhint %}

#### Request <a href="#request" id="request"></a>

In this tab, you can write a request using the parameters created earlier. To make it easier, we’ve organized the instructions by connectivity type. Click on the appropriate option:

<details>

<summary>Database</summary>

In **Database**-type modules, the request area contains the "**Query**" field and the **available parameters**, which can be dragged into the "Query" field. If you prefer, you can add other parameters directly to the Query.

<figure><img src="/files/hy3f7BuvyRSTJKbVA0WT" alt=""><figcaption></figcaption></figure>

Next, click "**Next Step**" ([Output Structure](#output-structure)).

</details>

<details>

<summary>Email</summary>

In **Email**-type modules, the request area contains the following fields:

* **Available parameters:** list of previously created parameters;
* **Recipient:** drag the corresponding parameter into this field;
* **Subject:** drag the corresponding parameter into this field;
* **Body:** in addition to the previously created parameter, this field requires an HTML code
* **Enable attachment:** allows you to include one or more attachments.

<figure><img src="/files/hevUlRD1GY5VOoQHTCdE" alt=""><figcaption></figcaption></figure>

Next, click "**Next Step**" ([Output Structure](#output-structure)).

</details>

<details>

<summary>REST</summary>

In **REST**-type modules, the request area contains the following fields:

* **Available parameters:** list of previously created parameters;
* **Method:** select the HTTP method to be used in the request. The available options are:
  * **GET:** Used to retrieve data.
  * **POST:** Send data or create new resources.
  * **PUT:** Fully update resources.
  * **DELETE:** Delete resources.
  * **PATCH:** Partially update resources.
* **URL (optional):** choose the format of the URL that will be used in the request:
  * **PATH:** Relative path, used when the base URL is already defined elsewhere.
  * **FULL URL:** Full address, useful for requests outside the domain.
* **Endpoint:** Type or paste the path that will be called to make the request.
* **Body:** If the selected method accepts a body (such as POST, PUT, or PATCH), enter the data to be sent. The request body can be in formats such as JSON, XML, or others depending on the API.
* **Header:** Define the HTTP headers to be included in the request, such as Content-Type, Authorization, or others as required by the service being integrated.
* **Query:** Insert query parameters that will be appended to the URL. These parameters are typically used to filter, sort, or paginate data in the request.

<figure><img src="/files/shBr1hmbqC9kScejidhv" alt=""><figcaption></figcaption></figure>

Next, click "**Next Step**" ([Output Structure](#output-structure)).

</details>

<details>

<summary>SOAP</summary>

In **SOAP**-type modules, the request area contains the following fields:

* **Available Parameters:** list of previously created parameters;
* **Body:** the SOAP request body must follow the XML standard. In the body, it is necessary to include the parameters that correspond to the operation requested from the SOAP service.
* **Header:** headers may include authentication information, such as tokens, or transaction control data.

<figure><img src="/files/evOnLEqDDM9WJy2FjXOw" alt=""><figcaption></figcaption></figure>

Next, click "**Next Step**" ([Output Structure](#output-structure)).

</details>

<details>

<summary>File</summary>

In **File**-type modules, the request area contains the following fields:

* **Available Parameters:** list of previously created parameters;
* **Operation type:** the available options are:
  * **Move a File:** When this option is selected, the screen shows the following fields:
    * **Path:** specify the directory path where the file is currently located.
    * **Name:** enter the name of the file to be moved.
    * **New Path:** provide the new path where the file will be moved.
  * **Delete a File:** When this option is selected, the screen shows the following fields:
    * **Path:** specify the directory path where the file to be deleted is located.
    * **Name:** enter the name of the file to be deleted.
  * **Save a File:** When this option is selected, the screen shows the following fields:
    * **Path:** specify the directory path where the file will be saved.
    * **Name:** enter the name of the file to be saved.
    * **Content:** specify the content to be saved in the file.
    * **Append content if a file with the same name exists:** check this option if you want to append the new content to the existing file instead of overwriting it.
  * **Read a File:** When this option is selected, the screen shows the following fields:
    * **Path:** specify the directory path where the file is located.
    * **Name:** enter the name of the file to be read.
    * **File Content Format:** select the content format of the file (binary or text).
  * **List Files:** When this option is selected, the screen shows the following field:
    * **Path:** specify the directory path whose files will be listed.

<figure><img src="/files/Fdp3dz85gGjWOyblUkfD" alt=""><figcaption></figcaption></figure>

**Create directory:** When this option is selected, the screen shows the following field:

* * **Path:** specify the path where the directory will be created.
  * **Directory**: enter the name of the directory.

<mark style="background-color:yellow;">Important: To ensure the operation works correctly, make sure your Agent is up to date.</mark>

Next, click "**Next Step**" ([Output Structure](#output-structure)).

</details>

<details>

<summary>RFC</summary>

In **RFC**-type modules, the request area contains the following fields:

* **Available Parameters:** list of previously created parameters;
* **Function Name:** specify the name of the function to be executed in the SAP system.
* **Parameter:** enter the parameters required for executing the selected function.

<figure><img src="/files/qKiItI5zYg6XIeZydkdn" alt=""><figcaption></figcaption></figure>

Next, click "**Next Step**" ([Output Structure](#output-structure)).

</details>

{% hint style="info" %}
Access the [MongoDB documentation](/english/skyone-studio/modules/settings-and-operations/operations/mongodb-operation.md) to learn more about the operations.
{% endhint %}

#### Output structure <a href="#output-structure" id="output-structure"></a>

In this step, take into account the type of connectivity chosen earlier ("[Settings](/english/skyone-studio/modules/settings-and-operations.md)"):

<details>

<summary>Database</summary>

To complete the configuration of the **Database**-type module, the "**Output structure**" screen is divided into two sections: **Input** and **Output**.

<figure><img src="/files/pHF2DQA61z6Pb5OGNsdS" alt=""><figcaption></figcaption></figure>

* **Input:** Contains the parameters configured in the [Parameters](#parameters) tab. You can make adjustments here, but these changes will only be used for testing and will not be saved.
* **Output:** No information is displayed before the test. After the test, the result will be shown here.

To test the operation, click "**Test**". If the result is correct, click "**Finish**" to complete the creation of the operation.

</details>

<details>

<summary>Email</summary>

To complete the configuration of the **Email**-type module, the "**Output structure**" screen is divided into two sections: **Input** and **Output**.

<figure><img src="/files/vwkjFSA9W4Dhe2dyNuDa" alt=""><figcaption></figcaption></figure>

* **Input:** Contains the parameters configured in the [Parameters](#parameters) tab. You can make adjustments here, but these changes will only be used for testing and will not be saved.
* **Output:** No information is displayed before the test. After the test, the result will be shown here.

To test the operation, click "**Test**". If the result is correct, click "**Finish**" to complete the creation of the operation.

</details>

<details>

<summary>REST</summary>

To complete the configuration of the **REST**-type module, the "**Output structure**" screen is divided into two sections: **Input** and **Output**.

<figure><img src="/files/IP8bYLZ2nVGzK9RuAGyE" alt=""><figcaption></figcaption></figure>

**Input:** Contains the parameters configured in the [Parameters](#parameters) tab. You can make adjustments here, but these changes will only be used for testing and will not be saved.

* **Output:** No information is displayed before the test. After the test, the result will be shown here.

To test the operation, click "**Test**". If the result is correct, click "**Finish**" to complete the creation of the operation.

</details>

<details>

<summary>SOAP</summary>

To complete the configuration of the **SOAP**-type module, the "**Output structure**" screen is divided into two sections: **Input** and **Output**.

<figure><img src="/files/F51Bp1WdA4V6xCrYwk0x" alt=""><figcaption></figcaption></figure>

* **Input:** Contains the parameters configured in the [Parameters](#parameters) tab. You can make adjustments here, but these changes will only be used for testing and will not be saved.
* **Output:** No information is displayed before the test. After the test, the result will be shown here.

To test the operation, click "**Test**". If the result is correct, click "**Finish**" to complete the creation of the operation.

</details>

<details>

<summary>File</summary>

To complete the configuration of the **File**-type module, the "**Output structure**" screen is divided into two sections: **Input** and **Output**.

<figure><img src="/files/uw9osNPRGB0IfEB1ZuKO" alt=""><figcaption></figcaption></figure>

* **Input:** Contains the parameters configured in the [Parameters](#parameters) tab. You can make adjustments here, but these changes will only be used for testing and will not be saved.
* **Output:** No information is displayed before the test. After the test, the result will be shown here.

To test the operation, click "**Test**". If the result is correct, click "**Finish**" to complete the creation of the operation.

</details>

<details>

<summary>RFC</summary>

To complete the configuration of the **RFC**-type module, the "**Output structure**" screen is divided into two sections: **Input** and **Output**.

<figure><img src="/files/GuOhCxwnlBBSX4DwmGyn" alt=""><figcaption></figcaption></figure>

* **Input:** Contains the parameters configured in the [Parameters](#parameters) tab. You can make adjustments here, but these changes will only be used for testing and will not be saved.
* **Output:** No information is displayed before the test. After the test, the result will be shown here.

To test the operation, click "**Test**". If the result is correct, click "**Finish**" to complete the creation of the operation.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.skyone.cloud/english/skyone-studio/modules/settings-and-operations/operations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
