From pandadoc
Manages PandaDoc recipients and signatures: adds recipients to documents, sets signing order and roles, tracks completion status in multi-signer e-signature workflows.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin pandadocThis skill uses the workspace's default tool permissions.
Recipients in PandaDoc are the people who receive, view, and sign documents. In MSP engagements, documents typically involve multiple parties -- the client decision-maker who signs the agreement, sometimes a technical contact who reviews, and the MSP representative who countersigns. PandaDoc supports complex signing workflows with ordered signing, role-based assignments, and real-time completio...
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
Recipients in PandaDoc are the people who receive, view, and sign documents. In MSP engagements, documents typically involve multiple parties -- the client decision-maker who signs the agreement, sometimes a technical contact who reviews, and the MSP representative who countersigns. PandaDoc supports complex signing workflows with ordered signing, role-based assignments, and real-time completion tracking. Understanding recipient management is essential for smooth contract execution.
| Tool | Description | Key Parameters |
|---|---|---|
pandadoc-create-document | Create document with recipients | recipients array in document creation |
pandadoc-add-recipient | Add a recipient to an existing document | document_id, email, first_name, last_name, role, signing_order |
pandadoc-get-document | Get document with recipient details | id (required) |
pandadoc-get-document-status | Check recipient completion status | id (required) |
When calling pandadoc-create-document, include the recipients array:
{
"recipients": [
{
"email": "john@acme.com",
"first_name": "John",
"last_name": "Smith",
"role": "Client",
"signing_order": 1
},
{
"email": "sarah@techforce.com",
"first_name": "Sarah",
"last_name": "Johnson",
"role": "MSP",
"signing_order": 2
}
]
}
Call pandadoc-add-recipient with:
document_id to the document ID (required)email to the recipient's email addressfirst_name and last_namerole to match a role defined in the templatesigning_order to control when they signExample: Add a co-signer:
pandadoc-add-recipient with document_id=msFYActMfJHqNTKH9tcPFa, email="cfo@acme.com", first_name="Lisa", last_name="Chen", role="Approver", signing_order=2Call pandadoc-get-document with the document id to see recipient status:
recipients arrayhas_completed for each recipienttrue means the recipient has completed their signing actionfalse means they have not yet signedRoles define what actions a recipient takes on the document:
| Role | Description | Common Use |
|---|---|---|
| Signer | Must sign the document | Client decision-maker, MSP authorized representative |
| Approver | Must approve before sending | Internal review (e.g., MSP manager approval) |
| Viewer | Can view but not sign | CC'd stakeholders, technical contacts |
| CC | Receives a copy after completion | Accounting, project managers |
Signing order controls the sequence in which recipients receive and sign the document:
| Order | Description | Example |
|---|---|---|
| 1 | Signs first | Client CEO signs the MSA |
| 2 | Signs second (after #1 completes) | MSP owner countersigns |
| 3 | Signs third | Witness or notary (if required) |
When signing order is set:
When signing order is not set (or all set to the same value):
Common multi-party signing scenarios for MSPs:
| Scenario | Signers | Signing Order |
|---|---|---|
| Simple MSA | Client + MSP | Client signs first (1), MSP countersigns (2) |
| Board-approved MSA | Client + Board + MSP | Client signs (1), Board approves (2), MSP signs (3) |
| Multi-site SOW | Client HQ + Branch Manager + MSP | HQ signs (1), Branch signs (1), MSP countersigns (2) |
| Vendor agreement | Client + MSP + Vendor | Client signs (1), Vendor signs (2), MSP signs (3) |
| Internal review | MSP Tech + MSP Manager | Tech reviews (1), Manager approves (2), then send to client |
Track the progress of document signing across all recipients:
| Status | Meaning |
|---|---|
has_completed: false | Recipient has not yet signed |
has_completed: true | Recipient has completed their action |
| All recipients completed | Document status changes to document.completed |
| Field | Type | Description |
|---|---|---|
email | string | Recipient email address (required) |
first_name | string | Recipient first name |
last_name | string | Recipient last name |
role | string | Recipient role (must match template role) |
signing_order | integer | Signing sequence (1, 2, 3...) |
has_completed | boolean | Whether the recipient has completed their action |
recipient_type | string | Type of recipient (signer, approver, viewer, cc) |
pandadoc-create-document including two recipients:
signing_order=1signing_order=2pandadoc-send-documentdocument.completedpandadoc-get-document to review current recipientspandadoc-add-recipient with the new recipient's detailspandadoc-get-document againpandadoc-get-document with the document idrecipients arrayhas_completed:
true = signedfalse = waiting for signaturepandadoc-list-documents with status=document.sent to find sent documentspandadoc-get-document to check recipient completionhas_completed=falsedocument.declined:
Document with Recipients:
{
"id": "msFYActMfJHqNTKH9tcPFa",
"name": "Acme Corp - Managed Services Agreement",
"status": "document.sent",
"recipients": [
{
"email": "john@acme.com",
"first_name": "John",
"last_name": "Smith",
"role": "Client",
"signing_order": 1,
"has_completed": true
},
{
"email": "sarah@techforce.com",
"first_name": "Sarah",
"last_name": "Johnson",
"role": "MSP",
"signing_order": 2,
"has_completed": false
}
]
}
Recipient Added:
{
"email": "cfo@acme.com",
"first_name": "Lisa",
"last_name": "Chen",
"role": "Approver",
"signing_order": 2,
"has_completed": false
}
| Error | Cause | Resolution |
|---|---|---|
| Invalid email | Email format is incorrect | Verify the email address format |
| Role not found | Role does not exist in template | Check template roles with pandadoc-get-template |
| Duplicate recipient | Email already added to document | Check existing recipients before adding |
| Cannot add recipient | Document already sent or completed | Recipients must be added before sending |
| Invalid signing order | Signing order conflicts | Ensure signing orders are sequential positive integers |
| Document Status | Can Add Recipients? | Notes |
|---|---|---|
document.draft | Yes | Recipients can be freely added and modified |
document.sent | Limited | Some changes may require voiding and recreating |
document.completed | No | Document is finalized |
document.voided | No | Document is cancelled |
pandadoc-create-document rather than adding after