> For the complete documentation index, see [llms.txt](https://docs.mixapp.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mixapp.io/konnektory/rabota-s-kontekstom.md).

# Работа с данными контекста

В рамках контекста процесса, можно передавать данные между коннекторами. Как правило эти данные служат либо входными параметрами для выполнения бизнес логики коннектора, либо выходными данными, как результат выполнения бизнес логики коннектора.

Доступ к данным контекста в рамках коннектора осуществляется через обращение к свойству **ctx.data**

## **Как формируются данные в контексте**

При инициализации данных перед выполнением коннектора,  объект `ctx.data`  формируется из данных `ctx.connector.params` (те данные которые были заполнены пользователем в настройках коннектора) и из данных, которые были переданы от предыдущего коннектора.

Такой подход позволяет сделать коннекторы более гибкими и всегда иметь возможность переопределить входные параметры в предыдущем коннекторе если это необходимо.

{% code title="Prepare connector ctx.data" %}

```javascript
ctx.data = deepMerge(
    ctx.connector.params,
    previousConnectorData
);
```

{% endcode %}

{% hint style="info" %}
В рамках основного кода коннектора или предобработчиков мы рекомендуем обращаться к данным, которые были установлены в настройках коннектора через ctx.data. \
\
Данный подход позволит задавать входные данные коннектора пользователям и всегда иметь возможность переопределить эти данные с помощью передачи их через контекст от предыдущего коннектора.&#x20;
{% endhint %}

## Передача данных следующему коннектору

Для того чтобы передать данные в следующий коннектор необходимо удостовериться, что описанная схема исходящих данных текущего коннектора и схема входных данных следующего коннектора соответствуют формату передаваемых данных и после этого вызвать метод ctx.setData(data)

{% code title="First connector" %}

```javascript
const user = ctx.getUserById("some id");
ctx.setData({
    userId: user.id,
    email: user.email
});
```

{% endcode %}

{% code title="Second connector" %}

```javascript
const { userId, email } = ctx.data;
// do something with data
```

{% endcode %}

{% hint style="danger" %}
Если схемы входных или исходящих данных не соответствуют передаваемым данным, то данные будут проигнорированы, либо будет выведена ошибка валидации данных.
{% endhint %}

## Пример передачи данных и переопределения начальных значений

**Первый коннектор запрашивает из БД пользователя**

![](/files/-LdEjTmUVDsUNRI0yHhy)

**Второй коннектор отправляет email пользователю**

![](/files/-LdElui3BD5-oS748FCz)

В настройках коннектора можно задать данные для отправки письма (email, subject, message)

![](/files/-LdElqCkqqJeFeNlcpLk)

При соединении коннекторов, мы связали email из первого коннектора с email второго коннектора, а также name из первого коннектора с message второго коннектора.

Это переопределит значения email (<john@domain.com>) и subject (HelloJohn) заданные в настройках второго коннектора и письмо будет отправлено пользователю, который был получен в первом коннекторе

![](/files/-LdEmN2pGcuiroI56Ms0)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.mixapp.io/konnektory/rabota-s-kontekstom.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.
