Eingangsrechnungen auto. importieren / synchronisieren

Hi,

ich habe leider noch nichts in die Richtung hier im Forum finden können, leitet mich gern weiter, falls das an falschen Suchbegriffen gelegen haben könnte.

ERPNext ist ja sehr ausgeklügelt und umfangreich, aber für eine “einfache” / effiziente Rechnungserfassung vergleichsweise nicht das ergonomischte System (außer es gibt umfangreich UI Anpassungsmöglichkeiten, die ich bislang noch nicht gefunden habe).

Besonders unergonomisch finde ich z.B., dass der Beleg (Bild / PDF) nicht gleichzeitig (also neben) zur Erfassung dargestellt werden kann (oder??), so wie das bei einigen anderen Rechnungstools der Fall ist
(klar, das sind Rechnungstools mit diesem Fokus; verglichen mit anderen ERP Systemen ist NextERP da sicher schon eher noch vorn mit dabei).

Deshalb habe ich mir die Frage gestellt, ob es nicht nur diverse EXPORTs (zu DATEV & Co) gibt, sondern auch Importmöglichkeiten. Aber eben nicht einmalige, sondern z.B. täglich synchronisierbare Rechnungsabgleiche.

Wird ja vermutlich bei den bereits unterstützten Shop-Anbindungen (Shopify/WooCommerce) auch schon so sein… aber eben für die Ausgangsrechnungen und nicht für die Einkaufsbelege.

Ganz konkret fände ich zum Beispiel die Anbindung von getmyinvoices.com (oder Competitors) sehr hilfreich, weil dort ja quasi alle Rechnungen von überall her (oder auch per Cam-Scan) automatisch gesammelt werden. Mit diversen Extraktionsverfahren werden Netto/Brutto Beträge und SKR04 Konto hinzuermittelt, und so muss dann eigentlich nicht mehr besonders viel händisch gemacht werden. (Sorry, das soll hier keine Werbung sein, aber diese Vorteile haben für uns einfach einen großen Nutzen in Sachen Effizienz).

Jetzt müssten diese Daten “bloß” noch automatisch und regelmäßig ins ERPNext kommen… dazu gibt es leider keine Anbindung. Aber Anbindungen zu anderen Diensten wie (E-Mail, WebDAV, AWS, Zoho, Google Drive, etc.).

Man könnte da sicher mal anfragen, aber gerade weil ERPNext so flexibel ist, dachte ich, es könnte vielleicht auch noch kreative Möglichkeiten geben, sowas auf kürzerem Weg zu erreichen (z.B. den E-Mail Eingang entsprechend parsen, um Einkaufsrechnungen zu erzeugen?)

Deshalb folgende Fragen:

  • Wie löst die Community die Buchung von vielen Einkaufsrechnungen? Gibt es Automatisierungsmöglichkeiten?
  • Gibt es vielleicht in ERPNext bereits komfortablere (resp. schnellere) Erfassungsmöglichkeiten für Rechnungen, die ich noch nicht gefunden habe?
  • Wie kompliziert wäre es, einen Webservice (ggf. via DocType) in ERPNext zu erstellen, der von solchen 3rd Party Diensten via Webhook aufgerufen werden kann, um dann eine Folgeautomatisierung zur Einkaufsbeleg-Erstellung ablaufen zu lassen?
  • Sonstige Ideen / Meinungen zu meiner skizzierten Problemstellung?

Danke für Eure Meinungen
Philipp

Ok, ich deute das mal so, dass sich niemand, der aktiv im Forum ist, bislang über eine dahingehende Automatisierung Gedanken gemacht hat…

Deshalb dachte ich, ich teste eine solche Synchronisierung “mal schnell” mit unserem “Workflow-API-Zusammensteck-Tool” n8n, dann wird das schon.

