WordPress websites and business systems
Case study / Custom pluginSystem

An employee portal for a home care agency, built on WordPress

Time off, sick leave, credentials, and policy sign-offs routed to the right person in order, inside one private staff portal on the agency's own WordPress site.

Sector Home care
Status In development
Approval workflows Seven
Built on Gravity Forms + custom plugin
Section 01

The business

A home care agency with caregivers in the field, supervisors over them, an HR team, and payroll. Staff requests, credentials, and policy sign-offs all need to reach the right person, in order, with a record of who approved what.

The same site also has to hire: public job listings and an application that lands with HR.

Staff Caregivers, supervisors, HR
Requests Routed, in order
Hiring Public jobs and applications
Section 02

Why Gravity Forms here

We look at configuration before code. Approval chains are what Gravity Forms and Gravity Flow already do well, so the workflows are configured, not written.

The custom plugin covers what forms cannot: who can see a page, where private files live, the portal screens, and the audit log. User accounts are still only created or changed by an approved Gravity Forms feed.

The split Forms run the workflows. The plugin guards the portal.

Each part does the job it is best at.

Section 03

The workflows

Fig. 1 / A time off request Five steps
01 Requestemployee, in the portal 02 Supervisorapproves or rejects 03 HRsecond approval 04 Payrollrecorded for payroll 05 Notifiedemployee sees the result EVERY STEP LOGGED.NOTHING BY EMAIL CHAIN.

Time off goes from the supervisor to HR to payroll. Sick leave goes from the supervisor to verification to HR. A record change is approved by HR and then updates the account. A credential upload is approved by HR, and its expiry date is saved.

A policy acknowledgment produces a signed PDF. A new employee form creates the account. A job application goes to HR review.

Approval workflows Seven
Signed PDFs Policy acknowledgments
Accounts Created by an approved feed
Credentials Expiry dates saved
Section 04

The portal

Staff sign in to one dashboard: their profile, their requests, approvals waiting on them, a people directory, announcements and news, documents, and home care aide training with progress.

Announcements and documents are filtered by audience, so each person only sees what is meant for them. The profile is read-only. Changes go through the record change form, so HR can compare the old value with the new one before it is saved.

Screens Profile, requests, approvals, people
Content Filtered by audience
Training Progress tracked
Profile Changes go through HR
Section 05

Private by default

The portal has its own login with a lockout after five failed attempts and an eight-hour session. Portal accounts are kept out of wp-admin, and every portal page asks caches to skip it.

Private documents are stored outside the web root and checked against the viewer before each download. An audit log records sign-ins, downloads, approvals, and record changes.

Lockout Five attempts, 15 minutes
Session Eight hours
Files Outside the web root
Audit log Sign-ins, downloads, approvals
Section 06

Hiring on the same site

Jobs are their own content type with structured fields for pay, schedule, and employment type, and they output Google for Jobs structured data.

Applications go to HR review, and the applicant hears back. The old application links redirect to the current form, so nothing already shared breaks.

Listings Google for Jobs ready
Applications HR review, applicant update
Old links Redirected
Section 07

Where it stands

The portal is in development and not live yet. We will add results to this page once the agency is running on it.

Status In development
Built on Gravity Forms and a custom plugin
Next Launch with the agency
Next

Running your team on email and paper?

Thirty minutes. We will tell you which parts are forms and which parts need a build.

More work