PandaDoc Recipients — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited PandaDoc Recipients (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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": "[email protected]",
"first_name": "John",
"last_name": "Smith",
"role": "Client",
"signing_order": 1
},
{
"email": "[email protected]",
"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="[email protected]", 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": "[email protected]",
"first_name": "John",
"last_name": "Smith",
"role": "Client",
"signing_order": 1,
"has_completed": true
},
{
"email": "[email protected]",
"first_name": "Sarah",
"last_name": "Johnson",
"role": "MSP",
"signing_order": 2,
"has_completed": false
}
]
}Recipient Added:
{
"email": "[email protected]",
"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~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.