# 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](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUTMVjR_pzs7yhEEbUD%2F-MUTNkL9Ffr0HRUAxeqo%2FScreenshot%202021-02-26%20at%2007.49.23.png?alt=media\&token=d278c1c2-2206-4838-9022-c5a0cb33fe90)

## &#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](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUTMVjR_pzs7yhEEbUD%2F-MUTOiVAd_EK2IxDPlte%2FScreenshot%202021-02-26%20at%2007.53.37.png?alt=media\&token=ff31fb91-92d5-43b9-ae9d-27d9879c84df)

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!](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUTVcTe1SFohkk6Z1sP%2F-MUTWgWzMosf2fBtEYzI%2Fseliom-1.gif?alt=media\&token=5c2cf8af-f594-48a9-865c-e7776f0075b2)

Our final process will look like this in the editor:

![Drag and drop the nodes to create a workflow like this one](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUTVcTe1SFohkk6Z1sP%2F-MUT_X9S-Al-3q1whyXx%2FScreenshot%202021-02-26%20at%2008.45.13.png?alt=media\&token=852ba56c-448e-4934-a43c-26ef6ceecdb0)

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](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUTVcTe1SFohkk6Z1sP%2F-MUTXLDhTm6RJGqvV4I0%2Fseliom-2.gif?alt=media\&token=f58d9fca-8af0-4451-ba91-78a73c13d110)

### :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](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUUCDgj7Pzsmme22AZG%2F-MUUEhA1tkixEdQDO50G%2FScreenshot%202021-02-26%20at%2011.49.28.png?alt=media\&token=fdc6d913-8794-4f25-9f9e-47f32b631a36)

{% 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](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUUCDgj7Pzsmme22AZG%2F-MUUIBAb0BIXKoz7sJJq%2FScreenshot%202021-02-26%20at%2012.04.41.png?alt=media\&token=7826a14b-a03b-4ec3-8b43-482ca47f3812)

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](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUUS0WxxH7EpxZdYNBZ%2F-MUUSp-wMkWusj46bL3B%2FScreenshot%202021-02-26%20at%2012.51.09.png?alt=media\&token=c43d84b3-7696-4da0-be61-1403721d1119)

{% 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](https://295885209-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUS2Zyga4ahUUVXmcLA%2F-MUUXi7kt6UxI4UBxL9c%2F-MUUZQ4LU0Ee2-CNCxCQ%2Fseliom-3.gif?alt=media\&token=bedd502a-2b15-45a8-b44e-08588311b780)

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

{% content-ref url="launching-our-process" %}
[launching-our-process](https://docs.seliom.com/getting-started/start-exploring/launching-our-process)
{% endcontent-ref %}
