Доработка интеграции Битрикс 24 с Sendpulse

Качественных систем по ведению рассылок на самом деле не очень много. Одна из них — Sendpulse — активно используется моим клиентом. Чтобы организовать связь Sendpulse c Битрикс 24, в маркетплейс вы найдете следующие решения: Sendpulse 2.0 просто передаст все новые контакты в выбранную книгу — что не годится, если книг более одной, IT — solution Sendpulse интеграция позволяет подойти к делу более гибко — работать через активити бизнес-процессов, что дат возможность добавления данных во множественные книги.

При этом на практике вы столкнетесь с проблемами:

  • данные в книгах надо еще обновлять. Если у контакта меняется имя, то сообщать его при изменении карточки бизнес-процессом. Активити IT-solution этого не умеет;
  • часто на контактах в пользовательском поле стоит признак отказа от рассылки — например, если клиент сообщил об этом в письме. В этом случае надо дать команду в Sendpulse об удалении контакта. Типовая интеграция делать этого не умеет;
  • верно и обратное: событие отписки в Sendpulse должно обновлять признак карточки контакта или компании в Битрикс24;
  • иногда из готовых книг надо забрать контакты уже в Битрикс 24, если в последнем эти контакты были ранее удалены.

Для таких целей мною были написаны PHP-обработчики. Делюсь с Вами в блоге примером решения первой задачи:

$opt = array( 'addressBook_Id'=> $tbook, // код книги 'email' => $email, // адрес 'variables' => array(array( 'name'=>'имя','value'=>$name //новое имя )) );

// код для обновления имени в Sendpulse $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.sendpulse.com/addressbooks/".$tbook."/emails/variable"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( "Authorization: " . $res['token_type'] . ' ' . $res['access_token'] )); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($opt)); $xml = curl_exec($ch); // из этого массива можете узнать результат операции $out = json_decode($xml, 1); curl_close($ch);

Таким образом связь Sendpulse с Битрикс 24 успешно реализована.