The personnel command systemfor high-performing organizations.
Mission-critical tools purpose-built for police, fire, EMS, military, and public safety agencies. Centralize records, streamline communications, and run a tighter operation.
Hundreds of agencies already run on PERSCOM

Built on technology you trust
The platform
Everything you need to run your roster.
Packed with the features your operations team has been asking for โ and backed by years of running paramilitary organizations in production.
Roster you can run an op from
Org hierarchy from group โ battalion โ company โ detachment. Real-time online status, leave status, and assignment โ searchable, filterable, formation-ready.

Rank & paygrade engine
Full E-1 through O-10 (or build your own) with insignia, abbreviations, paygrades, and category-driven progression rules.

Records with depth
Seven record types per member โ Assignment, Award, Combat, Qualification, Rank, Service, Training โ with MTD / QTD / YTD analytics built in.

The personnel file
A real record for every member.
Not a forum profile. Not a spreadsheet row. A first-class personnel file with seven record types, full service timekeeping, attached documents, and a chain of custody you can defend in a board.

Seven record types. One personnel file.
Every record links to documents, fires automations, and shows up in the member's timeline. Nothing lives in a spreadsheet.
Assignment Records
Primary & secondary assignments, position, specialty, unit, status, and the OPORD / SOP attached.
Award Records
Decorations from a configurable shadowbox โ citation text, award category, effective date, attached orders.
Combat Records
Operations, deployments, engagements. Narrative text plus the briefs and AARs that go with them.
Qualification Records
Schools, badges, and ratings โ by category, with completion notes and supporting documents.
Rank Records
Promotions, demotions, and lateral moves. Every grade change recorded with type, authority, and order number.
Service Records
General service narrative โ letters of commendation, counseling, evaluations, and anything else for the file.
Training Records
Instructor, competencies covered, credentials issued, and the document trail. Rolled up MTD / QTD / YTD.
Status & timeline records
Member status changes (Active, Inactive, On Leave) and every newsfeed event are recorded too โ full lifecycle, no gaps.
And everything around them.
The file is more than records. It's identity, position, time, credentials, custom data, and documents โ woven together.
Identity & contact
Name, display name, email, phone, profile photo, cover photo, and a linked Discord / GitHub / Google / Facebook account.
Position in the org
Rank, paygrade, position, specialty, status, unit, and unit slot โ every one a first-class field with its own history.
Service timekeeping
Time in service, time in grade, time in assignment, last assignment change, last rank change, last seen โ all computed live.
Credentials
Issued credentials with issuer, validity, and expiration. Tracked separately from qualifications for compliance work.
Custom fields
Any field your unit needs โ text, select, file, date โ saved to the personnel file alongside everything else.
Documents on file
Attach OPORDs, SOPs, AARs, scanned forms, and signed orders to any record. Searchable, taggable, audit-logged.
The everyday wins
Simplify the work your team actually does.
Less admin. Less duct tape. Less "hey, do you have that spreadsheet?"

Automations
When this happens, do that โ automatically.
Trigger an action on any record change, calendar event, or message โ with conditional logic, priority, and full execution logs. Quick-start templates get you running in a click.
Send a webhook
Fire a custom HTTPS payload โ with a Twig-templated body โ to any endpoint. Bots, dashboards, integrations: take your pick.
Send a message
Compose a message in-app, by email, SMS, or Discord. Resolve recipients dynamically with an expression (rank, unit, role).
Update a record
Promote, transfer, change status, or write a custom field โ automatically, when the trigger fires.
Trigger on

Lives where your team lives
Every promotion, every order โ straight into Discord.
Your members are already in Discord. PERSCOM meets them there โ rich, auto-generated messages for promotions, awards, assignments, AARs, and event RSVPs. No more "@everyone go check the website."
Fires on every event
Promotions, awards, assignments, RSVPs, form submissions โ any record change can hit any channel.
Real embeds, not pings
Rich embeds and Block Kit attachments with rank, citation, paygrade, and effective date. Your members get the whole story in one message.
Webhooks + a real API
Discord and Slack are two of many. Twilio SMS, email, generic webhooks, and OAuth/OIDC for your own bots โ wire it however you run ops.
Roger that โ promotion board for SSG slots is locked in for Sat 1900.
Promoted from Sergeant (E-5) to Staff Sergeant (E-6), effective 23 MAY 2026. Service record updated, DA Form 4187 attached.
Effective
23 MAY 2026
Authority
CSM Linwood Will
Status
Approved
Integrations & APIs
A platform, not a silo.
PERSCOM is the back end you'd build yourself if you had the time. Connect your forum, your wiki, your bot, your single sign-on โ and ship the rest of your stack on top.
REST API
A first-class HTTP API covering every resource โ users, records, units, awards, forms โ with pagination, filtering, and includes.
OAuth 2.0
All four grants supported: Authorization Code, Implicit, Client Credentials, and Password โ managed in-app with scopes.
OpenID Connect
Use PERSCOM as an identity provider. Discovery endpoint, ID tokens, JWKS โ log into any compliant client.
SSO with signed JWT
Drop a tenant-signed JWT into any external app to sign members in seamlessly. Forum, wiki, custom site โ pick your battle.
Webhooks
Outbound HTTP events on every record change, with secret-based signing and Twig-templated payloads.
Embeddable widgets
Drop your roster, awards shadowbox, calendar, or recruitment form onto any external website with a single script tag.
Public SDKs
Official PHP SDK with first-class types โ and an OpenAPI spec to generate clients for any language you need.
API keys & scopes
Scoped, expirable API keys with live request metrics. Rotate, revoke, and audit usage from inside the app.

