# Вкладка внешних запросов — External Requests

Вкладка EXTERNAL REQUESTS — вкладка, на которой создаются Внешний запрос для дальнейшего их использования в Агентах Компания.

## Переход на вкладку Внешних запросов

1. В список Внешний запрос Компания можно перейти двумя способами:
2. 1. перейти на вкладку Resourses (Вкладка ресурсов Компании — Resourses) и нажать кнопку External Requests;
   2. перейти в БотБилдер Агента и открыть вкладку External Requests.

## Список Внешних запросов

На вкладке Внешний запрос представлен список всех Внешний запрос Компания:\
![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-ktquuFyuAQ/9892bc8588e3d248a52ba39b64d04fedd56d253698bf2f129927770564ff2755004fd4ed8ce346f654190944602a4d58cbd0d868e985f3d427bea7e491c6d5784319e97034ba0621985b95e663980d82a08d28a32c11408e70ee7b2d1c6e536b1782ff26)

1. Name — названия Внешний запросов;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-8IrTERHttw/e5803c7c9eef8bcfef98521efa4ee3c0905a7f7b27f3f9c2363e3e91a244f9e4dae9fd9ac6cc30c8af75cfc585b3fdb50bf401543c140bd51509572c2ea8ccaa9562f928395fb2d50befe4c1a4d265fe2d2d79f7bf5c612145eae62771dc7286bb989f27)
2. Кнопка сортировки Внешний запросов по алфавиту;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-tYjOCeKPIh/ca11743a110a6ecf66e81dfc62826c2f56dcd19004e1ea71a5778ee7e08d08f3eecba53be0318d652bd82b850a943dd1cac953abcc06c6e6e8db8d69a88ca77a0d085c7851b3871ad7f438a2525e487d0477aaa2744b0d3d8ea47b41394459d7cdfdac84)
3. 1. По нажатию кнопки сортировка Внешний запросов меняется: от начала алфавита к концу и наоборот.
4. Method and URL — URL назначения, куда должен быть отправлен запрос и метод HTTP запроса;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-5IJj1KWCzV/392419a13a36e7450076545ad8054bd26cbb6c6bf05f09131dbec594cad2bd9e582d69c00742b1db08369a9e7d3847b965be5d5aae9ae685956d65ced1e1acb8f8b1206e969cf77b79cb7c90e1870d64c2413000bd82968dd0540df92df456a80be966ed)
5. In use — использование Внешний запросов в Агентах;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-i3oGOoUAul/f864060f3b2bf6b6838378c989dba30ab50b623a462510956b297df088530eb46bb697149c8498b5f26e9037c78e29b0ae883ad2db6ce01a06c206f40570f5311f1e0b02d4399adf88e1c0013a8b575be9359ce22abbb97eb99173d51c9acc77203bbfa2)
6. 1. Напротив каждого Внешний запроса, используемого в Агентах, проставлена галочка и кнопка Clarify;\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-zzM0Z2wXjC/6a458378357a6f054ba91397edf0a0c178148ba96bef69bd01febaa80b3da01fedb100540add1072b5774735bf86f2e008aaa4068e7df5ad200efab6f86e9641b7bdf90cdcedcb5b45c8d17c0e7f0a726ab9d657671cbdf19f9cab1e80d0e4c3b49de9b5)
   2. По нажатию кнопки Clarify выводятся иконки Агентов, в которых используется Внешний запрос.\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-2vXCXvH7rS/a9339c8247f34d6562fe28f8a0f06d829d154db05a0d68cfc8830f48614ff486afef6f482a78500ff66d3b99fa3499d799ade239d15324415b03006e9de4adb1b330e2ddeb7f62a31171b04d607cc0e72b4f098048f341ba2aee9092d87a1676e845ccb5)

<br>

## Поиск по Внешним запросам

### Поиск по имени Внешнего запроса

1. Для совершения поиска по имени Внешний запроса необходимо ввести искомое значение в поле поиска.
2. В списке будут выведены только Внешний запросы, содержащие в названии искомую строку;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-219cuTYaHd/908574998497b0dd7f4f89e87cc5ed02a87847ef88ddd2e48129cb08cc36bac875fff7fc681d3a5a5067294ec9727f20161b5ccb69e8818301a1f3a193af73b5bafb494daf70e8ff123c28a3a290c5bfe450aeea9edbfce61074c928a0dca934490cb23e)

### Поиск по использованию Внешнего запроса

Поиск по использованию Внешний запроса в Агентах производится с помощью фильтров In use и Not in use.

1. По нажатию на кнопку In use выводятся Внешний запросы, используемые в Агентах;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-M7x8UApwti/899a2916fe371473419d1cff2cc4d81ea571b14fd2d5d640ef7fe0e54d392ff69ec97b7f9cc3dfc4618ebdb5a95166deddd8da571576ca6e76d8cb00b2f8de581441d1f1558d37bfa53767b0f7311cadc07310774b9e261287b77f0583cfe24c12bd7d74)
2. По нажатию на кнопку In use вместо фильтра Not in use выводится фильтр Agent — фильтр по Агентам.
3. 1. По нажатию на кнопку Agent открывается панель поиска по Агентам.\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-iS7PHTlYUO/f5d0ec0d9dfae2e9f66489cbdd356b4f5a35406b333669bd72927f83ed09a9e3b2c7f22cdeff9d2d4b6e4ca1676df23c86cfb622200e67c20763933c246372675dc880f295eb52048ffc8b245f2e8a10931967a900da931cf3601282e1c431b2e4892742)
   2. Чтобы найти Внешний запросы, которые используются в определенных Агентах, необходимо кликнуть по необходимым Агентам в списке.
