Przejdź do zawartości

Model crm.lead w Odoo: Jak Działa Architektura Leadów i Opportunities

Pełny przewodnik po modelu CRM Lead w Odoo dla programistów i konsultantów funkcjonalnych
11 marca 2026 przez
Model crm.lead w Odoo: Jak Działa Architektura Leadów i Opportunities
Dasolo
| Brak komentarzy na ten moment

Wprowadzenie


W Odoo modele określają strukturę danych i sposób ich zapisu w bazie. Każdy element biznesowy — zamówienie sprzedaży, faktura czy lead — ma swoją reprezentację w modelu, który decyduje o polach, relacjach i przechowywanych informacjach.


Znajomość modeli jest kluczowa zarówno dla konsultantów funkcjonalnych, jak i programistów. To od nich zależy logika biznesowa, spójność danych i to, jakie możliwości raportowe oraz automatyzacje będą dostępne w systemie.


Ten tekst koncentruje się na modelu crm.lead, który napędza pipeline sprzedażowy w CRM Odoo. Bez względu na to, czy tworzysz moduły niestandardowe, łączysz systemy zewnętrzne czy konfigurujesz proces sprzedaży — prędzej czy później trafisz na ten model.

Czym jest model crm.lead


Model crm.lead reprezentuje zarówno wstępne zapytania (leady), jak i kwalifikowane okazje sprzedażowe. To jednolite miejsce przechowywania danych pipeline'u — od pierwszego kontaktu aż po konwersję klienta.


Model jest używany przede wszystkim przez moduł CRM, ale korzystają z niego też moduły marketingowe i te odpowiedzialne za stronę WWW. Gdy ktoś wypełni formularz kontaktowy albo sprzedawca utworzy okazję, rekord crm.lead pojawia się w systemie.


Funkcjonalność modelu rozszerzana jest przez mechanizm dziedziczenia modeli Odoo. Podstawowy moduł CRM definiuje szkielet, a dodatkowe moduły dopinają nowe pola i zachowania bez duplikowania logiki.

Kluczowe pola w modelu


Poniżej znajdziesz najważniejsze pola modelu crm.lead — to one decydują o tym, jak prowadzić i raportować proces sprzedaży.


1. name

Typ: Char. Nazwa rekordu — tytuł leadu lub okazji. To główny identyfikator wyświetlany w listach i kanbanach. Może to być np. „Zapytanie ze strony” lub „Kontrakt z Firma X”.


2. contact_name

Typ: Char. Imię i nazwisko osoby kontaktowej, gdy lead nie jest jeszcze powiązany z res.partner. Przy konwersji pole to zwykle trafia do utworzonego partnera.


3. email_from

Typ: Char. Główny adres e‑mail kontaktu. Wykorzystywany do komunikacji i deduplikacji leadów — często pierwszy punkt identyfikacji.


4. phone

Typ: Char. Numer telefonu stacjonarnego lub główny numer kontaktowy, widoczny na formularzu i używany przy logowaniu połączeń.


5. mobile

Typ: Char. Numer telefonu komórkowego — przydatny do SMS-ów lub pilnych powiadomień, gdy różni się od telefonu stacjonarnego.


6. partner_id

Typ: Many2one (res.partner). Powiązanie z kontaktem lub firmą po kwalifikacji. Przed konwersją pole jest puste; po konwersji wskazuje utworzonego lub dopasowanego partnera.


7. user_id

Typ: Many2one (res.users). Opiekun sprzedaży przypisany do leadu. Potrzebny do raportów, planowania aktywności i wyświetlania „Moich okazji”.


8. team_id

Typ: Many2one (crm.team). Zespół sprzedażowy odpowiedzialny za lead. Umożliwia rotację przydziałów i raportowanie po zespołach.


9. stage_id

Typ: Many2one (crm.stage). Aktualny etap w lejku sprzedażowym — np. Nowy, Kwalifikacja, Oferta, Negocjacje, Wygrany, Przegrany. Zmiany etapów uruchamiają automatyzacje i wpływają na raporty.


10. type

Typ: Selection. Określa czy rekord jest Leadem czy Opportunity. Lead to etap wstępny, Opportunity to kwalifikowana szansa z przewidywanym przychodem — to wpływa na dostępne widoki i etapy.


11. expected_revenue

Typ: Float. Szacowany przychód przy wygranej okazji. Służy do prognozowania wartości pipeline’u i raportów finansowych; często wyliczany z kwoty i prawdopodobieństwa.


