Открытые ИТ решенияhttp://example.com/blog/2024-03-28T13:00:05+00:00Платформа по управлению контентом с открытым исходным кодом.vTIger CRM: интеграция с сайтом2020-04-02T10:55:17+00:002024-03-28T13:00:05+00:00s.sokolkohttp://example.com/blog/author/s.sokolko/http://example.com/blog/vtiger-crm-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D1%81-%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%BC/<h2>Содержание</h2>
<p><a href="http://xn----jtbajd3aso1dzd.xn--p1ai/blog/tag/webforms/feeds/atom/#vtiger_crm_integration_intro">Введение в интеграцию с vTiger CRM</a></p>
<p><a href="http://xn----jtbajd3aso1dzd.xn--p1ai/blog/tag/webforms/feeds/atom/#vtiger_crm_integrate_website">Внешний (корпоративный) сайт и vTiger API</a></p>
<p><a href="http://xn----jtbajd3aso1dzd.xn--p1ai/blog/tag/webforms/feeds/atom/#vtiger_webforms">Интеграция с vTIger CRM через вебформы</a></p>
<p><a href="http://xn----jtbajd3aso1dzd.xn--p1ai/blog/tag/webforms/feeds/atom/#vtiger_webforms_setup">Настройка вебформы (vTiger Webforms)</a></p>
<p><a href="http://xn----jtbajd3aso1dzd.xn--p1ai/blog/tag/webforms/feeds/atom/#vtiger_webforms_conclusion">Выводы</a></p>
<p></p>
<p class="western"><span size="3">Система vTIger CRM позволяет добавлять обращения с сайта через API – то есть сообщение, оставленное посетителем сайта, сразу же же поступает в </span><span size="3"><span lang="en-US">CRM</span></span><span size="3"> и готово для дальнейшей работы. Это может быть покупка или просто обращение. Давайте рассмотрим этот процесс на конкретном примере.</span></p>
<h2 class="western"><span size="3"><a id="vtiger_crm_integration_intro" title="Введение в интеграцию с vTiger CRM"></a>Введение в интеграцию с vTiger CRM</span></h2>
<p class="western"><span size="3">На подавляющем большинстве сайтов в интернете есть возможность связаться с владельцами этих самых сайтов через страницу с формой обратной связи. Обычно это просто </span><span size="3"><span lang="en-US">html</span></span><span size="3">-форма с обработчиком на </span><span size="3"><span lang="en-US">PHP</span></span><span size="3">, который отправляет письмо с сайта. Это письмо по сути является лидом и на некоторых популярных </span><span size="3"><span lang="en-US">CRM</span></span><span size="3">, таких как </span><span size="3"><span lang="en-US">Bitrix</span></span><span size="3"> есть специальные модули, которые письма обрабатывают и заносят в базу данных как лиды.</span></p>
<p class="western"><span size="3">Cистема vTIger CRM обладает возможностью принимать от внешнего источника не письма, а сразу же запросы (сущности) и заносить их в базу данных. Давайте на примере корпоративного сайта в подробностях узнаем, как это происходит.</span></p>
<p class="western"><span size="3">Стоит сразу же отметить, что есть два варианта встраивания отправки сообщений напрямую в vTIger – это АПИ (vTiger API) и вебформы. Сначала мы разберем АПИ.</span></p>
<h2 class="western"><span size="3"><a id="vtiger_crm_integrate_website" title="Внешний (корпоративный) сайт"></a>Внешний (корпоративный) сайт и vTiger API</span></h2>
<p class="western"><span size="3">Итак, обычный корпоративный сайт, обычная форма обратной связи:</span></p>
<p class="western" style="text-align: center;"><span size="3"><img alt="Форма на сайте для API vTiger CRM" src="http://xn----jtbajd3aso1dzd.xn--p1ai/static/media/uploads/vtiger-crm-api-website-form.png" width="635"/></span></p>
<p class="western"><span size="3">В нашем случае сайт написан на фреймворке </span><span size="3"><span lang="en-US">Yii</span></span><span size="3"> – ищем контроллер для формы обратной связи. Он находится в файле SiteController.php – функция actionSupport(). Пропускаем ненужное и добираемся до непосредственно отправки письма:</span></p>
<p class="western"><span size="3"></span></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">mail = new MailForms();</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$result = $mail->sendNotification($title, $message, '</span></span></span><span color="#92d050"><span size="3">корпоративная</span></span><span color="#92d050"><span size="3"><span lang="en-US">@</span></span></span><span color="#92d050"><span size="3">почта</span></span><span color="#92d050"><span size="3"><span lang="en-US">');</span></span></span></code></p>
<p class="western"><span color="#92d050"><span size="3"><span lang="en-US"></span></span></span></p>
<p>Эти строки нам больше нам больше не нужны – удаляем или закомментируем их. Теперь находим файл с функциями VTigerAPI. Так как мы имеем дело с уже работающим проектом и на других страницах сайта происходит создание обращений по API и подключение их напрямую, то работа у нас упрощается – можем пользоваться готовыми функциями авторизации и создания запроса.</p>
<p>Переходим к написанию функции создания сущности (обращения) к vTIger CRM:</p>
<p></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">public function create_lead($name, $phone, $email, $company, $position, $text) {</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> $params["lastname"] = $name;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> $params["phone"] = $phone;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> $params["email"] = $email;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> $params["company"] = $company;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> $params["cf_1599"] = $position;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> $params["description"] = $text;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> $params["assigned_user_id"] = '19x1';</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> </span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> $result = $this->create('Leads', $params);</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> if ($result == false) {</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> return false;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> }</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> return $this->get_id_from_result($result);</span></span></span></code></p>
<p class="western"><code><span color="#92d050"> </span><span color="#92d050"><span size="3">}</span></span></code></p>
<p class="western"><span color="#92d050"><span size="3"></span></span></p>
<p class="western"><span size="3">При этом мы использовали уже готовые функции create() и get_id_from_result(). В функции create() происходит подготовка полей (кодирование в json) и отправка их посредством </span><span size="3"><span lang="en-US">curl</span></span><span size="3"> </span><span size="3"><span lang="en-US">POST</span></span><span size="3">-запросом к специальному адресу vTIger – получая такой запрос система его обрабатывает и, если все верно (уровень доступа позволяет и все остальное корректно), то создает обращение.</span></p>
<p class="western"><span size="3">Теперь вернемся к файлу контроллера формы. Надо добавить вызов нашей созданной функции:</span></p>
<p class="western"><span size="3"></span></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$request = Yii::app()->request;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$phone = $request->getPost('phone');</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$name = $request->getPost('name');</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$email = $request->getPost('email');</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$company = $request->getPost('organization');</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$position = $request->getPost('position');</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$text = $request->getPost('text');</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"> </span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$vt = new VTigerAPI;</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US">$result = $vt->create_lead($name, $phone, $email, $company, $position, $text);</span></span></span></code></p>
<p class="western"><code><span color="#92d050"><span size="3"><span lang="en-US"></span></span></span></code></p>
<p class="western"></p>
<p class="western"><span size="3">Ну и дальше уже работа с переменной $result неизменна. Мы создаем и отправляем обращение VTigerAPI.</span></p>
<p class="western"></p>
<p class="western"><span size="3">В настройках прописывается адрес обработчика, который уже и принимает информацию. С помощью </span><span size="3"><span lang="en-US">API</span></span><span size="3"> можно делать практически все, что угодно – отправлять любые поля, очень гибкие настройки. </span></p>
<p class="western"></p>
<p class="western"><span size="3">Фактически, по АПИ мы как будто имитируем работу пользователя. Для нестандартных решений АПИ – отличный вариант. Но есть и другой вариант.</span></p>
<h2 class="western"><span size="3"><a id="vtiger_webforms" title="Интеграция с vTIger CRM через вебформы"></a>Интеграция с vTIger CRM через вебформы</span></h2>
<p>vTIger CRM дает возможность практически визуально настроить «приемщики» информации — вебформы (webforms). То есть ту форму, что мы видели ранее можно создать внутри vTIger CRM, скопировать HTML-код и не надо ничего программировать.</p>
<p>Эта вебформа напрямую будет обращаться к црм</p>
<h2><a id="vtiger_webforms_setup" title="Настройка вебформы (vTiger Webforms)"></a>Настройка вебформы (vTiger Webforms)</h2>
<p>Vtiger позволяет настроить и персонализировать вебформы в соответствии с вашими бизнес-требованиями, и встроить их в веб-сайт, чтобы захватить лиды на вашем сайте. Посетители, предоставляющие подробную информацию веб-сайте через встроенные веб-формы, автоматически добавляются в качестве сущности в Vtiger CRM.</p>
<p>В разных версиях систем путь к вебформам разный, но всегда их можно найти в пункте меню «Настройки». Например, для версии 6 SalesPlatform: «Настройки CRM» - «Другие настройки» - «Вебформы».</p>
<p>Параметры при создании:</p>
<p style="text-align: center;"><img alt="Веб-формы (webforms) vTiger CRM: настройка" src="http://xn----jtbajd3aso1dzd.xn--p1ai/static/media/uploads/vtiger-crm-webforms-integration.png" width="635"/></p>
<ul>
<li style="text-align: left;">Имя веб-формы - укажите уникальное имя веб-формы. Это только для вашего внутреннего использования.</li>
<li style="text-align: left;">Возвращаемый URL - адрес укажите URL-адрес, по которому ваши пользователи должны перемещаться после успешной отправки сведений.</li>
<li style="text-align: left;">Статус - нажмите на флажок, чтобы сделать веб-форму активной. Вы можете отключить этот флажок, если решите не использовать веб-форму.</li>
<li style="text-align: left;">Описание - для предоставления более подробной информации о веб-форме. Это только для вашего внутреннего использования.</li>
<li style="text-align: left;">Модуль - выберите модуль, в котором должна быть создана запись. Vtiger может использовать веб-формы для создания контактов, контрагентов, обращений, сделок или заявок.</li>
<li style="text-align: left;">Captcha – отметив капчу, вы включите защиту от ботов, которые могут генерировать ненужные лиды из-за какого-то автоматизированного скрипта. Настоятельно рекомендуется включить эту функцию.</li>
</ul>
<p></p>
<p><strong><em>Внимание! Вы можете создавать веб-формы для пользовательских модулей.</em></strong></p>
<p><strong><em></em></strong></p>
<p>В блоке «Назначение пользователей» назначьте вновь сгенерированные записи интересов/контактов из веб-формы различным пользователям в вашей CRM циклическим способом. Вы можете выбрать пользователей в правой части списка пользователей.</p>
<p>В блоке «Контакты Информация о поле» выберите поля, которые вы хотите включить в свою вебформу.</p>
<p>Например, поля, которые вы выберете в блоке "Информация о поле контактов", будут отображаться в вашей веб-форме, когда вы интегрируете ее в свой веб-сайт.</p>
<p></p>
<p><em><strong>Внимание! Обязательные поля выбираются автоматически.</strong></em></p>
<p><em><strong></strong></em></p>
<p>После создания вебформы будет готов HTML-код, которй можно вставить на сайт:</p>
<p style="text-align: center;"><img alt="Код формы интеграции с сайтом для vtiger" src="http://xn----jtbajd3aso1dzd.xn--p1ai/static/media/uploads/vtiger-webform-html.png" width="635"/></p>
<p style="text-align: left;"></p>
<p style="text-align: left;">Конкретно в нашем случае это уже не требуется (мы имеем настроенную форму), но в любом другом вам нужны будут как минимум названия полей. Также в готовом коде имеется JS-валидация полей формы (например, поле электронного адреса) – проверка производится перед отправкой.</p>
<p></p>
<h2><a id="vtiger_webforms_conclusion" title="Выводы"></a>Выводы</h2>
<p>Отправка сообщений посетителей с сайта в виде электронного письма – это простой, но уже устаревший способ. Не говоря о том, что здесь возможны сбои – электронная почта, например, отправляемая через функцию mail() иногда может попасть в спам или быть вообще не отправлена – если, например, у хостера есть лимиты на отправку писем с сайта.</p>
<p>Вы можете выбрать один из двух вариантов: подключение по API – требуются знания программирования, но огромные возможности. Либо же вебформы – меньший функционал, но без необходимости писать код и быстрое развёртывание на сайте.</p>
<p>Если вам требуется настроить отправку информации напрямую в vTIger CRM - обращайтесь к нам. Всегда рады помочь с интеграцияей vTiger с Вашим корпоративным сайтом, либо любой другой программной системой.</p>