Rechnungen kommen per Mail von vielen Lieferanten und in vielen Formen. Jemand muss jedes PDF öffnen, die Zahlen ins Buchhaltungssystem tippen, herausfinden, wer es freigeben muss, der Freigabe hinterherjagen – und die Rechnung am Ende verbuchen.
Das ist langsam, fehleranfällig und später kaum auditierbar. Geht etwas verloren oder wird doppelt bezahlt, kann niemand genau sagen, was passiert ist.
dataflows beobachtet das Postfach. Trifft eine Rechnung ein, extrahiert KI die wichtigen Daten: Betrag, Datum, Lieferant, Kostenstelle. Der Workflow fragt dann die passende Person per Mail oder Slack und wartet bis zu sieben Tage auf eine Antwort.
Nach der Freigabe wird die Rechnung samt Metadaten ins Buchhaltungssystem übertragen. Fehlt etwas oder ist etwas unklar, fragt der Workflow lieber einen Menschen, statt zu raten. Jeder Schritt wird protokolliert – die Buchhaltung sieht jederzeit, was wann von wem getan wurde.
// Rechnungs-Freigabe-Workflow
export const invoiceApproval = defineWorkflow({
id: 'invoice-approval',
trigger: email.onReceive({ subject: 'Rechnung' }),
async run({ event, step }) {
const pdf = await step.run('extract-pdf', () =>
attachments.firstPdf(event)
)
const data = await step.run('ai-extract', () =>
ai.extract(pdf, {
amount: 'number',
date: 'date',
vendor: 'string',
costCenter: 'string'
})
)
const approver = await step.run('find-approver', () =>
people.byCostCenter(data.costCenter)
)
const decision = await step.waitForApproval({
approver,
timeout: '7d',
summary: data
})
if (decision === 'rejected') return { status: 'rejected' }
await step.run('book-in-accounting', () =>
accounting.uploadInvoice({ pdf, data })
)
return { status: 'booked' }
}
})