Es hat sich herausgestellt, dass es doch an den ein oder anderen Stellen wirklich viel Überlegungs-Bedarf gibt, was bei einem auto. Sync besser betrachtet werden muss (einiges davon ist noch recht offensichtliches, einiges eher weniger):

  • Gibt es den Lieferanten bisher, oder soll er angelegt werden
  • Gibt es die Rechnung bereits oder ist sie neu und soll angelegt werden
  • Wie organisiert man die externen IDs korrekt, um Neue nicht mit den bereits intern Vergebenen falsch zu betrachten, um Dubletten zu vermeiden.
  • Merken der zuletzt verarbeiteten Rechnung, um nicht immer komplett alle Nachrichten zu laden, damit der Sync auch in Zukunft leichtgewichtig bleibt
  • “Erraten” der Artikelnummer, die nicht via GMI zugeordnet wird
  • Bei 90% unserer Lieferanten ist es so, dass wir eigentlich immer dieselbe Leistung erwerben; also werden sich die Steuersätze, die SKR04 Konten etc. bei jeder weiteren Rechnung idR nicht ändern. In diesen Fällen sollen diese Informationen aus der letzten Rechnung dieses Lieferanten übernommen werden.
  • Außerdem können diese Rechnungen (via DocType extra-Feld im Supplier) direkt Submitted werden, ohne dass noch mal jemand drauf gucken muss
  • In den anderen Fällen (z.B. Bestellungen von Amazon) müssen dagegen sehr wohl die Artikel, Steuerquote und Kontenzuordnung händisch überprüft werden. Rechnungen bei diesen Lieferanten müssen deshalb als Entwurf stehen bleiben, um manuell geprüft zu werden.

Mit diesen ganzen Gegebenheiten ist der Workflow dann doch sehr viel umfangreicher geworden als ursprünglich mal gedacht… sodass vermutlich rückblickend doch ein banales Script einfacher gewesen wäre… im Nachhinein ist man immer schlauer :slight_smile:

So sieht das jetzt (modelliert mit o.g. n8n) aus:

Jedenfalls funktioniert das jetzt für unsere Bedürfnisse, wobei sicherlich noch die ein oder andere Justierung (besonders hinsichtlich der Kostenstellen/DATEV Konten) nötig wird.

Der Workflow ist (wie oben beschrieben) auf den Datenlieferant getmyinvoices ausgelegt; aber insgesamt werden gerade mal 3 Zugriffe auf deren API abgesetzt; also sollte eine Abwandlung auf eine Alternative nicht besonders aufwändig sein.

Da das jetzt gerade noch wirklich “roh” ist, und ich zunächst noch einige Iterationen mit dem Steuerberater gehen möchte (& es auch der ein oder anderen Konfigurations-Überlegung unterliegt), lade ich den sich noch ändernden Workflow noch nicht hier hoch.

Wer aber Interesse daran hat, oder sich auch hinsichtlich der “Steuerberater Brille” einbringen möchte, kann sich natürlich sehr gern bei mir melden!

Vielleicht findet sich ja auch jemand, der aus diesem Prototyp doch noch ein Python Script machen möchte, das dann für alle innerhalb ERPNext zugänglich gemacht werden kann :wink:

Jedenfalls flutschen neue Rechnungen jetzt, egal auf welchem Weg sie zugestellt werden (ob einfach nur bei Amazon im Login-Bereich, oder via E-Mail, oder via Scan aus der App) direkt in unser ERPNext, was hinsichtlich manuellem Eingabeaufwand (und daraus resultierender Fehleranfälligkeit) wirklich extrem gut ist.

Wenn das noch jemand von Euch helfen könnte, lasst es mich einfach wissen

VG
Philipp

3 Likes

Ziemlich Cool!

Hast du dir schon mal Gedanken darüber gemacht, mehr des ERPNext eigenen Workflows im Warenbezug zu nutzen? GGf. bei der Bestellung oder Wareneingang anzufangen? Unter umständen ergeben sich Einkaufrechnungen, zumindest zu einem gewissen Teil, aus Bestellungen.

Wir haben eine Anbindung an COP Agent, die Mappen Artikel aus der IT-Welt unter einer festen Nummer, die ich dann bei dutzenden Lieferanten bestellen kann. Hieraus importieren wir die getätigten Bestellungen per API. Diese Wandeln wir dann zu Rechnungen.

https://www.getmyinvoices.com/ integration finde ich aber trotzdem dufte. Eine App dafür halte ich für total sinnvoll. Hast du da ggf. etwas als Grundriss, woran man weiter arbeiten könnte?

