Open romanenkosergio opened 5 years ago
$this->_contact = $this->_amo->contact->apiList([
'query' => +123456789,
'limit_rows' => 1
]);
если найдет контакт значит можно обновлять
$contact = $this->_amo->contact;
$contact['phone'] = +123456789;
$contact->addCustomField( $this->_field_phone, [[ $this->_phone, 'WORK']] );
$contact->apiUpdate((int)$this->_contact['id']);
1) вырезаешь из телефона код страны (+79995551122 и 89995551122 - разные номера для системы) - ищешь по query=9995551122
2) полученный массив результатов проверяешь на соответствие поля телефона (именно поле телефона), т.к. поиск исуществляется по всем полям и с низкой долей вероятности (на основе моей практики) может прилететь несколько результатов, где искомый номер будет не в поле телефона.
3) если после второго шага есть результат - обновляешь его (при необходимости), если результатов нет - создаешь контакт
Подскажите, пожалуйста, что именно нужно добавить в код чтобы была проверка существует ли контакт с указанным номером телефона? Код выше у мня не работает. Добавляю с помощью $contact->addCustomField(245689, $_POST['phone'], 'WORK');
Алгоритм такой
0> пришла заявка
1> делаешь запрос списка контактов $amoContacts = $amoClient->contact->apiList(['query'=>'9612211333'])
. В ответ тебе придет массив контактов (или пустой), у которых в ЛЮБОМ (!) поле есть искомое значение (чаще всего телефон, но не обязательно, может быть любое поле, например с каким-либо идентификатором внешнеей системы)
2> фильтруешь полученные результаты на соответствие именно поискового значения по полю телефона
3> (не обязательно) можешь повторить шаги 1-2 для любого другого поля (емейл, идентификатор клиента и т.д.)
4> если после фильтра контакт найден - запоминаешь его идентификатор, обновляешь поля, если надо
5> если контакт не найден - создаешь новый
6> ... (следующие действия - добавить примечание, задачу, сделку ...)
Подскажите пожалуйста, как избавится от дублей. Необходимо сделать фильтр по номеру телефона(касмотное поле получается) и если такое контакт уже создан, то обновить его