4. По нажатию на кнопку Not in use выводятся Внешний запросы, не используемые в Агентах.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-C-twLVpJU2/4376adb1a609c8388d209a17a4747b3a63db6031becf3bad5d18ebd044ba476605eceb0862b94f157d5877cac6048025896044eb8e4d1c176244289222f0d056a603862e4b87f0b5ae631131902aaf0111ec794aab0e3aca08c4d440568f8d4a908c4f46)

## Создание, изменение и удаление Внешних запросов

### Создание Внешнего запроса

Чтобы создать Внешний запросы, необходимо:

1. Перейти в список Внешний запросов.
2. Нажать кнопку Create new.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-EW2UtlSHnl/28f292012e5c5cee078e01f58b9a635b4d7e6d9926b94b4b6b6df91e2b0d564fb74b03b31e4b118dd2c3677c498d597f85f6c92883c4bbc4ce2ddeb74de71f60862e52aa00997fdb46ea806179d3d313c14ec762c21033905bd806ad80c85ef67719344e)
3. По нажатию кнопки на панели справа откроется форма создания нового Внешний запроса.
4. Необходимо заполнить поля на вкладках формы создания Внешний запроса.

#### Вкладка Main

Вкладка Main содержит базовые данные Внешний запроса.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-wxBLD9RnSf/36d54bd0743e56bcc7af939ac739b2e3245433a2cc5cea5c75f8f1c9723347bc78fc2d48a0a53131c7a8a35713caf8c2fed62ab15ad7ba5239676fed1f38483194c0bb69e07ce1170ea37b03b0046814eb400f9d7b77c7d225bc896c88de422cc92707ad)Поля вкладки:

1. Name\* — название Внешний запрос. Максимальная длина значения поля — 1000 символов.
2. Description — описание Внешний запрос. Максимальная длина значения поля — 1000 символов.
3. Метод запроса\* — HTTP метод для данного запроса. По умолчанию установлен метод GET.
4. 1. GET
   2. POST
   3. PUT
   4. PATCH
   5. DELETE
   6. HEAD
5. Endpoint\* — адрес вебхука, на который будет отправлен данный Внешний запрос. Максимальная длина значения поля — 1000 символов.
6. 1. Формат значения:
   2. 1. Строка\
         ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-5L29MMdLkF/2c14d4420201811d2bc45a0cb59ecef2d9a1185da24cb7924770c9c2c53de77f0ad5d9f6809194dca2928d6fd71e52b455d3e8d676b0fe4c704866bb23641ef9d9283b492f30c98ef542341a0789f89f48a281a849ce694afa60b9ce265bb6a053735739)
      2. Контекстная переменная  в формате {{ var }}\
         ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-cXgr-unF5a/239a6eea92c07b3ff2c6c460f3a2d161492e1e65dfc2583e2eec734bcce12077d1ee815f7f07ee61d8bdc84b60b11585fadb96b505e89c9e6de1dca5f86cb96f12ebef45a9321c59909335406b1f1304f63f175d0cd882f9f632308ce05917ae09b54968)<br>
      3. Выражение или Выражение с управляющей конструкцией. Подробнее: Использование синтаксиса в External Request.\
         ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-kZbGIEeOCX/3f98bd6406156eacba32b245d1d21761cc7f036e7811d753744e9d48534ed15084765b4fbb10292d24b39fc5fe24d53367fb24c61fb69ecd54b8ae88abdc1ecbb5a6d7e1ca46c9029d484466982fd9faf1e563e8f70161bcc5950d11726d6fec0d443aea)

#### Вкладка Headers

На вкладке Headers можно добавить заголовки к Внешний запросу.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-KQQVaqyWhq/491326ae7660bd0fb6305d2e3c09bdbaf3799ae7e1301d463a0399e76538c2d187ca9a83c67f7a922f49576446d87aad7f07611c0f81a4fbf331d55c529eed11b95696ff1a053cf50ef3011bcfb207357077ce1733d598f00fb4f13d02a050187db652d9)Поля и кнопки вкладки:

1. Header\* — название заголовка. Максимальная длина значения поля — 1000 символов.
2. Value\* — значение заголовка. Максимальная длина значения поля — 10000 символов.
3. 1. Формат значения: допустимо использование Выражение или Выражение с управляющей конструкцией.
4. Кнопка крестика удаляет заголовок (строку).
5. Add new field — кнопка добавления нового заголовка.

#### Вкладка Query parameters

На вкладке Query parameters можно прописать параметры, которые будут подставлены к URL запроса.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-R-iEcXs1wg/b267dc8345a61e3a6d2daef63de17882e45a7a96967a77148a27233f139f675290b9d8d00f04e20a56a1629fbabc4200bbcf6724d4c51423be6e4536a6ef33b7ea99d71298642ceef5153dca087bf2d29314a9093b79a1fc9b1b0f4505892cb1b1eb7cf9)Поля и кнопки вкладки:

1. Parameter\* — название параметра. Максимальная длина значения поля — 1000 символов.
2. 1. Кодировка символов не латинского алфавита: Допускаются пробелы, спецсимволы и не латинский символы, будет произведено кодирование значение параметра при выполнении запроса.
   2. > Важно: Параметры запроса (имена и значения) будут закодированы в любом случае при подстановке в Итоговый URL внешнего запроса, во избежание двойной кодировки на вкладке Query parameters стоит указывать параметры в незакодированном виде.
