Odoo Integration, Construction Operations[Launched]

Operacje Budowlane w Odoo

Operacje Budowlane w Odoo preview

Architektura systemu //

Odoo 19Odoo OnlinePythonXML-RPCAsana APIGoogle DriveCallRail APIRingCentral APIGmail OAuthContact Form 7

1. Kontekst Projektu

Klient to kanadyjska firma budowlana prowadząca długie projekty garażowe i construction: od pierwszego leada i wyceny po permits, demolition, construction, faktury, final meeting i warranty documents

Odoo było już wybrane jako system docelowy, ale realna operacyjka nadal była rozproszona między Asaną, Google Drive, Google Sheets, Gmailem, telefonią, formularzami na stronie i ręcznymi arkuszami. Zadaniem było zebrać ten proces w jeden kontrolowany system bez ciężkiego custom developmentu i bez przenoszenia klienta na osobny serwer

Moja rola obejmowała integration architecture i hands-on implementation: zrozumieć obecny proces, zaprojektować architekturę Odoo 19 Enterprise, przenieść historię pracy, zachować kontekst zespołu i szybko uruchomić praktyczny baseline

2. Stan Początkowy

CRM był rozbity między kanałami: leady przychodziły z reklam, formularzy strony, telefonów, maili i Asany, ale nie trafiały do jednej czystej pipeline
Asana stała się systemem operacyjnym: sprzedaż, aktywne projekty budowlane, taski, komentarze, terminy, załączniki i etapy żyły poza Odoo
Google Drive trzymał kluczowy kontekst: drawings, work orders, invoices, dashboards, spreadsheets i foldery klientów były używane codziennie, ale nie były natywnie połączone z rekordami Odoo
Projekty budowlane miały długi cykl: każdy projekt przechodził przez 10-15 etapów, więc zespół potrzebował stage-y, deadlines, dependencies i widoku Gantt
Wyceny żyły w Excel/Sheets: ceny, packages, concrete pads, insulation, drywall, optional items i GST trzeba było przenieść do procesu sprzedaży
Ograniczenia platformy były częścią zadania: klient zdecydował się pozostać na Odoo Online, więc integracje musiały być zaprojektowane ostrożnie, bez Odoo.sh i bez server bridge tam, gdzie nie było na to zgody

3. Zakres

Skonfigurować Odoo 19 Enterprise jako centralny system dla CRM, Sales, Projects, Documents i Gantt
Przenieść sales pipeline z Asany do Odoo CRM bez utraty etapów, historii i kontekstu źródeł
Zsynchronizować active construction projects, taski, deadlines i stage architecture z Asany do Odoo Projects
Przenieść comments, authorship, attachments i historyczny kontekst z Asany do Odoo chatter
Odtworzyć strukturę Google Drive w Odoo Documents i połączyć kluczowe pliki z projektami oraz taskami
Przenieść wybrane spreadsheet workflows do Odoo Documents / live spreadsheets tam, gdzie miało to praktyczny sens
Ustawić bazowy lead intake z website forms, CallRail, RingCentral, Gmail i Odoo CRM
Uruchomić sales-to-project flow, w którym podpisana sprzedaż tworzy projekt operacyjny

4. Rozwiązanie

System Setup & CRM Architecture

Przeprowadziłem audyt Odoo 19 Enterprise, Asana workspace, Google Drive structure, aktywnych pipeline i arkuszy
Zbudowałem XML-RPC integration bridge do kontrolowanej i powtarzalnej migracji
Dodałem pola dedupe: `x_asana_gid` na `crm.lead` i `project.task`, plus osobne pola ID dla imported comments, attachments, CallRail i RingCentral events
Wyczyściłem i zsynchronizowałem CRM stages z realnym sales pipeline, a zbędne lub przypadkowe stage-e przeniosłem albo usunąłem
Import był inkrementalny, więc skrypty można było uruchamiać ponownie bez duplikatów i bez nadpisywania żywych danych

Asana to Odoo Project Migration

