mcpField
D
DocuSign Automation

DocuSign Automation

github.com/claude-office-skillsDocuments5454.6k installsUpdated 39w ago
Repository

About DocuSign Automation

DocuSign Automation is a skill for automating e-signature and document signing workflows. It is aimed at teams managing document sends and approvals, with support for templates, conditional routing, bulk sending, and status tracking.

Key features

  1. 01Configure envelopes and signing flows
  2. 02Create and manage templates
  3. 03Route approvals by conditions
  4. 04Send signing requests in bulk
  5. 05Track status and audit records through webhooks

Use cases

  1. 01Start contract signing from a template
  2. 02Set approval paths based on contract value
  3. 03Send documents to multiple recipients in bulk
  4. 04Track envelope status and maintain audit records

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/claude-office-skills/skills --skill docusign-automation

After installing, type/docusign-automationin Claude Code to confirm it loaded.

Details

From the project README

DocuSign Automation

Comprehensive skill for automating e-signature and document signing workflows.

Core Workflows

1. Signing Flow
DOCUSIGN SIGNING FLOW:
┌─────────────────┐
│  Create Envelope│
│  - Document     │
│  - Recipients   │
└────────┬────────┘
         ▼
┌─────────────────┐
│  Add Fields     │
│  - Signatures   │
│  - Initials     │
│  - Dates        │
└────────┬────────┘
         ▼
┌─────────────────┐
│  Send for       │
│  Signature      │
└────────┬────────┘
         ▼
┌─────────────────┐
│  Signer 1 Signs │
│  (In order)     │
└────────┬────────┘
         ▼
┌─────────────────┐
│  Signer 2 Signs │
│  (If multiple)  │
└────────┬────────┘
         ▼
┌─────────────────┐
│   Completed     │
│  - Archive      │
│  - Distribute   │
└─────────────────┘
2. Envelope Configuration
envelope_config:
  email_subject: "{{document_type}} - Please Sign"
  email_blurb: |
    Please review and sign the attached {{document_type}}.
    This document requires your signature by {{due_date}}.
    
  documents:
    - name: "{{contract_name}}.pdf"
      document_id: 1
      
  recipients:
    signers:
      - email: "{{signer_1_email}}"
        name: "{{signer_1_name}}"
        routing_order: 1
        tabs:
          sign_here:
            - anchor: "/sig1/"
              offset_x: 0
              offset_y: 0
          date_signed:
            - anchor: "/date1/"
              
      - email: "{{signer_2_email}}"
        name: "{{signer_2_name}}"
        routing_order: 2
        tabs:
          sign_here:
            - anchor: "/sig2/"
            
    carbon_copies:
      - email: "[email protected]"
        name: "Legal Team"
        routing_order: 3
        
  settings:
    reminder_enabled: true
    reminder_delay: 2  # days
    reminder_frequency: 2  # days
    expiration_days: 30

Template Management

Template Creation
template_config:
  name: "Standard NDA Template"
  description: "Non-disclosure agreement for vendors"
  
  documents:
    - name: "NDA_Template.pdf"
      
  roles:
    - role_name: "Company Representative"
      routing_order: 1
      
    - role_name: "Counterparty"
      routing_order: 2
      
  tabs:
    company_rep:
      - type: sign_here
        anchor: "/company_signature/"
      - type: date_signed
        anchor: "/company_date/"
      - type: text
        anchor: "/company_name/"
        label: "Name"
      - type: text
        anchor: "/company_title/"
        label: "Title"
        
    counterparty:
      - type: sign_here
        anchor: "/counterparty_signature/"
      - type: date_signed
        anchor: "/counterparty_date/"
      - type: text
        anchor: "/counterparty_name/"
        label: "Name"
Template Library
template_library:
  contracts:
    - name: "Employment Agreement"
      id: "template_emp_001"
      category: "HR"
      
    - name: "Vendor Agreement"
      id: "template_vendor_001"
      category: "Procurement"
      
    - name: "NDA (Mutual)"
      id: "template_nda_001"
      category: "Legal"
      
  sales:
    - name: "Sales Order"
      id: "template_so_001"
      
    - name: "Statement of Work"
      id: "template_sow_001"
      
    - name: "Master Services Agreement"
      id: "template_msa_001"

Workflow Automation

Conditional Routing
conditional_workflow:
  name: "Contract Approval Flow"
  
  conditions:
    - field: "contract_value"
      operator: "greater_than"
      value: 100000
      then:
        add_recipient:
          role: "VP Approval"
          routing_order: 1
          
    - field: "contract_type"
      operator: "equals"
      value: "international"
      then:
        add_recipient:
          role: "Legal Review"
          routing_order: 1
          
  default_flow:
    - role: "Sales Manager"
      routing_order: 1
    - role: "Customer"
      routing_order: 2