3. Value\* — значение параметра. Максимальная длина значения поля — 10000 символов.
4. 1. Формат значения: допустимо использование Выражение или Выражение с управляющей конструкцией.
   2. Кодировка символов не латинского алфавита: Допускаются пробелы, спецсимволы и не латинский символы, будет произведено кодирование значение параметра при выполнении запроса.
   3. 1. Пример:\
         ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-IoYrxk6z8k/8445f5162da4524058e765a7edba0755ad4e8b7f9b6431c922897883508741d81ec388ce4d8d5a9a798cdd5da15b73c86ec476278b3ae1099e248657452b11791f1b461c83c0903d48aa6a02abb478ab4388f8e3bdb531378c8161fde5315348359f9b4b)
      2. Такой параметр будет включен в Итоговый URL внешнего запроса в виде query=%D0%B0%D0%B1%D0%B2%D0%B3%D0%B4
      3. > Важно: Параметры запроса (имена и значения) будут закодированы в любом случае при подстановке в Итоговый URL внешнего запроса, во избежание двойной кодировки на вкладке Query parameters стоит указывать параметры в незакодированном виде.
5. Кнопка крестика удаляет параметр (строку).
6. Add new field — кнопка добавления нового параметра.

#### Вкладка Data

На вкладке Data можно указать данные в JSON или XML, которые будут отправлены в теле запроса (BODY)![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-C14ujuFQZ5/b2db7838170f8f483686caf89731afe3bc62cda9726acb403048497eb0c6112f933ffa6ab0a25c6ce83175ea6fe9c0bf23d4956d30e3878d20ab7084f1239a86edb3a9af0f63ae085aa18c71ad51fc851679858c923470ac8a19ae5c9ebd6154ef3639f4)Поля вкладки:

1. Data type — формат отправляемых данных (BODY в Request):
2. 1. Формат по умолчанию: JSON
   2. Форматы:
   3. 1. JSON
      2. XML
   4. > Важно: при выборе формата не забывать указывать соответствующий заголовок content-type: application/json или content-type: application/xml
3. Поле для добавления шаблона тела запроса (BODY), которое будет отправлено. Максимальная длина значения поля — 1000 символов.
4. 1. Формат: для корректной работы с REST API должен соблюдаться формат JSON или XML в соответствии со спецификацией API назначения.
   2. 1. При Data type: JSON
      2. 1. произвольный текст.
      3. При Data type: XML
      4. 1. синтаксис XML
         2. регистр тегов имеет значение — \<var>\</Var> будет считаться незакрытым тегом и запрос не будет выполнен
   3. > Важно: при копировании и вставке текста из сторонних систем в поле Data (например, тело запроса прислали в Slack), могут быть вставлены недопустимые символы кавычек, которые “сломают” тело запроса (JSON, XML) и сервер не сможет принять такой запрос. Визуально "неправильные” кавычки мало отличаются от “правильных”, но это все же другие символы. Примеры:
   4. > ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-QHiO3gWk5V/5c17220f40dc48eb2372a1d5546825570b6a9e37648664901fbec2f4e6415c03868953574ad8dd168fa4e7b54fae59e7e3438543a6f8b6cb72852683d584628a4fa075a35a8685d588cda0a2472c63feed0b3540864cfe6f0573fd32ce7fba116c8f93f1)
   5. > Рекомендуется использовать двойные кавычки, так как это стандарт JSON
   6. Подстановка Контекстная переменная, Выражение и Выражение с управляющей конструкцией:
   7. 1. В шаблон тела запроса можно указывать Контекстная переменная  в формате {{ var }}, Выражение и Выражение с управляющей конструкцией, значения и результаты выполнения которых будут подставлены при выполнении запроса. Подробнее: Использование синтаксиса в External Request.
      2. 1. &#x20;Если Контекстная переменная не удалось найти в Контекст Чата, будет подставлено пустое значение.
         2. Если при вычисление результата Выражение или Выражение с управляющей конструкцией происходит ошибка (например, при делении на 0), то Внешний запрос не будет отправлен, и в Контекст Чата будут записаны следующие Контекстная переменная:
         3. 1. error = "Template rendering (request options) error occurred."
            2. request\_success = False
            3. response\_status\_code = 499
            4. raw\_response = ""
      3. Примеры:
      4. 1. при Data type: JSON:\
            ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-mYI8D39Z0k/75df3127eb3575a90811d6af10041a1fd6cbba3f0d23b145063765fc4153b6198dee80e119b209c0b247a07e3d754ec08bb6dd076bc318451b3ec060e17525ba87649dd659e007bcffb83a20e8982007e85b06ff9f674af8324e346749d3e80124ff1a04)
         2. при Data type: XML:\
            ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-pdbnHy6Vcd/3375c0975e7fa4165f3dd717b44818e5bcfefe67b86781f713dea7aaa50c10628cc42d4ee4116280949be7a5a127feadec4446b31e4242e9cb23d5aebc336b853a99e2a3a2d8faf872e0ce3cfa35c109106568ddb19bbebd17e27f1066f7e37e5cb706d0)
   8. Формат значений Контекстная переменная:
   9. 1. при Data type: JSON:
      2. 1. значение текстовой переменной подставляется в шаблон есть без кавычек. Если в JSON необходимо отправить текстовое значение, его необходимо обрамить в кавычки - “{{ var }}”.
         2. Например, если в Сценарий агента в переменную {{ phone }} записана строка ‘89222203909’, то
         3. \- при выполнении запроса с Data { “phone\_num”: {{ phone }} } будет отправлено тело { “phone\_num”: 89222203909 }
         4. \- при выполнении запроса с Data { “phone\_num”: “{{ phone }}” } будет отправлено тело { “phone\_num”: “89222203909” }
      3. при Data type: XML:
      4. 1. переменная должны быть записана в XML тег с помощью фигурных скобок {{ }} и с учетом регистра. Например:\
            ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-xXDS7D4eow/8f9a7d78a4ebfb004ea52dbdf0362d8ddcd46a41159d65acfa9760e49435b4491bbcc0a2aa9bb40669203b2e5175aa96a2e735c9f9b3049e6a156f8b3b729cf824935e85133cb8ad001c4f9774a9a23994f6c0bc5a6563930742521fba944d80e8a9785a)
   10. Кодировка символов не латинского алфавита:
   11. 1. при Data type: JSON: кодирование произведено не будет
       2. при использовании Data type: XML\
          символы не латинского алфавита будут закодированы при отправке запроса, не зависимо от формата текста, вписанного в поле Data.
       3. Результат запроса, Data type: XML, и в client\_message записана кириллица\
          ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-Bj0xBGYal_/8b1b364a68f161a9e8d6229be56621f0b027ee364b507d9f4bfe5d8864ba8971c5848da983c7043a42f83c82146ec06232a970c5502bf75e0bdec34b546dbe31090544a3c2e3ed2ffe85687dedd27b04797cae60a341646eb9dafa09f7691ee7d4341b07)