Pobrano 21 Asana boards i przeniesiono 1,253 tasks do `project.task`
Oryginalne sekcje Asany dynamicznie zamieniono na `project.task.type`, dzięki czemu Odoo mówiło językiem zespołu, a nie generycznym workflow
Dla 7 aktywnych construction projects ustawiono indywidualny porządek etapów, bo każdy projekt miał własną logikę operacyjną
30 unikalnych project stages zsynchronizowano 1:1 z Asaną, a zbędne domyślne stage-e Odoo usunięto
Daty i deadlines zostały znormalizowane pod Gantt, z dependencies dodanymi tam, gdzie było to możliwe

Comments, Attachments & Historical Context

497 Asana comments przeniesiono do Odoo chatter z zachowaniem autorstwa, daty i czytelnego HTML-body
437 physical attachments pobrano i połączono z właściwymi task threads przez `ir.attachment`
Dodano fallback logic dla usuniętych lub niedostępnych Asana users, żeby historia nie zamieniła się w anonimowe system messages
Wdrożono HTTP 429 exponential backoff, żeby omijać rate limits Odoo/Asana bez utraty danych i ręcznego pilnowania procesu

Documents, Drive & Construction Files

Odtworzono Google Drive hierarchy wewnątrz Odoo Documents: project folders, work orders, drawings, invoices, dashboards i coordination materials
Importowane pliki zostały połączone z konkretnymi projects/tasks, czyli były dostępne dokładnie tam, gdzie zespół pracował
Wybrane Excel/Sheets files przetestowano pod conversion flow do live spreadsheets, zostawiając tabelaryczny format tylko tam, gdzie naprawdę pomagał
Dla drawings, estimates i dokumentów finansowych przygotowano logikę dopasowania do właściwych rekordów budowlanych

Lead Intake, Calls & Website Forms

CallRail API zostało sprawdzone i podłączone do Odoo: calls tworzą nowe CRM leads albo uzupełniają istniejące po numerze telefonu
RingCentral call log podłączono jako bazowy CRM intake layer z dedupe po call ID
Formularze Contact Form 7 połączono z Odoo CRM przez email alias, żeby zgłoszenia ze strony od razu tworzyły lead
Gmail OAuth skonfigurowano i przetestowano dla kluczowych skrzynek, z outbound email przez firmowy sender
Historyczny email backfill i głębszy phone-event timeline zostały zostawione na future upgrade ze względu na ograniczenia Odoo Online i decyzje klienta

Sales, Estimates & Project Automation

Przygotowano products/services dla estimate flow: garage package, concrete pad, insulation, drywall, permits i optional items
Podatki ustawiono pod Alberta GST 5%, bez PST
Zaprojektowano quotation flow, w którym manager składa ofertę z operacyjnych pozycji zamiast kopiować dane między arkuszami
Dodano automated action: gdy deal trafia do signed/confirmed state, Odoo tworzy project i przenosi sprzedaż do execution layer

5. Efekt

Jeden system Odoo dla CRM, Sales, Projects, Documents, Gantt i bazowego communication intake
21 Asana boards, 1,253 tasks, 497 comments i 437 attachments przeniesione do Odoo bez utraty historycznego kontekstu
Sales pipeline, aktywne projekty i construction stages nie żyją już osobno w Asanie
Zespół dostał project workflow z realnymi etapami budowlanymi, deadlines, dependencies i widokiem Gantt
Dokumenty z Google Drive stały się dostępne wewnątrz Odoo tam, gdzie faktycznie odbywa się praca
Calls, website forms i email intake dostały bazową ścieżkę do CRM bez ręcznego przepisywania
Architektura pozostała zgodna z Odoo Online, bez zbędnego custom code i bez wymuszonej migracji platformy

6. Rezultat Techniczny

Ten case był o zdyscyplinowanej integracji, nie o budowie dużego custom modułu. Najważniejsze było nie samo importowanie danych, ale zachowanie struktury, autorstwa, historii, zależności i codziennej logiki zespołu budowlanego

Odoo stało się nie kolejnym narzędziem obok Asany i Drive, ale miejscem operacyjnym, gdzie sprzedaż przechodzi w projekt, projekt trzyma dokumenty i taski, a nowe zgłoszenia ze strony i telefonii trafiają prosto do CRM

Masz podobny problem do rozbrojenia?

Niezawodne systemy nie powstają z gadania. Porozmawiajmy, jak precyzyjna inżynieria może przywrócić tempo twojemu produktowi