# Экспорт промоакций
## Общий контракт постановки задачи экспорта

Способ постановки задачи экспорта описан [здесь](https://developers.mindbox.ru/docs/%D0%BE%D0%B1%D1%89%D0%B8%D0%B9-%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF-%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2).

## Контракт экспорта промоакций

Во входных параметрах можно указать:

* Дату в формате UTC. Тогда в выгрузку попадут только промоакции, которые изменялись после этой даты
* externalID сегмента промоакций, если таковой не был выбран в настройке операции

В выгрузку не попадут промоакции в статусе "В разработке".

## Формат выгружаемого файла

### Описание базовых полей экспорта

```json title="JSON"
{
  "promotions": [
    {
      "ids": {
        "externalId": "<Внешний идентификатор промоакции>"
      },
      "name": "<Название промоакции>",
      "description": "<Описание промоакции>",
      "startDateTimeUtc": "<Дата старта промоакции>",
      "endDateTimeUtc": "<Дата окончания промоакции>",
      "state": "Paused/Archived/Execution",
      "customFields": {
        "customField1" "<Значение поля>"
      },
      "products": {
        "includedSegments": [{
          "segmentation": {
            "ids": {
              "externalId": "<Внешний идентификатор сегментации>"
            }
          },
          "segment": {
            "ids": {
              "externalId": "<Внешний идентификатор сегмента>"
            }
          }
        }],
        "excludedSegments": [{
          "segmentation": {
            "ids": {
              "externalId": "<Внешний идентификатор сегментации>"
            }
          },
          "segment": {
            "ids": {
              "externalId": "<Внешний идентификатор сегмента>"
            }
          }
        }]
      },
      "areas": [
        {
          "ids": {
            "externalId": "<Внешний идентификатор зоны>"
          }
        },
        {
          "ids": {
            "externalId": "<Внешний идентификатор зоны>"
          }
        }
      ],
      "pointsOfContact": [
        {
          "ids": {
            "externalId": "<Внешний идентификатор точки контакта>"
          }
        },
        {
          "ids": {
            "externalId": "<Внешний идентификатор точки контакта>"
          }
        }
      ]
    }
  ]
}
```

## Ограничение при экспорте точек контакта, выбранных через сегментацию

Если в промоакции точки контакта выбраны **через сегментацию**, в поле `pointsOfContact` попадут только те точки, которые принадлежат одному из системных каналов верхнего уровня:

* `Offline`
* `Sites`
* `MobileApp`

Точки контакта, вложенные в каналы других типов (например, в пользовательские категории), в экспорте **не возвращаются**.

:::info{title="Как обойти ограничение"}

Перенесите нужную категорию или отдельные точки контакта под один из поддерживаемых системных каналов — например, в `Offline`. 
<br/>
Как это сделать:

* в интерфейсе в разделе **Настройки → Клиенты и действия → Точки контакта** через **«Действия → Назначить каналы»**;
* с помощью [импорта по API](https://developers.mindbox.ru/docs/bulk-import-touchpoints-v3) или [импорта через интерфейс](https://help.mindbox.ru/docs/point-of-contact-import).

:::

Ограничение не действует на промоакции, где точки контакта выбраны **вручную из дерева**: в этом случае список ТК возвращается полностью, независимо от того, в каком канале они находятся.