#### Вкладка Response

На вкладке Response настраивается парсинг ответов на Внешний запрос в Пользовательские контекстные переменные.Парсинг выполняется в процессе обработки ответа на Внешний запрос.При парсинге ответа на запрос переменные, указанные в поле Value, не являются Контекстная переменная, а являются обращениями к объектам body и headers — частям ответа на запрос — и их свойствам.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-mAZMUVFPWi/2c8c4facacdc81fb0f81e138f112e533873994158f394745217036350bc3f3f4052de7ab4ed86f161d8cecb449f7f6f68587470035e3068c4703bc47a8e3e73fab216668236fac63296414ce9401ad230716b01f823031e1b5c2c54b2df4faaad8a813bf)Поля и кнопки вкладки:

1. Data type — формат принимаемых данных (BODY из Response)
2. 1. Формат по умолчанию: JSON
   2. Форматы:
   3. 1. JSON
      2. XML
      3. TEXT\
         ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-bEMyAqRtfa/8b5c6c1fb4264e711562ac1ab4383eb0b49db0dae8f312b022be765ff09623f40358d880871f0f5d76e35820252be847982a866d7cdee7d2de7f81e112bbf317dc040a9ee8271ad5fe9a1f0c3055a0a885e614bcd51ff81eb0f1006566b64dbcca0263a5)
3. Табличная часть — массив пар Variable - Value для парсинга данных из тела и заголовков ответа на Внешний запрос в Пользовательские контекстные переменные для последующего использования их в Сценарий агента.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-qDJSpAELX_/706acd6bafc2594b8bd5b5286040ec94ad780e1d921d065f74cafd024e02af6d95e28e38265f224f2836c8afc793478964c0b916c9c3c0e234f53edc09ba4a2ad05312e8bface6d9f1a293b3f0d793009101a066da1990f0fc9ae443ec2dad15423419ba)
4. 1. Variable — название Пользовательские контекстные переменные, в которую будет записано значение. Максимальная длина значения поля — 128 символов. Имя Пользовательские контекстные переменные должно соответствовать требованиям к названию пользовательских контекстных переменных.
   2. Value — ключ или Xpath путь к тегу xml из тела или заголовков ответа, значение которого будет записано в Variable. Максимальная длина значения поля — 10000 символов. По достижении максимального значения далее символы не вводятся в поле;
   3. 1. Возможен парсинг из тела и заголовков ответа:
      2. 1. body. — парсинг из тела запроса;
         2. headers. — парсинг из заголовков запроса.
      3. Формат значения: допустимо использование Выражение или Выражение с управляющей конструкцией.
      4. > Важно: обращение к ключу объекта, если его имя совпадает с именем Зарезервированные методы объектов происходит через квадратные скобки и кавычки.
      5. > Пример: {{ data\["keys"] }}
   4. Кнопка крестика: удаляет пару (строку)
   5. Add new field — кнопка добавления новой пары Variable - Value.

> Важно: реализовано ограничение на размер получаемого в ответ на Внешний запрос тела: если размер тела превышает Лимит на размер получаемого тела в ответ на Внешний запрос , то оно заменяется на пустое {}. )

Примеры парсинга тела и заголовков ответа в Контекстная переменная:

* Пример тела JSON и парсинга его в настройках слота     &#x20;

```
     {          “par”: “value”,          “content”:              {                  “par1”: “value1”,              },          “array”: [              {                  “par2”: “value2”,              },              {                  “par3”: “value3”,              }          ]      }
```

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-hF_Vh5vIHs/d80fffef0091fbb8d17253bf249be80b599eeb949dd054be2040e4711265a66bfc9204f952d4f42f5db1a3511d0b6bb53038a52d7704df39e58b61f8975b8dc7be542bd29a6db8d6fcafaa5092f40e30ce4e169aaf8e9bb94e4b5af57d056b070aa11f5b)

