Example: Vendor Onboarding
A complete data-collection workflow schema for vendor onboarding. Collects contact details, compliance declarations, and supporting documents across three steps, then routes to an approver before sealing the onboarding record.
This example shows a standard data-collection workflow. The participant fills a structured multi-step form; no initial data payload is required. The workflow collects contact information, compliance declarations, file attachments, and a terms acknowledgement, then routes to a designated approver.
Workflow type: standard (data-collection)
Steps: 3 (Contact Information, Compliance & Financials, Terms & Agreement)
Full Schema
workflow:
templateVersion: "1.0"
title: "Vendor Onboarding"
workflowType: standard
steps:
# ── Step 1: Contact Information ───────────────────────────────────────────
- id: contact-info
title: "Contact Information"
sections:
- title: "Primary Contact"
blocks:
- type: paragraph
text: "Please fill in your contact details. All fields marked required must be completed before you can proceed."
- type: input
inputType: text
fieldKey: full_name
label: "Full Name"
placeholder: "Jane Smith"
validation:
required: true
message: "Full name is required"
- type: input
inputType: email
fieldKey: email
label: "Business Email"
placeholder: "[email protected]"
validation:
required: true
message: "A valid email address is required"
- type: input
inputType: phone
fieldKey: phone
label: "Phone Number"
placeholder: "+1 (555) 000-0000"
- title: "Company Details"
blocks:
- type: input
inputType: text
fieldKey: company_name
label: "Company Name"
placeholder: "Acme Corp"
validation:
required: true
message: "Company name is required"
- type: input
inputType: select
fieldKey: company_size
label: "Company Size"
options:
- value: "1-10"
label: "1-10 employees"
- value: "11-50"
label: "11-50 employees"
- value: "51-200"
label: "51-200 employees"
- value: "200+"
label: "200+ employees"
- type: input
inputType: textarea
fieldKey: description
label: "Brief Description of Services"
rows: 4
# ── Step 2: Compliance & Financials ───────────────────────────────────────
- id: compliance
title: "Compliance & Financials"
sections:
- title: "Financial Information"
blocks:
- type: note
variant: info
text: "This information is used for compliance screening only and will not be shared externally."
- type: input
inputType: number
fieldKey: annual_revenue
label: "Annual Revenue (USD)"
- type: input
inputType: currency
fieldKey: contract_value
label: "Estimated Contract Value"
- type: input
inputType: date
fieldKey: founded_date
label: "Company Founded Date"
- type: input
inputType: date
fieldKey: contract_start
label: "Requested Contract Start"
- title: "Compliance Declarations"
blocks:
- type: note
variant: warning
text: "All declarations below are legally binding. Please answer truthfully."
- type: list
items:
- "Your company is not under any active sanctions or export restrictions."
- "You have appropriate insurance coverage for the services offered."
- "No principals have been convicted of financial crimes in the past 10 years."
- type: input
inputType: select
fieldKey: entity_type
label: "Legal Entity Type"
options:
- value: "llc"
label: "LLC"
- value: "corporation"
label: "Corporation"
- value: "sole_proprietor"
label: "Sole Proprietor"
- value: "partnership"
label: "Partnership"
- value: "nonprofit"
label: "Non-Profit"
- type: radio
fieldKey: sanctions_check
label: "Is your company subject to any active sanctions?"
options:
- value: "no"
label: "No"
- value: "yes"
label: "Yes — please explain below"
- type: input
inputType: textarea
fieldKey: sanctions_notes
label: "Additional Notes (if applicable)"
rows: 3
- title: "Supporting Documents"
blocks:
- type: note
variant: success
text: "Upload your business registration and insurance certificate to complete this section."
- type: attachment
fieldKey: business_registration
label: "Business Registration / Articles of Incorporation"
accept: ".pdf,.jpg,.png"
required: true
- type: attachment
fieldKey: insurance_cert
label: "Certificate of Insurance"
accept: ".pdf,.jpg,.png"
# ── Step 3: Terms & Agreement ─────────────────────────────────────────────
- id: terms
title: "Terms & Agreement"
sections:
- title: "Standard Terms"
blocks:
- type: clause
text: |
By submitting this form you confirm that:
(a) all information provided is accurate and complete to the best of your knowledge;
(b) you have the authority to enter into agreements on behalf of the company named above;
(c) you consent to VaultPDF processing this submission for onboarding purposes.
- type: checkbox
fieldKey: agree_terms
label: "I agree to the terms and conditions above"
validation:
required: true
message: "You must agree to the terms to submit"
- type: input
inputType: text
fieldKey: signed_name
label: "Your Full Name (as signature)"
validation:
required: true
message: "Please sign with your full name"
- type: signature_block
title: "Electronic Acknowledgment"
columns: 2
signatories:
- role: "Vendor Representative"
fieldKey: "vendor_signature"
includeInitials: true
- role: "VaultPDF Administrator"
name: "VaultPDF System"
includeInitials: false
# ── Approval Routing ──────────────────────────────────────────────────────────
approval:
routing:
mode: first-match
routes:
- id: procurement-director
condition: "contract_value > 500000"
priority: 1
description: "High-value contract — Procurement Director"
approver:
email: [email protected]
role: Procurement Director
escalateAfterDays: 3
- id: procurement-manager
priority: 2
description: "Standard onboarding — Procurement Manager"
approver:
email: [email protected]
role: Procurement Manager
escalateAfterDays: 5
fallback:
approver:
email: [email protected]
role: Procurement ManagerSchema Notes
workflowType: standard
Standard workflows present the portal form to the participant. Validation runs when the participant submits the final step, not at session creation. This is the correct type for any workflow where the participant is the primary data source.
Multi-step data collection
Each step maps to a separate portal screen. The participant must submit each step before advancing. Steps are submitted independently, so the participant can leave and return without losing progress.
Block types used
| Block type | Purpose in this schema |
|---|---|
input | Free-text, email, phone, number, date, select, and textarea fields |
radio | Single-choice compliance declaration |
attachment | File upload for business registration and insurance certificate |
checkbox | Required terms acceptance |
clause | Legal text block displayed to the participant |
signature_block | Electronic acknowledgement zone sealed into the final PDF |
paragraph, note, list | Instructional content and warnings |
Attachments
attachment blocks upload files into Azure Blob Storage scoped to the workflow instance. Uploaded files are referenced in the sealed PDF and retained in the document evidence package.
signature_block in data-collection workflows
The signature_block in step 3 is a layout element, not a PDF AcroForm field. It defines where the electronic acknowledgement seal is injected into the final PDF when the workflow is approved and sealed. Signing is handled by the VaultESign flow, not by Acrobat.
Routing on contract value
The contract_value field collected in step 2 drives approval routing. VaultWorkflow evaluates the routing conditions against the merged field data after all steps are submitted. No additional configuration is required to pass collected values into routing conditions.
Electronic Evidence Appendix
When this workflow is approved and sealed, VaultWorkflow automatically appends an Electronic Evidence Appendix page to the final PDF. No schema configuration is required.
The appendix records the Workflow ID, Correlation ID, seal timestamp, approver hash (HMAC-SHA256), and Tenant ID. The agree_terms checkbox attestation from step 3 is reproduced in the Captured Attestations section, providing a tamper-evident record of what the vendor agreed to.
A WORKFLOW_SEALED audit event is emitted to the tenant immutable audit archive in Azure Blob Storage. The archive uses a time-based immutability policy; records cannot be modified, overwritten, or deleted during the retention window.
Hash chain covers the full document
The document hash is computed over the complete sealed PDF, including the appendix page. Any post-seal modification invalidates the hash and breaks the audit chain.
See the Workflow Schema Reference for the full appendix field reference and audit event payload.
Workflow Intake Receipt
When the workflow session is created, VaultWorkflow also generates a Workflow Intake Receipt PDF stored in your Azure Blob Storage. The receipt records the Workflow ID, Portal URL (with access token), Correlation ID, Document ID, submitter identity, and expected output path. File it against the originating vendor record in Dynamics 365 or SharePoint as your submission confirmation.
VaultWorkflow API Reference
HTTP endpoint reference for creating workflow sessions, submitting steps, managing approvals, and querying workflow status.
Example: AP 3-Way Match
A complete governance workflow schema for AP 3-way match validation: PO vs. Goods Receipt vs. Invoice. Uses autoValidateOnCreate to run validation without portal interaction, then routes to Finance Director or AP Manager based on invoice total.