Hi @itsdave,

nein darüber haben wir bislang nicht nachgedacht, weil wir nur ganz selten Bestellungen nutzen. Und dort beginnt unser Prozess frühestens.
→ In unserem Dienstleistungsgewerbe haben wir keinen Wareneingang im klassischen Sinn :wink:

Und die Beauftragungen, die wir aussprechen, sind dann mehr als Kontingente zu verstehen- d.h. die Eingangs-Rechnung ist in diesen Fällen immer nur ein Abruf (also ein Anteil) des allokierten Kontingents.

Deine Info hilft mir aber dennoch gut, um zu verstehen, warum es wahrscheinlich für viele gar nicht so dringend ist, wie ich das gesehen habe :wink: Auch wenn ich es mir dennoch einfacher vorstelle, sich nicht selbst um die Anlage und PDF Upload etc. zu kümmern.

Als Grundriss kann ich Dir gern, wie auch angeboten, den oben dargestellten Workflow zur Verfügung stellen… der ist ja lauffähig; ich müsste dann nur vorher einiges an Spezifika rausnehmen, bzw. die hinterlegte ERPNext URL parametrisierbar machen.

Das macht aber natürlich nur Sinn, wenn Du das auch wo (n8n) einspielen kannst. Der Workflow wird zwar als JSON Export durchgeführt, d.h. man kann die API Aufrufe schon erkennen, aber Details zum Datenfluss sind wahrscheinlich nicht ganz so offensichtlich - habe ich jetzt aber auch noch nicht in der Tiefe das JSON angesehen.

Alternativ könnte ich Dir den groben Ablauf versuchen als wagen Pseudocode zu beschreiben, aus dem die API Aufrufe ersichtlich werden.

Hilft Dir eins der beiden Dinge, oder hast Du einen anderen Vorschlag?

OK, verstehe. Auch wir haben viele Rechnungen, die ohne Bestellung eingehen, daher werde ich da in Zukunft auch etwas automatisieren.

Ich schwanke nun zwischen 2-3 Ideen:

  • Rechnungen selbst extrahieren (PDF Text extrahieren, Scan+OCR, ZUGFeRD, und viel regex.)
  • Unser bisher schon genutztes DMS (Inoxision) weiter ausbauen
  • Einen Dienst, wie getmyinvoice verwenden.

Mein Ansatz wäre aber eher, eine App für ERPNext zu schreiben und ggf. die getmyinvoice API zu nutzen.

Welchen Vorteil siehst du in der Verwendung von n8n? Wenn du eine eigene ERPNext/Frappe Instanz hast und somit eigenen Code ausführen kannst, ist es IMHO einfacher das direkt aus einer Frappe-App zu regeln?

1 Like

Das “selbst extrahieren” ist m.E. ziemlich aufwändig. Es gibt zwar einige vielversprechende Open Source Projekte, aber diese sind (für mich) eher als “Modul” zu verstehen… also wenn es nicht zum Kerngeschäft gehört ist es finanziell eher sinnvoll auf Dienste wie GMI zurückzugreifen (was auch nicht perfekt ist, aber das Extraktions-Level ist schon gut).
Wenn Ihr da aber tiefere Ambitionen hat, würde ich mich da ggf. anschließen.

Es wäre definitiv der bessere Weg für die Anbindung eine ERPNext App zu schreiben!

Der Vorteil von n8n war für mich jetzt einfach: Speed!
Einfach weil niemand bei uns tiefere Erfahrung mit Python hat und wir noch keine frappe Apps geschrieben haben.

Vor allem bei der “großen” Ursprungs-Resonanz macht das überhaupt keinen Sinn mehr Energie hineinzustecken, wenn das Problem sonst für niemanden existiert.

Für uns ist ja in erster Linie wichtig gewesen, dass unser Problem gelöst ist… wenn es sonst niemand hat, wäre das: Story-Ende :slight_smile:

Wenn aber schon: Unterstütze ich sehr gern mit dem dabei entstandenen Wissen, damit eine gute App daraus entstehen kann. Und gern investieren wir auch noch mehr Aufwand (auch an einer möglichen Frappe App), wenn das für andere Personen interessant wäre. Aber eben nicht im Alleingang, wenn es niemandem sonst weiterhilft. → Für uns reicht die aktuelle Lösung mit n8n.

