Integracja n8n z Odoo - Kompletny Poradnik Połączenia Systemów
Połączenie n8n z Odoo tworzy potężne centrum automatyzacji, które może zastąpić drogie integracje natywne i usprawnić niemal każdy proces biznesowy. W tym kompletnym poradniku pokażę jak skonfigurować połączenie między tymi systemami, jakie workflow warto wdrożyć oraz jakie pułapki czekają na początkujących.
W tym artykule:
Dlaczego warto integrować n8n z Odoo?
Odoo to potężny system ERP, ale jego natywne możliwości integracyjne mają ograniczenia. n8n wypełnia te luki, oferując elastyczność i szybkość wdrożenia niemożliwą do osiągnięcia tradycyjnymi metodami.
Główne korzyści z integracji
- Szybkość wdrożenia: Nowa integracja w godziny, nie tygodnie
- Koszty: Brak opłat licencyjnych za dodatkowe konektory
- Elastyczność: Łatwa modyfikacja workflow bez kodowania
- Multi-system: Jedno miejsce do zarządzania wszystkimi integracjami
- Monitoring: Pełna widoczność przepływu danych
- Skalowalność: Obsługa od kilku do milionów rekordów miesięcznie
Typowe scenariusze użycia
| Scenariusz | Bez n8n | Z n8n |
|---|---|---|
| Nowy klient w sklepie → Odoo CRM | Ręczny import / moduł płatny | Automatyczna synchronizacja w czasie rzeczywistym |
| Zamówienie Allegro → Odoo Sales | Baselinker / ręczne przepisywanie | Automatyczny import z powiadomieniem |
| Faktura w Odoo → KSeF | Moduł natywny | Rozszerzona walidacja + backup |
| Lead z formularza → Odoo + Email | Natywne workflow Odoo | Złożona ścieżka z wieloma systemami |
| Raport dzienny na Slack | Niestandardowy development | Gotowy workflow w 30 minut |
Przygotowanie Odoo do integracji
Zanim połączysz n8n z Odoo, musisz przygotować środowisko i uzyskać dane dostępowe.
Krok 1: Włączenie dostępu API
- Zaloguj się do Odoo jako administrator
- Przejdź do Ustawienia → Ogólne ustawienia
- W sekcji "Integrations" włącz "API"
- Upewnij się, że opcja "XML-RPC/JSON-RPC" jest aktywna
Krok 2: Utworzenie użytkownika API
- Przejdź do Ustawienia → Użytkownicy i firmy → Użytkownicy
- Utwórz nowego użytkownika (np. "n8n Integration")
- Przypisz odpowiednie grupy uprawnień:
- Administracja / Ustawienia (dla dostępu do wszystkich modeli)
- Sales / User (dla dostępu do CRM)
- Inventory / User (dla dostępu do magazynu)
- Accounting / Billing (dla dostępu do faktur)
- W zakładce "Account Security" wygeneruj "API Key"
- Zapisz klucz API - będzie potrzebny w n8n
Krok 3: Zebranie informacji o połączeniu
Będziesz potrzebować następujących danych:
- URL: Adres Twojej instancji Odoo (np. https://twoja-firma.odoo.com)
- Database: Nazwa bazy danych (zazwyczaj nazwa firmy)
- Username: Login użytkownika API (np. [email protected])
- Password/API Key: Wygenerowany wcześniej klucz API
Konfiguracja połączenia w n8n
Opcja 1: Oficjalny węzeł Odoo (jeśli dostępny)
Jeśli Twój n8n ma oficjalny węzeł Odoo:
- Dodaj węzeł "Odoo" do workflow
- Wybierz operację (Create, Update, Get, Search)
- Kliknij "Create New Credential"
- Wprowadź dane: URL, Database, Username, Password
- Testuj połączenie przyciskiem "Test"
Opcja 2: HTTP Request (uniwersalna)
Dla większej kontroli użyj węzła HTTP Request z XML-RPC:
// Przykład wywołania XML-RPC w n8n (Function node)
const url = 'https://twoja-firma.odoo.com/xmlrpc/2/object';
const db = 'nazwa_bazy';
const username = '[email protected]';
const password = 'twoj_klucz_api';
// Autentykacja
const authResponse = await $httpRequest({
method: 'POST',
url: 'https://twoja-firma.odoo.com/xmlrpc/2/common',
body: {
jsonrpc: '2.0',
method: 'authenticate',
params: [db, username, password, {}]
}
});
const uid = authResponse.body.result;
// Wywołanie metody
const result = await $httpRequest({
method: 'POST',
url: url,
body: {
jsonrpc: '2.0',
method: 'call',
params: {
service: 'object',
method: 'execute_kw',
args: [db, uid, password, 'res.partner', 'search_read', [[]], {'limit': 10}]
}
}
});
Opcja 3: Webhooki Odoo → n8n
Aby Odoo inicjował komunikację z n8n:
- W n8n utwórz workflow z triggerem "Webhook"
- Skopiuj URL webhooka
- W Odoo przejdź do Ustawienia → Automatyczne akcje
- Utwórz nową akcję automatyczną z wywołaniem webhooka
- Lub użyj modułu "Automated Actions" z Python code calling webhook
Workflow 1: Synchronizacja kontaktów
Jeden z najpopularniejszych workflow - automatyczna synchronizacja kontaktów między formularzem na stronie a Odoo CRM.
Scenariusz
Użytkownik wypełnia formularz kontaktowy na stronie → Dane trafiają do Odoo jako nowy lead + powiadomienie na Slack + e-mail potwierdzający dla klienta.
Konfiguracja workflow
Węzły workflow:
- Webhook Trigger - nasłuchiwanie POST z formularza
- Set Node - mapowanie pól z formularza na strukturę Odoo
- HTTP Request (Odoo) - utworzenie leada w CRM
- Model: crm.lead
- Metoda: create
- Dane: name, email_from, phone, description, source_id
- Slack Node - powiadomienie zespołu sprzedaży
- SendGrid/Mailgun - e-mail potwierdzający dla klienta
- No Operation - zakończenie workflow
Przykładowy payload do Odoo
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"nazwa_bazy",
uid,
"klucz_api",
"crm.lead",
"create",
[{
"name": "Zapytanie ze strony - Jan Kowalski",
"contact_name": "Jan Kowalski",
"email_from": "[email protected]",
"phone": "+48 123 456 789",
"description": "Interesuje mnie oferta wdrożenia Odoo dla firmy produkcyjnej.",
"source_id": 1,
"team_id": 1,
"user_id": false
}]
]
}
}
Workflow 2: Automatyczna obsługa leadów
Zaawansowany workflow automatyzujący całą ścieżkę lead nurturing w Odoo.
Scenariusz
- Nowy lead w Odoo (ręcznie lub z formularza)
- Weryfikacja danych (format e-maila, telefonu)
- Enrichment danych (Clearbit/Hunter.io)
- Klasyfikacja leada (AI scoring)
- Przypisanie do odpowiedniego handlowca
- Automatyczny e-mail powitalny
- Utworzenie zadania follow-up w Odoo
- Powiadomienie handlowca na Slack
Wartość biznesowa
Taki workflow redukuje czas reakcji na lead z godzin do minut, zwiększa konwersję o 20-30% dzięki szybkiej odpowiedzi, i eliminuje błędy przy ręcznym przypisywaniu leadów.
Workflow 3: Integracja e-commerce
Pełna automatyzacja obsługi zamówień z popularnych platform e-commerce.
Architektura workflow
| Krok | System | Akcja |
|---|---|---|
| 1 | WooCommerce/Shopify | Trigger: Nowe zamówienie |
| 2 | n8n | Weryfikacja płatności |
| 3 | Odoo | Utworzenie zamówienia sprzedaży |
| 4 | Odoo | Utworzenie faktury (jeśli paid) |
| 5 | Odoo | Rezerwacja produktów |
| 6 | Slack | Powiadomienie magazynu |
| 7 | SendGrid | E-mail potwierdzenie dla klienta |
| 8 | Google Sheets | Log do arkusza (backup) |
Synchronizacja zwrotna - stany magazynowe
Osobny workflow synchronizuje stany magazynowe z Odoo do sklepu:
- Schedule Trigger: co 15 minut
- Odoo: Pobranie stanów produktów oznaczonych jako "sprzedawane online"
- WooCommerce: Aktualizacja stock_quantity dla każdego produktu
- Error handling: Log błędów do Google Sheets
Webhooki i real-time sync
Webhooki pozwalają na natychmiastową reakcję na zdarzenia w Odoo, bez potrzeby cyklicznego odpytywania.
Konfiguracja webhooków w Odoo
Odoo Community nie ma wbudowanego systemu webhooków, ale można go zaimplementować na kilka sposobów:
Sposób 1: Automated Actions (Server Actions)
- Ustawienia → Techniczne → Automatyczne akcje
- Utwórz nową akcję dla modelu (np. crm.lead)
- Warunek: Przy tworzeniu (On Creation)
- Akcja: Wywołaj Python Code wysyłający HTTP POST do n8n
Sposób 2: Custom Module
Dla bardziej zaawansowanych scenariuszy warto stworzyć dedykowany moduł Odoo obsługujący webhooki z konfiguracją przez interfejs.
Sposób 3: Scheduled Polling (alternatywa)
Jeśli webhooki nie są możliwe, użyj Schedule Trigger w n8n z odpytywaniem co 1-5 minut:
- Zapisz timestamp ostatniego sprawdzenia
- Pobieraj tylko rekordy zmodyfikowane od tego czasu
- Aktualizuj timestamp po każdym uruchomieniu
Rozwiązywanie problemów
Najczęstsze problemy i rozwiązania
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
| Authentication failed | Nieprawidłowe dane logowania | Sprawdź username (pełny e-mail) i API key |
| Access denied | Brak uprawnień | Dodaj użytkownika do odpowiednich grup w Odoo |
| Model not found | Błędna nazwa modelu | Upewnij się, że moduł jest zainstalowany |
| Required field missing | Brak wymaganych pól | Sprawdź wymagane pola w modelu Odoo |
| Timeout | Zbyt duża ilość danych | Dodaj paginację (limit/offset) |
| SSL Error | Problem z certyfikatem | Wyłącz SSL verification (dev) lub napraw certyfikat |
Debugowanie
- Włącz "Save Execution" w n8n dla pełnej historii
- Używaj "No Operation" nodes do podglądu danych między krokami
- Loguj do Google Sheets lub file dla audytu
- Sprawdzaj logi Odoo (Ustawienia → Techniczne → Logi)
Często zadawane pytania
Chcesz zintegrować n8n z Odoo?
Umów bezpłatną konsultację i dowiedz się, jakie workflow możemy zautomatyzować w Twojej firmie.
Umów rozmowę →