Базовые понятия как работать с API в конструкторе, описаны в статье по этой ссылке, https://docs.salebot.pro/api-v-konstruktore-salebot.pro/integraciya-bota-so-storonnimi-api
Рекомендуется ее изучить перед интеграцией с amocrm, иначе некоторые моменты будут непонятны.
Конструктор позволяет осуществлять двухстороннюю интеграцию с amocrm через api запросы методом POST и GET.
Можно настроить любое взаимодействие, которое указано в документации amo. https://www.amocrm.ru/developers/content/crm_platform/api-reference
Далее будут рассмотрены 2 способа интеграции - это прямые api запросы (в общих чертах) и запросы через сервер salebot.pro, так как некоторые прямые запросы имеют ряд ограничений в конструкторе. И поэтому, необходимо будет использовать дополнительный готовый скрипт на phyton, который доступен по ссылке https://drive.google.com/file/d/1mssbenJDXIIndD3R_cIERAt_Qd95gOtJ/view?usp=sharing
Скрипт предварительно загружается на сервер конструктора. Для этого создаем отдельный блок, в настройках вложения загружаем наш файл скрипта с компьютера и тип вложения выбираем отправить ссылкой. Далее переходим в этот блок из мессенджера и получаем ссылку на скрипт
метод: POST-json url: https://chatter.salebot.pro/api/АПИ_КОНСТРУКТОРА/amoapi_lead_info параметры запроса: {"lead_id": "id СДЕЛКИ"}
Далее необходимо распарсить ответ и сохранить его в переменные, например: data|0|id->id_ответственного
метод: POST-json url: https://chatter.salebot.pro/api/АПИ_КОНСТРУКТОРА/amoapi_contact_info параметры запроса: {"contact_id": "id КОНТАКТА"}
Далее необходимо распарсить ответ и сохранить его в переменные.
Для передачи кастомных полей необходимо использовать скрипт, описанный выше, т.к. номера элементов массива полей всегда разные и вы можете получить некорректное значение.
метод: POST-json url: https://store.salebot.pro/function/codexecutor параметры запроса для контакта: {"file":"ссылка на скрипт", "command": "contact_info", "contact_id":"id КОНТАКТА", "token": "АПИ_КОНСТРУКТОРА","field_id": "id_поля1, id_поля2, id_поля3, и т.д."} параметры запроса для сделки: {"file":"ссылка на скрипт", "command": "lead_info", "lead_id":"id СДЕЛКИ", "token": "АПИ_КОНСТРУКТОРА","field_id": "id_поля1, id_поля2, id_поля3, и т.д."}
Сохраняем данные из ответа в переменные: answer|id поля1->переменная1; answer|id поля2->переменная2
Принять неразобранное через желтый блок и получим сделку, в разделе “Клиенты” появятся соответствующие id.
Необходимо в браузере выполнить GET запрос (открыть ссылку) типа: вашдомен.amocrm.ru/api/v4/leads/custom_fields и для контакта: вашдомен.amocrm.ru/api/v4/contacts/custom_fields
Здесь прямой запрос не актуален, т.к. редактирование всех сущностей амо происходит методом PATCH, который недоступен из интерфейса конструктора.
Используя этот метод, можно теггировать сделки
метод: POST-json url для сделки: https://chatter.salebot.pro/api/АПИ_КОНСТРУКТОРА/amoapi_update_lead url для контакта: https://chatter.salebot.pro/api/АПИ_КОНСТРУКТОРА/amoapi_update_contact параметры запроса для сделки: {"id": "id СДЕЛКИ", "pipeline_id": "id ВОРОНКИ", "tags": "Тег1, или несколько тегов через запятую", "status_id": "id ЭТАПА", "custom_fields": [ { "id": ID ПОЛЯ, "values":[ { "value": "сюда данные"}]}]} параметры запроса для контакта: {"id": "id контакта", "custom_fields": [ { "id": 56297, "values":[ { "value": "сюда номер телефона", "enum": "WORK"}]} ]}
Необходимо в браузере выполнить GET запрос (открыть ссылку) типа: вашдомен.amocrm.ru/api/v4/leads/pipelines/id ВОРОНКИ/statuses
Необходимо в браузере выполнить GET запрос (открыть ссылку) типа: вашдомен.amocrm.ru/api/v4/leads/id СДЕЛКИ
Редактирование сделки: https://www.amocrm.ru/developers/content/crm_platform/leads-api#leads-edit
Редактирование контакта: https://www.amocrm.ru/developers/content/crm_platform/contacts-api#contacts-edit
метод: POST-json url: https://chatter.salebot.pro/api/АПИ_КОНСТРУКТОРА/amoapi_create_task параметры запроса: { "lead_id": "id СДЕЛКИ", "deadline": "ВРЕМЯ В МИНУТАХ ДО ЗАВЕРШЕНИЯ ЗАДАЧИ", "assigned_user_id": "ID ОТВЕТСТВЕННОГО", "task_type_id": “ID ТИПА ЗАДАЧИ”, "title": "ТЕКСТ ЗАДАЧИ"}
Необходимо в браузере выполнить GET запрос (открыть ссылку) типа: вашдомен.amocrm.ru/api/v4/tasks
Перед тем, как выполнять прямые запросы к api amocrm, необходимо сначала в первом блоке получить токен авторизации, а уже в следующем блоке выполнять сам запрос.
Получение токена авторизации:
метод: GET url: https://chatter.salebot.pro/api/АПИ_КОНСТРУКТОРА/amoapi_token
Сохраняем токен из ответа в переменную: amo_token->token Во втором блоке в заголовок запроса вставляем полученный токен:
{"Authorization": "Bearer #{token}", "Content-Type": "application/json"}
и прописываем остальные параметры запроса.
Таким образом можно выполнять любые запросы POST и GET из документации amocrm https://www.amocrm.ru/developers/content/crm_platform/api-reference
Разберем еще 1 нюанс, который требует наличия скрипта, описанного выше.
Частое решение когда необходимо создавать новые сделки с 1 контактом, например периодически покупки, чтобы каждый раз не заполнять данные по контакту и не плодить дубли. Нюанс в том, что когда передаешь параметр id контакта, он должен иметь тип число, но json воспринимает этот id как тип строка, т.к. значение параметра указывается в кавычках, потому что мы передаем переменную. В итоге получим ошибку.
Итак, первым блоком получаем токен, вторым блоком создаем по апи новую сделку (по примеру из документации) и в 3 блоке прикрепляем к новой сделке контакт.
Воспользуемся скриптом:
метод: POST-json url: https://store.salebot.pro/function/codexecutor параметры запроса: {"file":"ССЫЛКА НА СКРИПТ","command": "a_lead_link", "amo_lead_id":"ID НОВОЙ СДЕЛКИ", "domen": "ВАШДОМЕН.amocrm.ru", "token": "ТОКЕН АМО","amo_contact_id": "ID КОНТАКТА"}.