„Zaktualizować pole deala" brzmi jak zadanie na jedną linijkę — dopóki pole po cichu nie odmówi zmiany: zapytanie zwraca sukces, karta pokazuje starą wartość. Przyczyna to niemal zawsze jedna z trzech — zła generacja metody, zły format nazwy pola albo zła postać wartości. Oto jak naprawdę działa aktualizacja pól deala w Bitrix24 (Alaio): od surowego wywołania REST po regułę automatyzacji bez kodu.

Która metoda aktualizuje pole deala?

Aktualna odpowiedź to uniwersalna metoda crm.item.update: przekazujesz entityTypeId 2 (deal), id deala i obiekt fields zawierający wyłącznie pola do zmiany — wszystko pominięte pozostaje nietknięte.

{"entityTypeId": 2, "id": 351, "fields": {"stageId": "C1:WON", "opportunity": 50000}}

Starsza metoda crm.deal.update wciąż działa i występuje w większości poradników, ale należy do generacji legacy: te same pola, inne nazewnictwo. Nowe integracje powinny domyślnie używać crm.item.update — jedną umową obejmuje deale, leady, kontakty, firmy i inteligentne procesy.

Dlaczego pole się nie aktualizuje?

Pierwszy podejrzany to wielkość liter. API legacy i projektant procesów zapisują kody pól wielkimi literami: TITLE, OPPORTUNITY, UF_CRM_1721244707107. API uniwersalne zapisuje te same pola w camelCase: title, opportunity, ufCrm_1721244707107. Wyślij TITLE do crm.item.update, a zostanie zignorowane jako nieznany klucz — z komunikatem o sukcesie. Jeśli metoda uniwersalna ma akceptować oryginalne nazwy UF_CRM_*, przekaż useOriginalUfNames z wartością Y. Drugi podejrzany to postać wartości: pole listy oczekuje id pozycji, a nie etykiety, pole daty — poprawnego formatu daty, a nieprawidłowa wartość zwraca CRM_FIELD_ERROR_VALUE_NOT_VALID ze wskazaniem pola. Gdzie sprawdzić kody pól, pokazuje wpis o ID pól w Bitrix24.

Jak zaktualizować telefon, e-mail i inne multipola?

Telefony i e-maile żyją w tablicy multipól fm, a na jej semantyce aktualizacji każdy potyka się przynajmniej raz: istniejące wiersze adresuje się przez ich id — wiersz z id zmienia wpis w miejscu — a wiersze bez znanego id są dodawane jako nowe. Wysłanie „świeżego" zestawu wartości bez id nie zastępuje starych, tylko je dokleja — i kontakt deala po cichu obrasta zdublowanymi telefonami. Najpierw odczytaj bieżące wiersze fm, potem aktualizuj po id.

Jak zaktualizować pole przez webhook?

Do integracji z jednym portalem nie potrzeba aplikacji OAuth: webhook przychodzący daje URL, który niesie autoryzację w sobie. Utwórz go z zakresem crm i pamiętaj, że webhook działa z uprawnieniami pracownika, który go założył — jeśli ta osoba nie widzi lejka, wywołanie kończy się błędem dostępu, choć token jest ważny. Metoda, id i fields trafiają do zapytania dokładnie jak wyżej. Konfigurację krok po kroku opisuje przewodnik po webhookach; jeśli zamiast wyniku wraca kod błędu, wskazuje on wprost pole albo problem z uprawnieniami — loguj kod, nie tylko opis.

Jak aktualizować pola deala bez kodu?

Wewnątrz portalu większość aktualizacji pól w ogóle nie potrzebuje REST — załatwia to reguła automatyzacji na etapie. Standardowa reguła „Edytuj element" obsługuje jedno pole ze statyczną wartością. Gdy zmienia się kilka pól naraz albo wartości pochodzą z poprzednich kroków, reguła Zaktualizuj deal po ID z katalogu Roboteki przyjmuje obiekt JSON w tym samym formacie camelCase co crm.item.update i zapisuje wszystko jedną akcją. Czyszczenie pola to osobny przypadek — pusty łańcuch nie zeruje list, dat ani multipól, dlatego jest dedykowana reguła Wyczyść pole, która poprawnie zeruje każdy typ. Do przenoszenia wartości między encjami — na przykład skopiowania miasta z kontaktu do deala — służy Zapisz pole powiązanej encji, a przed zmianą etapu przed pustymi polami krytycznymi chroni Sprawdź wypełnienie pola, zwracając Y/N dla warunku. Akcja wewnątrz procesu to też tania odpowiedź na pytanie „czy stawiać do tego zewnętrzny scenariusz": żadnych tokenów do odświeżania, żadnych limitów zapytań do budżetowania — aktualizacja działa tam, gdzie żyje deal.

Co dalej

Zacznij od awarii, którą faktycznie masz: zła wielkość liter — przejdź na camelCase albo ustaw useOriginalUfNames; duplikaty telefonów — aktualizuj wiersze fm po id; błędy dostępu — sprawdź uprawnienia właściciela webhooka. Wszystko, co ma reagować na zdarzenia deala zamiast na zewnętrzne wywołania, buduj jako reguły automatyzacji w Bitrix24 — powyższe reguły aktualizacji to tam zwykłe klocki. A jeśli brakuje klocka, którego potrzebujesz — opisz zadanie: Roboteka buduje brakujące reguły automatyzacji za darmo i dodaje je do wspólnej biblioteki.