Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vh3.ai/llms.txt

Use this file to discover all available pages before exploring further.

Sentinels

Sentinels are proactive monitors that continuously watch your operational data for emerging risks and revenue opportunities. They run as pure database queries with zero AI cost at the detection layer — thresholds, exclusion filters, and result limits are all configurable per tenant.

Sentinel types

Operational (13 sentinels)

SentinelWhat it detects
engineer_performance_slipEngineers whose completion rates or SLA punctuality have degraded
site_deteriorationSites with increasing fault frequency or repeat visits
sla_breach_clusterConcentrated SLA breaches by geography, engineer, or customer
scheduling_driftGrowing gaps between job creation and completion
repeat_visit_spikeAbnormal repeat visit rates for specific job types or sites
first_time_fix_declineDrop in first-time-fix rates by engineer or job category
response_time_degradationIncreasing time between job raised and first attendance
workload_imbalanceUneven job distribution across engineers
completion_rate_dropFalling job completion rates
customer_complaint_patternEmerging complaint clusters
equipment_failure_trendRecurring equipment failures at specific sites
certification_gapEngineers approaching or past certification expiry
data_quality_alertMissing or inconsistent data in recent job records

Growth opportunity (6 sentinels)

SentinelWhat it detects
dormant_customerCustomers with no recent activity who may be ready for re-engagement
overdue_service_intervalEquipment or sites past their recommended service interval
single_service_cross_sellCustomers using only one service line — cross-sell candidates
engineer_flagged_follow_upFollow-on work flagged by engineers in job notes
seasonal_buying_patternHistorical patterns suggesting upcoming demand
geographic_upsell_clusterConcentration of existing customers near prospects

POST /sentinels/run

Execute one or more sentinels against your data and return current results. Request body:
FieldTypeRequiredDescription
company_idstringYesYour tenant identifier
api_keystringYesYour tenant API key
sentinel_idsobjectNoSpecific sentinels to run (omit to run all)
curl -X POST "https://api.vh3connect.io/api:kP8T1CK7/sentinels/run" \
  -H "Content-Type: application/json" \
  -d '{
    "company_id": "your-company-id",
    "api_key": "your-api-key",
    "sentinel_ids": ["site_deterioration", "engineer_performance_slip"]
  }'
To run all sentinels, omit sentinel_ids:
curl -X POST "https://api.vh3connect.io/api:kP8T1CK7/sentinels/run" \
  -H "Content-Type: application/json" \
  -d '{
    "company_id": "your-company-id",
    "api_key": "your-api-key"
  }'

POST /sentinels/run/

Run a single named sentinel. Path parameters:
ParamTypeRequiredDescription
sentinel_idstringYesSentinel identifier (from tables above)
Request body:
FieldTypeRequiredDescription
company_idstringYesYour tenant identifier
api_keystringYesYour tenant API key
curl -X POST "https://api.vh3connect.io/api:kP8T1CK7/sentinels/run/dormant_customer" \
  -H "Content-Type: application/json" \
  -d '{
    "company_id": "your-company-id",
    "api_key": "your-api-key"
  }'

GET /sentinels/registry

Returns all available sentinel definitions and their configuration.
curl -G "https://api.vh3connect.io/api:kP8T1CK7/sentinels/registry" \
  --data-urlencode "company_id=your-company-id" \
  --data-urlencode "api_key=your-api-key"

GET /sentinels/results

Returns the latest cached sentinel results for your tenant.
curl -G "https://api.vh3connect.io/api:kP8T1CK7/sentinels/results" \
  --data-urlencode "company_id=your-company-id" \
  --data-urlencode "api_key=your-api-key"