Ich hoffe das passt so zum Verständnis… gib Bescheid, wenn ich unterstützen kann, wenn Du Infos möchtest, o.ä.

VG
Philipp

Hallo zusammen,

ich beschäftige mich auch gerade mit dem Thema. ERPnext hat aus meiner Sicht kein gutes DMS. Ich werde vermutlich eine Kombination aus Agorum, welches auch OpenSource ist (zumindest zum Teil) und ERPnext verwenden.
Es wäre echt super, wenn es eine Lösung für ERPnext geben könnte.

Ein erster Ansatz ist die Erkennung der Rechnung:

VG
Georg

1 Like

Es gibt hier einen ersten Ansatz:

Hallo @pgr,

ich bin auch an eine Lösung bezüglich der Eingangsrechnungen Interessiert.

Es es möglich mir ein Export bezüglich deinem Workflow n8n zukommen zu lassen damit ich das selber bei mir auch testen & prüfen kann?

Wäre nett vielen Dank.

Bezüglich der Programmierung habe ich gesehen, damit hier was auf die Beine gestellt wird → https://www.alyf.de/files/2024-05-22%20ALYF%20GmbH%20-%20Proposal%20E-Rechnung.pdf

Grüße
Kevin Rozankovic

Sorry der Workflow ist nicht richtig live gegangen, weil das auf getmyinvoices aufgesetzt hat und dabei die Ergebnisse zu schlecht waren. Habe den Workflow leider nicht mehr :open_mouth:

Hi @pgr,

danke für die Rückmeldung. Schade eigentlich.

Das heißt n8n & getmyinvoice nutzt du nichtmehr?
Wie löst du es inzwischen?

Grüße
Kevin

Ja es hat den Aufwand nicht reduziert. Sind aktuell wieder zurück auf “manuell” außerhalb erpnext. Vielleicht klappt der Umstieg dann ja mit der xrechnung app

2 Likes

Hallo @pgr,

ich habe mich mit meinen Entwicklern unterhalten und wir würden gerne verschiedene Integrationen für ERPNext programmieren.

Wir würden gerne vorerst 3 Lösungen entwickeln.

Lösung 1 ERPNext & Getmyinvoices Integration:
→ Getmyinvoices https://www.getmyinvoices.com/

In Getmyinvoices können verschiedene Portale wie Amazon, Ebay, E-Mail (über 10.000 Portale) etc. angebunden werden. Alle Eingangsrechnungen werden dort automatisch und zentral hochgeladen.

Ziel ist es, alle Eingangsrechnungen automatisch in ERPNext zu erstellen, die PDF-Rechnungen aus Getmyinvoices hochzuladen, zu verknüpfen & die Daten wie Lieferanten, Steuer, Artikel und vieles mehr mit einem OCR-Scan vorzubefüllen.

Lösung 2 ERPNext & Mail-Import:

Bei dieser Lösung soll ERPNext alle Rechnungen hochladen, die z.B. bei accounting@example.com unter ERPNext Doctype Eingangsrechnung eingehen.

Ziel ist es, das Buchhaltungspostfach zu überwachen, automatisch eine Eingangsrechnung in ERPNext zu erstellen, die Anhänge der Mail mit der Eingangsrechnung zu verknüpfen und wiederum einen OCR-Scan durchzuführen, um die Eingangsrechnung automatisch auszufüllen und so die manuelle Arbeit zu reduzieren.

Lösung 3 ERPNext & Sharepoint:

Bei Lösung 3 sollen alle Eingangsrechnungen, die in einer Sharepoint-Website, z.B. der Buchhaltung, gespeichert sind, in ERPNext hochgeladen werden.