* Пример тела XML и парсинга его в настройках слота

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-6B1kFv6xgf/21bf2c8dcb532a0de438d2b55ec03442e095dd5416f940df540888d876e3bda23caf6a88d58028741cd9fa7b0a39b8e0657c4bd90fab94954c288c51106b54ea7d297989a89b98a4943057d3909fd50ab776ea0caed86014eb4aa901198c9e3c7bb6cb13)![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-mAz74K63LC/d7c7596e56d51486afda3120f3e7ec3e2de7959a73b2fbf1f812e6f8606e93fe231c95f67ecd393bb03034c0783e25c1ac6692b9d96784d8c8accbfd493edf81e4185031bf219dbf235dd840605e7338496367ed7dfbeca031b9b332dd237a616cecf48a)

* Пример тела TEXT и парсинга его в настройках слота
* * Для типа TEXT возможен парсинг только всего тела ответа на Внешний запрос.\
    ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-jmW4aq7R2G/d9f56c4fb9618966f10025f64d4aed6845767efa6b3e2d1301da7b9e87acd30dcf0558e1e61df4cd0bb53d19fe7a5262a56841d9373f91d98e92b1bb1d819f12a29dbea7d343f907ca40a2f3091bc58f2f8227258d5fd91c454dc1b1ccc6ec40ebe8e6af)

#### Вкладка Test

На вкладке Test можно протестировать работу Внешний запрос.При создании нового Внешний запрос до заполнения параметров Внешний запрос поле cURL не заполнено.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-9RsdnLAYVF/de5dc31ac57c14e24051647dd520e18e6b0d7fd054ad3993a2c829484008dfada8f357a1a3bc70cce0c576f03a25f9179295c9f94b3fe685839cbba3d5d3fe45116655536de71af7713c04787dc58e68b4af8bad6e501e4dae8581382912f6e375e69fdf)При открытии существующего Внешний запрос cURL генерируется автоматически и вкладка заполнена.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-KPNteZtcx8/ff72714fddc3fcbcbf98ea047a6f043fdba5101a74e893dd59ad7ae0da2fd2bf4edddfe1fbd4a943479c0357dd19f1bd3ac57436b2810dce9ba83eb5ee158629021f670c8366fbfdb000d870bb35eecd46b7c5dc9f9e4aa602e3bb7ab281fe33d2ec128c)Поля и элементы вкладки:

1. Refresh cURL — кнопка, по нажатию которой обновляется запрос в поле cURL на вкладке Request в соответствии с настройками Внешний запрос.
2. Test cURL — кнопка, по нажатию которой сформированный в поле cURL запрос отправляется во внешнюю систему.
3. Отображение статуса запроса — полученный после отправки запроса ответ отображается слева от кнопки перехода на вкладку Request. Цвет светофора зависит от типа полученного статуса:
4. 1. Успешный статус: 200 OK — зеленый цвет;\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-S0OFkBVdQZ/3cb7ac19399af0c9f33a44d4b3230d58513f47984d33b76740ac4afd6048c50509e83fe13712d21ced8c4e92955830e434576390bd94a4b36b959f79f02fe63316034d70e91febbb03d9918c57bc4c3ae2c99808324485ddd5213faa54bdab44e2107f8c)
   2. Статусы с предупреждениями: от 201 до 399 — желтый цвет;\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-K7xVzqmt9_/47c9075268bed6f2fde9b751ceff93407487ab0a077ffedfc93d658024538416a1d678485ab56cce8d7388a45b22c4daca7b7744784af4b1ca2072f98147a85bc3b3ca15be5b24c27815d3d43a8b8ea8c6447beca47da46875091044084ccc3b45b9f272)
   3. Ошибки: от 400 и выше — красный цвет.\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-NOqcIlvfb-/ace9c814b65db00a3e9df2c41c176fc5dcd23c3cf8f81f6ce822aee3bfd5fa8dbab5d39acbc934cba315c242efa8206c09d4b4304ee11538c39acc70d3688e08cf9dc0686ab959092e5fa7bd06be0ce3a4259c1530ae800ffc9259d61ad52eafee16bfa4)
5. Раздел Request — раздел содержит данные для тестирования Внешний запрос.
6. 1. cURL — сгенерированный из настроек Внешний запрос cURL.
   2. Update request from cURL — кнопка, по нажатию которой обновляются поля Внешний запрос из cURL.
   3. 1. По нажатию кнопки появляется модальное окно подтверждения действия:\
         ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-XxCev97QEu/992b7ee9f75f5698f42ac1f10b4d77f3e3e56bc487fd22caa6dce292910dbaf816580cdebb9b747d44660f5e1d0b455871f6b6a5b7358d07a7e62a69bcd9c91792812048ae036e338efeba468dec14a8b3a510f66eecd58c1d676a586e6110fe6a67875a)
      2. 1. Чтобы подтвердить действие, необходимо нажать кнопку YES. При этом происходит валидация cURL:
         2. 1. при отсутствии Endpoint или некорректной структуре cURL будет выведена ошибка Invalid cURL и всплывающее уведомление Could’t parse cURL, request settings have not been updated.\
               ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-m-YTx3QucD/0e30b1e952ecfb38427f91f638e59e79c33a852bcd81a53501a23331dc2550231de2d009ac3bd7d3d7b4c52c2906084ad4fc9fa419177dc7b3fe9b8a5962835346a734a70c12fa51bcd2fb676c036f7631a475570a52e1e89e1249e93be4188883ac4366)
            2. при корректном cURL произойдет обновление настроек Внешний запрос, а именно: поля на вкладках Headers, Query Parameters, Data Внешний запрос очищаются, и в них подставляется новая информация из cURL, в т.ч. существующие данные могут быть заменены на пустые значения, если их нет в cURL. Например, если во Внешний запрос есть заголовки, а в поле cURL заголовков нет, то при нажатии Update Request from cURL текущие заголовки из Внешний запрос будут удалены, и на их месте ничего не появится.
