Title: SignoffFlow &#8211; Client Approval Workflow &amp; Client Portal
Author: vzisis
Published: <strong>April 6, 2026</strong>
Last modified: June 27, 2026

---

Search plugins

![](https://ps.w.org/signoffflow-client-approval-workflow/assets/banner-772x250.
png?rev=3500090)

![](https://ps.w.org/signoffflow-client-approval-workflow/assets/icon-256x256.png?
rev=3500090)

# SignoffFlow – Client Approval Workflow & Client Portal

 By [vzisis](https://profiles.wordpress.org/vzisis/)

[Download](https://downloads.wordpress.org/plugin/signoffflow-client-approval-workflow.1.3.0.zip)

 * [Details](https://vec.wordpress.org/plugins/signoffflow-client-approval-workflow/#description)
 * [Reviews](https://vec.wordpress.org/plugins/signoffflow-client-approval-workflow/#reviews)
 *  [Installation](https://vec.wordpress.org/plugins/signoffflow-client-approval-workflow/#installation)
 * [Development](https://vec.wordpress.org/plugins/signoffflow-client-approval-workflow/#developers)

 [Support](https://wordpress.org/support/plugin/signoffflow-client-approval-workflow/)

## Description

SignoffFlow is a client portal and approval workflow plugin for agencies, freelancers,
and service teams.

Create a private portal workspace per client account where you can:
 * Share project
updates (timeline) * Share files with protected downloads * Send client requests/
tasks, track approval outcomes, and collect short response notes * Scan and filter
approval requests by status in WordPress admin

Portal access is restricted to WordPress users assigned to a client account, plus
staff users with management capability.

The page selected in SignoffFlow settings uses a focused, responsive portal canvas
without the active theme’s public header and footer. Shortcodes placed on other 
pages remain embedded in the theme as normal.

#### Use cases

 * Collect client confirmations on deliverables and tasks
 * Keep client communication out of email threads
 * Share files securely with per-client access control
 * Provide a branded agency client portal experience

### Getting started

 1. Go to `SignoffFlow > Settings`.
 2. Use the `Quick setup` panel to create a sample portal page, or create a page manually
    and add `[cliapwo_portal]`.
 3. Confirm that page is selected as the portal page in SignoffFlow settings.
 4. Create a client account in `SignoffFlow > Clients` and assign one or more WordPress
    portal users.
 5. Add updates, files, and requests for that client account.
 6. Log in as an assigned portal user to view the portal and respond to requests.

## Screenshots

[⌊Client portal dashboard with Action required⌉⌊Client portal dashboard with Action
required⌉[

Client portal dashboard with Action required

[⌊Updates timeline inside the client portal⌉⌊Updates timeline inside the client 
portal⌉[

Updates timeline inside the client portal

[⌊Files area with protected client downloads⌉⌊Files area with protected client downloads⌉[

Files area with protected client downloads

[⌊Requests checklist with client approval outcomes, response notes, and clear status
actions⌉⌊Requests checklist with client approval outcomes, response notes, and clear
status actions⌉[

Requests checklist with client approval outcomes, response notes, and clear status
actions

[⌊SignoffFlow settings and notification toggles⌉⌊SignoffFlow settings and notification
toggles⌉[

SignoffFlow settings and notification toggles

[⌊Event Log showing audit and email-attempt entries⌉⌊Event Log showing audit and
email-attempt entries⌉[

Event Log showing audit and email-attempt entries

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/` or install it as a zip in WordPress.
 2. Activate SignoffFlow through the WordPress Plugins screen.
 3. Go to `SignoffFlow > Settings`.
 4. Use the optional `Quick setup` panel to create a sample portal page automatically,
    or create your own page and add the `[cliapwo_portal]` shortcode.
 5. Confirm the portal page is selected in SignoffFlow settings.
 6. Create a client account in `SignoffFlow > Clients`.
 7. Assign one or more WordPress portal users to that client account.
 8. Add updates, files, and requests for that client account.

## FAQ

### Who can see a client portal?

Only WordPress users assigned to that client account, plus staff users with the `
cliapwo_manage_portal` capability.

### How are files protected?

Clients receive protected download links that go through an access-checked endpoint.
Files are stored in a dedicated `cliapwo-private` uploads subdirectory instead of
standard public Media Library URLs, and the portal UI does not expose raw file paths.

Apache hardening files are created automatically for that directory. Nginx hosts
may still need an equivalent deny rule added at the server level.

### Does the plugin send email notifications?

Yes. SignoffFlow can send request, update, and file notifications with `wp_mail()`
to all WordPress users assigned to the related client account. Notification types
can be toggled in `SignoffFlow > Settings`.

### Can I test notifications on a local site?

Yes, but local mail delivery depends on your environment. SignoffFlow records Email
attempt entries in the Event Log for each notification. If WordPress cannot confirm
delivery, SignoffFlow also shows a dismissible admin notice on its own screens so
you can check the Event Log and review your mail transport.

The Notifications settings screen also includes an Email delivery help section with
a simple test flow and recommendations for Mailpit, MailHog, SMTP, Postmark, and
Mailtrap.

### Can developers customize the portal styling?

Yes. The portal uses a stable root wrapper (`.cliapwo-portal`), documented CSS variables,
and a small set of filters for wrapper classes, section classes, and inline style
variables.

For installed sites, see the Portal styling help note in `SignoffFlow > Settings`.
Customizations should be added from a theme or site-specific plugin rather than 
by editing SignoffFlow directly.

### How do client response notes work?

Clients can add a response note of up to 500 characters when choosing an approval
outcome. A note is optional for Approved and required for Changes requested, Rejected,
and Blocked.

The latest response, responder, and response time are shown in the client portal
and request admin screen. Reopening a request preserves the previous response until
the client submits a new one.

### Can I filter requests by approval status?

Yes. The Requests admin screen includes status badges and filters for Open, Approved,
Changes requested, Rejected, and Blocked requests.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“SignoffFlow – Client Approval Workflow & Client Portal” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ vzisis ](https://profiles.wordpress.org/vzisis/)

[Translate “SignoffFlow – Client Approval Workflow & Client Portal” into your language.](https://translate.wordpress.org/projects/wp-plugins/signoffflow-client-approval-workflow)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/signoffflow-client-approval-workflow/),
check out the [SVN repository](https://plugins.svn.wordpress.org/signoffflow-client-approval-workflow/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/signoffflow-client-approval-workflow/)
by [RSS](https://plugins.trac.wordpress.org/log/signoffflow-client-approval-workflow/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.3.0

 * Added color-coded request status badges to the Requests list and request edit
   screen.
 * Added admin filtering for Open, Approved, Changes requested, Rejected, and Blocked
   requests.
 * Included legacy completed requests in the Approved filter and requests without
   stored status in the Open filter.
 * Improved portal action hierarchy, keyboard focus, translated-label wrapping, 
   and mobile button layout.

#### 1.2.0

 * Revised the client portal page with a focused, responsive workspace, section 
   navigation, account controls, and accessible motion.
 * Added short client response notes to approval requests.
 * Required an explanatory note for Changes requested, Rejected, and Blocked outcomes
   while keeping notes optional for Approved.
 * Added the latest response outcome, note, responder, and timestamp to the client
   portal and request admin screen.
 * Preserved the previous client response when staff reopen a request.

#### 1.1.0

 * Added richer approval outcomes for requests: Approved, Changes requested, Rejected,
   and Blocked.
 * Existing completed requests remain compatible and are shown as Approved for clearer
   approval workflow language.
 * Tested with WordPress 7.0.

#### 1.0.0

Initial release.

## Meta

 *  Version **1.3.0**
 *  Last updated **3 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/signoffflow-client-approval-workflow/)
 * Tags
 * [agency](https://vec.wordpress.org/plugins/tags/agency/)[approvals](https://vec.wordpress.org/plugins/tags/approvals/)
   [client portal](https://vec.wordpress.org/plugins/tags/client-portal/)[file sharing](https://vec.wordpress.org/plugins/tags/file-sharing/)
   [workflow](https://vec.wordpress.org/plugins/tags/workflow/)
 *  [Advanced View](https://vec.wordpress.org/plugins/signoffflow-client-approval-workflow/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/signoffflow-client-approval-workflow/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/signoffflow-client-approval-workflow/reviews/)

## Contributors

 *   [ vzisis ](https://profiles.wordpress.org/vzisis/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/signoffflow-client-approval-workflow/)