Das Ziel dabei ist, dass ERPNext, wenn Eingangsrechnungen in einem Ordner auf einer bestimmten Sharepoint-Website gespeichert sind, diesen Ordner überwacht und alle neuen Dateien hochlädt. Auch hier soll eine Eingangsrechnung automatisch erstellt, die Datei aus dem Sharepoint-Ordner hochgeladen & mit der Eingangsrechnung verknüpft werden. Außerdem sollen die Daten wie Lieferant, Rechnungsnummer, Datum etc. über einen OCR-Scan ausgelesen und automatisch in die ERPNext-Eingangsrechnung eingetragen werden.

Ist jemand an dieser Softwarelösung interessiert? Wenn ja, Lösung 1, 2 oder 3? Oder haben Sie eine andere Integration, die Sie gerne hätten?

Mit freundlichen Grüßen
Kevin

Hi,
wir entwickeln gerade etwas ähnliches.

Was schon grundlegend funktioniert:

  • Paperless-ngx integriert als App in Frappe integriert
  • Man „wirft“ ein Dokument in Paperless (per WebGUI oder in eine Ordner)
  • Paperless macht OCR und legt ein Dokument in Frappe an
  • OpenAI (kompatible API, ggf. auch mal mit lokalen LLMs) machbar
  • Mit den Volltext calen wir die OpenAI API, und erhalten mit entsprechender Prompt eine Structured response im JSON Format
  • Wir Legen hierraus automatisch an, falls nicht existent:
  • Supplier, Address, Contact, Item(s), Purchase Invoice

In kurz:
PDF In Paperless werfen, 10 Sekunden später gibts eine Einkaufsrechnung in ERPNext als Draft.

4 Likes

Hallo @itsdave,

hört sich auch Interessant an. Ich war auch am überlegen Paperless-ngx einzusetzen, aber somit hat man wieder ein weiteres System wo gewartet/gepflegt werden muss.

Daher habe ich mich nach anderen Lösungen umgeschaut wie z.B. Getmyinvoices wo alle meine Eingangsrechnungen zentral von diversen Plattformen herunterladet und ich nicht immer alles herunterladen/suchen muss. Ich muss halt nur noch die Schnittstelle programmieren zu ERPNext.

Bist du aber soweit zufrieden mit paperless-ngx? Ich habe auch gesehen, damit ein Import hiermit per Mail geht oder?

Grüße
Kevin

Wir verfolgen aktuell einen ähnlichen Ansatz, nur ohne DMS System und Dokumententyp offen (werdet Ihr aber vermutlich auch konfigurieren können)

@pgr wie wollt/würdet Ihr es umsetzen?

Irgend eine Art DMS braucht man i.d.R. ja im Unternehmen, nicht nur was Rechnungen angeht. Wir haben bisher ein kommerzielles System dafür genutzt, integrieren jetzt aber Paperless, weil es “fluffiger” und offener ist.

Es integriert OCRmyPDF ziemlich gut, so dass wir uns damit nicht rumschlagen mussten und liefert schnell Daten, mit denen wir weiterarbeiten können.

Ja, email Abruf kann Paperless, ggf. scripten wir ergänzend noch etwas hierzu.

Mir war es auch wichtig, Positionsdaten (nicht nur Belegkopf und Summen) zu extrahieren und der KI-Ansatz sieht hierfür recht vielversprechend aus.

Getmyinvoices klingt auch interssant: Hab kurz in die API Doku geschaut und die extrahieren entsprechend ähnliche json Strukturen, wie wir mit unserem Ansatz. GGf. lasse ich mich von den Feldbezeichnungen inspirieren, so dass auch ein Abruf aus deren API mit unserer weiteren Logik funktionieren könnte. Dann wäre das eine Weitere Datenquelle, die man recht einfach integrieren könnte.

Unterm Strich hätte ich aber auch diese Belege gerne in einem System durchsuchbar, also ggf. auch nochmal im DMS archiviert.

1 Like

Ja, wir streben eine Doctype unabhängige Integration an, aber implementieren es erstmal an der für uns nützlichsten Stelle, den Eingangsrechnungen, Doctype-gebunden.

Mir schweben konfigurierbare Workflows pro Doctype vor.

1 Like

Hi,

ich hatte vor, genau sowas in den nächsten Wochen zu entwickeln. Habt ihr das Open Source oder könntet es zur Verfügung stellen? Würde bestimmt dem ein oder anderen helfen :slightly_smiling_face: