Jedną z największych zalet Odoo jest głęboka integracja między aplikacjami. Standardowo, gdy oferta sprzedaży usługi (moduł Sales) zostanie zaakceptowana, system może automatycznie utworzyć nowy projekt lub zadanie w module Projekty. To świetna funkcja, ale co w sytuacji, gdy potrzebujemy uruchomić działania operacyjne jeszcze zanim klient podpisze umowę?
Standardowo możemy ustalić planowane aktywności bazując na spodziewanej dacie zamknięcia, a co jeśli chcemy aby wyzwalaczem było samo przeciągnięcie szansy do danego etapu procesu?
Wyobraź sobie sytuację: Twój handlowiec przesuwa szansę sprzedaży w lejku CRM do etapu "Propozycja". W tym momencie zespół techniczny musi przygotować szczegółową wycenę lub wstępny plan działania. Jak zapewnić, że to zadanie zostanie utworzone i przypisane za każdym razem, bezbłędnie i natychmiast?
Tu z pomocą przychodzą Automatyzacje!
Czym są Akcje Automatyczne w Odoo?
Automatyzacje to spersonalizowane akcje, które uruchamiają się na podstawie jakiegoś wyzwalacza.

Aby znaleźć manu automatyzacji, należy kliknąć przy Etapie, do którego chcemy dodać automatyzację (widoczne po najechaniu na etap).
Wyzwalaczem może być na przykład dodanie tagu, webhook lub przesunięcie do danego etapu (wśród wielu innych). Akcje to na przykład aktualizacja rekordu, wysłanie SMSa lub wykonanie kodu.

Widok tworzenia automatyzacji dla etapu "Propozycja".
Bardzo dużo akcji może zostać zdefiniowanych bez znajomości programowania, jednak czasem, gdy potrzebujemy niestandardowego działania, znajomość programowania może być niezbędna. Odoo pozwala nam zdefiniować kod źródłowy, który zostanie wykonany. To bardzo potężna opcja.
Praktyczny przykład: Automatyczne tworzenie zadania krok po kroku
Nasz cel: Gdy Szansa Sprzedaży (Lead) zostanie przesunięta do etapu "Propozycja", system ma automatycznie utworzyć nowe zadanie w projekcie o nazwie "Wyceny dla Klientów". W tym przykładzie, prosty kod pozwoli na dodanie Taska do istniejącego Projektu.
Krok 1: Znajdź menu automatyzacji
W widoku Kanban modułu CRM, najedź kursorem na nagłówek etapu, do którego chcesz dodać regułę (w naszym przypadku "Propozycja"). Kliknij w ikonę koła zębatego, a następnie wybierz z menu opcję "Automatyzacje".
Krok 2: Skonfiguruj akcję
W formularzu tworzenia automatyzacji nadajemy jej nazwę (np. "Utwórz zadanie do wyceny") i wybieramy typ akcji. W naszym przypadku, ponieważ chcemy stworzyć zupełnie nowy rekord w innej aplikacji, wybieramy opcję "Wykonaj kod w Pythonie".
Krok 3: Dodaj kod i zapisz
Teraz czas na najważniejszą część. Wklej poniższy kod w zakładce "Kod do wykonania". Kod niezbędny do wykonania tej automatyzacji to zaledwie kilka linii, i wygląda następująco:
# Wyszukaj projekt o konkretnej nazwie
project = env['project.project'].search([('name', '=', 'Wyceny dla Klientów')], limit=1)
# Jeśli projekt został znaleziony, utwórz nowe zadanie
if project:
env['project.task'].create({
'name': f"Przygotuj propozycję dla: {record.name}",
'project_id': project.id,
# Tutaj można dodać inne pola, np. przypisanie do użytkownika
# 'user_ids': [env.user.id],
})
# Jeśli projekt nie istnieje, wyświetl błąd
else:
raise UserError("Nie znaleziono projektu 'Wyceny dla Klientów'! Upewnij się, że projekt istnieje.")
Co tutaj się dzieje?
-
project = env[...] - Wyszukujemy w systemie projekt o nazwie "Wyceny dla Klientów" -
if project: - Sprawdzamy, czy udało się go znaleźć -
env['project.task'].create({...}) - Jeśli tak, tworzymy nowy rekord (zadanie) w modelu project.task-
'name': f"..." - Dynamicznie nadajemy zadaniu nazwę, wstawiając w nią nazwę szansy sprzedaży (record.name), od której pochodzi -
'project_id': project.id - Przypisujemy nowe zadanie do ID projektu, który znaleźliśmy wcześniej
-
-
else: raise UserError(...) - Jeśli projekt nie zostanie znaleziony, system wyświetli komunikat błędu
I to tyle! Od teraz każde przesunięcie szansy sprzedaży do etapu "Propozycja" natychmiastowo utworzy zadanie dla odpowiedniego zespołu, eliminując ryzyko przeoczenia i przyspieszając proces przygotowania oferty.
Ważna informacja o licencjach
Pełna funkcjonalność Automatyzacji, w tym wykonywanie kodu w Pythonie, jest dostępna w Odoo Enterprise (licencja Custom). W wersji Odoo Community istnieje podobny mechanizm "Automatyzacji", jednak jego możliwości mogą być bardziej ograniczone (jeśli nie możesz tego u siebie znaleźć, sprawdź czy moduł automations jest zainstalowany).