7. Раздел Response — раздел содержит ответ внешней системы на запрос.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-W-4Jp2-cZV/b7ded97f996e15bd90c7ca1ca801456d4d14624b5b7db722bca3ffe80914bbc381ff6cf6dfc7c0e8bc48ba5f7d99198755d809cd1b31e86fe587518002f662227da0d05f81c90b5f4dde081d7fc8bdd844135866eb98df6152d58e105b8086b103ee82f0)
8. 1. До нажатия кнопки Test cURL раздел недоступен для открытия (так как тестовый запрос не был отправлен и никакого ответа еще нет)\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-tcFJAg4yT1/3dd6b4d75c9cdc3e57644986ea16b6afa6995f1df987fa377b8a8a5ddde44398a337036873573cc24ce86a4a5ae65bbb24e57afa0e8c7cae3c3b3c638d57cbb4ada0061f837d2820bd67578c8ebbb7f5fa27506a1b424d352e341d3f9da22fb78c8c8174)
   2. Подраздел Body — подраздел содержит тело ответа на запрос;\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-XpINh1VlY7/9f2a5ed649eb4d4af718519fecc01f644b184cbe361d67135fa41bd5c960cbdb7a622f3a99807b81f1c22d47d60439c3717787cf8d1db8c5035dde46136365925a3370e184aaba0c1540c35d6460c1a7a7b62446253d6cebf1dae24da0166ee2a18d8963)
   3. Подраздел Headers — подраздел содержит заголовки ответа на запрос;\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-AGbWXphF4_/fb8a1c2148ed111144017a9c4fe459f33b4d54f5badb0cff7688a0baf70d469d485b7b008db08eb5ffda4452542be165a0ecb6dd14400c536ddfe9f39a98bcc1b7b88cad6bb5c3985996cbfc809a1f227b18ba10bba633133de2fbdc2c1864713cca25a3)
   4. Отображение статуса запроса;\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-8Y6PwmGe3A/f4e51615f84c7ab5cfbe4810a66a584f53559e0d201ed56aa30cf8237d6283b056db1a6fb51c9322725965e4bdcd4c00b6820c8bf21d0d3127fbb7ddbf60419775f2fbfbb4fec5df939015f8fe4988f444de03d262cb7e62e618e7cb71728ee69fc5594e)
   5. Время от отправки запроса до получения ответа в миллисекундах;\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-LirFekuk7y/23d47253e726af5cbc14cbcaad912cd9698af86da4c694c4ef950ad174b15f3d4908675f474cc2ba8f2d5fd5d6ff064b4a434829e7ec1f8c4e13f1093c11a49ffeceac75af1246bac6caf9d7fbf098b63a7c202a335d2cfd85d46ed334c2b3b124a18521)
   6. Размер тела ответа в байтах.\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-fECT45gMYY/976e1317eec0a05266b5adec1690bc4e958a4618dd6408a68260e00685e5e96705a46597279cfd66955d8ba1c7cef7d996d16f1c27519d2dc10bd8c923d8200f194d286c5d267677fd6a9787ec69391d4916912ebec492b09a39db2f8b0b4840408eba2b)

#### Добавление кастомных сертификатов к Внешнему запросу

На данный момент добавление сертификатов безопасности к Внешний запросам реализуется через поддержку: напишите на адрес <support@chatme.ai>, указав идентификаторы Внешний запроса или Агента, к Внешний запросам которого необходимо подставить кастомные сертификаты, и предоставить данные сертификаты.

### Использование синтаксиса в External Request

Во Внешний запрос допустимо использование Выражение и Выражение с управляющей конструкцией в полях Endpoint, Value на вкладке Headers и Query parameters, Data, поле Name на вкладке Response. Подробнее: Синтаксис.

> ВАЖНО: при парсинге ответа все используемые в шаблоне переменные из поля Value ищутся в ответe (Response), а не в Контекст Чата. Обращение к телу ответа происходит через переменную body. Обращение к заголовкам запроса происходит через переменную headers.\
> Например, если ответом на ER является JSON объект: {“one”: {“two”: \[0, 1, 2]}}, то в переменную resp\_body будет сохранен весь JSON-объект (словарь) {“one”: {“two”: \[1, 2, 3]}}, в переменную resp\_one – будет сохранен объект (словарь) {“two”: \[1, 2, 3]}, в переменную resp\_two будет сохранено целое число 1. Переменная resp\_invalid не будет сохранена, т.к. к телу ответа нужно обращаться через переменную body.

> ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-4w2DXiI509/85ae513cfdb191bb32ef79f1564dcc6534788fa653178c751fab944734c4bf1e12e1aa386ad4c4f2fae1e735308ea064417ca2b7f215322f575f598e9468cb02b511076ebc508d879141976720a17c81a4895d9f684d2ad7200c12a020ab79e9737981cc)

### Удаление Внешнего запроса

Для удаления единичного Внешний запрос необходимо:

