Документация для разработчиков
Темная тема

crm.contact.add

Scope: crm Права на выполнение: для всех

crm.contact.add(fields, params)

Создаёт новый контакт.

Параметры

Параметр Описание
fields Набор полей – массив вида array("поле"=>"значение"[, ...]), содержащий значения полей контакта.
Примечание: чтобы узнать требуемый формат полей, выполните метод crm.contact.fields и посмотрите формат пришедших значений этих полей.
params Набор параметров. REGISTER_SONET_EVENT - произвести регистрацию события добавления контакта в живой ленте. Дополнительно будет отправлено уведомление ответственному за контакт.

Одно из полей: NAME или LAST_NAME обязательно должно быть заполнено.

Пример

BX24.callMethod(
	"crm.contact.add", 
	{
		fields:
		{ 
			"NAME": "Глеб", 
			"SECOND_NAME": "Егорович", 
			"LAST_NAME": "Титов", 
			"OPENED": "Y", 
			"ASSIGNED_BY_ID": 1, 
			"TYPE_ID": "CLIENT",
			"SOURCE_ID": "SELF",
			"PHOTO": { "fileData": document.getElementById('photo') },
			"PHONE": [ { "VALUE": "555888", "VALUE_TYPE": "WORK" } ] 	
		},
		params: { "REGISTER_SONET_EVENT": "Y" }	
	}, 
	function(result) 
	{
		if(result.error())
			console.error(result.error());
		else
			console.info("Создан контакт с ID " + result.data());
	}
);


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Григорий Васильков
Сообщение не промодерировано, возможны ошибки и неточности.
Не удалось добиться работоспособности "идемпотентности" с помощью полей ORIGINATOR_ID, ORIGIN_ID, ORIGIN_VERSION.
Полагаю, что работает примерно так: запрашиваем фильтром по этим полям перед записью, исключаем лишнее в коде, записываем то, чего не было.
Это боль...

А ещё боль - 2 запроса в секунду в том числе на crm.contacts.get
0
Вячеслав Докукин
Сообщение не промодерировано, возможны ошибки и неточности.
Для того что бы добавить EMAIL (ы) при исп. CRest

делается это так

Код
$dataRow[10] = 'test1@gmail.com, test2@mail.ru';

//EMAILS
$arrEmails = array();
$arExpl = explode(',', $dataRow[10]);
if (is_countable($arExpl)) {
   if (count($arExpl)) {
      foreach ($arExpl as $itm) {
         $arrEmails[] = (object)["VALUE" => $itm];
      }
   }
}

Код
$arFields = array(
   "NAME" => $name,
   "SECOND_NAME" => "",
   "LAST_NAME" => "",
   "OPENED" => "Y",
   "ASSIGNED_BY_ID" => $assigned_id,
   "TYPE_ID" => "CLIENT",
   "SOURCE_ID" => "SELF",
   "PHONE" => $arrPhones,
   "EMAIL" => $arrEmails,
   "ADDRESS" => $address,
   "UF_CRM_1679317275" => $phones,
   "UF_CRM_1679317322" => $job,
   "UF_CRM_1679317373" => $ext_code,
   "UF_CRM_1679317390" => $address,
);

$resContact = App\CRest::call(
   'crm.contact.add',
   array(
      "fields" => $arFields,
      "params" => array("REGISTER_SONET_EVENT" => "Y"),
   )
);
0
Вячеслав Докукин
Сообщение не промодерировано, возможны ошибки и неточности.
если юзаете CRest то добавлять телефоны можно так


если один
Код
"PHONE" => array((object)["VALUE" => $phone, "VALUE_TYPE" => "WORK"]),

если несколько
Код
//PHONE
$extract_phone_number_pattern = "/\\+?[1-9][0-9\-\s]{7,14}/";
preg_match_all($extract_phone_number_pattern, $dataRow[11], $matches);
$phone = $matches[0][0];
$arrPhones = array();

if(is_countable($matches[0]))
{
   if(count($matches[0]))
   {
      foreach ($matches[0] as $itm)
      {
         $arrPhones[] = (object)["VALUE" => $itm, "VALUE_TYPE" => "WORK"];
      }
   }
}

Код
$arFields = array(
   "NAME" => $name,
   "SECOND_NAME" => "",
   "LAST_NAME" => "",
   "OPENED" => "Y",
   "ASSIGNED_BY_ID" => $assigned_id,
   "TYPE_ID" => "CLIENT",
   "SOURCE_ID" => "SELF",
   "PHONE" => $arrPhones, //array((object)["VALUE" => $phone, "VALUE_TYPE" => "WORK"]),
   "ADDRESS" => $address,
   "UF_CRM_1679317275" => $phones,
   "UF_CRM_1679317322" => $job,
   "UF_CRM_1679317373" => $ext_code,
   "UF_CRM_1679317390" => $address,
);

$resContact = App\CRest::call(
   'crm.contact.add',
   array(
      "fields" => $arFields,
      "params" => array("REGISTER_SONET_EVENT" => "Y"),
   )
);

$contact_id = $resContact['result'];
© «Битрикс», 2001-2024, «1С-Битрикс», 2024