Sending Files
The outbound flow turns "I need to get these files to a client" into a 60-second operation: drop files, fill three fields, click send. The recipient gets an email with a link they open in any browser.
Cloud storage required. File Transfers only works with cloud storage configured (S3, R2, GCS, DigitalOcean Spaces). Local WordPress storage isn't supported. Configure in Settings → Storage before using.
When to Use Send
Outbound transfers are the right tool when:
- The file is too big for email — most email systems cap attachments at 25 MB; transfers handle multi-GB files via direct cloud upload
- You want a download confirmation — every access is logged with timestamp and IP
- You want an expiration — the link stops working after the deadline (no permanent shared folder to clean up)
- The recipient doesn't have a portal account — and you don't want to create one for a one-off delivery
- You want password protection without the friction of GPG or zip+password
If the file should live permanently inside your portal for repeat access, use Resources instead.
Creating an Outbound Transfer
- Open Transfers from the left sidebar
- Click Send Files in the top toolbar
- The Send Files modal opens
The modal collects the basics first; advanced options are behind an "Advanced Options" toggle.
Step-by-Step
1. Title (required)
A short label for your reference. Recipients don't see this prominently — it's for the dashboard list and audit log. Examples:
- "Q2 Brand Refresh — Final Logos"
- "Site Photos — Salt Lake Office"
- "Signed MSA — Acme"
2. Client (optional but recommended)
Pick a client from the dropdown. Setting the client:
- Routes the transfer into the client's record (visible in the workspace)
- Filters the audit log by client
- Auto-suggests recipient details from that client's contacts
3. Recipient Name and Email (required)
The person who'll receive the link. The email is used to:
- Send the notification with the download link
- Verify identity if you enable email verification
- Show in the audit log
Pick from a dropdown of the client's contacts (when a client is set) or type a free-form email.
4. Message (optional)
A note included in the recipient's email. Plain text. Examples:
- "Here are the final logos approved by Marketing on Tuesday."
- "Photos from yesterday's site walk — let me know if anything's missing."
5. Files
Drop files onto the upload zone or click to browse. See Uploading Files for the full mechanics.
6. Advanced Options (optional)
Click Advanced Options to reveal:
- Expiration
- Password
- Email verification
- Related portal record
Defaults: 1-week expiration, no password, no verification, no related record. Most transfers don't need to change these.
7. Send
Click Send Transfer. ClientCove:
- Creates the transfer record in the database
- Generates a unique secure URL with a token
- Uploads files to your cloud storage (if not already uploaded)
- Sends the recipient an email with the link
- Closes the modal and adds the transfer to the dashboard list
- Shows you a copy-to-clipboard button for the link if you want to share it manually too
Uploading Files
The upload zone supports:
- Drag and drop — drop one or many files
- Click to browse — file picker
- Multiple files — no fixed cap (limited by your cloud storage and configured max size)
Direct cloud upload
When cloud storage is configured (which it must be for transfers to work), files upload directly from the browser to the bucket via a presigned URL — they don't pass through your PHP server. This means:
- No PHP
upload_max_filesizelimit - Faster uploads (one network hop, not two)
- Can handle multi-GB files reliably
Per-file progress
Each file in the upload queue shows:
- Filename
- Size
- Upload progress bar (0–100%)
- Status: queued / uploading / complete / failed
You can keep filling in other form fields while uploads run in the background. The Send button becomes active once all uploads complete.
File-level controls
Per-file actions in the queue:
- Remove — drop a file from the transfer before sending
- Retry — re-upload a failed file
Expiration Options
Pick when the transfer link should stop working:
| Option | Lifespan |
|---|---|
| 1 Day | 24 hours from creation |
| 3 Days | 72 hours |
| 1 Week (default) | 7 days |
| 2 Weeks | 14 days |
| 1 Month | 30 days |
| Never | Never expires (until manually cancelled) |
After expiration:
- The link returns a "this transfer has expired" message to anyone who opens it
- The files remain in cloud storage for a configured retention period (default 30 days post-expiry)
- Then the cleanup cron deletes the files automatically
For transfers that should never expire, Never is available — but use sparingly. Permanent links are higher risk if shared accidentally.
Password Protection
To require a password before download:
- In Advanced Options, set the Password field
- Pick something you can convey to the recipient via a separate channel (text message, phone call) — don't include it in the same email as the link
- Submit
The recipient sees a password prompt before files are revealed. Wrong passwords are logged to the audit trail with IP — useful for spotting brute-force attempts.
If you don't set a password, the link works for anyone who has it (same as standard WeTransfer-style links).
Email Verification
For an extra layer beyond password:
- In Advanced Options, toggle Require email verification on
- Send
How it works:
- Recipient opens the link
- Page asks them to enter their email
- ClientCove sends a 6-digit code to that email
- Recipient enters the code
- The code is checked against the original recipient email
- If matches, the files unlock; if not, access is denied
This stops the "I forwarded the link to someone else" pattern — the verification gate confirms the person opening the link controls the email it was sent to.
Combine with password for two-factor protection (something they know + something they have access to).
Linking to Portal Records
Optionally tie the transfer back to a project, ticket, or resource:
- In Advanced Options, pick a Related type: Project / Ticket / Resource
- The next dropdown filters to records of that type (within the chosen client if set)
- Pick the related record
- Submit
The transfer now shows on that record's detail page (e.g. inside a project workspace under Files & Transfers). Useful for keeping the work history coherent — anyone reviewing the project later can see "this is when we sent the deliverables".
For projects specifically, there's a faster path — the project Files tab has a built-in "Create Transfer" button on selected files plus a one-click "Create Upload Link" feature. See Inside Projects, Tickets & Resources for the full integration.
After Sending
The transfer appears in the dashboard immediately with:
- Status: Active
- Expiration countdown
- Recipient info
- File count
The recipient receives their email within a few seconds (assuming your portal's email is configured properly).
Click the transfer in the dashboard to open the detail view, where you can:
- Copy the public link to clipboard
- See the audit log of every access
- Download files yourself for verification
- Manage the transfer (cancel, extend, etc.)
Resending or Extending
If a recipient says they didn't get the email or the link expired before they could act:
Resend the notification
- Open the transfer detail view
- Click Resend Email
- The same link is re-sent to the same recipient
- Resend events are logged
Extend the expiration
- Open the transfer detail view
- Click Extend Expiration
- Pick a new expiration from the same options
- The link continues working until the new deadline
- The change is logged
Generate a new link
If the link has been compromised (e.g. accidentally shared somewhere public):
- Click Regenerate Link
- The old token is invalidated
- A new URL is generated
- Send the new link to the recipient
Cancelling a Transfer
To stop a transfer from working immediately:
- Open the transfer detail view
- Click Cancel Transfer
- Confirm
The link returns "this transfer has been cancelled" to anyone who tries it. Files remain in cloud storage until the cleanup cron runs (so a quick mistake can be reversed by an admin), then they're deleted.
To delete the transfer entirely (record + files), use Delete Transfer instead. Admin/editor only and irreversible.
Download Notifications
By default, you (the creator of the transfer) get notified when the recipient downloads files:
- An in-portal notification appears in your notification feed
- Optional email notification (configurable in user preferences)
- Each download is also recorded in the audit log
Notifications are per-event, so for a 5-file transfer downloaded all at once, you get notification per file — useful when you want to confirm the recipient actually got everything.
If notifications are noisy for your workflow, disable them in your user preferences under Notifications → File Transfers.
The recipient sees a branded landing page, not a generic download form. Your portal logo, color theme, and the configured image panel background all apply. See Public Page & Branding for what they actually experience and how to customize it.