VaultWorkflow

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 Manager

Schema 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 typePurpose in this schema
inputFree-text, email, phone, number, date, select, and textarea fields
radioSingle-choice compliance declaration
attachmentFile upload for business registration and insurance certificate
checkboxRequired terms acceptance
clauseLegal text block displayed to the participant
signature_blockElectronic acknowledgement zone sealed into the final PDF
paragraph, note, listInstructional 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.

On this page