Sending Contracts & Managing Recipients
Once a contract has its PDF and field placement, it's ready to send. ClientCove supports both single-shot sends and template-based bulk sends with per-recipient visibility and expiry.
How Sending Works
When you send a contract, ClientCove:
- Generates a per-recipient submission record (for templates) or marks the contract itself as sent (for one-shots)
- Stamps the
sent_datefield with the current timestamp - Sends each recipient an email with:
- The contract title
- Your optional message
- A "View Contract" link unique to them
- Records each recipient in the
wp_clientcove_contract_recipientstable with status Pending - The contract status taxonomy term flips to Sent
Recipients can view, sign, decline, or let the contract expire from the link in their email.
Sending a One-Shot Contract
For contracts not flagged as templates:
- Open the contract from the Contracts list
- Confirm the assigned signers in the Signers field
- Confirm field placement is complete
- Click Send for Signature
- Recipients are notified
This path is best for contracts you'll only ever send once. There's no recipient-by-recipient configuration — every assigned signer gets the email.
Send from Template
For contracts flagged with Save as Template, the workflow goes through the Send from Template modal — designed for sending the same contract to multiple clients (each with their own signers).
Opening the modal
- Go to Contracts → Templates (top-right toolbar)
- Find the template
- Click the Send action on the row
- The Send Contract Template modal opens
The modal shows the template name in a header card, then collects:
- One or more recipients (each with a Client + Signers + Visibility)
- An optional message
- An optional expiry deadline
- An auto-send toggle
Adding Recipients
The first recipient block is shown by default. To add more:
- Click Add Another Recipient
- A new block appears with the same fields
- Click the X in any non-first block to remove it
For each recipient block:
Client (required)
Select from the dropdown of all portal clients. Selecting a client triggers a load of that client's user list into the Signers picker.
Signers
After picking a client, the Signers list populates with users from that client. Tick the users who need to sign on behalf of this client.
A loading indicator appears briefly while users load. If a client has no users, the list shows an empty state.
Visibility (per recipient)
- Shared — building icon — any user from this client can view the resulting submission
- Private — lock icon — only the assigned signers from this client can view
Each recipient gets its own visibility — useful when one client wants transparency and another needs strict confidentiality.
Per-Recipient Visibility
Sending the same template to two clients with different visibility settings creates two submissions, each respecting its own visibility:
- Acme Corp — Shared → all Acme users see the submission
- Globex — Private → only the assigned Globex signers see it
This works without any extra configuration on the template itself.
Optional Message
The Message to Recipients textarea overrides the contract's default message for this send. Plain text, included in the recipient's email above the "View Contract" link.
Leave it blank to use the contract's default message.
Expiry Deadlines
Toggle Set expiry deadline to add a per-send expiration:
- Toggle the switch on
- Enter a number of days (default 30, range 1–365)
- ClientCove calculates the expiry date and stores it on each submission
After the expiry, recipients who haven't signed can no longer access the contract page (status flips to Expired in the recipients table). The original signers list and audit trail remain.
Expiry is per-send, not per-recipient — every recipient in this send gets the same deadline. To give different deadlines, send the template separately to each recipient.
Auto-Send vs Save as Draft
The Send immediately after creating toggle (default ON) controls whether ClientCove emails recipients right away:
- ON (default) — submissions are created with status Sent, recipients get their notification immediately
- OFF — submissions are created with status Draft, no emails go out
Use Draft mode when you want to:
- Review the submissions before they go out
- Coordinate the send with another event (e.g. send the contract right after a kickoff call)
- Stage many recipients ahead of an announcement
To send draft submissions later, open each submission and click Send Now.
Recipient Notification Email
The email sent to each recipient includes:
- Subject: "A new contract is ready for your signature:
<contract title>" - From: Your portal's configured From address (Settings → Email)
- Body:
- Recipient name greeting
- The optional message (or the contract's default message)
- A "View Contract" CTA button linking to the recipient's unique contract URL
- Footer with portal branding
The link is per-recipient — each signer gets a URL that authenticates them as the right user when they click through (auto-login token + standard portal session check).
If your portal uses an email designer template, the notification respects that styling automatically.
Resending
If a recipient hasn't signed and you want to nudge them:
- Open the contract from the Contracts list
- Look for the Resend action (admin/editor)
- Click — ClientCove re-sends the notification email to recipients who haven't signed
- The
resend_countfield increments - The audit trail logs the resend with timestamp + actor
Resends don't reset the expiry deadline — they just re-deliver the same email.
To extend the deadline, void the contract and re-send fresh.
The Recipients Database
For multi-recipient template sends, ClientCove tracks each recipient in a dedicated database table: wp_clientcove_contract_recipients.
Each row stores:
| Field | Purpose |
|---|---|
contract_id | The parent contract / template |
user_id | The recipient's WordPress user ID |
submission_id | The submission post created when they sign (null until signed) |
status | Pending / Viewed / Signed / Declined / Expired |
viewed_date | First time they opened the contract page |
sent_date | When their notification was sent |
expires_at | Per-recipient expiry timestamp |
The submissions view in the contracts page reads from this table to show progress per recipient.
Per-recipient state vs contract-level state: A multi-recipient contract's overall status only flips to Signed when all recipients have signed. Until then, the contract status stays Sent even if some signers have completed. Per-signer state (the Status column in the submissions view) is the source of truth for individual progress.