Zum Inhalt springen

Vertrag signieren lassen

Kommt ein Vertrag an, sendet ihn die Karte „Zur Signatur senden“ der Reihe nach an die anfordernde Person als „Auftraggeber“ und an den Vertragspartner als „Auftragnehmer“, mit einer einfachen elektronischen Signatur (EES) und 14 Tagen Frist, ohne Skript. Vorname, Nachname und E-Mail-Adresse des Vertragspartners stehen in drei Feldern, die der Workflow am Vertrag anlegt; nach dem Hochladen sind sie meist noch leer. Dann wartet der Workflow, bevor er etwas sendet: Die anfordernde Person bekommt die Aufgabe „Vertragspartner erfassen“, trägt die drei Felder am Vertrag ein und markiert die Aufgabe als erledigt; das geht erst, wenn jedes Feld einen Wert hat. Nach zwei Arbeitstagen erinnert Acriva sie einmal daran, und der Workflow wartet, bis die Aufgabe erledigt ist oder jemand ihn abbricht. Stehen die Angaben schon am Vertrag, sendet der Workflow sofort; hat die KI-Erfassung sie gelesen, prüft die anfordernde Person sie vor dem Versand. Acriva erkennt die Signaturfelder selbst; findet es keinen sicheren Platz, legt die anfordernde Person die Felder in der Aufgabe „Signaturfelder prüfen“ fest. Unterschreiben beide, legt Acriva das signierte PDF mit dem Signaturprotokoll als neue Version ab. Lehnt jemand ab, klärt die anfordernde Person das in einer Aufgabe; läuft die Frist ab, wird sie informiert. Ist die E-Mail-Adresse ungültig, nimmt die Karte den Ausgang „übersprungen“, und der Verlauf nennt den „Auftragnehmer“. Der Workflow braucht eine Person, die den Vertrag hochgeladen hat: Ohne anfordernde Person, etwa bei einem Vertrag aus einem E-Mail-Postfach, findet die Aufgabe niemanden, und der Workflow endet mit einem Fehler. Braucht das Add-on E-Signatur.

Der Workflow startet für jedes Dokument vom Typ contract. Seine Datei workflow.yaml:

$schema: 'https://docs.acriva.de/schemas/workflow.schema.json'
format: 1
schemaVersion: 8
sdk: '1.0.0'
key: sign-contract
name: Vertrag signieren lassen
template: custom
trigger:
documentType: contract
fields:
- key: partnerFirstName
kind: text
labelDe: Vorname Vertragspartner
labelEn: Partner's first name
documentTypes:
- contract
- key: partnerLastName
kind: text
labelDe: Nachname Vertragspartner
labelEn: Partner's last name
documentTypes:
- contract
- key: partnerEmail
kind: text
labelDe: E-Mail Vertragspartner
labelEn: Partner's email
documentTypes:
- contract
start: partnerKnown
steps:
- kind: condition
name: partnerKnown
label: Vertragspartner vollständig?
branches:
- when:
kind: or
conditions:
- kind: compare
field: partnerFirstName
operator: isEmpty
constants: []
- kind: compare
field: partnerLastName
operator: isEmpty
constants: []
- kind: compare
field: partnerEmail
operator: isEmpty
constants: []
next: capturePartner
default: sign
- kind: humanTask
name: capturePartner
label: Vertragspartner erfassen
taskKind: capture
assignees: []
fallback:
kind: requester
options:
remindAfterWorkingDays: 2
excludeRequester: false
excludeActorsOfSteps: []
pickFile: false
next: sign
requiredFields:
fields:
- partnerFirstName
- partnerLastName
- partnerEmail
requireComment: false
- kind: signature
name: sign
label: Vertrag signieren lassen
signers:
- kind: requester
label: Auftraggeber
- kind: external
label: Auftragnehmer
firstNameField: partnerFirstName
lastNameField: partnerLastName
emailField: partnerEmail
ordered: true
level: ses
expiryDays: 14
fieldMode: detect
reviewer:
kind: requester
allowConfidential: false
language: de
next: signed
onDeclined: clarify
onExpired: expired
onSkipped: skipped
- kind: humanTask
name: clarify
label: Ablehnung klären
taskKind: review
assignees: []
fallback:
kind: requester
options:
excludeRequester: false
excludeActorsOfSteps: []
pickFile: false
next: declined
onRejected: declined
- kind: notification
name: expired
label: Anfordernde Person informieren
recipients:
- kind: requester
notice: forInformation
next: expiredEnd
- kind: end
name: signed
label: Signiert
outcome: completed
- kind: end
name: declined
label: Abgelehnt
outcome: completed
- kind: end
name: expiredEnd
label: Abgelaufen
outcome: completed
- kind: end
name: skipped
label: Übersprungen
outcome: completed