# Actions, triggers and workflows

Before learning how to create a contract in Data Mover, it's important to understand that each contract must have one or more associated **actions**. These actions define contract details such as the folder in the data producer's Virtual File System (VFS) from which Data Mover will retrieve files, the types of files to be retrieved or sent, the timing of when the action should be performed, the email address to which confirmation messages should be sent, and so on.&#x20;

**Actions are triggered by events**, such as:

1. the arrival of a file
2. a specific time
3. an on-demand trigger via API&#x20;

Contract actions are implemented by workflows, which define the [trigger](/data-mover-1.21/workflow-templates/triggers.md), the logic, and the single steps that will be executed.

Data Mover offers a variety of **workflow templates** that guide you on which actions to take following an event.&#x20;

Workflow templates are explained in detail in the [Workflow Templates](/data-mover-1.21/workflow-templates/what-is-a-workflow-template.md) section. To get started, keep in mind the following key points:

* For **input and output contracts**, you must use one of the **System workflow templates provided by Primeur**.
* For **mediation contracts**, you must design a **Workflow template**.

There are additional workflow template types available, but for now, let's concentrate on these two types.

This diagram summarizes the above concepts. Input, mediation, and output contracts can each have multiple actions, and each action must have its own [trigger type](/data-mover-1.21/workflow-templates/triggers.md), [workflow template](/data-mover-1.21/workflow-templates/what-is-a-workflow-template.md), and [variables](/data-mover-1.21/workflow-templates/variables.md).&#x20;

<figure><img src="/files/kEVe7QuNROdkkpxzRqTc" alt="" width="393"><figcaption></figcaption></figure>


---

# 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.primeur.com/data-mover-1.21/contracts/what-is-a-contract/actions-triggers-and-workflows.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.
