React 19 TypeScript Express + Node 24 Prisma + PostgreSQL Entra ID (SSO) NetSuite OAuth 2.0 M2M FieldAware API

What It Does

Hawkeye consolidates approval decisions that used to be scattered across multiple systems into one inbox. Instead of logging into FieldAware and NetSuite separately to approve work orders, managers see everything in one place with full context, change detection, and a complete audit trail.

๐Ÿ“ธ Screenshot needed: Hawkeye approvals inbox
The Hawkeye approvals inbox showing pending items from multiple systems with context and one-click approval.

Key Features

Unified Approvals Inbox

  • Single inbox for all approval decisions across systems
  • Items from FieldAware (service tickets) and NetSuite (SOs, POs, expenses)
  • Context-rich ticket drawer with snapshot history and "changed?" detection
  • Bulk approve/reject with shared action ID for audit
  • Complete audit trail โ€” who decided, when, why, plus snapshot version

Timesheets & Payroll

  • Timesheet review and approval by region/area
  • Payroll reporting integration
  • Hours tracking and overtime visibility

Approval State Machine

Every approval item follows a defined state flow with full audit at each transition:

Pending
โ†’
Approve / Reject
โ†’
Approved / Rejected
โ†’
Locked (written back)

Decisions are persisted durably in Hawkeye's database, then written back to the source system (FieldAware or NetSuite) via a write-back queue with exponential-backoff retries. If the source system is down, the decision is safe โ€” it retries until successful.

Org Chart Management

Hawkeye includes an org chart editor that unifies supervisor relationships from NetSuite and Entra ID. This is a key part of the platform's permissions model โ€” the org chart defines:

๐Ÿ“ธ Screenshot needed: Hawkeye org chart editor
The org chart editor showing the company hierarchy and approval routing.

Data Sources & Write-Back

SourceAuthReadWrite-Back
NetSuite OAuth 2.0 M2M (JWT bearer, RS4096) Sales orders, POs, expense reports, employee directory Approval status updates via SuiteScript
FieldAware Static API key Service ticket status, time entries, field work completion Ticket approval/rejection updates

Who Uses It