# Creating our process on Seliom

Head over to the [Processes](https://app.seliom.com/app/processes) page and click on **Add new process**. Give your process a meaningful name such as **Time-off Requests**.&#x20;

After your process is created, click on it to view it.

## :writing\_hand: Documenting our process

The first step in Seliom is to write a description of your process for others to understand. We provide a powerful **text editor** to make this easy for you.

![Seliom's document editor](/files/-MUTNkL9Ffr0HRUAxeqo)

## &#x20; :rocket: Automating our process

Head over to the **Workflow** tab and then click on **New workflow.** You will now see the *Workflow Editor***.**

![Seliom's workflow editor](/files/-MUTOiVAd_EK2IxDPlte)

You can drag and drop nodes from the left sidebar onto the canvas and connect them however you like!

![What you draw is what you get!](/files/-MUTWgWzMosf2fBtEYzI)

Our final process will look like this in the editor:

![Drag and drop the nodes to create a workflow like this one](/files/-MUT_X9S-Al-3q1whyXx)

Now that we have drawn our process, let's **configure it**.&#x20;

Double click on a node to open its settings. Different types of nodes have different settings that you can adjust:

![Double click on a node to configure it](/files/-MUTXLDhTm6RJGqvV4I0)

### :sparkler: Configuring the Start Node

The **Start** task represents the first task required to start this process. You can only have one start task per process. They are represented by a yellow node.&#x20;

In our example, we are going to create a form in the **start node** that asks for a *start date* and an *end date* for our time-off requests.

Double click on the node and configure it the following way:

* In the **Basic Details** tab, give it a name such as **Time-off Request.**
* In the **Start Settings** tab, indicate the team members who can create time-off requests.&#x20;
  * For this demo, make sure to add at least yourself!
* Head over to the **Form Editor** tab, and click on **Add Element.** You can create different form elements that request the information you need to start a process. For this demo, make sure to have:
  * A *date* element, called **Start Date**, with a *Field ID* of **start\_date.**
  * A *date* element, called **End Date**, with a *Field ID* of ***end*****\_date.**

![This is how you design forms in Seliom](/files/-MUUEhA1tkixEdQDO50G)

{% hint style="info" %}
The **Field ID** is an identifier for your form element. You can reference form elements in other tasks and robots to create powerful business applications.
{% endhint %}

### :raised\_hands: Configuring Task Nodes

**Tasks** are represented by blue nodes and indicate something that needs to be done manually by a team member. The most important configuration options for tasks are:

* The **form editor,** used to indicate the data that must be provided in each task. This is the same as in the *Start* node.
* The **task owners**, where we indicate who is responsible for performing each task.

For this example, we only have one **Task** called **Update company calendar.** This is the task that **Clark** must perform when **Lois** approves a Time-off request. Let's go ahead and configure it:

Double click on the task and head over to the **Task Owners** tab.&#x20;

* In the **People** section, you should indicate that **Clark** is the person who should perform this task.

![Make sure to add Clark to the People section](/files/-MUUIBAb0BIXKoz7sJJq)

For this task, we are going to leave the **Form Editor** empty, as we don't require **Clark** to provide any data.

{% hint style="info" %}
The **form editor** and **task owners** tabs offer a lot of custom options. Explore them to learn more.
{% endhint %}

### :large\_blue\_diamond: Configuring Decision Nodes

**Decision** nodes help us create conditions in our processes. For example, if a request is *approved* we might want our process to go a different way than if it was *not approved*.

We only have one decision node in our process called **Approved?**. This is a task that is assigned to **Lois** when a time-off request is created.&#x20;

Double click on the decision node to configure it.&#x20;

* In the **Decision Makers** tab, select **Lois** as the person in charge of making the decision.
* In the **Decision Options** tab, you can see the different options that the person making this decision could select. By default, we always provide *Approved* and *Not Approve&#x64;**.*** You can leave this options as they appear.

{% hint style="info" %}
Decision nodes offer advanced automation options with formulas. We are skipping this for now.
{% endhint %}

### :robot: Configuring Robot Nodes

**Robots** (represented by purple nodes), are automatic tasks that do not require human intervention. They can be used to send emails, wait until a specific date, or connect to external systems. In this example, we are using 2 **email robots:**

* When **Lois** denies a request, the **Notify Requestor** robot sends an email to the requestor letting him know.
* When **Lois** approves a request, the **Notify requestor of approval** robot sends a similar email to the requestor letting him know.

The process for configuring both robots is very similar:

* First we double click on the Robot node.
* Then we click on the **Robot Settings** tab. We select **Email Robot** under Seliom Robots.
* Under **Recipients**, we click on **Add Recipient,** and from the dropdown we select **Previous Task Owner**. We then select the *Start* task, called **Time-off Request**.
* The rest of the fields are optional. We recommend adding a *Sender's name* and the following *Body* to your email:

```
The time-off request from {start_date} to {end_date} has been approved. 
```

![Example of an email robot](/files/-MUUSp-wMkWusj46bL3B)

{% hint style="info" %}
You can see we are referencing in our robot the *start\_date* and *end\_date* **Field ID** from a previous form in our process.
{% endhint %}

### :jigsaw: Finishing our automation

Now that all the steps in our workflow have been configured, we just need to click on the **Automate** button in our canvas. This will validate our process to ensure there are no errors.&#x20;

If any warnings or errors pop up, correct them and try again. Otherwise, click on **Submit.**

{% hint style="warning" %}
You should notice a warning regarding the **Update company calendar** task, as we did not fill out its form. You can safely ignore it.
{% endhint %}

![Click on Automate to publish your process](/files/-MUUZQ4LU0Ee2-CNCxCQ)

Now that our process has been automated, let's see it in action:

{% content-ref url="/pages/-MUUZjtmouNKrvOH5NqC" %}
[Launching our process](/getting-started/start-exploring/launching-our-process.md)
{% endcontent-ref %}


---

# 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.seliom.com/getting-started/start-exploring/creating-our-process-on-seliom.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.