Live API request metrics
Watch usage in real time, scope keys per integration, and rotate without downtime.

Manage OAuth clients in-app
Auth Code, Implicit, Client Credentials, Password โ pick the grant, set scopes, ship.
use Perscom\PerscomConnection;
$perscom = new PerscomConnection('your-api-key', 'your-perscom-id');
// Promote a member
$perscom->users()->update(42, [
'rank_id' => 7,
]);
// Pull this month's training records
$perscom->trainingRecords()->all([
'filter' => ['created_at:gte' => '2026-05-01'],
'include' => 'user,competencies,credentials',
]);
Security & Compliance
Built for the data you can't afford to lose.
Personnel records are sensitive. PERSCOM treats them that way โ with the isolation, encryption, access controls, and audit trail your organization (and its members) deserve.
Isolated tenants
Every organization runs in its own database, isolated by design. No noisy neighbors, no cross-tenant leakage โ ever.
Encrypted in transit & at rest
TLS 1.2+ end-to-end. AES-256 at rest. Secrets and tokens stored encrypted with rotation built into the platform.
MFA & SSO
TOTP-based multi-factor authentication for every account. SSO via OAuth 2.0 / OIDC for orgs that need centralized identity.
Role-based access control
Granular permissions per role, per page, per record type. Decide who sees what โ down to the field level โ and audit it.
Full audit log
Every record change, every login, every API call โ captured, timestamped, and queryable. Compliance work, done.
Automated backups
Daily encrypted backups with point-in-time recovery. Disaster-readiness baked in, not bolted on.
PERSCOM Cloud
The fully managed PERSCOM experience.
Don't want to think about servers, deploys, or backups? We'll run PERSCOM for you on hardened infrastructure โ so your command staff can focus on the unit, not the stack.
No credit card required ยท Cancel anytime ยท Migrate to self-host whenever you want
Up and running in 60 seconds
Sign up, pick a subdomain, invite your unit. No servers, no env vars, no DevOps.
Always on the latest release
Updates, patches, and new features ship continuously โ you never have to deploy.
Hardened by default
Encrypted at rest and in transit, automated daily backups, role-based access โ all dialed in.
Human support
Real people who run units themselves. Discord, email, and onboarding sessions.
Everything included
Every plan ships with the full platform โ pricing scales with usage, not features.
- Unlimited members on every plan
- Daily encrypted backups
- 99.9% uptime SLA
- Free SSL on a perscom.io subdomain
- Custom domain support
- All integrations & API access
Open & self-hostable
Run it on your own hardware.
PERSCOM is an open Laravel application. Use the hosted SaaS โ or deploy your own instance to Railway in a couple of minutes, no DevOps required.
Your infrastructure, your rules
Run PERSCOM on hardware you control. Pick the region, set the backup policy, define the SLA โ it's your stack.
Sensitive data stays put
Members' PII never leaves your tenant. Useful for orgs with data-residency obligations or strict legal review.
Fork and extend
Open Laravel codebase. Add custom routes, custom models, internal tooling โ PERSCOM is yours to bend.
One-click on Railway
Click the button, sign in to Railway, set a few env vars. Database, queue, and app all provisioned for you.
Runs on
Standard Laravel stack. If your ops team can run a Laravel app, they can run PERSCOM. The Railway template provisions MySQL, Redis, Horizon workers, and the app container in one go.
# 1. Clone your fork git clone https://github.com/deschutesdesigngroupllc/perscom-app cd perscom-app # 2. Install dependencies composer install npm install && npm run build # 3. Configure environment cp .env.example .env php artisan key:generate # 4. Run the migrations php artisan migrate --seed # 5. Boot it php artisan serve
Pricing
One plan. Everything included.
No tiers. No feature gates. No surprises. Switch between monthly and yearly whenever you like.
Professional
Complete personnel management. Perfect for organizations of any size.
No credit card required to start.
- Unlimited members
- Powerful REST API
- Real-time webhooks
- OAuth 2.0 & OIDC
- Single sign-on
- Social login support
- Custom subdomain
- Automated backups
- Records management
- Embeddable widgets
- Discord & SMS notifications
- Priority email support
Get the right tool in your team's hands.
Free for a week. No credit card needed. Drop the duct tape and start running your organization the way it deserves.