# Automate

> Let Proxus act on your data. Pipelines, rules and functions open alarms, send messages, shape values and call other systems.

Source: https://proxus.io/docs/automate

**Automate** is where you tell Proxus what to do with the data it reads: open an alarm when a value crosses a
limit, warn when a machine goes quiet, clean values before they are stored, send a summary to a database, or run
your own code. In the hub, these screens are in the **Automate** menu.

## What you set up here

| Screen | What it is for |
| --- | --- |
| **Pipelines** | A pipeline reacts to data or events and does something with them: alarms, notifications, calculated tags, deliveries to a target, writes to a device. You build it from a goal in plain sentences, or on a canvas of steps. |
| **Rules** | A rule watches one kind of event (new data, a device status change, a log entry, gateway metrics) and fires when a condition you write as an expression is true. |
| **Rule Actions** | What a rule does when it fires: send a notification through a channel, or forward the matching data to an outbound target. One action can serve many rules. |
| **Functions** | Your own C# code, written in the hub and run on the edge gateways you choose. For logic that the other tools cannot express. |

## Which one to use

All three run on the edge gateways you choose, next to the machines.

- Start with a **pipeline**. It covers most alarm, shaping and delivery tasks, and you can rehearse it on stored
  data and run it in Shadow before it does anything real.
- Use a **rule** when you need a condition over the whole message (its tags, its place, its attributes) or a check
  on logs and gateway metrics, written as one expression.
- Write a **function** when you need code: your own protocol over MQTT or HTTP, a calculation with state, an
  integration that no pipeline step offers.

## Start here

For help choosing, see [Pipelines, rules and functions](https://proxus.io/docs/concepts/pipelines-and-rules).
