# COA and dataflows

As explained on the [Phases and contracts](/data-mover-1.21/contracts/what-is-a-contract/phases-and-contracts.md) page, there are three types of contracts: input, mediation, and output.&#x20;

The ordered sequence of contracts that collectively process data is called a **chain of contracts**. It can begin with an input contract to acquire data, continue with a mediation contract to transform or enrich it, and conclude with an output contract to deliver or make the processed data available.

A **Dataflow Instance** represents the execution of a chain of contracts, triggered when a new file arrives in Data Mover through an **input contract** - or through a **connection contract** if Data Mover acts as a server.

The contracts in the chain share a **Dataflow Instance Context (DFIC)**, which is the set of information of the dataflow instance. Data Mover creates the DFIC when the dataflow instance starts.

It contains essential information for the dataflow instance, including:

* the unique identifier of the dataflow instance (DFIID)
* system attributes (set by Data Mover) and user attributes (set by the user)
* additional information (*originals*) about the file and the dataflow

It is accessible during all input, mediation, and output phases.

Refer to the [Dataflow Instance Context (DFIC)](/data-mover-1.21/workflow-templates/dataflow-instance-context-dfic.md) page for details.&#x20;


---

# 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/coa-and-dataflows.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.
