Automatisierung des Odoo ERP-Betriebs mit OpenClaw AI
Odoo ist eine umfassende ERP-Plattform mit Modulen, die alle Geschäftsfunktionen abdecken, von der Buchhaltung über die Fertigung bis hin zur Personalabteilung. Aber selbst mit den integrierten Automatisierungsregeln von Odoo nutzen die meisten Unternehmen nur einen Bruchteil dessen, was möglich ist. Die Automatisierungsregeln, mit denen Odoo ausgeliefert wird, sind auslöser- und regelbasiert – ihnen fehlt die Argumentationsfähigkeit, um Ausnahmen zu behandeln, sich an den Kontext anzupassen und mehrstufige Entscheidungen zu treffen. OpenClaw füllt diese Lücke.
OpenClaw-KI-Agenten bilden neben Odoo eine autonome Betriebsebene. Sie nutzen Odoo-Ereignisse über Webhooks, führen mehrstufige Überlegungen zu den Daten durch, interagieren mit der JSON-RPC-API von Odoo, um Datensätze zu erstellen, zu aktualisieren und abzufragen, und koordinieren modulübergreifend auf eine Weise, die die native Automatisierung von Odoo nicht kann. Das Ergebnis ist ein ERP, das näher an dem arbeitet, was ein erfahrenes Betriebsteam tun würde: Probleme antizipieren, Ausnahmen lösen und Prozesse kontinuierlich optimieren.
Wichtige Erkenntnisse
– OpenClaw lässt sich über die JSON-RPC-API und Webhook-Trigger in Odoo integrieren, sodass keine Änderungen an der Odoo-Quelle erforderlich sind. – Der Purchase Automation Agent überwacht Nachbestellpunkte, generiert RFQs, wählt Lieferanten aus und erstellt Bestellungen auf der Grundlage konfigurierbarer Regeln und KI-Begründung.
- Der Vendor Reconciliation Agent ordnet Lieferantenrechnungen Bestellungen und Quittungen zu, verbucht abgeglichene Rechnungen und leitet Ausnahmen weiter. – Der Inventory Optimization Agent analysiert Nachfragemuster und empfiehlt Sicherheitsbestandsanpassungen, Nachbestellmengen und Maßnahmen zur Ablaufverwaltung. – Der Sales Pipeline Agent überwacht Chancen, sendet Folgeaufgaben, aktualisiert Prognosekategorien und identifiziert gefährdete Geschäfte.
- Alle Agentenaktionen sind von Natur aus rückgängig zu machen – der Agent protokolliert jeden Odoo-Datensatz, den er erstellt oder ändert, mit der Möglichkeit, ihn rückgängig zu machen.
- Die Koordination mehrerer Module (z. B. die Verknüpfung eines Kundenauftragsmangels mit einer Bestellung und einem Produktionsauftrag) wird nativ von der Agentenebene übernommen.
- Der OpenClaw Odoo-Integrationsdienst von ECOSIRE bietet vorgefertigte Agenten, die auf Ihre Odoo-Konfiguration kalibriert sind.
Integrationsarchitektur: Wie OpenClaw eine Verbindung zu Odoo herstellt
OpenClaw lässt sich über zwei Mechanismen in Odoo integrieren:
Webhook-Ereignisse: Die automatisierten Aktionen von Odoo können HTTP-Webhooks bei Ereignissen zum Erstellen/Aktualisieren/Löschen von Datensätzen auslösen. Der Event-Listener von OpenClaw abonniert diese Webhooks und leitet Ereignisse an den entsprechenden Agenten weiter. Dies ist der ereignisgesteuerte Echtzeitpfad.
JSON-RPC-Abfrage: Für Metriken, Dashboards und geplante Automatisierung fragt OpenClaw direkt die Odoo JSON-RPC-API ab. Dies ist der geplante, leseintensive Pfad.
// Odoo tool definition for OpenClaw
export const OdooTool = defineTool({
name: "odoo",
type: "json-rpc",
endpoints: {
authenticate: "/web/session/authenticate",
call: "/web/dataset/call_kw",
search: "/web/dataset/call_kw/search_read",
},
auth: {
type: "session",
database: process.env.ODOO_DB,
username: process.env.ODOO_USERNAME,
apiKey: "${ODOO_API_KEY}", // Secrets manager reference
},
});
// Generic Odoo search_read wrapper
async function odooSearchRead(tool, model: string, domain: any[], fields: string[], limit = 100) {
return tool.call({
model,
method: "search_read",
args: [domain],
kwargs: { fields, limit },
});
}
Der Odoo-API-Schlüssel (generiert unter Einstellungen > Technik > Zulässige API-Schlüssel) wird in Vault gespeichert und erscheint niemals in Code- oder Konfigurationsdateien.
Purchase Automation Agent: Intelligente Beschaffung
Die manuelle Beschaffung ist langsam und fehleranfällig. Ein Bestellpunkt sendet eine E-Mail, ein Käufer prüft sie drei Tage später, sendet eine Angebotsanfrage an drei Lieferanten, wartet eine Woche auf Antworten, erstellt die Bestellung manuell und in der Zwischenzeit geht der Lagerbestand der Fabrik aus. Der Purchase Automation Agent komprimiert dies auf Minuten.
Der Agenten-Workflow:
-
Nachbestellpunkte überwachen: Abonniert Odoo-Inventarereignisse. Wenn die verfügbare Menge eines Produkts unter den Nachbestellpunkt fällt (unter Berücksichtigung bereits bestellter Mengen während des Transports), löst der Agent die Beschaffungssequenz aus.
-
Optimale Bestellmenge berechnen: Geht über die Min-Max-Berechnung hinaus. Berücksichtigt den aktuellen Nachfragetrend, bevorstehende bestätigte Kundenaufträge, saisonale Faktoren und Lieferantenvorlaufzeiten, um die richtige Menge zu bestimmen – nicht nur die Mindestmenge.
-
Anbieterauswahl: Fragt die Anbieterpreisliste und die Lieferzeitdaten in Odoo ab. Bei Produkten mit mehreren zugelassenen Anbietern erfolgt die Auswahl auf der Grundlage des aktuellen Preises, der Verfügbarkeit, der Lieferleistungshistorie (aus früheren Belegen) und der Mindestbestellmengen.
-
Anfrage oder Direktbestellung erstellen: Für etablierte Lieferanten mit aktuellen Preisvereinbarungen wird direkt eine Bestellung erstellt. Für neue Anbieter oder Produkte ohne Preisvereinbarung erstellt er eine Angebotsanfrage, sendet diese per E-Mail und überwacht dann die Antworten.
export const AutomateProcurement = defineSkill({
name: "automate-procurement",
tools: ["odoo", "email"],
async run({ input, tools }) {
const product = await odooSearchRead(
tools.odoo, "product.product",
[["id", "=", input.productId]],
["id", "name", "qty_available", "reorder_min_qty", "seller_ids", "route_ids"]
);
if (!product.length) throw new SkillError("PRODUCT_NOT_FOUND");
const p = product[0];
const transitQty = await getInTransitQty(tools.odoo, input.productId);
const confirmedDemand = await getConfirmedDemand(tools.odoo, input.productId, { days: 60 });
const orderQty = calculateOptimalOrderQty({
currentStock: p.qty_available + transitQty,
confirmedDemand,
safetyStock: p.reorder_min_qty,
vendorLeadTime: await getVendorLeadTime(tools.odoo, input.productId),
});
const bestVendor = await selectVendor(tools.odoo, input.productId, orderQty);
if (!bestVendor) {
return { action: "RFQ_NEEDED", reason: "No vendor with current price agreement" };
}
// Create Purchase Order
const po = await tools.odoo.call({
model: "purchase.order",
method: "create",
args: [{
partner_id: bestVendor.partnerId,
order_line: [[0, 0, {
product_id: input.productId,
product_qty: orderQty,
price_unit: bestVendor.price,
date_planned: addDays(new Date(), bestVendor.leadTimeDays),
}]],
}],
});
return { poId: po, orderQty, vendorId: bestVendor.partnerId };
},
});
Agent für den Abgleich von Kreditorenrechnungen
Der Drei-Wege-Abgleich (Rechnung, Bestellung und Wareneingang) ist einer der arbeitsintensivsten Kreditorenbuchhaltungsprozesse. Der Reconciliation Agent automatisiert dies für mehr als 85 % der Rechnungen, die einwandfrei übereinstimmen, und überlässt die Ausnahmen der menschlichen Überprüfung.
Die Matching-Logik:
- Extrahieren Sie Rechnungsdaten (Lieferant, Rechnungsnummer, Betrag, Einzelposten) aus dem Dokument oder aus einem EDI-Feed.
- Finden Sie die passende Bestellung in Odoo mithilfe der Rechnungsreferenznummer oder der Heuristik „Kreditor + Datum + Betrag“.
- Suchen Sie die zugehörigen Wareneingänge für die Bestellung.
- Vergleichen Sie Rechnungsposten mit Bestellposten und Belegmengen.
- Wenn die Beträge innerhalb der Toleranz (konfigurierbar, normalerweise 2 %) übereinstimmen, buchen Sie die Lieferantenrechnung automatisch.
- Wenn es eine Abweichung gibt, erstellen Sie eine Rechnung im Entwurfsstatus mit Anmerkungen zur Nichtübereinstimmung für die Überprüfung durch das AP-Team.
export const ReconcileVendorInvoice = defineSkill({
name: "reconcile-vendor-invoice",
tools: ["odoo"],
async run({ input, tools }) {
// Find matching PO
const pos = await odooSearchRead(
tools.odoo, "purchase.order",
[["name", "=", input.poReference], ["state", "in", ["purchase", "done"]]],
["id", "order_line", "amount_total", "partner_id"]
);
if (!pos.length) {
return { matched: false, reason: "PO_NOT_FOUND", action: "ROUTE_TO_AP_TEAM" };
}
const po = pos[0];
const amountVariance = Math.abs(po.amount_total - input.invoiceTotal);
const variancePct = amountVariance / po.amount_total;
if (variancePct > 0.02) {
// Create draft bill with mismatch annotation
await tools.odoo.call({
model: "account.move",
method: "create",
args: [{
move_type: "in_invoice",
partner_id: po.partner_id[0],
invoice_origin: po.name,
ref: input.invoiceNumber,
state: "draft",
narration: `RECONCILIATION MISMATCH: Invoice total ${input.invoiceTotal} vs PO total ${po.amount_total} (variance: ${(variancePct * 100).toFixed(1)}%)`,
}],
});
return { matched: false, variancePct, action: "DRAFT_BILL_CREATED_FOR_REVIEW" };
}
// Post the bill
const bill = await tools.odoo.call({
model: "account.move",
method: "create",
args: [{
move_type: "in_invoice",
partner_id: po.partner_id[0],
invoice_origin: po.name,
ref: input.invoiceNumber,
invoice_line_ids: buildInvoiceLines(input.lineItems, po.order_line),
}],
});
await tools.odoo.call({ model: "account.move", method: "action_post", args: [[bill]] });
return { matched: true, billId: bill, variancePct };
},
});
Agent zur Bestandsoptimierung
Statische Nachbestellpunkte und Sicherheitsbestandswerte werden falsch, sobald sich die Nachfragemuster ändern. Der Inventory Optimization Agent analysiert kontinuierlich Bedarfsdaten und empfiehlt Anpassungen.
Der Agent wird wöchentlich ausgeführt und analysiert jedes Produkt im Inventar:
Nachfrageprognose: Berechnet die durchschnittliche wöchentliche Nachfrage und die Standardabweichung aus den Verkaufs-/Verbrauchsdaten der letzten 52 Wochen. Wendet die Saisonbereinigung für Produkte mit saisonalen Nachfragemustern an.
Optimierung des Sicherheitsbestands: Verwendet das Service-Level-Ziel (konfigurierbar pro Produktkategorie) und die Nachfragevariabilität, um den statistisch optimalen Sicherheitsbestand zu berechnen. Produkte mit hoher Nachfrageschwankung benötigen mehr Sicherheitsbestand; Produkte mit stabiler, vorhersehbarer Nachfrage benötigen weniger.
Empfehlung für den Nachbestellpunkt: Sicherheitsbestand plus Nachfrage während der Vorlaufzeit entspricht dem empfohlenen Nachbestellpunkt. Der Agent vergleicht den empfohlenen Wert mit dem aktuellen Odoo-Wert und markiert signifikante Abweichungen zur Überprüfung.
Ablaufmanagement: Identifiziert bei verderblichen Produkten Artikel, die sich dem Ablaufdatum nähern, und erstellt Aktionen: An schnellere Standorte übertragen, Preisnachlässe kennzeichnen oder Entsorgungsaufträge erstellen.
Vertriebspipeline-Automatisierungsagent
Der Sales Pipeline Agent ist die CRM-Automatisierungsebene über Odoo CRM. Es überwacht Opportunity-Phasen, identifiziert Geschäfte, die ins Stocken geraten sind, sendet Nachverfolgungsaufgaben an Account Manager, passt Wahrscheinlichkeitswerte basierend auf Engagement-Signalen an und kennzeichnet gefährdete Opportunities in der Prognose.
export const MonitorSalesPipeline = defineSkill({
name: "monitor-sales-pipeline",
tools: ["odoo"],
async run({ input, tools }) {
const staleOpportunities = await odooSearchRead(
tools.odoo, "crm.lead",
[
["type", "=", "opportunity"],
["stage_id.name", "not in", ["Won", "Lost"]],
["date_last_stage_update", "<", addDays(new Date(), -14).toISOString()],
["probability", ">", 10],
],
["id", "name", "partner_id", "user_id", "expected_revenue", "probability", "date_last_stage_update"]
);
const actions = [];
for (const opp of staleOpportunities) {
// Create follow-up activity
await tools.odoo.call({
model: "mail.activity",
method: "create",
args: [{
res_model: "crm.lead",
res_id: opp.id,
activity_type_id: 4, // Phone call type
summary: `AI Alert: No activity for ${daysSince(opp.date_last_stage_update)} days`,
user_id: opp.user_id[0],
date_deadline: addDays(new Date(), 2).toISOString().split("T")[0],
note: `This opportunity has had no stage movement or logged activity for ${daysSince(opp.date_last_stage_update)} days. Expected revenue: $${opp.expected_revenue.toLocaleString()}. Please review and update.`,
}],
});
actions.push({ opportunityId: opp.id, action: "FOLLOWUP_ACTIVITY_CREATED" });
}
return { processed: staleOpportunities.length, actions };
},
});
Agent für Arbeitsaufträge in der Fertigung
Für Hersteller, die Odoo Manufacturing nutzen, überwacht der Work Order Agent Produktionsaufträge, erkennt Engpässe und ergreift Korrekturmaßnahmen.
Hauptfunktionen:
- Kapazitätsüberwachung: Überprüft die Auslastung des Arbeitsplatzes im Vergleich zu den verfügbaren Stunden und meldet Überlastungen, bevor es zu Verzögerungen kommt.
- Erkennung von Materialengpässen: Prüft die Komponentenverfügbarkeit für bevorstehende Produktionsaufträge. Wenn eine Komponente knapp ist, wird automatisch eine Bestellung oder eine Umlagerung zwischen Lagern ausgelöst.
- Reihenfolge der Arbeitsaufträge: Schlägt für Arbeitsplatzwarteschlangen eine optimale Reihenfolge vor, um die Rüstzeit zu minimieren und den Durchsatz zu maximieren.
- Qualitätseskalation: Wenn eine Qualitätskontrollprüfung fehlschlägt, legt der Agent den Arbeitsauftrag zurück, benachrichtigt das Qualitätsteam und verhindert, dass die Charge in die nächste Phase übergeht.
Buchhaltungsautomatisierung: Periodenendeverarbeitung
Odoo Accounting erfordert eine Verarbeitung am Periodenende: Abstimmung von Kontoauszügen, Rückstellungen, Neubewertung von Fremdwährungen, Abschreibungsbuchungen und Abschluss der Periode. Der Accounting Agent automatisiert die Routineschritte.
Bankabgleich: Der Agent verarbeitet Kontoauszugsimporte, gleicht Transaktionen mithilfe von Betrags-, Datums- und Referenzabgleichen mit Odoo-Journaleinträgen ab und erstellt Resteinträge für nicht abgeglichene Transaktionen. Die Übereinstimmungsraten für saubere Feeds liegen typischerweise bei über 95 %.
Abgrenzungsposten: Basierend auf den konfigurierten Abgrenzungsregeln (vorab bezahlte Ausgaben, aufgelaufene Einnahmen, nicht verdiente Einnahmen) generiert der Agent monatliche Abgrenzungsjournalbuchungen und Stornobuchungen für den folgenden Zeitraum.
Neubewertung von Fremdwährungen: Der Agent ruft aktuelle Wechselkurse aus einem externen Kurs-Feed ab, berechnet nicht realisierte Gewinne/Verluste für alle offenen Fremdwährungssalden und bucht die Neubewertungseinträge gemäß den Regeln von IFRS/GAAP.
Häufig gestellte Fragen
Erfordert OpenClaw Änderungen am Quellcode von Odoo oder an benutzerdefinierten Odoo-Modulen?
Nein. OpenClaw lässt sich vollständig über die Standard-JSON-RPC-API und Webhook-Mechanismen von Odoo integrieren. Es sind keine Odoo-Quelländerungen, benutzerdefinierten Module oder OCA-Abhängigkeiten erforderlich. Das bedeutet, dass die Integration mit jeder Odoo-Version funktioniert, die die JSON-RPC-API (Odoo 14+) unterstützt und Odoo-Upgrades ohne Änderungen übersteht.
Wie geht der Agent mit den Odoo-Zugriffskontroll- und Aufzeichnungsregeln um?
Der Agent authentifiziert sich als dedizierter Odoo-Dienstbenutzer mit einer Rolle, die speziell für die Bedürfnisse des Agenten konfiguriert ist. Die Zugriffskontrolllisten (ACLs) und Datensatzregeln von Odoo gelten für den Agentenbenutzer genauso wie für einen menschlichen Benutzer. Wenn der Agent einen Vorgang versucht, für den er keine Berechtigung hat, gibt Odoo einen Zugriffsfehler zurück, den der Fehlerbehandler des Agenten protokolliert und eskaliert. Dies bedeutet, dass Ihr Odoo-Sicherheitsmodell die maßgebliche Quelle der Zugriffskontrolle bleibt.
Was passiert, wenn der Odoo-Server während der Agentenausführung vorübergehend nicht verfügbar ist?
Die Odoo-Tool-Definition verfügt über eine Wiederholungslogik mit exponentiellem Backoff. Bei vorübergehenden Fehlern (HTTP 503, Verbindungszeitüberschreitung) versucht der Agent bis zu dreimal mit Verzögerungen von 5 Sekunden, 15 Sekunden und 30 Sekunden. Bei anhaltenden Fehlern wird die Aufgabe an die Warteschlange für unzustellbare Nachrichten weitergeleitet und eine Warnung an das Betriebsteam gesendet. Es gehen keine laufenden Aufgabendaten verloren, da der Arbeitsspeicher des Agenten den Aufgabenstatus über Wiederholungsversuche hinweg beibehält.
Kann der Agent im Namen bestimmter Benutzer Datensätze in Odoo erstellen?
Ja. Die Odoo JSON-RPC API unterstützt den kontextbasierten Benutzeridentitätswechsel über den Parameter uid, wenn das Dienstkonto über die erforderlichen Berechtigungen verfügt. Dadurch können vom Agenten erstellte Bestellungen als vom für diese Produktkategorie verantwortlichen Käufer erstellt angezeigt werden, wodurch der Prüfpfad und die Benachrichtigungsweiterleitung in Odoo erhalten bleiben. Ob die Dienstkontoidentität vorgetäuscht oder verwendet werden soll, ist eine Richtlinienentscheidung, die ECOSIRE seinen Kunden auf der Grundlage ihrer Prüfungsanforderungen hilft.
Wie geht die Integration mit Odoo-Konfigurationen für mehrere Unternehmen um?
Bei unternehmensübergreifenden Odoo-Instanzen enthält das Agentenmanifest eine Unternehmenszuordnungskonfiguration. Bei der Verarbeitung von Ereignissen oder API-Aufrufen stellt der Agent den entsprechenden Unternehmenskontext in der Odoo-Sitzung ein. Firmenübergreifende Intercompany-Transaktionen (Intercompany-Käufe, Transfers) werden vom Agenten abgewickelt, indem er im Kontext jedes Unternehmens separate API-Aufrufe durchführt und die resultierenden Datensätze verknüpft.
Nächste Schritte
Odoo ist eine leistungsstarke Plattform, aber ihr volles Potenzial entfaltet sie, wenn eine intelligente Automatisierungsschicht die betriebliche Komplexität bewältigt, die native Automatisierungsregeln nicht bewältigen können. OpenClaw-Agenten schließen die Lücke zwischen dem, was Odoo verfolgen kann, und dem, was Ihr Betriebsteam tun muss.
Der OpenClaw Odoo-Integrationsdienst von ECOSIRE bietet vorgefertigte Agenten, die auf Ihre Odoo-Module abgestimmt sind, benutzerdefinierte Workflow-Automatisierung und fortlaufende Optimierung. Unser Team verfügt über umfassende Fachkenntnisse sowohl in der Entwicklung von OpenClaw-Agenten als auch in der funktionalen Konfiguration von Odoo – wir verbinden beide Domänen.
Kontaktieren Sie ECOSIRE, um Ihre Odoo-Automatisierungsanforderungen zu besprechen und einen individuellen Implementierungsplan zu erhalten.
Geschrieben von
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
Verwandte Artikel
AI-Powered Accounting Automation: What Works in 2026
Discover which AI accounting automation tools deliver real ROI in 2026, from bank reconciliation to predictive cash flow, with implementation strategies.
Multi-Currency Accounting: Setup and Best Practices
Complete guide to multi-currency accounting setup, forex revaluation, translation vs transaction gains, and best practices for international businesses.
Odoo Accounting vs QuickBooks: Detailed Comparison 2026
In-depth 2026 comparison of Odoo Accounting vs QuickBooks covering features, pricing, integrations, scalability, and which platform fits your business needs.