Real-time webhooks & OIDC are live

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

app.perscom.io/dashboard
PERSCOM dashboard

Built on technology you trust

Laravel
React
AWS
Docker
GitHub
Vue
Statamic
Tuple

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.

Personnel record with assignment history and record-type sub-tabs

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?"

Multi-channel messaging

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

assignmentrecord.createdawardrecord.updatedrankrecord.createdtrainingrecord.createdevent.updatedmessage.createdqualificationrecord.createdcalendar.createdservicerecord.createdcombatrecord.created+ 20 more
PERSCOM Automations dashboard with quick-start templates

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.

#ops-announcements
LW
Linwood WillCSM ยท Today at 18:42

Roger that โ€” promotion board for SSG slots is locked in for Sat 1900.

PERSCOM
PERSCOMAppToday at 18:43
Promotion approved ยท Alpha Co, 1st Btn, 5th SFG
Braxton Stamm DVM โ†’ Staff Sergeant (SSG)

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

PERSCOM Automations ยท Promotion Approvedโ€ขToday at 18:43
๐Ÿซก 14๐ŸŽ‰ 9๐Ÿ”ฅ 6
๏ผ‹Message #ops-announcements

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.

v1

REST API

A first-class HTTP API covering every resource โ€” users, records, units, awards, forms โ€” with pagination, filtering, and includes.

4 grants

OAuth 2.0

All four grants supported: Authorization Code, Implicit, Client Credentials, and Password โ€” managed in-app with scopes.

OIDC

OpenID Connect

Use PERSCOM as an identity provider. Discovery endpoint, ID tokens, JWKS โ€” log into any compliant client.

Signed JWT

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.

Signed

Webhooks

Outbound HTTP events on every record change, with secret-based signing and Twig-templated payloads.

<script>

Embeddable widgets

Drop your roster, awards shadowbox, calendar, or recruitment form onto any external website with a single script tag.

PHP

Public SDKs

Official PHP SDK with first-class types โ€” and an OpenAPI spec to generate clients for any language you need.

Scoped

API keys & scopes

Scoped, expirable API keys with live request metrics. Rotate, revoke, and audit usage from inside the app.

API keys with live request metrics

Live API request metrics

Watch usage in real time, scope keys per integration, and rotate without downtime.

OAuth client creation

Manage OAuth clients in-app

Auth Code, Implicit, Client Credentials, Password โ€” pick the grant, set scopes, ship.

composer require perscom/perscom-php
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.

Hosted at app.perscom.io

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
See pricing

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

Laravel 13PHP 8.4MySQLRedisHorizonPassportFilamentStripe

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.

~/perscom-app
# 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.

$20/ month
Start your 7-day free trial

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

FAQ

Questions, answered.

Still curious? Dig into the documentation or jump into the Slack community.

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.