Справочник ошибок и ответов API
При выполнении некорректного запроса к системе наше API может вернуть код ошибки, в случае же верного запроса, API вернёт ответ. Вы, конечно, уже обрабатывали ответ сервера в ходе отладки своих виджетов или написании скриптов, взаимодействующих с нашей системой. Для Вашего удобства, мы решили систематизировать все возможные ответы и ошибки, отдаваемые нашей системой и разместить их на отдельной странице. Надеемся это облегчит и ускорит интеграцию Ваших проектов с amoCRM.
Ошибки при валидации данных
Если переданные данные не совпадают с теми, что доступны для сущности, запрос вернет HTTP-код 400 Bad Request и массив с параметрами, которые не подошли под условия.
Пример ошибки валидации данных
{
"validation-errors": [
{
"request_id": "0",
"errors": [
{
"code": "NotSupportedChoice",
"path": "custom_fields_values.0.field_id",
"detail": "The value you selected is not a valid choice."
}
]
}
],
"title": "Bad Request",
"type": "https://httpstatus.es/400",
"status": 400,
"detail": "Request validation failed"
}
Ответы при авторизации
Подробнее об авторизации читайте здесь
| Код | HTTP код | Описание |
|---|---|---|
| 110 | 401 Unauthorized | Общая ошибка авторизации. Неправильный логин или пароль. |
| 111 | 401 Unauthorized | Возникает после нескольких неудачных попыток авторизации. В этом случае нужно авторизоваться в аккаунте через браузер, введя код капчи. |
| 112 | 401 Unauthorized | Возникает, когда пользователь выключен в настройках аккаунта “Пользователи и права” или не состоит в аккаунте. |
| 113 | 403 Forbidden | Доступ к данному аккаунту запрещён с Вашего IP адреса. Возникает, когда в настройках безопасности аккаунта включена фильтрация доступа к API по “белому списку IP адресов”. |
| 101 | 401 Unauthorized | Возникает в случае запроса к несуществующему аккаунту (субдомену). |
Ответы при работе с контактами
Подробнее о работе с контактами читайте здесь
| Код | Описание |
|---|---|
| 202 | Добавление контактов: нет прав |
| 203 | Добавление контактов: системная ошибка при работе с дополнительными полями |
| 205 | Добавление контактов: контакт не создан |
| 212 | Обновление контактов: контакт не обновлён |
| 219 | Список контактов: ошибка поиска, повторите запрос позднее |
| 330 | Добавление/Обновление контактов: количество привязанных сделок слишком большое |
Ответы при работе со сделками
Подробнее о работе со сделками читайте здесь
| Код | Описание |
|---|---|
| 330 | Добавление/Обновление сделок: количество привязанных контактов слишком большое |
Ответы при работе с событиями
Подробнее о работе с событиями читайте здесь
| Код | Описание |
|---|---|
| 244 | Добавление событий: недостаточно прав для добавления события |
| 225 | Обновление событий: события не найдены |
Ответы при работе с задачами
Подробнее о работе с задачами читайте здесь
| Код | Описание |
|---|---|
| 231 | Обновление задач: задачи не найдены |
| 233 | Добавление событий: по данному ID элемента не найдены некоторые контакты |
| 234 | Добавление событий: по данному ID элемента не найдены некоторые сделки |
| 235 | Добавление задач: не указан тип элемента |
| 236 | Добавление задач: по данному ID элемента не найдены некоторые контакты |
| 237 | Добавление задач: по данному ID элемента не найдены некоторые сделки |
| 244 | Добавление сделок: нет прав. |
Ответы при работе со списками
Подробнее о работе со списками читайте здесь
| Код | Описание |
|---|---|
| 244 | Добавление/Обновление/Удаление каталогов: нет прав. |
| 281 | Каталог не удален: внутренняя ошибка |
| 282 | Каталог не найден в аккаунте. |
Ответы при работе с элементами каталога
Подробнее о работе с элементами каталога читайте здесь
| Код | Описание |
|---|---|
| 203 | Добавление/Обновление элементов каталога: системная ошибка при работе с дополнительными полями |
| 204 | Добавление/Обновление элементов каталога: дополнительное поле не найдено |
| 244 | Добавление/Обновление/Удаление элементов каталога: нет прав. |
| 280 | Добавление элементов каталога: элемент создан. |
| 282 | Элемент не найден в аккаунте. |
Ответы при работе с покупателями
Подробнее о работе с покупателями читайте здесь
| Код | Описание |
|---|---|
| 288 | Недостаточно прав. Доступ запрещен. |
| 402 | Необходимо оплатить функционал |
| 425 | Функционал недоступен |
| 426 | Функционал выключен |
Другие ответы
Ошибки и ответы, не относящиеся к какому-либо конкретному разделу
| Код | Описание | Примечание |
|---|---|---|
| 400 | Неверная структура массива передаваемых данных, либо не верные идентификаторы кастомных полей | |
| 422 | Входящие данные не мог быть обработаны. | |
| 405 | Запрашиваемый HTTP-метод не поддерживается | |
| 402 | Подписка закончилась | Вместе с этим ответом отдаётся HTTP код №402 “Payment Required” |
| 403 | Аккаунт заблокирован, за неоднократное превышение количества запросов в секунду | Вместе с этим ответом отдаётся HTTP код №403 |
| 429 | Превышено допустимое количество запросов в секунду | Вместе с этим ответом отдаётся HTTP код №429 |
| 2002 | По вашему запросу ничего не найдено | Вместе с этим ответом отдаётся HTTP код №204 “No Content” |
|
Текст ошибки |
Описание |
|---|---|
|
403 Forbidden |
Доступ к аккаунту {{XXXX}} запрещён с Вашего IP адреса. Возникает, когда в настройках безопасности аккаунта включена фильтрация доступа к API по «белому списку IP адресов». Если вы не используете «белый список IP адресов», то обратитесь в службу поддержки AmoCRM. |
|
Admin access only. Please perform the integration under Administrator account to get full api access to account {{XXXX}}. |
Недостаточно прав для аккаунта {{XXXX}}. Подключите интеграцию под аккаунтом Администратора |
|
Subscription has ended. It is necessary to pay for the functional |
Означает, что закончилась подписка на сервис. Необходимо оплатить подписку на amoCRM |
|
«title»:»Bad Request»,»type»:»https://httpstatus.es/400″,»status»:400,»detail»:»Код ошибки 205. В случае повторного возникновения ошибки, обращайтесь в нашу техническую поддержку — [email protected]» |
Означает, что были превышены лимиты по контактам и компаниям. Необходимо удалить лишние контакты |
При выполнении некорректного запроса к системе наше API может вернуть код ошибки, в случае же верного запроса, API вернёт ответ.
Вы, конечно, уже обрабатывали ответ сервера в ходе отладки своих виджетов или написании скриптов, взаимодействующих с нашей системой.
Для Вашего удобства, мы решили систематизировать все возможные ответы и ошибки, отдаваемые нашей системой и разместить их на отдельной странице.
Надеемся это облегчит и ускорит интеграцию Ваших проектов с amoCRM.
Ответы при авторизации
Подробнее об авторизации читайте здесь
| CODE | HTTP CODE | ERROR | DESCRIPTION |
|---|---|---|---|
| 110 | 401 Unauthorized | Неправильный логин или пароль | Общая ошибка авторизации. |
| 111 | 401 Unauthorized | Неправильный код капчи |
Возникает после нескольких неудачных попыток авторизации. В этом случае нужно авторизоваться в аккаунте через браузер, введя код капчи. |
| 112 | 401 Unauthorized | Пользователь не состоит в данном аккаунте |
Возникает, когда пользователь выключен в настройках аккаунта «Пользователи и права» или не состоит в аккаунте. |
| 113 | 403 Forbidden | Доступ к данному аккаунту запрещён с Вашего IP адреса |
Возникает, когда в настройках безопасности аккаунта включена фильтрация доступа к API по «белому списку IP адресов». |
| 101 | 401 Unauthorized | Account not found | Возникает в случае запроса к несуществующему аккаунту (субдомену). |
| 401 | 401 Not Authorized | 401 Unauthorized | На сервере нет данных аккаунта. Нужно сделать запрос на другой сервер по переданному IP. |
Ответы при работе с аккаунтом
Подробнее о работе с аккаунтом читайте здесь
| CODE | DESCRIPTION |
|---|---|
| 101 | Аккаунт не найден |
| 102 | POST-параметры должны передаваться в формате JSON |
| 103 | Параметры не переданы |
| 104 | Запрашиваемый метод API не найден |
Ответы при работе с контактами
Подробнее о работе с контактами читайте здесь
| CODE | DESCRIPTION |
|---|---|
| 201 | Добавление контактов: пустой массив |
| 202 | Добавление контактов: нет прав |
| 203 | Добавление контактов: системная ошибка при работе с дополнительными полями |
| 204 | Добавление контактов: дополнительное поле не найдено |
| 205 | Добавление контактов: контакт не создан |
| 206 | Добавление/Обновление контактов: пустой запрос |
| 207 | Добавление/Обновление контактов: неверный запрашиваемый метод |
| 208 | Обновление контактов: пустой массив |
| 209 | Обновление контактов: требуются параметры «id» и «last_modified» |
| 210 | Обновление контактов: системная ошибка при работе с дополнительными полями |
| 211 | Обновление контактов: дополнительное поле не найдено |
| 212 | Обновление контактов: контакт не обновлён |
| 219 | Список контактов: ошибка поиска, повторите запрос позднее |
Ответы при работе со сделками
Подробнее о работе со сделками читайте здесь
| CODE | DESCRIPTION |
|---|---|
| 213 | Добавление сделок: пустой массив |
| 214 | Добавление/Обновление сделок: пустой запрос |
| 215 | Добавление/Обновление сделок: неверный запрашиваемый метод |
| 216 | Обновление сделок: пустой массив |
| 217 | Обновление сделок: требуются параметры «id», «last_modified», «status_id», «name» |
| 240 | Добавление/Обновление сделок: неверный параметр «id» дополнительного поля |
Ответы при работе с событиями
Подробнее о работе с событиями читайте здесь
| CODE | DESCRIPTION |
|---|---|
| 218 | Добавление событий: пустой массив |
| 221 | Список событий: требуется тип |
| 222 | Добавление/Обновление событий: пустой запрос |
| 223 | Добавление/Обновление событий: неверный запрашиваемый метод (GET вместо POST) |
| 224 | Обновление событий: пустой массив |
| 225 | Обновление событий: события не найдены |
Ответы при работе с задачами
Подробнее о работе с задачами читайте здесь
| CODE | DESCRIPTION |
|---|---|
| 227 | Добавление задач: пустой массив |
| 228 | Добавление/Обновление задач: пустой запрос |
| 229 | Добавление/Обновление задач: неверный запрашиваемый метод |
| 230 | Обновление задач: пустой массив |
| 231 | Обновление задач: задачи не найдены |
| 232 | Добавление событий: ID элемента или тип элемента пустые либо неккоректные |
| 233 | Добавление событий: по данному ID элемента не найдены некоторые контакты |
| 234 | Добавление событий: по данному ID элемента не найдены некоторые сделки |
| 235 | Добавление задач: не указан тип элемента |
| 236 | Добавление задач: по данному ID элемента не найдены некоторые контакты |
| 237 | Добавление задач: по данному ID элемента не найдены некоторые сделки |
| 238 | Добавление контактов: отсутствует значение для дополнительного поля |
| 244 | Добавление сделок: нет прав. |
Другие ответы
Ошибки и ответы, не относящиеся к какому-либо конкретному разделу
| CODE | DESCRIPTION | NOTE |
|---|---|---|
| 400 | Неверная структура массива передаваемых данных, либо не верные идентификаторы кастомных полей | |
| 403 | Аккаунт заблокирован, за неоднократное превышение количества запросов в секунду | Вместе с этим ответом отдаётся HTTP код №403 |
| 429 | Превышено допустимое количество запросов в секунду | Вместе с этим ответом отдаётся HTTP код №429 |
| 2002 | По вашему запросу ничего не найдено | Вместе с этим ответом отдаётся HTTP код №204 «No Content» |
Появление сообщения об ошибке 401 Unauthorized Error («отказ в доступе») при открытии страницы сайта означает неверную авторизацию или аутентификацию пользователя на стороне сервера при обращении к определенному url-адресу. Чаще всего она возникает при ошибочном вводе имени и/или пароля посетителем ресурса при входе в свой аккаунт. Другой причиной являются неправильные настройки, допущенные при администрировании web-ресурса. Данная ошибка отображается в браузере в виде отдельной страницы с соответствующим описанием. Некоторые разработчики интернет-ресурсов, в особенности крупных порталов, вводят собственную дополнительную кодировку данного сбоя:
- 401 Unauthorized;
- Authorization Required;
- HTTP Error 401 – Ошибка авторизации.
Попробуем разобраться с наиболее распространенными причинами возникновения данной ошибки кода HTTP-соединения и обсудим способы их решения.
При доступе к некоторым сайтам (или отдельным страницам этих сайтов), посетитель должен пройти определенные этапы получения прав:
- Идентификация – получение вашей учетной записи («identity») по username/login или email.
- Аутентификация («authentic») – проверка того, что вы знаете пароль от этой учетной записи.
- Авторизация – проверка вашей роли (статуса) в системе и решение о предоставлении доступа к запрошенной странице или ресурсу на определенных условиях.
Большинство пользователей сохраняют свои данные по умолчанию в истории браузеров, что позволяет быстро идентифицироваться на наиболее часто посещаемых страницах и синхронизировать настройки между устройствами. Данный способ удобен для серфинга в интернете, но может привести к проблемам с безопасностью доступа к конфиденциальной информации. При наличии большого количества авторизованных регистрационных данных к различным сайтам используйте надежный мастер-пароль, который закрывает доступ к сохраненной в браузере информации.
Наиболее распространенной причиной появления ошибки с кодом 401 для рядового пользователя является ввод неверных данных при посещении определенного ресурса. В этом и других случаях нужно попробовать сделать следующее:
- Проверьте в адресной строке правильность написания URL. Особенно это касается перехода на подстраницы сайта, требующие авторизации. Введите правильный адрес. Если переход на страницу осуществлялся после входа в аккаунт, разлогинитесь, вернитесь на главную страницу и произведите повторный вход с правильными учетными данными.
- При осуществлении входа с сохраненными данными пользователя и появлении ошибки сервера 401 проверьте их корректность в соответствующих настройках данного браузера. Возможно, авторизационные данные были вами изменены в другом браузере. Также можно очистить кэш, удалить cookies и повторить попытку входа. При удалении истории браузера или очистке кэша потребуется ручное введение логина и пароля для получения доступа. Если вы не помните пароль, пройдите процедуру восстановления, следуя инструкциям.
- Если вы считаете, что вводите правильные регистрационные данные, но не можете получить доступ к сайту, обратитесь к администратору ресурса. В этом случае лучше всего сделать скриншот проблемной страницы.
- Иногда блокировка происходит на стороне провайдера, что тоже приводит к отказу в доступе и появлению сообщения с кодировкой 401. Для проверки можно попробовать авторизоваться на том же ресурсе с альтернативного ip-адреса (например, используя VPN). При подтверждении блокировки трафика свяжитесь с провайдером и следуйте его инструкциям.
Некоторые крупные интернет-ресурсы с большим количеством подписчиков используют дополнительные настройки для обеспечения безопасности доступа. К примеру, ваш аккаунт может быть заблокирован при многократных попытках неудачной авторизации. Слишком частые попытки законнектиться могут быть восприняты как действия бота. В этом случае вы увидите соответствующее сообщение, но можете быть просто переадресованы на страницу с кодом 401. Свяжитесь с администратором сайта и решите проблему.
Иногда простая перезагрузка проблемной страницы, выход из текущей сессии или использование другого веб-браузера полностью решают проблему с 401 ошибкой авторизации.
Устранение ошибки 401 администратором веб-ресурса
Для владельцев сайтов, столкнувшихся с появлением ошибки отказа доступа 401, решить ее порою намного сложнее, чем обычному посетителю ресурса. Есть несколько рекомендаций, которые помогут в этом:
- Обращение в службу поддержки хостинга сайта. Как и в случае возникновения проблем с провайдером, лучше всего подробно описать последовательность действий, приведших к появлению ошибки 401, приложить скриншот.
- При отсутствии проблем на стороне хостинг-провайдера можно внести следующие изменения в настройки сайта с помощью строки Disallow:/адрес проблемной страницы. Запретить индексацию страницам с ошибкой в «rоbоts.txt», после чего добавить в файл «.htассеss» строку такого типа:
Redirect 301 /oldpage.html http://site.com/newpage.html.
Где в поле /oldpage.html прописывается адрес проблемной страницы, а в http://site.com/newpage.html адрес страницы авторизации.
Таким образом вы перенаправите пользователей со всех страниц, которые выдают ошибку 401, на страницу начальной авторизации.
- Если после выполнения предыдущих рекомендаций пользователи при попытках авторизации все равно видят ошибку 401, то найдите на сервере файл «php.ini» и увеличьте время жизни сессии, изменив значения следующих параметров: «session.gc_maxlifetime» и «session.cookie_lifetime» на 1440 и 0 соответственно.
- Разработчики веб-ресурсов могут использовать более сложные методы авторизации и аутентификации доступа для создания дополнительной защиты по протоколу HTTP. Если устранить сбой простыми методами администрирования не удается, следует обратиться к специалистам, создававшим сайт, для внесения соответствующих изменений в код.
Хотя ошибка 401 и является проблемой на стороне клиента, ошибка пользователя на стороне сервера может привести к ложному требованию входа в систему. К примеру, сетевой администратор разрешит аутентификацию входа в систему всем пользователям, даже если это не требуется. В таком случае сообщение о несанкционированном доступе будет отображаться для всех, кто посещает сайт. Баг устраняется внесением соответствующих изменений в настройки.
Дополнительная информация об ошибке с кодом 401
Веб-серверы под управлением Microsoft IIS могут предоставить дополнительные данные об ошибке 401 Unauthorized в виде второго ряда цифр:
- 401, 1 – войти не удалось;
- 401, 2 – ошибка входа в систему из-за конфигурации сервера;
- 401, 3 – несанкционированный доступ из-за ACL на ресурс;
- 401, 501 – доступ запрещен: слишком много запросов с одного и того же клиентского IP; ограничение динамического IP-адреса – достигнут предел одновременных запросов и т.д.
Более подробную информацию об ошибке сервера 401 при использовании обычной проверки подлинности для подключения к веб-узлу, который размещен в службе MS IIS, смотрите здесь.
Следующие сообщения также являются ошибками на стороне клиента и относятся к 401 ошибке:
- 400 Bad Request;
- 403 Forbidden;
- 404 Not Found;
- 408 Request Timeout.
Как видим, появление ошибки авторизации 401 Unauthorized не является критичным для рядового посетителя сайта и чаще всего устраняется самыми простыми способами. В более сложной ситуации оказываются администраторы и владельцы интернет-ресурсов, но и они в 100% случаев разберутся с данным багом путем изменения настроек или корректировки html-кода с привлечением разработчика сайта.
Всем привет сегодня я вам покажу готовые скрипты которые я использую для передачи значений из формы обратной связи в amoCRM через API данного сервиса. Мы рассмотрим скрипт для создания сделок с прязкой контактов.
Каждый тип запроса я разбил по функциям, а полное подключение выложил в отдельную функцию, в самом конце. На данный момент, на 2020 год, эта реализация отрабатывает без каких либо ошибок.
Для того чтобы подключить ваш проект к amoCRM нужно сделать следующие действия:
1) Создать аккаунт на amoCRM
2) После этого переходим в Настройки и создаем новую интеграцию. Во время создания интеграции вам нужно указать адрес вашего сайта, предоставить все доступы для данной интеграции после чего сохранить.
3) После создания интеграции, переходим во вкладку «Ключи и доступы» — эти данные нам понадобятся для авторизации нашей интеграции. Мы не будем их использовать при каждом запросе, но переодически они нам будут нужны.
Внимание!!! Код авторизации обновляется каждые 20 мин, а значит если вы его скопируете за пару минут до обновления, вы можете не успеть сделать запрос и у вас выведется ошибка. Если у вас появилась ошибка связанная с авторизацией, то просто попробуйте заново копировать данные.
Теперь вам нужно создать PHP файл и в нем мы будем создавать подключение к нашей CRM системе.
Все примеры запросов есть в официальной документации CRM — https://www.amocrm.ru/developers/content/crm_platform/api-reference
Авторизация интеграции
Первый запрос нам нужно сделать на авторизацию созданной интеграции. Для своей задачи я использовал «Упрощённую систему авторизации» — https://www.amocrm.ru/developers/content/oauth/step-by-step#easy_auth
Для начала нам нужно выполнить запрос на авторизацию, код написан ниже. Для запроса я буду использовать библиотеку CURL.
$subdomain = 'test'; //Поддомен нужного аккаунта
$link = 'https://' . $subdomain . '.amocrm.ru/oauth2/access_token'; //Формируем URL для запроса
/* Соберем данные для запроса */
$data = [
'client_id' => 'xxxx', // id нашей интеграции
'client_secret' => 'xxxxxx', // секретный ключ нашей интеграции
'grant_type' => 'authorization_code',
'code' => 'xxxxxxx', // код авторизации нашей интеграции
'redirect_uri' => 'https://domain.ru/test.php',// домен сайта нашей интеграции
];
/**
* Нам необходимо инициировать запрос к серверу.
* Воспользуемся библиотекой cURL (поставляется в составе PHP).
* Вы также можете использовать и кроссплатформенную программу cURL, если вы не программируете на PHP.
*/
$curl = curl_init(); //Сохраняем дескриптор сеанса cURL
/** Устанавливаем необходимые опции для сеанса cURL */
curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-oAuth-client/1.0');
curl_setopt($curl,CURLOPT_URL, $link);
curl_setopt($curl,CURLOPT_HTTPHEADER,['Content-Type:application/json']);
curl_setopt($curl,CURLOPT_HEADER, false);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, 2);
$out = curl_exec($curl); //Инициируем запрос к API и сохраняем ответ в переменную
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
/** Теперь мы можем обработать ответ, полученный от сервера. Это пример. Вы можете обработать данные своим способом. */
$code = (int)$code;
// коды возможных ошибок
$errors = [
400 => 'Bad request',
401 => 'Unauthorized',
403 => 'Forbidden',
404 => 'Not found',
500 => 'Internal server error',
502 => 'Bad gateway',
503 => 'Service unavailable',
];
try
{
/** Если код ответа не успешный - возвращаем сообщение об ошибке */
if ($code < 200 || $code > 204) {
throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undefined error', $code);
}
}
catch(Exception $e)
{
die('Ошибка: ' . $e->getMessage() . PHP_EOL . 'Код ошибки: ' . $e->getCode());
}
/**
* Данные получаем в формате JSON, поэтому, для получения читаемых данных,
* нам придётся перевести ответ в формат, понятный PHP
*/
$response = json_decode($out, true);
/* массив со всеми необходимыми данными, его вам нужно будет сохранить в файле или в БД, чтобы при каждом запросе получать токен */
$arrParamsAmo = [
"access_token" => $response['access_token'],
"refresh_token" => $response['refresh_token'],
"token_type" => $response['token_type'],
"expires_in" => $response['expires_in'],
"endTokenTime" => $response['expires_in'] + time(),
];
$arrParamsAmo = json_encode($arrParamsAmo);
// выведем наши токены. Скопируйте их для дальнейшего использования
// access_token будет использоваться для каждого запроса как идентификатор интеграции
var_dump($arrParamsAmo);
Следующим запросом мы уже можем создавать наши контакты и сделки используя для авторизации наш токен.
Входные параметры
Для начала нужно подготовить массив с параметрами с удобным представлением. Для своей задачи я сделал следующий массив. Здесь перечислены основные переменные для запроса, у вас возможно будут свои данные, в дальнейшем вам просто нужно будет переделать функцию под себя.
Ключ CONTACT перечисляет данные для создания контакта. На последним этапе я делаю проверку, что если массив CONTACT пустой, то пользователь не создается, это сделано для форм в которых не указывается имя пользователя.
$arrContactParams = [
// поля для сделки
"PRODUCT" => [
"nameForm" => "Название формы",
"nameProduct" => "Название товара",
"price" => "Цена",
"descProduct" => "Описание заказа",
"namePerson" => "Имя пользователя",
"phonePerson" => "Телефон",
"emailPerson" => "Email пользователя",
"messagePerson" => "Сообщение от пользователя",
],
// поля для контакта
"CONTACT" => [
"namePerson" => "Имя пользователя",
"phonePerson" => "Телефон",
"emailPerson" => "Email пользователя",
"messagePerson" => "Сообщение от пользователя",
]
];
Создание контакта
Типичная ошибка при создание контакта, это нарушение структуры массива для запроса, поэтому внимательно создавайте массив для запроса. Ранее созданный массив с данными полей, мы передаем в функцию amoAddContact, где создается специальный массив для запроса.
Скажу сразу что я не понял как передавать значения для стандартных полей amoCRM типа телефон, email и прочих, поэтому я создал свои кастомные поля и уже в них передаю необходимые данные.
Каждое поле в запросе оборачивается в отдельный массив где id — это идентификатор поля, который вы можете получить следующим образом.
function amoAddContact($access_token, $arrContactParams) {
$contacts['request']['contacts']['add'] = array(
[
'name' => $arrContactParams["CONTACT"]["namePerson"],
'tags' => 'авто отправка',
'custom_fields' => [
// ИМЯ ПОЛЬЗОВАТЕЛЯ
[
'id' => 518661,
"values" => [
[
"value" => $arrContactParams["CONTACT"]["namePerson"],
]
]
],
// ТЕЛЕФОН
[
'id' => 518139,
"values" => [
[
"value" => $arrContactParams["CONTACT"]["phonePerson"],
]
]
],
// EMAIL
[
'id' => 518595,
"values" => [
[
"value" => $arrContactParams["CONTACT"]["emailPerson"],
]
]
],
// СООБЩЕНИЕ
[
'id' => 532695,
"values" => [
[
"value" => $arrContactParams["CONTACT"]["messagePerson"],
]
]
]
]
]
);
/* Формируем заголовки */
$headers = [
"Accept: application/json",
'Authorization: Bearer ' . $access_token
];
$link='https://test.amocrm.ru/private/api/v2/json/contacts/set';
$curl = curl_init(); //Сохраняем дескриптор сеанса cURL
/** Устанавливаем необходимые опции для сеанса cURL */
curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-oAuth-client/1.0');
curl_setopt($curl,CURLOPT_URL, $link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($contacts));
curl_setopt($curl,CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl,CURLOPT_HEADER, false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, 2);
$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);
$Response=json_decode($out,true);
$account=$Response['response']['account'];
echo '<b>Данные о пользователе:</b>'; echo '<pre>'; print_r($Response); echo '</pre>';
return $Response["response"]["contacts"]["add"]["0"]["id"];
}
Функция amoAddContact возвращает id созданного контакта, которого мы будем привязывать к новой сделки.
Добавляем сделку
Сделка добавляется аналогично, в функцию передается токен и массив с параметрами + передается третий параметр contactId в котором указывается id контакта для привязки.
function amoAddTask($access_token, $arrContactParams, $contactId = false) {
$arrTaskParams = [
'add' => [
0 => [
'name' => $arrContactParams["PRODUCT"]["nameForm"],
'price' => $arrContactParams["PRODUCT"]["price"],
'pipeline_id' => '9168',
'tags' => [
'авто отправка',
$arrContactParams["PRODUCT"]["nameForm"]
],
'status_id' => '10937736',
'custom_fields' => [
/* ОПИСАНИЕ ЗАКАЗА */
[
'id' => 531865,
"values" => [
[
"value" => $arrContactParams["PRODUCT"]["descProduct"],
]
]
],
/* ИМЯ ПОЛЬЗОВАТЕЛЯ */
[
'id' => 525741,
"values" => [
[
"value" => $arrContactParams["PRODUCT"]["namePerson"],
]
]
],
/* ТЕЛЕФОН */
[
'id' => 525687,
"values" => [
[
"value" => $arrContactParams["PRODUCT"]["phonePerson"],
]
]
],
/* EMAIL */
[
'id' => 525739,
"values" => [
[
"value" => $arrContactParams["PRODUCT"]["emailPerson"],
]
]
],
/* СООБЩЕНИЕ */
[
'id' => 528257,
"values" => [
[
"value" => $arrContactParams["PRODUCT"]["messagePerson"],
]
]
],
],
'contacts_id' => [
0 => $contactId,
],
],
],
];
$link = "https://test.amocrm.ru/api/v2/leads";
$headers = [
"Accept: application/json",
'Authorization: Bearer ' . $access_token
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_USERAGENT, "amoCRM-API-client-
undefined/2.0");
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($arrTaskParams));
curl_setopt($curl, CURLOPT_URL, $link);
curl_setopt($curl, CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__)."/cookie.txt");
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__)."/cookie.txt");
$out = curl_exec($curl);
curl_close($curl);
$result = json_decode($out,TRUE);
}
Сложность работы с amoCRM в том что у них access_token действует только сутки, по истечению времени он становится не рабочим и для того чтобы получить новый токен access_token вам нужно сделать запрос, передав refresh_token и вы получите новый access_token и refresh_token.
Нужно эти данные где то записать, чтобы можно было их использовать вновь на следующий день.
Для этого я сделал специальную функцию которая будет проверять актуальность токена и делать новый запрос если это необходимо.
Значения токенов будут сохраняться в файле в JSON формате.
/* в эту функцию мы передаём текущий refresh_token */
function returnNewToken($token) {
$link = 'https://test.amocrm.ru/oauth2/access_token'; //Формируем URL для запроса
/** Соберем данные для запроса */
$data = [
'client_id' => 'xxxxx',
'client_secret' => 'xxxxx',
'grant_type' => 'refresh_token',
'refresh_token' => $token,
'redirect_uri' => 'https://test.ru/',
];
/**
* Нам необходимо инициировать запрос к серверу.
* Воспользуемся библиотекой cURL (поставляется в составе PHP).
* Вы также можете использовать и кроссплатформенную программу cURL, если вы не программируете на PHP.
*/
$curl = curl_init(); //Сохраняем дескриптор сеанса cURL
/** Устанавливаем необходимые опции для сеанса cURL */
curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-oAuth-client/1.0');
curl_setopt($curl,CURLOPT_URL, $link);
curl_setopt($curl,CURLOPT_HTTPHEADER,['Content-Type:application/json']);
curl_setopt($curl,CURLOPT_HEADER, false);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, 2);
$out = curl_exec($curl); //Инициируем запрос к API и сохраняем ответ в переменную
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
/** Теперь мы можем обработать ответ, полученный от сервера. Это пример. Вы можете обработать данные своим способом. */
$code = (int)$code;
$errors = [
400 => 'Bad request',
401 => 'Unauthorized',
403 => 'Forbidden',
404 => 'Not found',
500 => 'Internal server error',
502 => 'Bad gateway',
503 => 'Service unavailable',
];
try
{
/** Если код ответа не успешный - возвращаем сообщение об ошибке */
if ($code < 200 || $code > 204) {
throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undefined error', $code);
}
}
catch(Exception $e)
{
die('Ошибка: ' . $e->getMessage() . PHP_EOL . 'Код ошибки: ' . $e->getCode());
}
/**
* Данные получаем в формате JSON, поэтому, для получения читаемых данных,
* нам придётся перевести ответ в формат, понятный PHP
*/
$response = json_decode($out, true);
if($response) {
/* записываем конечное время жизни токена */
$response["endTokenTime"] = time() + $response["expires_in"];
$responseJSON = json_encode($response);
/* передаём значения наших токенов в файл */
$filename = "путь до файла с токеном";
$f = fopen($filename,'w');
fwrite($f, $responseJSON);
fclose($f);
$response = json_decode($responseJSON, true);
return $response;
}
else {
return false;
}
}
Полный запрос на создание сделки
На последнем этапе я объединил все функции в одну для удобного использования. Теперь вам нужно будет только создать одну функцию которая, в которую передать массив с параметрами значений из формы.
function amoCRMScript($paramsTask) {
/* получаем значения токенов из файла */
$dataToken = file_get_contents("путь до файла с токеном");
$dataToken = json_decode($dataToken, true);
/* проверяем, истёкло ли время действия токена Access */
if($dataToken["endTokenTime"] < time()) {
/* запрашиваем новый токен */
$dataToken = returnNewToken($dataToken["refresh_token"]);
$newAccess_token = $dataToken["access_token"];
}
else {
$newAccess_token = $dataToken["access_token"];
}
if($paramsTask["CONTACT"]) {
$idContact = amoAddContact($newAccess_token, $paramsTask);
}
amoAddTask($newAccess_token, $paramsTask, $idContact);
}
Вспомогательные функции
Теперь давайте рассмотрим дополнительные функции, которые я выписал для себя, но думаю они вам тоже могут пригодиться.
Узнать допустимые поля для «Сделки»
function returnFieldsContact() {
$access_token = 'xxxxxx';
$headers = [
"Accept: application/json",
'Authorization: Bearer ' . $access_token
];
$link='https://test.amocrm.ru/api/v4/leads/custom_fields';
$curl = curl_init(); //Сохраняем дескриптор сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-oAuth-client/1.0');
curl_setopt($curl,CURLOPT_URL, $link);
curl_setopt($curl,CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl,CURLOPT_HEADER, false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, 2);
$out=curl_exec($curl);
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);
$Response=json_decode($out,true);
$account=$Response['response']['account'];
}
Узнать допустимые поля для «Контакты»
function returnFieldsContact() {
$access_token = 'xxxxxx';
$headers = [
"Accept: application/json",
'Authorization: Bearer ' . $access_token
];
$link='https://test.amocrm.ru/api/v4/contacts/custom_fields';
$curl = curl_init(); //Сохраняем дескриптор сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-oAuth-client/1.0');
curl_setopt($curl,CURLOPT_URL, $link);
curl_setopt($curl,CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl,CURLOPT_HEADER, false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, 2);
$out=curl_exec($curl);
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);
$Response=json_decode($out,true);
$account=$Response['response']['account'];
}
Содержание
- Как работать в Амоцрм?
- Как вести клиента в АМО?
- Настройка полей в сделке для удобства работы в amo crm
- Как внедрить и настроить amoCRM: подробный отчет
- Основные элементы amoCRM
- AmoCRM и сервис аналитики Roistat
- Дополнительные функции AmoCRM
- Автоматическая отправка писем и уведомления
- Частые ошибки настройки amoCRM
- Ошибка при подключении почтового ящика к amoCRM
- Ошибка подключения Инстаграм к amoCRM
- Ошибки подключения Вконтакте к amoCRM
- Подключение Viber к amoCRM
- Подключение Telegram к amoCRM
- Ошибки подключения Facebook к amoCRM
- Ошибки импорта в amoCRM
- Существует несколько вариантов, почему это может быть:
- Экспорт закрытых сделок в amoCRM
- Ограничения экспорта в amoCRM
Как работать в Амоцрм?
Итак, есть несколько основных моментов.
- В первую очередь это правильная настройка амо срм. Что значит правильно? Это значит, что все заявки с вашего сайта, кроме отправления на почту попадают в amoCRM, также все звонки входящие и исходящие также должны попадать в CRM, крепиться в карточку сделки вашего клиента.
- Кроме этого можно также настроить, чтобы все обращения в ватсапе, вконтакте, инстаграме также попадали в карточку клиента.
- После того, как вы настроили и сделали интеграцию, вы должны также настроить воронку продаж.
То есть вы должны понимать какие основные ключевые этапы в работе существуют у вас.
Например, для тематики «пластиковые окна» этапы:
- Оставили заявку
- Далее выезд мастера
- Выслано коммерческое предложение
- Заключение договора
- Предоплата.
То есть вы должны понимать на какие логические этапы и сегменты можно разделить вашу продажу, по какой воронке продаж двигается ваш клиент. Также нужно выделять ключевой этап воронки. В данной нише это выезд замерщика. Чем больше выездов будет, тем больше продаж!
После того, как вы для себя поняли и осознали этапы – вы их настраиваете в амо црм.
- Для этого в разделе «меню сделки» заходите в настройки воронки
- Добавляете или удаляете лишние этапы
- Также в последнем этапе «закрыты и нереализованы» настройте причины отказа. Также постоянно дополняйте эти причины, если появляются новые
После того как у вас сделано базовое внедрение и базовая интеграция – все заявки попадают к вам в вашу amoCRM.
Как вести клиента в АМО?
Для этого вы заходите в карточку сделки. Когда к вам обратился клиент – внутри неё снизу есть на белом поле выбор:
Вы должны писать все письма, всё общение вести внутри этой карточки. То есть отправляя имейл, у вас остается в переписке дата когда вы отправили, текст письма, все содержание.
Кроме этого вы должны на вашем телефоне настроить программу ip-телефонию, через которую вы будете звонить и при этом все звонки будут также прикрепляться к этой сделке.
Для того, чтобы сделать какое-то свое примечание, там же снизу выбираете примечание и пишите какой-то текст. Например, после звонка, чтобы не прослушивать 10 минут разговора, вы пишите: «Договорились на встречу в среду необходимо выслать шаблон договора», чтобы самостоятельно было проще уже смотреть и понимать, что происходит с клиентом.
Также по-хорошему для каждой сделки у вас должны быть установлены собственные задачи. Задачи либо для себя, если вы единственный в компании – и собственник и продажник.
Либо для вашего продажника внедрить правила, что каждая сделка должна иметь текущую задачу. Например, там же снизу выбираете «задача», выбираете дату и вкратце пишите: «позвони в среду и предложи услугу». И ставите дату для задачи.
Чтобы не забывать с кем общаться – войдя в CRM где у вас много сделок – вы могли быстро ориентироваться и понимать с кем вам сегодня необходимо связаться, а с кем только на следующей неделе.
Настройка полей в сделке для удобства работы в amo crm
Кроме этого в карточке сделки вы можете настраивать все поля. Вы можете удалить лишние поля, можете сделать отдельные вкладки.
Например: вкладка с utm-метками откуда пришел клиент. Вы можете сделать выпадающий список с АБЦ-квалификацией клиента, то есть насколько клиент горячий, насколько он готов к сделке. Также можете добавить туда какими услугами он интересуется.
Например, «пластиковые окна», «откосы», «балконные двери» и т.д. То есть карточка клиента должна быть максимально удобной именно для вас, для вашего бизнеса. То есть вы самостоятельно должны решить какие параметры необходимы.
После того, как вы понимаете какие этапы у воронки продаж – вы должны также понимать, какая цель у каждого этапа.
- Цель выезда замерщика – это заключение договора
- Когда человек находится на этапе заключение договора – его цель это получить предоплату и т.д.
Соответственно ваш менеджер созваниваясь и общаясь с клиентом, знает цель звонка – передвинуть сделку, провести клиента по этапам воронки. Плавно, постепенно, не перескакивая, не стараясь сразу дойти до финального этапа.
Допустим, вы получили заявку. Вы связываетесь, провели квалификацию, предварительный разговор, записали все данные, передвинули его в этап «проведена квалификация».
Далее связываетесь с ним условно в тот же звонок, либо в другой день и договорились на встречу – передвигаете его в этап «назначена встреча» и т.д. То есть задача продажников – это поэтапно вести клиента от заявки к продаже.
Пожалуй, это основные моменты, которые отвечают на вопрос «Как работать в amoCRM?».
Источник
Как внедрить и настроить amoCRM: подробный отчет
AmoCRM — специализированная crm-система для отдела продаж, удобный сервис для работы с клиентами и для ведения клиентской базы.
Не зря amoCRM с удобным интерфейсом стала лидером рейтинга CRM, ведь вся информация о продажах компании представлена как на ладони:
- общее количество сделок на каждом этапе воронки продаж,
- количество звонков, писем и примечаний,
- количество успешных сделок и показатель достижения целей менеджеров,
- задачи к выполнению и выполненные задачи,
- последние действия менеджеров и прогноз продаж.
Все это доступно прямо на рабочем столе amoCRM, откуда в один клик можно перейти в конкретный раздел системы.
Основные элементы amoCRM
- Сделка, для которой были созданы такие дополнительные поля как Источник лида, Дополнительно об источнике, Комментарий к сделке, Услуги, Бюджет КП без НДС, Стоимость услуги (сумма по договору), Причина отказа, Дата договора и другие.
- Контакт, для которой созданы поля – Контакт Viber, Страница Вконтакте, Страница Facebook, Должность, Корпоративный сайт, Комментарий, День рождения клиента и другие.
- Компания, для которой созданы дополнительные поля – Сфера деятельности, Кол-во сотрудников, Директор, Тип компании, Сайт, День рождения компании и другие.
В нашей amoCRM настроены следующие воронки с этапами работ, соответствующие отделу:
- Воронка продаж:
Не обработан -> Не удалось связаться -> Уточнение информации -> Назначена встреча -> Подготовить коммерческое предложение -> Переговоры до 10 дней – связаться с лидом -> -> Переговоры от 11 до 30 дней – связаться с лидом -> Переговоры дольше месяца – связаться с лидом -> Согласование договора -> Сделка заключена или Некачественная сделка. - SEO:
Передан в работу -> Согласование с клиентом -> В работе -> Оплаты -> Акты подписаны -> Успешно реализовано или Закрыто и не реализовано. - Контекстная реклама:
Передан в работу -> Настройка -> Согласование с клиентом -> Запуск -> Ведение -> Акты подписаны -> Успешно реализовано или Закрыто и не реализовано. - Разработка:
Передан в работу -> Согласование ТЗ -> Согласование и отрисовка прототипа -> Программная реализация -> Тестирование -> Подписание актов -> Успешно реализовано или Закрыто и не реализовано.
Когда менеджер по продажам ведет сделку по своей воронке, он обязательно помечает ее тегом отдела (для этого введено обязательное поле «Добавил тег отдела?»).
После того, как менеджер по продажам заключает сделку и в «Воронке продаж» переводит ее в статус «Сделка заключена», автоматически создается сделка со всей информацией по клиенту в той воронке, куда передают проект.
Таким образом, тим-лид отдела автоматически получает задачу и передает проект в работу сотруднику своего отдела.
В воронках SEO, Контекстная реклама, Разработка обязательными являются поля «Ведущий специалист» и «Ссылка на проект в seoCRM».
Для «Воронки продаж» для перевода сделки в статус «Сделка заключена» введены следующие обязательные поля.
Поле «Услуга» имеет тип «Мультисписок» и может принимать одно или несколько значений.
Таким образом, когда менеджер по продажам заполняет карточку сделки, он может указать все услуги, интересующие клиента.
- Поля «Дата договора», «День рождения клиента», «День рождения компании» введены для менеджера по продажам, который будет напоминать о себе клиенту в день события (автоматически приходит напоминание с задачей).
- Поле «Причина отказа» является обязательным при переводе сделки в статус «Некачественная». Спамные сделки (не тематические, всякий мусор, пробивоны) должны отмечаться специальным тегом «СПАМ».
AmoCRM автоматически собирает все запросы по email, телефону, с форм на сайте, чатов и мессенджеров, на основании которых создаются сделки:
- Email – интеграция с почтой info@gusarov.by
- Телефон – интеграция с сервисом «Мои звонки». При этом, записываются все телефонные разговоры менеджеров. Если звонит уже существующий в amoCRM контакт, то разговор записывается в сделку, либо создается новая сделка и новый контакт, а в примечаниях к ней отображается телефонный звонок.
- Формы на сайте – интегрированы через сервис roistat, откуда передаются в amoCRM.
- Чат – интеграция с сервисом Venyoo.
- Мессенджеры (настроены и подключены бизнес-страницы Вконтакте и Facebook, чат-бот Telegram) – на сайте установлена кнопка amoCRM, с которой в воронке продаж автоматически создаются сделки заявок.
AmoCRM и сервис аналитики Roistat
AmoCRM компании интегрирована с сервисом аналитики Roistat. Чтобы каждая сделка была зафиксирована в сервисе, все операции воронки продаж имеют поле с переменной roistat. В сервисе Roistat в мультиканальной аналитике отображаются все сделки по нашим проектам.
К системе Roistat подключены рекламные каналы — Яндекс Директ и Google Adwords. В каждом из них настроены рекламные кампании, соответствующие доменам.
В разделе «Аналитика» amoCRM заданы цели на месяц для каждого менеджера, что позволяет отследить реальную картину продаж. Кроме того, в этом разделе можно посмотреть сводный отчет по всем сделкам и отдельно по каждому менеджеру.
Дополнительные функции AmoCRM
- В amoCRM установлен бесплатный виджет «Интерфейс» от компании RocketCRM, который добавляет полезные функции к основному интерфейсу системы. Например, перенос строк в названиях полей, если оно не вмещается в одну строку.
- В карточке сделки можно посмотреть список всех сделок, привязанных к одному контакту.
- Еще одна функция виджет-пака — скрытие пустых статусов воронки продаж при фильтрации сделок.
- В шаблонные письма отправки сообщений на почту клиента из amoCRM добавлены html-подписи нашей компании.
При смене ответственного специалиста за сделку настроено автоматическое создание задачи. Таким образом, новый ответственный за сделку получает задачу-оповещение о том, что его назначили ответственным.
Автоматическая отправка писем и уведомления
В воронке продаж amoCRM настроена автоматическая отправка писем с общего почтового ящика info@gusarov.by, если в карточке контакта, привязанной к сделке, указан email:
- «Не обработан» — при переходе в этап отправляется шаблонное письмо-приветствие, в котором говорится, что менеджеры свяжутся в ближайшее время.
- «Сделка заключена» — через 14 дней после перехода в этап отправляется письмо от отдела качества «Гусаров Групп» для получения обратной связи и уточнения, доволен ли клиент услугами компании.
- «Некачественная сделка» — через 30 дней после перехода в этап отправляется письмо о том, что менеджеры готовы возобновить переговоры. На ответственного менеджера в этот момент ставится задача-уведомление об исходящем письме.
В воронке продаж настроены автоматические уведомления для ответственных менеджеров, если сделка надолго зависла на одном из этапов воронки.
После подготовки коммерческого предложения, когда менеджер переводит сделку в следующий этап, основному контакту отправляется sms-сообщение на привязанный номер телефона с уведомлением, что коммерческое предложение отправлено.
Этапы переговоров разбиты на несколько статусов, между которыми настроена автоматическая смена. То есть: если сделка находиться на первом этапе («Переговоры до 10 дней») дольше 10 дней, а клиент еще не принял решение, она автоматически переходит в следующий этап переговоров («Переговоры от 11 до 30 дней») и т.д. При каждой смене этапа на ответственного менеджера автоматически ставится задача.
Для сделок, созданных через стандартную форму amoCrm (установлена на сайте), менеджеру приходит уведомление о том, что клиент зашел на сайт. Это дает возможность мгновенно позвонить клиенту и напомнить о себе.
Источник
Частые ошибки настройки amoCRM
Рассмотрим наиболее частые ошибки, которые встречаются при самостоятельной настройке amoCRM:
Ошибка при подключении почтового ящика к amoCRM
Если не удается корректно подключить почту на Яндекс, войдите в Настройки и проверьте наличие следующей галочки
Для этого нужно войти в почту Яндекс, нажать шестеренку настроек и открыть Почтовые программы в левом меню. После добавления галочки в верхней строке: С сервера imap.yandex.ru по протоколу IMAP переподключите почтовый ящик в amoCRM
Ошибка подключения Инстаграм к amoCRM
Корректная работа возможна только при следующих условиях:
— Интеграция должна быть подключена по верифицированному номеру телефона вида 79ХХХХХХХХХ, а не логину!;
— Номер подключён только к одному аккаунту инстаграм;
— Двухфакторная авторизация должна быть отключена;
— В настройках инстаграм все флаги должны стоять
Аккаунт должен быть подключен только через воронку в качестве источника сделок (в настройках интеграций не должно быть подключений!)
Для этого нужно нажать Сделки и в правом углу Настроить воронку.
Ошибки подключения Вконтакте к amoCRM
Для корректного подключения интеграции с VK, необходимо проверить указана ли в настройках профиля VK почта. Если нет, то необходимо указать корректный ящик и подтвердить привязку в письме, которое будет отправлено после добавления ящика в настройках профиля.
Если у вас в Salesbot настроена отправка кнопок, а клиенту они не приходят, то в первую очередь нужно проверить включены «Возможности ботов» в настройках страницы VK. Если выключены — кнопки отправлены не будут.
В первую очередь, проверьте, пожалуйста, имеете ли вы роль Администратора в группе, потому что подключить интеграцию можно только с этой ролью. Если вы уже Администратор, то проверьте в настройках группы Список серверов, так как у VK есть ограничение в 10 серверов. В случае, если у вас лимит превышен, необходимо удалить все и заново подключить группу в amoCRM, всё должно пройти корректно, группа подключится, а в ВК появится сервер amoCRM.
Если при добавлении формы VK возникает ошибка или в поле выбора форм указано, что «Все формы добавлены», проверьте пожалуйста, активны ли формы в VK, которые вы хотите добавить. Возможно, что вы хотите добавить форму, которая уже настроена в другой воронке? А также, обязательно проверьте, добавлена и верифицирована ли ваша почта в Настройках VK.
В случае, если вы настроили Salesbot с кнопкой и при его отработке в карточке клиента появится ошибка, то проверьте количество символов в кнопке — у VK есть ограничение на 40 символов. При превышении, появится ошибка и сообщение клиенту не отправится.
Подключая формы VK, в Настройка формы вы можете выбрать воронку и этап, где будет создаваться заявка. По умолчанию там будет выбрано Неразобранное (если оно включено), либо первичный этап (если Неразобранное выключено) той воронки, в которой производится настройка.
Подключение Viber к amoCRM
Для подключения Viber нужен паблик аккаунт, вы можете зарегистрировать его по ссылке https://partners.viber.com/. После регистрации, нажмите на кнопку “Create Bot Account” на панели слева. После создания бота вы получите private token от паблик аккаунта, который необходимо скопировать. Вставляем полученный API token при подключении в amoCRM.
После того как клиент нажал на /start и мы пробуем отправить клиенту несколько сообщений подряд вручную или с помощью Salesbot, то клиент получит только первое сообщение. Данное ограничение происходит со стороны Viber, но до тех пор, пока клиент сам не ответит вам. После ответа клиента, данное ограничение снимается и появляется возможность отправлять несколько сообщений подряд.
Подключение Telegram к amoCRM
Если пользователь в боте просто нажимает кнопку «/start», то у вас создаётся пустая сделка, т.к. клиент не написал никакого сообщения. Если клиент напишет сообщение в вашего бота, оно подтянется в систему и вы его увидите.
Со стороны Telegram есть ограничение на отправку файлов, весом более 50mb. В amoCRM сообщение с файлом более 50 мегабайт будет отображено с ошибкой, а в Telegram оно просто не придёт.
Если вы переподключаете заново того Telegram бота, которые был подключен у вас ранее, то вам сначала необходимо сгенерировать новый API токен. Сделать это можно в BotFather в самом Telegram, выбираете вашего бота и жмёте команду Revoke current token, после чего копируете новый сгенерированный токен и подключаете бота в amoCRM.
Ошибки подключения Facebook к amoCRM
Подключить интеграцию с Facebook вы можете, если вы являетесь администратором на странице, формах или рекламе. В первую очередь проверьте, пожалуйста, верифицирован ли в общих настройках facebook, email-адрес и указан как основной контакт. Если нет, то вам надо его добавить и верифицировать. Затем перейти в Бизнес-интеграции и удалить плагин amoCRM, и после этого повторно подключить в amoCRM интеграцию с facebook.
Один аккаунт Facebook должен соответствовать только одному аккаунту amoCRM. Если подключить свой Facebook, который уже есть в одном аккаунте amoCRM во второй аккаунт amoCRM, то в первом аккаунте авторизация в Facebook слетит.
Если не приходят заявки из форм необходимо отравить тестовый лид через данный инструмент https://developers.facebook.com/tools/lead-ads-testing и нажать на кнопку отслеживать статус. Если появится код ошибки 103, то это значит что интеграция с формой настроена не до конца. Для того, чтобы исправить ситуацию, нужно перейти по ссылке https://business.facebook.com/settings/people и предоставить доступ к плагину amoCRM. В разделе «Приложения для интеграции», выберите «Leads Access» и во вкладке «CRM», кликните на «Назначить CRM»
Facebook Messenger имеет ограничение на три кнопки в сообщении Salesbot.
Если при добавлении формы FB возникает ошибка или в поле выбора форм указано, что «Все формы добавлены», проверьте пожалуйста, активны ли формы в FB, которые вы хотите добавить. Возможно, что вы хотите добавить форму, которая уже настроена в другой воронке? А также, обязательно проверьте, добавлена и верифицирована ли ваша почта в Настройках FB.
В случае, если почта верифицирована как основной адрес, а форма активна и в воронках её нет, то попробуйте полностью переподключить интеграцию с FB. Для этого, перейдите в раздел Настройки-Интеграции, откройте виджет «Facebook» и сделайте полный разлогин (Чаты, Формы, Реклама).
Ошибки импорта в amoCRM
Существует несколько вариантов, почему это может быть:
- Лимит данных — файл может не загрузиться, если у вас достигнут или превышен лимит по контактам, сделкам или компаниям. Если по какой-либо сущности превышен лимит, система не даст загрузить данные;
- Блокировка аккаунта — если в аккаунте закончился срок оплаты или превышены лимиты, и ваш аккаунт заблокирован, то система не даст загрузить данные;
- Размер файла — если файл имеет более 10 тысяч загружаемых данных, то загрузка файлов может занять продолжительное время. Если файл объемом более 2 мегабайт, то он не загрузится. В случае возникновения проблем, вам следует разделить файл на несколько частей;
- Нет прав — если у вас нет прав на создание: контактов, компаний, сделок, – то вы не сможете произвести импорт;
- Неправильный формат файла — файл не будет загружен, если имеет недопустимый формат. Допустимые форматы: .xls; .xlsx; .ods; .csv.
- Ошибка: Не задано название сделки. Это связано с тем, что вы загружаете в аккаунт данные по контакту, компании или сделке, но не указываете имя. Например, при сопоставлении столбцов во время импорта, вы указываете бюджет сделки, но название этой сделки не указано. В этом случае появится данная ошибка.
Экспорт закрытых сделок в amoCRM
В стандартном функционале закрытые этапы «Успешно реализовано» и «Закрыто и не реализовано» скрываются. По умолчанию показываются только открытые сделки. Для того, чтобы выбрать все этапы, нужно зайти в «Поиск и фильтр», и выделить все этапы. Далее нажать на иконку «три точки» = «Еще». Выбрать «Экспорт».
После этого вы можете экспортировать все сделки, которые у вас есть в аккаунте (выгрузка производиться по 500 в файле, если у вас больше 500, то вам необходимо нажимать на цифры страниц).
Ограничения экспорта в amoCRM
- По умолчанию экспортируется 500 контактов, компаний или сделок в одном файле;
- Нет экспорта задач;
- Нет экспорта событий;
- Нет экспорта звонков;
- Нет экспорта аналитики;
- Экспортируется только последние 5 примечаний.
Если ваша база больше, то вам нужно будет поступить следующим образом. Зайдите в раздел «Сделки»; нажмите на «три точки» = «Ещё». Справа над списком выберите пункт «Экспорт». В пункте «Экспорт в Excel» рядом со ссылкой «Экспорт всех контактов» нажмите на каждую цифру. После сохранения у вас будет несколько файлов по 500 контактов в каждом из них.
Источник













