ExpatReady, Automate · Integrate · Immigrate
Platform module · Compliance & Audit

CICC audits don't scare you when the platform is built for them.

ExpatReady ships with the compliance infrastructure Canadian immigration regulators expect. Immutable audit log on every entity. Designated person workflow with signature stamping. Custom roles with granular permissions. Multi-office data isolation. Built so your firm passes, and stays in good standing.

Backed by: AuditLog · audit-log.decorator · DesignatedPerson · Role · Permission · PermissionGroup · Office · UserOffice
Capability 01 / 4

Audit log on every entity

Every create, update, and delete on every entity, cases, prospects, documents, retainers, payments, writes to AuditLog. Who did it, when, IP address, user agent, before/after state. Append-only. No admin can delete an entry.

  • Decorator-driven · every controller method instrumented
  • Captures: actor, timestamp, IP, user agent, before/after
  • Append-only schema · no UPDATE or DELETE API
  • Filterable by date, user, action, entity type
  • Export to PDF for CICC audits
Audit log · last 5 entries
immutable
10:42:18142.180.x.x
P. Mehta · RCIC
Updated case ER-2026-0042 status → FINAL_SUBMISSION
10:42:0198.x.x.x
Client (Sharma)
Uploaded IELTS_TRF.pdf · 1.2 MB
10:38:45142.180.x.x
S. Kumar · RCIC
Approved retainer · signed by client
10:38:12-
System
Auto-task created · review documents
10:35:09142.180.x.x
J. O'Connor
Created task · request bank statements
✓ Export PDF · audit defensibility for any date range
Capability 02 / 4

Designated Person · CICC-aware by design

Assign your firm's CICC-licensed Designated Person at the firm level (per CICC requirement of one Designated Representative per firm). Their signature is stamped on outbound retainers and filings. Their license number is tracked. Their approval is recorded on every required action across all offices.

  • One DesignatedPerson per firm, matches CICC requirement
  • Signature image on file · stamped on outbound docs
  • License number tracked · CICC R-XXXXXX
  • Required approval on retainers + filings across all offices
Designated Person · firm-wide assignment
CICC R-123456
SK
Sanjay Kumar, RCIC
CICC R-123456 · firm-wide designated person
✎ S. Kumar
License verified: ✓
Authorized rep: ✓
Responsible person: ✓
Signature on file: ✓
Capability 03 / 4

Custom roles with granular permissions

Define the roles your firm actually has, RCIC, Paralegal, Billing Admin, Reviewer, Junior Associate. Each role gets a permission group. System roles are protected (can't be deleted). Custom roles are fully mutable.

  • PermissionGroup · groups granular permissions
  • Role · isSystemRole flag protects core roles
  • Plan-based default role provisioning
  • Per-endpoint enforcement via JwtGuard + RolesGuard
Roles · 5 active
custom + system
RCICsystem
All · including filings & retainers
Immigration Lawyersystem
All · plus appeals access
Paralegalcustom
Cases · docs · time tracking
Billing Admincustom
Invoices · payments · expenses
Junior Associatecustom
Cases (view + edit) · no approvals
Capability 04 / 4

Multi-office data isolation

Multi-office firms get true data isolation per office. Users belong to one or more offices via UserOffice. Cross-office access requires explicit permission. Per-office settings: SMTP, payment, hours, invoice numbering.

  • Office model · per-office config
  • UserOffice junction · user → many offices
  • Cross-office permission groups
  • Audit log filtered by office
Offices · 3 locations
data-isolated
Toronto · Main
Users
8
Cases
247
TZ: EST
Vancouver
Users
4
Cases
89
TZ: PST
Montreal
Users
3
Cases
56
TZ: EST
Per-office SMTPPer-office StripePer-office hoursInvoice numbering
One platform · replaces 9 tools

The operating system Canadian immigration practice deserves.

From $199 CAD/seat (annual). Unlimited cases. Unlimited client-portal users. No per-form or per-case fees. White-glove migration included with Practice tier and above.