12. probability

Typ: Float. Prawdopodobieństwo wygranej w procentach (0–100). Używane przy ważonych kalkulacjach pipeline’u — może być ustawiane ręcznie lub zależeć od etapu.


13. company_id

Typ: Many2one (res.company). W konfiguracjach wielofirmowych wskazuje właściciela rekordu. Ma wpływ na widoczność i walutę.


14. description

Typ: Text. Miejsce na notatki — kontekst rozmów, podsumowania spotkań, ważne informacje dla handlowców.


15. create_date

Typ: Datetime. Data i czas utworzenia rekordu, zarządzane automatycznie. Przydatne do analiz wieku leada i czasu do konwersji.


16. write_date

Typ: Datetime. Data ostatniej modyfikacji, również ustawiana automatycznie — pomocna przy śledzeniu aktualizacji.


17. date_open

Typ: Datetime. Kiedy lead został przypisany do użytkownika — używane do mierzenia czasu pierwszego kontaktu i szybkości reakcji.


18. date_closed

Typ: Datetime. Data zamknięcia (wygrana/przegrana). Ustawiana przy przeniesieniu do zamkniętego etapu; ważna dla analizy długości cyklu sprzedażowego.


19. date_deadline

Typ: Date. Oczekiwana data zamknięcia transakcji — pomaga w prognozach i planowaniu działań.


20. active

Typ: Boolean. Flaga archiwizacji. Gdy False, rekord jest ukrywany zamiast usuwany — często stosowane przy leadach odrzuconych lub scalonych.


21. street, street2, city, zip

Typ: Char. Pola adresowe używane przed konwersją i kopiowane do partnera po zamianie leada w kontakt.


22. country_id

Typ: Many2one (res.country). Kraj kontaktu — przydatne do raportów regionalnych i formatowania adresów.


23. state_id

Typ: Many2one (res.country.state). Województwo/region; domena filtrowana przez kraj, użyteczne przy segmentacji terytorialnej.


24. source_id

Typ: Many2one (utm.source). Źródło leada — strona WWW, polecenie, kampania itp. Kluczowe dla atrybucji marketingowej.


25. campaign_id

Typ: Many2one (utm.campaign). Powiązana kampania marketingowa — niezbędne do liczenia ROI i śledzenia efektywności akcji email/ads.


26. activity_ids

Typ: One2many (mail.activity). Zaplanowane działania — zadania, połączenia i spotkania przypisane do leada. Napędza widget aktywności i przypomnienia.


27. color

Typ: Integer. Indeks koloru widoczny w kanbanie/listach — prosty sposób na wizualne grupowanie priorytetów lub źródeł.


28. message_ids

Typ: One2many (mail.message). Chatter — notatki wewnętrzne, emaile i historia aktywności, dzięki czemu każdy ma pełny kontekst komunikacji.

Jak model wykorzystuje się w procesach biznesowych


1. Przechwytywanie leadów z formularza WWW

Gdy ktoś w formularzu na stronie firmowej wyśle zapytanie, Odoo tworzy crm.lead, wypełniając pola typu email_from, contact_name i description. Rekord trafia potem do pipeline’u, skąd zespół sprzedaży podejmuje działania.


2. Kwalifikacja i konwersja leada

Handlowcy przesuwają leady przez etapy lejka. Po kwalifikacji zmieniają typ na Opportunity i uzupełniają oczekiwany przychód. Przy zamknięciu system tworzy lub łączy partnera i opcjonalnie zamówienie sprzedaży.


3. Raportowanie pipeline'u

Kierownicy analizują dane crm.lead, aby ocenić wartość lejka. Oczekiwany przychód, prawdopodobieństwo i etapy służą do wyliczeń ważonego pipeline’u; filtrowanie po user_id czy team_id pokazuje wyniki poszczególnych sprzedawców i zespołów.


4. Atrybucja działań marketingowych

Pol pola source_id i campaign_id łączą leady z kampaniami marketingowymi. UTM-y z formularzy wypełniają te pola, co pozwala na ocenę skuteczności poszczególnych kanałów.


5. Zarządzanie aktywnościami i follow‑up

Sprzedawcy planują zadania i spotkania powiązane z leadami. Pola activity_ids i activity_date_deadline sterują widocznym „następnym zadaniem” i przypomnieniami, co pomaga utrzymać dyscyplinę follow‑up.

