1. Go to this page and download the library: Download nabarabane/amocrm library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nabarabane / amocrm example snippets
return [
'ResponsibleUserId' => 330242, //ID ответственного менеджера
'LeadStatusId' => 8156376, // ID первого статуса сделки
'ContactFieldPhone' => 1426544, // ID поля номера телефона
'ContactFieldEmail' => 1426546, // ID поля емейла
'LeadFieldCustom' => 1740351, // ID кастомного поля сделки
'LeadFieldCustomValue1' => 4055517, // ID первого значения кастомного поля сделки
'LeadFieldCustomValue2' => 4055519 // ID второго значения кастомного поля сделки
];
use AmoCRM\Handler;
use AmoCRM\Request;
ple.com');
print_r($api->request(new Request(Request::INFO))->result);
use \AmoCRM\Handler;
use \AmoCRM\Request;
API, где "domain" - имя вашего домена в AmoCRM, а
"[email protected]" - email пользователя, от чьего имени будут совершаться запросы */
$api = new Handler('domain', '[email protected]');
/* Создание экземляра запроса */
/* Вторым параметром можно передать дополнительные параметры поиска (смотрите в документации)
В этом примере мы ищем пользователя с номером телефона +7 916 111-11-11
Чтобы получить полный список, укажите пустой массив []
Третьим параметром указывается метод в формате [название объекта, метод] */
$request_get = new Request(Request::GET, ['query' => '79161111111'], ['contacts', 'list']);
/* Выполнение запроса */
$result = $api->request($request_get)->result;
/* Результат запроса сохраняется в свойстве "result" объекта \AmoCRM\Handler()
Содержит в себе объект, полученный от AmoCRM, какой конкретно - сверяйтесь с документацией для каждого метода
Ошибка запроса выбросит исключение */
$api->result == false, если ответ пустой (то есть контакты с таким телефоном не найдены) */
use \AmoCRM\Handler;
use \AmoCRM\Request;
use \AmoCRM\Lead;
use \AmoCRM\Contact;
use \AmoCRM\Note;
use \AmoCRM\Task;
�е */
$name = 'Пользователь';
$phone = '79161111111';
$email = '[email protected]';
$message = 'Здравствуйте';
/* Оборачиваем в try{} catch(){}, чтобы отлавливать исключения */
try {
$api = new Handler('domain', '[email protected]');
/* Создаем сделку,
$api->config содержит в себе массив конфига,
который вы создавали в начале */
$lead = new Lead();
$lead
/* Название сделки */
->setName('Заявка')
/* Назначаем ответственного менеджера */
->setResponsibleUserId($api->config['ResponsibleUserId'])
/* Кастомное поле */
->setCustomField(
$api->config['LeadFieldCustom'], // ID поля
$api->config['LeadFieldCustomValue1'] // ID значения поля
)
/* Теги. Строка - если один тег, массив - если несколько */
->setTags(['тег 1', 'тег 2'])
/* Статус сделки */
->setStatusId($api->config['LeadStatusId']);
/* Отправляем данные в AmoCRM
В случае успешного добавления в результате
будет объект новой сделки */
$api->request(new Request(Request::SET, $lead));
/* Сохраняем ID новой сделки для использования в дальнейшем */
$lead = $api->last_insert_id;
/* Создаем контакт */
$contact = new Contact();
$contact
/* Имя */
->setName($name)
/* Назначаем ответственного менеджера */
->setResponsibleUserId($api->config['ResponsibleUserId'])
/* Привязка созданной сделки к контакту */
->setLinkedLeadsId($lead)
/* Кастомные поля */
->setCustomField(
$api->config['ContactFieldPhone'],
$phone, // Номер телефона
'MOB' // MOB - это ENUM для этого поля, список доступных значений смотрите в информации об аккаунте
)
->setCustomField(
$api->config['ContactFieldEmail'],
$email, // Email
'WORK' // WORK - это ENUM для этого поля, список доступных значений смотрите в информации об аккаунте
)
/* Теги. Строка - если один тег, массив - если несколько */
->setTags(['тег контакта 1', 'тег контакта 2']);
/* Проверяем по емейлу, есть ли пользователь в нашей базе */
$api->request(new Request(Request::GET, ['query' => $email], ['contacts', 'list']));
/* Если пользователя нет, вернется false, если есть - объект пользователя */
$contact_exists = ($api->result) ? $api->result->contacts[0] : false;
/* Если такой пользователь уже есть - мержим поля */
if ($contact_exists) {
$contact
/* Указываем, что пользователь будет обновлен */
->setUpdate($contact_exists->id, $contact_exists->last_modified + 1)
/* Ответственного менеджера оставляем кто был */
->setResponsibleUserId($contact_exists->responsible_user_id)
/* Старые привязанные сделки тоже сохраняем */
->setLinkedLeadsId($contact_exists->linked_leads_id);
}
/* Создаем заметку с сообщением из формы */
$note = new Note();
$note
/* Привязка к созданной сделке*/
->setElementId($lead)
/* Тип привязки (к сделке или к контакту). Смотрите комментарии в Note.php */
->setElementType(Note::TYPE_LEAD)
/* Тип заметки (здесь - обычная текстовая). Смотрите комментарии в Note.php */
->setNoteType(Note::COMMON)
/* Текст заметки*/
->setText($message);
/* Создаем задачу для менеджера обработать заявку */
$task = new Task();
$task
/* Привязка к созданной сделке */
->setElementId($lead)
/* Тип привязки (к сделке или к контакту) Смотрите комментарии в Task.php */
->setElementType(Task::TYPE_LEAD)
/* Тип задачи. Смотрите комментарии в Task.php */
->setTaskType(Task::CALL)
/* ID ответственного за задачу менеджера */
->setResponsibleUserId($api->config['ResponsibleUserId'])
/* Дедлайн задачи */
->setCompleteTill(time() + 60 * 2)
/* Текст задачи */
->setText('Обработать заявку');
/* Отправляем все в AmoCRM */
$api->request(new Request(Request::SET, $contact));
$api->request(new Request(Request::SET, $note));
$api->request(new Request(Request::SET, $task));
} catch (\Exception $e) {
echo $e->getMessage();
}
use \AmoCRM\Handler;
use \AmoCRM\Request;
use \AmoCRM\Lead;
/* Первая сделка */
$lead1 = new Lead();
$lead1
->setName('Заявка 1')
->setResponsibleUserId($api->config['ResponsibleUserId'])
->setStatusId($api->config['LeadStatusId']);
/* Вторая сделка */
$lead2 = new Lead();
$lead2
->setName('Заявка 2')
->setResponsibleUserId($api->config['ResponsibleUserId'])
->setStatusId($api->config['LeadStatusId']);
/* Отправляем данные в AmoCRM */
$api->request(new Request(Request::SET, [$lead1, $lead2]));
use \AmoCRM\Webhook;
ook();
/* Указываете обработчики событий
Callback-функция, передаваемая вторым параметром,
будет вызвана при наступлении соответстующего события */
$listener->on('leads-add', function($domain, $id, $data, $config) {
/* Тут делаете, что нужно при этом событии
Сюда передаются следующие параметры:
$domain - название домена в AmoCRM, с которого пришло событие
$id - ID сущности
$data - массив полей сущности
$config - конфиг этого домена (если вы создавали соответствующий файл, иначе - пустой массив) */
});
/* Если вы хотите назначить одинаковый обработчик нескольким событиям, можно сделать так */
$listener->on(['contacts-add', 'contacts-update'], function($domain, $id, $data, $config) {/* ... */});
/* Запуск слушателя */
$listener->listen();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.