---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.2
alternate:
  - https://yandex.ru/support/forms/en/call-function.md
  - https://yandex.ru/support/forms/ru/call-function.md
  - href: ru/call-function.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/forms/ru/llms.txt

# Вызвать функцию Cloud Functions

Вы можете интегрировать форму с [функцией Cloud Functions](https://yandex.cloud/ru/docs/functions). Например, вы можете собирать данные пользователей и передавать их на сайт или в базу данных, чтобы таким образом регистрировать клиентов по форме.

 {% note alert "" %}

Вы можете интегрировать форму с функциями Cloud Functions только в Формах для бизнеса. Для этого к форме должна быть [подключена организация Yandex Cloud](https://yandex.cloud/ru/docs/organization/operations/enable-org), для которой [настроено облако](https://yandex.cloud/ru/docs/resource-manager/operations/cloud/create).

{% endnote %}

### Шаг 1. Создать сервисный аккаунт {#step-one}

1. Перейдите в [консоль Yandex Cloud](https://console.cloud.yandex.ru).
1. На панели слева выберите каталог, в котором хотите создать функцию.
1. В правом верхнем углу нажмите ![](_assets/svg/actions.svg)</svg> → **Создать сервисный аккаунт**.
1. В окне создания сервисного аккаунта заполните поля:
	1. **Имя** может содержать только строчные буквы латинского алфавита, цифры и дефисы.
	1. **Описание** может содержать любые символы.
	1. В поле **Роли в каталоге** добавьте роль `functions.functionInvoker`.
1. Нажмите **Создать**.

Если к вашему аккаунту Yandex Cloud не привязан платежный аккаунт, откроется окно создания платежного аккаунта. Заполните его поля и создайте аккаунт. Подробнее см. в разделе [{#T}](https://yandex.cloud/ru/docs/getting-started/individuals/registration#new-account)

### Шаг 2. Создать ключ сервисного аккаунта {#step-two}

1. В [консоли](https://console.cloud.yandex.ru) на панели слева выберите каталог, в котором находится нужный сервисный аккаунт.
1. Перейдите на вкладку **Сервисные аккаунты**.
1. Выберите нужный аккаунт.
1. На странице аккаунта на верхней панели нажмите **Создать новый ключ** → **Создать API-ключ**.
1. Напишите краткое описание ключа.
1. Нажмите **Создать**.
1. Откроется окно с идентификатором ключа и секретным ключом. Сохраните их в безопасном месте. После закрытия окна доступ к ним получить нельзя.

### Шаг 3. Включить запуск облачных функций {#step-three}

1. В Формах откройте форму, для которой хотите настроить интеграцию с облачной функцией.
1. Перейдите на вкладку **Настройки** и на панели слева выберите **Дополнительно**.
1. В разделе **Ключ для запуска облачных функций** заполните поля **Идентификатор ключа** и **Секретный ключ**. Вставьте в них значения, которые скопировали при создании ключа сервисного аккаунта.
1. Нажмите **Сохранить**.

### Шаг 4. Создать облачную функцию {#step-four}

1. Перейдите обратно в [консоль Yandex Cloud](https://console.cloud.yandex.ru).
1. На панели слева нажмите ![](_assets/svg/dots-9.svg) и выберите сервис Cloud Functions.
1. В правом верхнем углу нажмите **Создать функцию**.
1. На странице создания функции заполните поля:
	1. **Имя** может содержать только строчные буквы латинского алфавита, цифры и дефисы.
	1. **Описание** может содержать любые символы.
1. Выберите язык программирования, на котором будет написана функция.
1. Выберите вкладку с источником, из которого будет добавлена функция:
	* **Редактор кода** позволяет написать код функции прямо в нем.
	* **Object Storage** позволяет выбрать бакет и объект с нужной функцией.
	* **ZIP-архив** позволяет прикрепить файл в формате `.zip` с нужной функцией.
1. При желании настройте параметры функции и логирование, но это необязательно. Все необходимые для создания функции параметры уже выставлены.
1. Нажмите **Сохранить изменения**.
1. На странице функции скопируйте значение ее поля **Идентификатор**.

Подробнее о создании облачных функций см. в [документации облачных функций](https://yandex.cloud/ru/docs/functions/quickstart/create-function/index).

### Шаг 5. Настроить интеграцию {#step-five}

1. Перейдите обратно в форму и выберите вкладку **Интеграции**.
1. Выберите группу действий, в которой хотите настроить создание задачи, и внизу группы нажмите кнопку Cloud Functions.
1. В поле **Код функции** вставьте идентификатор функции, который скопировали в предыдущем шаге.
1. При желании в разделе **Параметры** выберите дополнительные параметры, которые хотите передать в функцию.
1. Нажмите **Сохранить**.

Ответы на форму будут переданы в формате JSON. Вот его структура:

```json
{
	"id":<идентификатор_ответа_на_форму>,
	"uid":"<идентификатор_пользователя>",
	"data":{
		"<идентификатор_вопроса_с_указанием_типа>":{
			"value":<ответ_на_вопрос>,
			"question":{
				"id":<идентификатор_вопроса>,
				"slug":"<идентификатор_вопроса_с_указанием_типа>",
				"options":{
					<параметры_вопроса>
				},
				"answer_type":{
					"id":<идентификатор_типа_вопроса>,"slug":"<тип_вопроса>"
				}
			}		
		}
	},
"survey":{
	"id":"<идентификатор_формы>"
	},
"created":"<дата_ответа>",
"cloud_uid":"<идентификатор_пользователя>"
}
```

Отправленный запрос и результат работы функции можно посмотреть на странице [выполненных интеграций](https://yandex.ru/support/forms/ru/notifications-history.md).

<!-- source: ru/_assets/style.md -->

<!-- endsource: ru/_assets/style.md -->