Jak programiści rozszerzają ten model


Programiści mają kilka wzorców rozszerzania crm.lead; podstawowym narzędziem jest dziedziczenie modeli Odoo.


Dziedziczenie modelu

W module użyj _inherit = 'crm.lead', by dodać pola, nadpisać metody lub wprowadzić ograniczenia. Dzięki temu zmiany pozostają w osobnym module, ułatwiając aktualizacje i utrzymanie.


Dodawanie pól

Nowe pola definiuje się w modelu dziedziczącym — wybieraj właściwy typ (Char, Many2one, Boolean, Integer, Text, Selection). Częste rozszerzenia to dodatkowe źródła leadów, zainteresowanie produktami czy branża. W środowisku wielofirmowym warto rozważyć pola zależne od company_id.


Rozszerzenia w Pythonie

Możesz nadpisać metody takie jak create, write czy action_convert, pamiętając o wywołaniu super(). Dekoratory Odoo (@api.depends, @api.onchange) ułatwiają pola obliczane i zachowanie UI. Uważaj przy logice zmiany etapów i konwersji.


Odoo Studio

Odoo Studio pozwala dodać pola bez kodu — dobre na szybkie modyfikacje. Jeśli jednak potrzebujesz skomplikowanej logiki, automatyzacji etapów lub przyszłych aktualizacji, moduł pisany ręcznie jest bardziej przewidywalny.

Dobre praktyki


  • Dopasuj etapy do procesu sprzedaży — możesz mieć oddzielne sekwencje etapów dla leadów i dla okazji, jeśli to uzasadnione.
  • Przechwytywanie UTM-ów: ustaw source_id i campaign_id z parametrów UTM z formularza WWW, aby atrybucja marketingowa działała poprawnie.
  • Wykorzystaj team_id do rotacji przypisań (round-robin) i zarządzania terytoriami; reguły przydziału definiuj w crm.team.
  • Przy integracjach API korzystaj z XML-RPC lub JSON-RPC — model crm.lead jest dostępny i warto mapować identyfikatory zewnętrzne na własne pole referencyjne (np. ref) dla synchronizacji.
  • Dla pól niestandardowych stosuj prefiks x_ lub prefiks modułu, aby uniknąć konfliktów z przyszłymi wersjami Odoo.

Najczęstsze błędy


  • Tworzenie duplikatów zamiast sprawdzenia email_from — przed tworzeniem sprawdź znormalizowany email (email_normalized) lub zastosuj logikę deduplikacji.
  • Mylenie typu (Lead vs Opportunity) z stage_id — typ mówi o naturze rekordu, a stage_id o miejscu w lejku; oba wpływają na raporty i zachowanie.
  • Zapominanie o user_id lub team_id — nieprzypisane leady łatwo się gubią. Konfiguruj automatyczne przypisania albo wymuszaj przypisanie ręczne.
  • Nadpisywanie logiki konwersji bez wywołania super() — metoda action_convert wykonuje istotne operacje; rozszerzaj ją zamiast całkowicie zastępować.
  • Dodawanie wymaganych pól bez wartości domyślnych — przy instalacji modułu istniejące rekordy mogą przejść walidację i spowodować błędy.

Podsumowanie


Model crm.lead to serce CRM w Odoo — przechowuje leady i okazje oraz steruje pipeline’em sprzedażowym. Dobra znajomość jego pól i sposobu rozszerzania ułatwi konfigurację, integrację i personalizację systemu.


Zarówno konsultant, jak i programista zyskują na opanowaniu crm.lead: szybciej wdrożą procesy sprzedażowe, unikną błędów i przygotują system na skalowanie.

Potrzebujesz pomocy przy wdrożeniu Odoo?


Dasolo wspiera firmy we wdrożeniach, dostosowaniach i optymalizacji Odoo. Specjalizujemy się w integracjach API i rozwoju modułów, a nasze doświadczenie obejmuje architekturę danych i kluczowe modele, takie jak crm.lead.


Jeśli potrzebujesz wsparcia przy wdrożeniu Odoo, tworzeniu modułów CRM lub integracjach — chętnie pomożemy. Umów demo by omówić Twój projekt.

Model crm.lead w Odoo: Jak Działa Architektura Leadów i Opportunities
Dasolo 11 marca 2026
Udostępnij ten artykuł
Zaloguj się by zostawić komentarz