Importowanie leadow drogą API w wydaniu Bitrix24 self hosted

16 November 2018

NASTĘPNY ARTYKUŁ
Alexander Kaviuk

Backend Developer

Alexander Kaviuk
Importowanie leadow drogą API w wydaniu Bitrix24 self hosted

Lead – zbędne informacje czy nieoszlifowany klejnot?

Przestrzeń informacyjna za naszych czasów jest przesycona ofertami, które mogą konkurować z Twoim biznesem. Użytkownicy w Internecie również nie tworzą jednolitej grupy odbiorców: jedni celowo szukają właśnie Twojego produktu lub usługi, inni dopiero się rozglądają, kolejni w ogóle przeglądają różne strony, mimo że nie zamierzają niczego kupować. Oni wszyscy pasują na Twojego potencjalnego klienta, wystarczy trochę im w tym pomóc dokładając pewnego wysiłku.

Każdy ślad – numer telefonu, skrzynka e-mail, imię lub inne dane dotyczące potencjalnego klienta – się liczy. Często te szczegóły przyczyniają się do czegoś większego. Otóż, to jest LEAD – byt, który jest w stanie zamienić się w prawdziwego klienta. W ramach CRM Bitrix24 możesz skonwertować klienta na kontakt, firmę, a nawet deal!

Nie należy marnować czasu na tłumaczenie tego, że leady są ważnym ogniwem w zarządzaniu projektem. W tym artykule postaram się szczegółowo opisać metody i osobliwości importowania leadów do Bitrix24. Przede wszystkim to przyda się programistom, jednak jestem przekonany, że menedżerowie też wyciągną swoje korzyści ze znajomości tych metod, ich objętości i złożoności.

Największy ból

Bardzo często firmy „przeprowadzają się” z jednego CRM do innego. W Bitrix24 ta praktyka jest dobrze znana, ponieważ zakres funkcji i cena tego systemu ściąga do niego użytkowników innych CRM. Równie często firmy działają na kilku systemach jednocześnie, więc potrzebują świetnej synchronizacji danych. Tworzenie leadów w systemie Bitrix24 jest przewidziane na kilka sposobów:

  1. Odręcznie;

  2. Import danych z plików CSV;

  3. Przez formy/formularze, ankiety, bezpośrednie połączenia telefoniczne lub maile.

W moim doświadczeniu prywatnym miała miejsce sytuacja, w której w firmie klienta wszystkie workflowy przebiegały równolegle w dwóch systemach. Bitrix24 był systemem nowym i do niego wprowadzało się wszystkich klientów ze starego systemu. Oczywiście, robienie tego od ręki byłoby rozwiązaniem niedorzecznym, a tak naprawdę to raczej niewykonalnym. Opcja zmiany metod przetwarzania leadów od razu w wybranym systemie CRM nie wchodził w rachubę. Zatrzymaliśmy się na importowaniu danych z pliku, jednak nie przez interface użytkownika, tylko z użyciem API.

Klient chciał, aby plik ładował się na serwer i regularnie ulegał przetwarzaniom krona, jednak ostatecznie żadna decyzja nie zapadła: warunki zmieniały się bardzo często, tym samym zmieniając metody przekazywania danych. Tylko idea pozostała bez zmian – napisać dodatek dla zapisywania informacji w Bitrix24

Indywidualne rozwiązanie

Dokumentacja dot. funkcji i metod pracy z leadami jest skąpa. Musiałem stawiać czoła całemu zadaniu mając pod ręką tylko standardowe opcje. Podstawowe czynności dotyczą klasy CCrmLead.

Screenshot.png

Można wykorzystać standardowe metody GetList, Update i Add. Zadanie: uzyskać dane źródłowe, sprawdzić nową bazę na obecność tych danych, dopiero po tym stworzyć nowy lead lub odświeżyć go (jeżeli już istnieje w systemie). Przed napisaniem kodu należy stworzyć w Bitrix24 wszystkie pola, które będą wypełniać się danymi z pól innego CRM.

Screenshot (1).png

Aby zaznaczyć w skrypcie dane dla utworzonych pól, trzeba posiadać ich identyfikatory. Zwróć uwagę na adres edytowania wybranego pola: “/crm/configs/fields/?mode=edit&entity_id=CRM_LEAD&field_id=UF_CRM_1519634296”. W nim widać field_id=UF_CRM_1519634296. Aby oznaczyć to pole jako „Hobby”, należy zaznaczyć je w masywie danych pod zaznaczonym kluczem.

Jeżeli ma się do czynienia z listą z 20 pól użytkowników, wyciąganie id z ich adresów jest opcją skrajnie niewygodną. Używając funkcji CCrmLead::GetUserFields($langID = false), można uzyskać masyw z wiadomościami o takich polach.

3.png

Jeżeli trzeba otrzymać listę pól domyślnych, można użyć CCrmLead::GetFields(). W celu utworzenia leada pole “TITLE” musi być obowiązkowym.

Być może będziesz potrzebował od razu ustawić status leada. Informacje o statusach uzyskasz dzięki funkcji CCrmLead::GetStatuses().

“Do walki!”(с)

Zaczynamy. Skrypt dodający leada o skrzynce “test@test.com” wygląda następująco:

 

$oLead = new CCrmLead(false); - аргумент показывает или нужно проверять права.
$arFields=array(
   "TITLE"=>'Lead test',
   "EMAIL"=>'test@test.com',
   "STATUS_ID" => 'NEW',
   "UF_CRM_1519634296" => 'Fishing',
   "UF_CRM_1519635704" => 26,
"PERMISSION" => 'IMPORT'
   );
$LEAD_ID=$oLead->Add($arFields, true, array('CURRENT_USER'=>1));

Jako że skrypt nie będzie uruchamiany w kronie, należy zaznaczyć użytkownika, z którym leady będą się łączyć. W tym przypadku nim jest administrator. Nie wolno zapomnieć też o atrybucie praw PERMISSION, który później umożliwi edycję danych leada.

  https://lh3.googleusercontent.com/deM1etHYuYcIaQB0s9u_HIiEWu-vpC6IsygAzVK_MevKS9uVbNOfWt7katrHSuEs5I9iYxxhAMFigjyqvpXfJleyROrmj2I13jOR7cZUHztTtGMEPelipIls9-tHxV2QI2zeW4g0

Używamy metod:

	
Add(array &$arFields, $bUpdateSearch = true, $options = array())
Update($ID, array &$arFields, $bCompare = true, $bUpdateSearch = true, $options = array())

Wniosek

Bitrix24 posiada wszystkie narzędzia do pracy z klientami Twojej firmy. Nawet gdy pojawia się jakieś wyzwanie, które uniemożliwia automatyczne rozwiązanie, doświadczeni programiści potrafią sobie z tym radzić. Najlepszy scenariusz to wypracowanie nowej i skutecznej logiki konkretnie na potrzeby Twojej sytuacji.


Podobne artykuły
umów się na konsultację

Skontaktujemy się z Tobą w ciągu 10 minut