1. Перейти в список Внешний запрос.
2. Нажать на название Внешний запрос или галочку в селекторе напротив.
3. Нажать на кнопку Delete request или Delete на панели справа;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-ZhWi4Uqnqe/67e852633fb7646571d4eb98229edbfec8ec7ce4fb422df299e7f6fafbd265c669c388e172c7e16d0fcc41fe972574d9278a0321f68dfe7c7e48c90a5e0ef03392cc774d4e5220f40689a2dcbf1ef5789e3f4cb4b8b82afe49f231a1033a3852679ede5b)\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-KO7lJ8OGZO/d87f3c43dc6239e9e56fdbb6a13fd84897ffeeaebaef8de28a820abaf2f5e568b5d822da394c51ae4f79679ceea5c3e8e9370e96a6ef30c62b6486a968ec4ca3de92854d5a397070651df84209319ddcf278aad1b92dd02a78651066738100dc6eb24153)
4. Подтвердить действие в модальном окне, нажав кнопку DELETE REQUEST.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-9kG0N_MZpX/f935ad7b9ae7296c700f5bad148bf0d9a4f040192e7ea6c412b1f2e2af2b084439ea6d9276bc169ea5f791e37b8fd69c551dcd6aed97dc73c21d297df01de48be2b34e4911625b74fdf0bc2421774892f102539e6c5d225b7bca1e233411015fde5db880)
5. 1. Если удаляемый Внешний запрос используется в Агентах, при удалении появится предупреждение о том, что необходимо сначала удалить его из Сценарий агента Агента;\
      ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-txDYDOGRFN/83684b970612a9230609fc74286dac26558f096383c0d414508e475248b1546ba2840d17abbe663e824466a436aeb1a6295c02c0d35dd9e2359665a2e587bf63bb883c20d90547705ed8c927cad8ee27229fa809562e9adbdf7b815784c47ff40645a440)

### Клонирование Внешнего запроса

Для создания копии — клонирования единичного Внешний запроса необходимо:

1. Перейти в список Внешний запросов.
2. Нажать на название Внешний запроса или галочку в селекторе напротив.
3. Нажать на кнопку Duplicate request или Delete на панели справа;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-6-qZEXmEVO/336a0f2a6241459ffc3446884294eeebf080992dd961862b599a8c19b14236031b52e249dadf4dd7b019dd34590a22189fbc86105c86323d8e311ba2e9cac24770feb5d6fd7a8c807aabc2d12b5527a8a17d5f833c42a1af13def04d06292a66c58001d8)\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-ArrnPtth5d/9520eca12dc67e6c5ae10987e5074374174c2e2c5025db27a3ea5d802f44005763efd6585c8a36ffe7e42684d5565cf30b6fd9a481b0800e0f0338d8300c76442f582361034cb56310009e88350118d1bd8100d7c4381eaf551e3e70cc506f36f40a8262)
4. Подтвердить действие в модальном окне, нажав кнопку YES, I’M SURE.
5. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-xX0smdRU98/877863fbed54882b31a536d8f4cb66b4708238b5f5adf8da403f881acfa3e18db19d818bb739a54d052de679df9337b665e8fdeafde09c2ae688d1601a786efc55d073eb43018b2fddb7902051de72a890005b15823c1e6a7db6492cb6ad98c231d431ed)
6. По нажатию кнопки YES, I’M SURE будет создана копия Внешний запроса с названием <имя клонируемого запроса >CLONE.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-dsVoPpDYo0/64eedc2f9dc3e6c85825c4d4108cc764c28a493df8ba5fff62fc09fcacdfe3144d926c5a9f32d4fd51a9a3b3518e40c31a247b4f1994278156a2892c49171075a49b20f65b8dc138f0fb2954310f3ef9e557f9d87913d8571fd0242acbc462bc777340fc)

#### <br>

## Массовые действия с Внешними запросами

В Платформа реализован множественный выбор Внешний запросов и массовые действия, применимые к группе Внешний запросов.

### Множественный выбор

Множественный выбор Внешний запросов можно осуществить следующими способами:

1. Проставить галочки в соответствующих необходимым Внешний запросам селекторах вручную.
2. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-86SLEByLXs/29ecea27ba07c18f155da93dafd63125884af8f1469889a7fbc41b6bef9c4e27f4251b367972aa48de3ca1805039860404f25659db40f7cf0974af547e756cd4c86354985c42dd8561df3940b54dc224e5259742910f318e9bdfd836fde5ecadcc1adfc3)
3. Проставить галочки в селекторе массового выбора — в этом случае будут выделены все Внешний запросы на странице.
4. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-MGiiiCW56f/1fc2b648f5086a0c73cec7a0ab9df1d3b8e66dcb417272921f7d334a5312ca2eec2fb09289a21bc166ab0be9150444219371fdefce78bbc9f7f9fb075496bf7e028ed9f8e39b71adb4740dc91da3a81fc3b0eaaf526caf5835188cfe728753bf6bcf5ee4)
5. Выбрать одну из групп Внешний запросов. По клику на стрелочке открывается выпадающий список;
6. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-75q9SV7aVW/bcff8054e2771c4760517d906b2fa3dea8e0eadda708f8a07910a2f10e6e1145890ef1ad8f51fedcc5953d30565333b9335459ad635880074ab0563eb526a4442312eb208ca3e8ed7732ba89e1a28696b097b984a3b3e4d27140ba0265d2a36030cd495b)
7. 1. В выпадающем списке необходимо выбрать группу Внешний запросов на текущей странице:
   2. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-mwAYcnU7ff/5d4cc8efdebf5b8c4985fcc56cd087d599dfa03ac1bd5ea9567d6d96caea18210e15551e0f081750f51bc59689acb718d5ed25b947f616d091c1fbd3e7933c0b610be45ba24b27e5a2b4efba2a03175a493656d1be00ec6eb98fd0fcdf18e7e324ec7879)
   3. 1. All — все Внешний запросы;
      2. In use — только используемые в Агентах Внешний запросы;
      3. Not in use — только неиспользуемые Внешний запросы.

