10 E-Signature Workflow Templates for Common Business Processes
Ready-to-use workflow templates for HR onboarding, sales contracts, vendor agreements, and more. Automate repetitive signing tasks in minutes.
Lisa Morgan
Business Process Consultant
10 E-Signature Workflow Templates for Common Business Processes
Stop recreating the same signature workflows from scratch. These proven templates handle 80% of business signing scenarios and can be customized in minutes.
Template 1: Employee Onboarding
Use Case: New hire paperwork (offer letter, I-9, W-4, handbook, benefits enrollment)
Workflow:
1Step 1: HR uploads offer letter
2 ββ> Sent to: Candidate
3 ββ> Due: 48 hours
4 ββ> Actions: Sign + Date
5
6Step 2: On acceptance
7 ββ> Auto-send: W-4, I-9, Direct Deposit
8 ββ> Sent to: New hire
9 ββ> Due: 3 business days
10 ββ> Actions: Fill + Sign
11
12Step 3: On completion
13 ββ> Auto-send: Employee handbook acknowledgment
14 ββ> CC: Manager
15 ββ> Trigger: Payroll system update
16
17Step 4: First day
18 ββ> Auto-send: Equipment agreement, NDA, Code of conduct
19 ββ> Sent to: New hire + Manager
20 ββ> Require: Both signaturesImplementation:
1const onboardingWorkflow = {
2 name: 'Employee Onboarding',
3 trigger: 'manual', // HR initiates
4 steps: [
5 {
6 id: 'offer',
7 template: 'offer_letter',
8 recipients: [{ role: 'candidate', order: 1 }],
9 fields: ['signature', 'date', 'start_date'],
10 deadline: { hours: 48 },
11 reminders: [{ hours: 24 }, { hours: 4 }],
12 onComplete: 'next_step'
13 },
14 {
15 id: 'tax_forms',
16 condition: 'offer.status === "signed"',
17 documents: ['w4_form', 'i9_form', 'direct_deposit'],
18 recipients: [{ role: 'new_hire', order: 1 }],
19 fields: ['fillable_form', 'signature'],
20 deadline: { days: 3 },
21 onComplete: 'next_step'
22 },
23 {
24 id: 'policies',
25 condition: 'tax_forms.status === "completed"',
26 documents: ['employee_handbook', 'code_of_conduct', 'nda'],
27 recipients: [
28 { role: 'new_hire', order: 1 },
29 { role: 'manager', order: 2 }
30 ],
31 onComplete: 'update_hrms'
32 }
33 ],
34 integrations: {
35 onComplete: {
36 action: 'webhook',
37 url: 'https://yourcompany.com/api/onboarding-complete',
38 payload: {
39 employeeId: '{{new_hire.id}}',
40 documents: '{{all_signed_docs}}',
41 startDate: '{{offer.start_date}}'
42 }
43 }
44 }
45};Time Saved: 6 hours per new hire (90% reduction)
Template 2: Sales Contract Approval
Use Case: Quote approval requiring multiple internal signatures before customer signing
Workflow:
1Step 1: Sales rep creates quote
2 ββ> Auto-route to: Sales manager
3 ββ> If > $50k: Route to VP Sales
4 ββ> If > $200k: Route to CEO
5
6Step 2: Internal approval
7 ββ> Sequential signing: Manager β VP β CEO
8 ββ> Each approver can: Approve | Reject | Request Changes
9 ββ> Rejection: Return to sales rep with comments
10
11Step 3: Customer signing
12 ββ> Condition: All internal approvals complete
13 ββ> Send to: Customer contact
14 ββ> CC: Account executive, Sales manager
15 ββ> Include: Final approved quote
16
17Step 4: Countersignature
18 ββ> After customer signs
19 ββ> Send to: Authorized company signatory
20 ββ> Trigger: Contract effective, update CRMImplementation:
1const salesWorkflow = {
2 name: 'Sales Contract Approval',
3 steps: [
4 {
5 id: 'approval_routing',
6 condition: {
7 if: 'deal_value > 200000',
8 route: ['sales_manager', 'vp_sales', 'ceo'],
9 elseIf: 'deal_value > 50000',
10 route: ['sales_manager', 'vp_sales'],
11 else: ['sales_manager']
12 },
13 signing: 'sequential',
14 allowReject: true,
15 allowAmend: true
16 },
17 {
18 id: 'customer_signature',
19 condition: 'approval_routing.status === "approved"',
20 recipients: [{ email: '{{customer.email}}' }],
21 cc: ['{{sales_rep.email}}', '{{sales_manager.email}}'],
22 reminders: [
23 { days: 3 },
24 { days: 7, escalate: 'sales_manager' }
25 ]
26 },
27 {
28 id: 'countersignature',
29 condition: 'customer_signature.status === "signed"',
30 recipients: [{ role: 'authorized_signatory' }],
31 onComplete: [
32 { action: 'update_crm', status: 'closed_won' },
33 { action: 'notify_team', template: 'deal_won' },
34 { action: 'trigger_onboarding' }
35 ]
36 }
37 ]
38};Time Saved: 4.5 days average (from 7 days to 2.5 days)
Template 3: NDA (Mutual or One-Way)
Use Case: Quick NDA for prospect meetings, vendor discussions, partnership talks
Workflow:
1Step 1: Select NDA type
2 ββ> Mutual NDA (both parties protect info)
3 ββ> One-way NDA (we disclose, they protect)
4
5Step 2: Auto-populate
6 ββ> Our company info (from profile)
7 ββ> Counterparty info (from form)
8 ββ> Effective date, term length
9
10Step 3: Parallel signing
11 ββ> Send to both parties simultaneously
12 ββ> Order doesn't matter
13 ββ> Complete when both sign
14
15Step 4: Auto-distribute
16 ββ> Email fully executed NDA to both parties
17 ββ> Store in: Legal repository
18 ββ> Calendar: Add expiration reminderImplementation:
1const ndaWorkflow = {
2 name: 'Quick NDA',
3 steps: [
4 {
5 id: 'nda_setup',
6 template: '{{ nda_type }}', // mutual_nda or oneway_nda
7 autoPopulate: {
8 our_company: '{{company.legal_name}}',
9 our_address: '{{company.hq_address}}',
10 our_signatory: '{{company.authorized_signer}}',
11 effective_date: '{{ today }}',
12 term: '{{ nda_term }}', // Default: 2 years
13 }
14 },
15 {
16 id: 'signing',
17 recipients: [
18 { role: 'our_signatory', order: 'any' },
19 { role: 'counterparty', order: 'any' }
20 ],
21 signing: 'parallel', // Order doesn't matter
22 deadline: { days: 7 }
23 },
24 {
25 id: 'distribution',
26 condition: 'signing.status === "completed"',
27 actions: [
28 {
29 action: 'email',
30 to: ['{{our_signatory}}', '{{counterparty}}'],
31 template: 'nda_executed',
32 attach: '{{signed_document}}'
33 },
34 {
35 action: 'calendar_event',
36 date: '{{effective_date + term}}',
37 title: 'NDA Expiration: {{counterparty.company}}',
38 attendees: ['{{our_signatory}}']
39 },
40 {
41 action: 'store',
42 location: 'legal/ndas/{{year}}/{{counterparty.company}}.pdf'
43 }
44 ]
45 }
46 ]
47};Time Saved: 2 hours per NDA (from 3+ hours to <30 minutes)
Template 4: Vendor/Supplier Agreement
Use Case: Standard vendor contracts with legal review for non-standard terms
Workflow:
1Step 1: Procurement uploads vendor contract
2 ββ> Auto-detect: Non-standard clauses (AI)
3 ββ> If standard: Skip to Step 3
4 If non-standard: Route to legal
5
6Step 2: Legal review (conditional)
7 ββ> Assign to: Contracts attorney
8 ββ> Attorney can: Approve | Request changes | Reject
9 ββ> If approved: Continue to Step 3
10
11Step 3: Procurement approval
12 ββ> Sign: Procurement manager
13 ββ> If > $100k: Also require CFO signature
14 ββ> Sequential signing
15
16Step 4: Vendor signature
17 ββ> Send to: Vendor contact
18 ββ> Reminders: Days 3, 7, 14
19 ββ> Escalation: Day 14 to procurement VP
20
21Step 5: Countersignature & setup
22 ββ> Final signature: Authorized company signatory
23 ββ> Trigger: Add vendor to ERP
24 ββ> Schedule: Payment terms, renewal remindersImplementation:
1const vendorWorkflow = {
2 name: 'Vendor Agreement',
3 steps: [
4 {
5 id: 'ai_review',
6 action: 'analyze_contract',
7 checks: [
8 'liability_clause',
9 'indemnification',
10 'termination_terms',
11 'payment_terms',
12 'ip_rights'
13 ],
14 flagIf: 'non_standard_detected',
15 routeTo: 'legal_review'
16 },
17 {
18 id: 'legal_review',
19 condition: 'ai_review.flagged === true',
20 recipients: [{ role: 'contracts_attorney' }],
21 actions: ['approve', 'request_changes', 'reject'],
22 deadline: { days: 2 }
23 },
24 {
25 id: 'procurement_approval',
26 condition: 'legal_review.status !== "rejected"',
27 recipients: [
28 { role: 'procurement_manager', order: 1 },
29 {
30 role: 'cfo',
31 order: 2,
32 condition: 'contract_value > 100000'
33 }
34 ]
35 },
36 {
37 id: 'vendor_signature',
38 condition: 'procurement_approval.status === "approved"',
39 recipients: [{ email: '{{vendor.contact_email}}' }],
40 reminders: [
41 { days: 3 },
42 { days: 7 },
43 { days: 14, escalate: 'procurement_vp' }
44 ]
45 },
46 {
47 id: 'finalization',
48 onComplete: [
49 { action: 'update_erp', vendor: '{{vendor.details}}' },
50 { action: 'set_payment_schedule', terms: '{{payment_terms}}' },
51 { action: 'calendar_reminder', event: 'contract_renewal', date: '{{end_date - 90_days}}' }
52 ]
53 }
54 ]
55};Compliance Boost: 100% legal review for non-standard terms
Template 5: Lease Agreement (Residential)
Use Case: Property managers sending lease to new tenants
Workflow:
1Step 1: Auto-populate lease
2 ββ> Property: Address, unit number, amenities
3 ββ> Tenant: Name, contact info (from application)
4 ββ> Terms: Rent amount, deposit, lease term, start date
5 ββ> Attachments: Property rules, move-in checklist
6
7Step 2: Co-tenant signatures (if applicable)
8 ββ> Send to all tenants simultaneously
9 ββ> Each signs their own signature field
10 ββ> All must sign before proceeding
11
12Step 3: Guarantor signature (if required)
13 ββ> Condition: Tenant credit score < 650 or income < 3x rent
14 ββ> Send to: Guarantor
15 ββ> Require: Separate guarantor agreement
16
17Step 4: Landlord signature
18 ββ> After all tenant/guarantor signatures
19 ββ> Sign: Property manager or owner
20 ββ> Auto-trigger: Move-in scheduling email
21
22Step 5: Distribution & setup
23 ββ> Email copy to: All tenants, landlord, property manager
24 ββ> Add to: Tenant portal
25 ββ> Schedule: Rent payment auto-pay
26 ββ> Calendar: Lease expiration reminder (90 days before)Time Saved: 3-5 days (from in-person signing to same-day execution)
Template 6: Board Resolution
Use Case: Corporate board approving significant decisions
Workflow:
1Step 1: Secretary prepares resolution
2 ββ> Template: Board resolution
3 ββ> Content: Action being approved
4 ββ> Effective: Upon majority approval
5
6Step 2: Parallel board member signing
7 ββ> Send to: All board members
8 ββ> Signing: Simultaneous (order doesn't matter)
9 ββ> Quorum: Must reach before effective
10 ββ> Example: 3 of 5 signatures required
11
12Step 3: Real-time quorum tracking
13 ββ> Display: "3 of 5 required signatures received"
14 ββ> Auto-notify: Secretary when quorum reached
15 ββ> Resolution: Effective immediately upon quorum
16
17Step 4: Record keeping
18 ββ> Add to: Corporate minute book
19 ββ> File with: State (if required)
20 ββ> Distribute: All board members, officersImplementation:
1const boardResolutionWorkflow = {
2 name: 'Board Resolution',
3 steps: [
4 {
5 id: 'board_voting',
6 recipients: '{{all_board_members}}',
7 signing: 'parallel',
8 quorum: {
9 required: 3, // 3 of 5
10 notifyOn: 'quorum_reached'
11 },
12 deadline: { days: 7 }
13 },
14 {
15 id: 'effectiveness',
16 condition: 'board_voting.quorum_met === true',
17 actions: [
18 { action: 'update_status', status: 'approved' },
19 { action: 'effective_date', date: '{{quorum_reached_timestamp}}' },
20 { action: 'notify_officers', template: 'resolution_passed' }
21 ]
22 },
23 {
24 id: 'record_keeping',
25 actions: [
26 { action: 'add_to_minute_book', year: '{{current_year}}' },
27 { action: 'file_state', if: '{{requires_filing}}' },
28 { action: 'distribute', recipients: '{{board + officers}}' }
29 ]
30 }
31 ]
32};Compliance: Instant minute book updates, state filing automation
Template 7: Freelancer/Contractor Agreement
Use Case: Hiring independent contractors for projects
Workflow:
1Step 1: Create agreement
2 ββ> Scope: Project description, deliverables
3 ββ> Terms: Rate, payment schedule, timeline
4 ββ> Clauses: IP assignment, confidentiality, independent contractor status
5
6Step 2: Contractor signature
7 ββ> Send to: Contractor
8 ββ> Include: W-9 form
9 ββ> Deadline: 3 days before project start
10
11Step 3: Company signature
12 ββ> After contractor signs
13 ββ> Sign: Hiring manager or authorized signatory
14 ββ> Trigger: Add to accounting system
15
16Step 4: Onboarding
17 ββ> Email: Project access links, tools, team intros
18 ββ> Create: Time tracking account
19 ββ> Schedule: Kickoff meetingTime Saved: From 5 days to 24 hours average
Template 8: Change Order/Amendment
Use Case: Modifying existing signed agreement
Workflow:
1Step 1: Reference original agreement
2 ββ> Link to: Original contract
3 ββ> Amendment: Specific sections being changed
4 ββ> Effective: Upon execution
5
6Step 2: Mirror original signers
7 ββ> Send to: Same parties from original agreement
8 ββ> Order: Same signing sequence
9 ββ> Validation: Match original authorized signers
10
11Step 3: Attach to original
12 ββ> Link: Amendment to original contract record
13 ββ> Version: Original + Amendment = Current version
14 ββ> Display: "Agreement (As Amended)"Traceability: Complete amendment history, easy audit trail
Template 9: Equipment/Asset Checkout
Use Case: Employees checking out company equipment
Workflow:
1Step 1: IT submits checkout form
2 ββ> Employee: Name, department
3 ββ> Equipment: Laptop model, serial number, accessories
4 ββ> Responsibility: Damage/loss policy
5
6Step 2: Employee acknowledges
7 ββ> Signs: Equipment received in good condition
8 ββ> Agrees: Responsible for loss/damage
9 ββ> Photos: Equipment condition at checkout
10
11Step 3: Manager approval
12 ββ> Condition: Equipment value > $1,000
13 ββ> Signs: Manager authorizes assignment
14 ββ> Budget: Charged to department
15
16Step 4: Return process
17 ββ> When: Employee submits return form
18 ββ> IT verifies: Condition matches checkout photos
19 ββ> Close: Original checkout agreement marked "Returned"Accountability: 100% equipment tracking, reduced losses
Template 10: Client Service Agreement
Use Case: Recurring service contracts (marketing agency, law firm, consultancy)
Workflow:
1Step 1: Scope definition
2 ββ> Services: Detailed scope of work
3 ββ> Deliverables: What client receives
4 ββ> Timeline: Project schedule
5 ββ> Fees: Monthly retainer or project-based
6
7Step 2: Client approval
8 ββ> Send to: Client decision-maker
9 ββ> Include: Master services agreement + SOW
10 ββ> Option: Client can request changes (triggers revision loop)
11
12Step 3: Company countersignature
13 ββ> After client signs
14 ββ> Signs: Service delivery lead or executive
15 ββ> Effective: On start date specified
16
17Step 4: Service activation
18 ββ> Trigger: Client onboarding sequence
19 ββ> Create: Project in PM tool
20 ββ> Schedule: Recurring invoice
21 ββ> Calendar: Quarterly review meetings, renewal reminderAutomation: Seamless transition from sales to delivery
Customizing Templates
Template Variables
Common variables you can reuse:
1const commonVariables = {
2 // Company info
3 '{{company.name}}': 'Your Company Inc.',
4 '{{company.address}}': '123 Main St...',
5 '{{company.authorized_signer}}': 'CEO Name',
6
7 // Document info
8 '{{document.title}}': 'Employment Agreement',
9 '{{document.date}}': '2026-01-09',
10
11 // Counterparty info
12 '{{counterparty.name}}': 'Client Name',
13 '{{counterparty.email}}': 'client@example.com',
14
15 // Dynamic dates
16 '{{today}}': new Date(),
17 '{{30_days_from_now}}': addDays(new Date(), 30)
18};Conditional Logic
1{
2 condition: {
3 if: 'contract_value > 100000',
4 then: 'require_legal_review',
5 else: 'standard_approval'
6 }
7}Integration Triggers
1{
2 onComplete: {
3 salesforce: {
4 action: 'update_opportunity',
5 stage: 'Closed Won'
6 },
7 slack: {
8 action: 'notify_channel',
9 channel: '#sales-wins',
10 message: 'Deal closed: {{deal_name}} - ${{deal_value}}'
11 },
12 googleCalendar: {
13 action: 'create_event',
14 title: 'Kickoff: {{client_name}}',
15 date: '{{start_date}}'
16 }
17 }
18}Best Practices
1. Start Simple
Don't over-engineer workflows initially:
2. Test Before Rolling Out
1// Use test mode
2const workflow = await client.workflows.test({
3 template: salesContractWorkflow,
4 testRecipients: ['test@yourcompany.com'],
5 dryRun: true
6});3. Monitor and Optimize
Track key metrics:
4. Provide Escape Valves
Always allow manual override for edge cases:
1{
2 workflow: 'standard_sales_approval',
3 allowManualOverride: true,
4 overrideRequires: ['vp_sales_approval']
5}Conclusion
These 10 templates cover the majority of business e-signature needs. Start with the ones that solve your biggest pain points, then gradually expand your automation.
Quick ROI Calculation:
Ready to automate your signature workflows?
*Browse our full template library or create custom workflows: Get Started*
Ready to Try Space Sign?
Experience the power of enterprise-grade, AI-powered e-signatures.
Read Next
Continue exploring related topics
Complete Guide: Self-Host Your E-Signature Platform with Docker
Step-by-step tutorial to deploy Space Sign on your own infrastructure in under 10 minutes. Perfect for organizations requiring full data control and GDPR compliance.
How AI Document Analysis is Revolutionizing Contract Review
AI-powered document analysis can review contracts in seconds, not hours. Learn how Space Sign's AI identifies risks, extracts key clauses, and suggests improvements automatically.
Document Chat AI: Talk to Your Contracts Like a Lawyer
Revolutionary AI lets you ask questions about your contracts in plain English. Extract key terms, identify risks, and understand obligations without reading 50 pages.