A
A
annamanage2017-04-08 01:58:09
CRM
annamanage, 2017-04-08 01:58:09

How to integrate a website with CRM?

It is necessary to integrate the crm system with the site so that sending forms from the site creates deals in crm
went through all the widgets, everything is very inconvenient. I want to keep my form. On the Internet, I found this solution, I saw it on many sites
. Tell me where exactly to insert it? in the form or just in the site. I would appreciate a detailed explanation.

the code:
<?php

$site_name = $_SERVER["HTTP_REFERER"];

//Путь сайта для создание разных меток для amoCRM
$site_path  = str_replace($_SERVER['HTTP_HOST'] , '', $_SERVER['HTTP_REFERER']);
$site_path  = str_replace('http://' , '', $site_path);
$site_path  = str_replace('/' , '', $site_path);

//Формируем из Город по IP
$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));
$details1 = $details->region;
$details2 = $details->city;
$geo= ''.$details1.', '.$details2.'';

//Формируем данные для добавления их в amoCRM
$contact = array(
      'name'=>$data['name'],
      'tags' => 'Заявка с сайта, '. $site_path,
      'responsible_user_id'=>$manager,
      'text'=>12488185,
      'custom_fields'=>array(
        array(
          'id'=>$custom_fields['EMAIL'],
          'values'=>array(
            array(
              'value'=>$data['email'],
              'enum'=>'WORK'
            )
          )
        ),
        array(
          'id'=>1755674,
          'values'=>array(
            array(
              'value'=> $geo
            )
          )
        )

      )
    );

//Сбор данных с полей
if(!empty($data['phone']))
  $contact['custom_fields'][]=array(
    'id'=>$custom_fields['PHONE'],
    'values'=>array(
      array(
        'value'=>$data['phone'],
        'enum'=>'OTHER'
      )
    )
);

if(!empty($data['web']))
  $contact['custom_fields'][]=array(
    'id'=>$custom_fields['Сайт'],
    'values'=>array(
      array(
        'value'=>$data['web']
      )
    )
  );

$set['request']['contacts']['add'][]=$contact;

#Формируем ссылку для запроса
$link='https://'.$subdomain.'.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-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($set));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
CheckCurlResponse($code);

/**
 * Данные получаем в формате JSON, поэтому, для получения читаемых данных,
 * нам придётся перевести ответ в формат, понятный PHP
 */
$Response=json_decode($out,true);
$contact_id=$Response['response']['contacts']['add'][0]['id'];

$contacts['request']['contacts']['update']=array(
  array(
  'id'=>$contact_id,
  'last_modified' => time(),
    'custom_fields'=>array(
      #Проект
      array(
          'id'=>$custom_fields['EMAIL'],
          'values'=>array(
            array(
              'value'=>$data['email'],
              'enum'=>'WORK'
            )
          )
        )
     )
  ) //возможно лишняя запятая
);

#Формируем ссылку для запроса
$link='https://'.$subdomain.'.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-API-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,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную

// Ставим задачу
$tasks['request']['tasks']['add']=array(
  array(
    'element_id'=>$contact_id,// ID созданной сделки ($lead_id) или контакта ($contact_id)
    'element_type'=>1, // Type: 1 - контакт, 2 - сделка
    'task_type'=>52426, #Встреча
    // 'text'=>'Заявка с '. $site_name . ' ' . $data['massage'] . ' ' . $data['action'] ,
    'text'=>'Заявка с ' . $site_name . ' ' . $data['action'] . ' ' . $data['massage'],
    'responsible_user_id'=>$manager,
    // пользователь Дима
    'complete_till'=>time()+600,// 10 минут на выполнение

  )
);

#Формируем ссылку для запроса
$link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/tasks/set';

$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($tasks)); // Encode array in JSON format
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
//curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
curl_close($curl);

//
// const VERSION = '0.0.1';
//
// private static $api_key = 'БЛА БЛА БЛА';
// private static $list_id = 'b36623ad35';
// private static $test_list_id = 'fdbb5d7d9f';
// private static $email;
// private static $is_test_subscribe = false;
//
//
// static function initialize($config=array())
// {
//   CMS::add_component('MailChimpSync', new CMS_Mapper());
// }
//
//
// private static function get_datacenter_code()
// {
//   return preg_match('{-(.*)$}', self::$api_key, $m) ? $m[1] : false;
// }
//
// private static function get_api_url($section, $method)
// {
//   if ($datacenter_code = self::get_datacenter_code()) {
//       $base_api_url = 'https://'.$datacenter_code.'.api.mailchimp.com/2.0/';
//       return $base_api_url.$section.'/'.$method;
//   }
//   return false;
// }
//
//
// public static function build_mailchimp_object()
// {
//   $result = new stdClass();
//   $result->apikey = self::$api_key;
//   $result->id = self::$is_test_subscribe ? self::$test_list_id : self::$list_id;
//   $result->email = self::build_mailchimp_email_object();
//
//   $result_merge_vars = new stdClass();
//   $result_merge_vars->mc_language = 'ru';
//
//   $result->merge_vars = $result_merge_vars;
//   return $result;
// }
//
//
// public static function build_mailchimp_email_object()
// {
//   $email_obj = new stdClass();
//   $email_obj->email = self::$email;
//   $email_obj->euid = md5(self::$email);
//   $email_obj->leid = self::$list_id;
//   return $email_obj;
// }

//unisender cUrl subscrible - подписка

// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "БЛА БЛА БЛА";

// Данные о новом подписчике
$user_email = $_POST['email'];
$user_name = $_POST['name'];

$user_lists = "482917";
$user_tag = "noread";
$str= $_POST['phone'];
$phone= preg_replace('/[^0-9]/', '', $str);

// Создаём POST-запрос
$POST = array (
  'api_key' => $api_key,
  'list_ids' => $user_lists,
  'fields[email]' => $user_email,
  'fields[Name]' => $user_name,
  'fields[phone]' => $phone,
  'tags' => $user_tag,
  'double_optin' => '3',
  'overwrite' => '1'
);

// Устанавливаем соединение
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL,
            'https://us1.api.mailchimp.com/3.0/lists');
$result = curl_exec($ch);

if ($result) {
  // Раскодируем ответ API-сервера
  $jsonObj = json_decode($result);

  if(null===$jsonObj) {
    // Ошибка в полученном ответе
    //echo "Invalid JSON";

  }
  elseif(!empty($jsonObj->error)) {
    // Ошибка добавления пользователя
   // echo "An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")";

  } else {
    // Новый пользователь успешно добавлен
    //echo "Added. ID is " . $jsonObj->result->person_id;

  }
} else {
  // Ошибка соединения с API-сервером
  //echo "API access error";
}

?>

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question