# Automation Components
While creating automation you operate with three types of components:
* Triggers
* Core Components
* Action Components
Triggers define when to start the process, core components navigate the automation flow, and action components are responsible for the operations execution.
## Triggers
Trigger is an automation component that specifies what event will start the automation process. There are four trigger types available.
### Trigger Types
Skyvia provides manual, connection, schedule, and webhook trigger types. Choose one of them to define what type of event triggers the automation process.
#### Manual

Choose manual to start the process only when you need it by pressing Run button on the upper right of the automation object page.
Manual trigger includes payload field. Add JSON to payload if you need to add input data manually.
#### Connection

Connection trigger type utilizes the [Connection]() you create between Skyvia and prefered data storage. It has a set of predefined triggers that start the automation process based on the condition set inside the trigger. Access different triggers from a Trigger dropdown.
Connection trigger type has two additional parameters: Fields and Parent relations.
**Fields** --- unknown (вероятно просто заглушка)
**Parent Relations** --- unknown (вероятно просто заглушка)
#### Schedule

Сhoose schedule to set the state, reccurance and time-zone and run the automation repeatedly based on prefered settings.
#### Webhook
Webhooks are automated messages sent from apps when something happens. Each message has the payload and a unique URL. Choose Webhook trigger type to tell Skyvia to listen to such messages and start the automation in case one comes.
Define the webhook url by pressing **Set Webhook**.
## Core Components
When building an automation Skyvia allows you to build a flow with conditions. Core components are in charge of such conditions. They define what data will be sent to Action components to peform an operation, and are responsible for stopping the automation.
### If

**If** component sets a condition and checks if the input data matches that condition or not. If it does, component returns true, if not --- false. You can set the further automation flow for both cases.
To set a condition, click on the If component and type in your condition in the condition field. To write a complex condition, use [Expression Editor]().
### Switch

**Switch** is similar to **If** component, but instead of comparing input data to one condition, it compares input data to any number of conditions and if the result is true it executes the according automation branch.
### Foreach

**For-each** accepts an array of data as an input and performs an action on each element of that array.
### Break Loop

**Break Loop** is designed to stop loops such as Foreach at some specific point or depending on a specific condition.
### Parallel

Use **Parallel** to perform two or more actions at the same time. It helps to save time when processes are being run independently.
### Try Catch

**Try Catch** component is designed for error tracking. It consists of two branches. Try, which tries to execute some action and Catch that catches the error if Try branch fails. The error messages can be written in the variable set in the Try Catch options.
### Exception
While placed outside **Try Catch**, **Exception** triggers an error and the automation flow stops. When used in a Try Catch, it switches execution to the Catch branch.
### Stop
Use **Stop** to end the automation flow execution. However, if there is a paralel branch being executed it will finish its execution before the automation stops.
## Action Components
While Core components helps you to build the automation flow and manage branches, Actions components are responsible for operations that will be performed on the data inside the automation flow. The are two action components available right now --- Action and Set Variable.
### Action

Action component performs an action on data from the specified connection. Different connections can have different list of actions available from the actions dropdown. To learn more about available actions and their settings, visit [Actions]() documentation page.
### Set Variables

**Set Variables** component allows you to create a variable and assign data to the variable to use it in your automation flow.