### Снятие выделения с Внешних запросов

Снятие выделения с выбранных Внешний запросов можно осуществить следующими способами:

1. Удалить галочек из селекторов вручную.
2. Через селектор массового выбора.
3. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-XWFMHW4-gp/4112159d5d5f752d3497a0067ce7283a14a7d7d47b8799afd031fef1eaf14f51052c3949224a09bc5b9c6f89d6af813df60e9a4bb0e087fef11a298be4571897e6029eb5d2a1f52c1bd78d0079fb1d020052ca3aa1c572f1a8fdd5f60b09a300379f5700)
4. Выбрать вариант Clear selection  в выпадающем списке:
5. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-KlbThxH1wa/7ac05d43376d5e22babc54011ed15680751f97560c8ffc67b2f6d96a6b16f3dbaeb755be2e66c939963150facff18286310cbdec2139ef11b50f95aa3b38a14cd7b2c6c9a9b81889711df2ae40ef7916123ea58bc5b55b4a3bbf6def09742606fe1fa4bd)

### Массовое удаление Внешних запросов

Чтобы единовременно удалить несколько Внешний запросов, необходимо:

1. Выбрать несколько Внешний запросов, как описано в пункте Множественный выбор;
2. Нажать кнопку Delete requests;
3. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-eGxNakpeFQ/3bd27166f21f85b85f9bcf9c66d26db281d1867f06a2ae6a609a4b0639cbbf77f131d79dd579b8c8a61b2adc800e8bc6287cbcfa7b7a9753b18dadc2cf045f6f58f83532d85d3df979d4b867189f81b419344e2f9ddb4bcd352980fddd79b4b04ee57d1f)
4. Подтвердить действие в модальном окне, нажав кнопку DELETE REQUESTS;
5. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-CiI0OU9bPk/7aed6a5f8be0deb8afecd092ee0e3820906ba6a070d7dbe8ad9ee23a7892b295c021d7adf530ac4c2fc11312adb2e53e1374dc4c687a4bd64809ac52cfa2db2dab1a6eccb16ea543086a17900dd40b63d7f9415a55ceb8b71c160ae741336f30285bac8c)
6. Если в числе выбранных Внешний запросов присутствуют Внешний запросы, которые используются в  Агентах, при удалении появится предупреждение о том, что данные Внешний запросы не были удалены.
7. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-sYUMCu95Uh/e2904bc8dbf676a711929defc4b3c6e35cf919e7369007e7d703cb59fa96980a81751cdf3dcfdacb691f3d8d7c6108f69e0bb079a943127d7c023b76c2fe30a4349d6abc7de019a9b2fd857c2694fc809672a10457c111efc2fcc1556fc307552215d3d0)
8. Остальные  Внешний запросы будут удалены.

### Массовое клонирование Внешних запросов

Чтобы единовременно клонировать несколько Внешний запросов, необходимо:

1. Выбрать несколько Внешний запросов, как описано в пункте Множественный выбор;
2. Нажать кнопку Duplicate requests;\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-jzTj5cCP7n/5fe396ebd5de968005b2245db62a9948d0f88f20176f8a9a36519d00ff3b09416d41271e36f396b5eec792dc876b7703861fcc94592847529a01f96503aa709fc34ca1d0b56847ba605af1e362adc9733bd18791b8caeaaedb175cb6efc5a3b9dec4f9ef)
3. Подтвердить действие в модальном окне, нажав кнопку YES, I’M SURE в модальном окне.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-jCeoETY7PL/7a0e38b34f8c2d5350b87b865735c5baa3e20927c5ec9cbb1a3516498cd5c74e5c59fbb6cecc52da9b070fc07a127fdde9617d12c3828163d1188ce2f553d16566326a4ebc6dbb3eb4676d957b075e9001bf7061e6d4b55cfdbc60520c202424258b84dc)
4. По нажатию кнопки YES, I’M SURE будут созданы копии Внешний запроса с названием <название клонируемого запроса> CLONE.

## Экспорт-импорт Внешних запросов при экспорте-импорте Агента

При экспорте Агента происходит также экспорт всех Внешний запросов, содержащихся в его Обученная модель агента. Агент с включенными в него Внешний запросами экспортируется в виде файла формата .cfg.При импорте Агента происходит импорт используемых в нем Внешний запросов, при этом:

1. Если в Компания есть Внешний запрос с идентичным названием и содержимым, дублирования Внешний запроса не происходит. В импортированном Агенте будет использован уже существующий Внешний запрос. В остальных случаях будет создан новый Внешний запрос.
2. Если в компании есть Внешний запрос с идентичным названием, но отличающимся содержимым, будет создан дубликат этого Внешний запрос с автоматически сгенерированным именем:\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-ETyXs94WcN/7ed70e8d4933bdbb5537d8f0ec7bdd5ae68ff343b8d9be22ba659bbea7321227ce4bae52aeebe55419fff1645f9bb3538122f5ecb6987bfb439a9e8d91308ee2f1a57717af1b51e7a9a83bbf7d18eac9d1b77fede1fb365a64cdba1954c603173c7b04a0)
3. Шаблон имени импортированного Внешний запроса: название\_запроса \[imported timestamp], где timestamp — время импортирования данного Агента: количество секунд с 1 января 1970 года.
4. Если в Компания есть Внешний запрос с отличающимся названием, но идентичным содержанием, то Внешний запрос из конфигурационного файла Агента будет импортирован.
5. Если в Компания нет такого Внешний запроса, то он будет импортирован и появится в списке Внешний запросов.