Bulk Send
bulk_send:
  template_id: "template_nda_001"
  
  recipients:
    - email: "[email protected]"
      name: "Vendor One"
      custom_fields:
        company_name: "Vendor One Inc"
        effective_date: "2024-02-01"
        
    - email: "[email protected]"
      name: "Vendor Two"
      custom_fields:
        company_name: "Vendor Two LLC"
        effective_date: "2024-02-01"
        
  settings:
    batch_name: "Q1 Vendor NDAs"
    send_immediately: true

Integration Workflows

Salesforce Integration
salesforce_integration:
  triggers:
    opportunity_closed_won:
      template: "msa_template"
      recipients:
        - from_field: "Contact.Email"
          role: "Customer"
      custom_fields:
        account_name: "Account.Name"
        contract_value: "Opportunity.Amount"
        
  callbacks:
    on_completed:
      - update_opportunity:
          stage: "Contract Signed"
      - attach_document:
          to: "Opportunity"
      - create_task:
          subject: "Contract signed - begin onboarding"
CRM Webhook
webhook_config:
  events:
    - envelope-sent
    - envelope-delivered
    - envelope-completed
    - envelope-declined
    - envelope-voided
    
  callback_url: "https://api.example.com/docusign/webhook"
  
  payload_handling:
    envelope_completed:
      actions:
        - download_documents
        - update_crm_record
        - notify_team
        - archive_to_storage

Status Tracking

Envelope Dashboard
ENVELOPE STATUS - THIS MONTH
═══════════════════════════════════════

TOTAL: 156 envelopes

BY STATUS:
Completed    ████████████████ 89 (57%)
Sent         ████████░░░░░░░░ 34 (22%)
Delivered    ████░░░░░░░░░░░░ 18 (12%)
Declined     █░░░░░░░░░░░░░░░ 5 (3%)
Voided       █░░░░░░░░░░░░░░░ 10 (6%)

AVERAGE COMPLETION TIME: 2.3 days

PENDING SIGNATURES:
┌────────────────────┬──────────────┬─────────┐
│ Document           │ Awaiting     │ Sent    │
├────────────────────┼──────────────┼─────────┤
│ Acme Corp NDA      │ John Smith   │ 3 days  │
│ TechStart SOW      │ Jane Doe     │ 1 day   │
│ Vendor Agreement   │ Bob Wilson   │ 5 days  │
└────────────────────┴──────────────┴─────────┘

REMINDERS SENT: 23
Audit Trail
audit_trail:
  events:
    - timestamp: "2024-01-15T10:30:00Z"
      action: "Envelope Created"
      user: "[email protected]"
      ip: "192.168.1.1"
      
    - timestamp: "2024-01-15T10:31:00Z"
      action: "Envelope Sent"
      recipients: ["[email protected]"]
      
    - timestamp: "2024-01-15T14:22:00Z"
      action: "Document Viewed"
      user: "[email protected]"
      ip: "10.0.0.1"
      
    - timestamp: "2024-01-15T14:25:00Z"
      action: "Signature Applied"
      user: "[email protected]"
      signature_type: "Electronic"
      
    - timestamp: "2024-01-15T14:25:30Z"
      action: "Envelope Completed"

API Examples

Create and Send Envelope
// Create Envelope from Template
const envelope = await docusign.envelopes.create(accountId, {
  templateId: "template_123",
  templateRoles: [
    {
      roleName: "Customer",
      email: "[email protected]",
      name: "John Customer",
      tabs: {
        textTabs: [
          {
            tabLabel: "CompanyName",
            value: "Customer Corp"
          }
        ]
      }
    }
  ],
  status: "sent"
});

// Get Envelope Status
const status = await docusign.envelopes.get(
  accountId, 
  envelopeId
);

// Download Completed Documents
const documents = await docusign.envelopes.getDocuments(
  accountId,
  envelopeId,
  { certificate: true }
);

// Void Envelope
await docusign.envelopes.update(accountId, envelopeId, {
  status: "voided",
  voidedReason: "Contract terms changed"
});

Best Practices

  1. Use Templates: Standardize common documents
  2. Set Reminders: Automated follow-ups
  3. Expiration Dates: Ensure timely completion
  4. Audit Trails: Maintain for compliance
  5. Bulk Send: Efficient for multiple recipients
  6. Webhooks: Real-time status updates
  7. Brand Signing: Custom signing experience
  8. Archive: Store completed documents securely

Comments

Markdown supported