GET /v4/weather/forecast?location={lat},{long}&fields=temp,windSpeed,precipProbability
Core hyper-local 72H forecast. Bound to project lat/long, not city name.
POST /v4/weather/alert (webhook listener)
Real-time alert when any threshold breaches for a monitored project site.
Primary: Tomorrow.io (micro-climate). On 3 consecutive failures: Failover → OpenWeatherMap. On OWM failure: serve cached last-known 72H forecast from TimescaleDB. Stale data flag surfaced to GC UI.
GET /rest/v1.0/projects/{id}/schedule/tasks
Import existing schedule as seed data for Nail'd It DAG. One-time onboarding migration.
PATCH /rest/v1.0/projects/{id}/schedule/tasks/{task_id}
Push adapted schedule back to Procore after weather rescheduling. Keeps legacy ERP in sync.
POST /webhooks/v1.0/hooks (subscribe)
Subscribe to Procore task update events so changes made in Procore are reflected in Nail'd It DAG.
Nail'd It is the source of truth for weather-adaptive decisions. Procore is the destination for compliance and legacy reporting. Never write to Procore without a confirmed state in Nail'd It first.
POST /v3/company/{realmId}/invoice
On draw approval → auto-generate invoice in QBO with line items from project activity nodes.
GET /v3/company/{realmId}/vendor (1099 List)
Annual 1099 aggregation — pull all vendors paid during fiscal year for GC tax reporting.
Webhook: Invoice.Payment (inbound)
QBO fires on payment confirmation. Nail'd It listener: sets draw PAID, triggers lien waiver PDF, starts Trust Commons rating timer.
POST /2010-04-01/Accounts/{SID}/Messages.json
Weather hold / reschedule cascade SMS to field crews. Includes a deep-link token for one-tap confirmation. No app required Phase 1.
Webhook: /naild-it/confirmations (inbound SMS)
Sub replies "Y" → sets confirmation_status ACKNOWLEDGED on DAG edge. Reply "N" → escalates to GC. Any other reply → triggers escalation timer.
1. Push Notification (app users) → 2. SMS (all users) → 3. Email (office PM fallback) → 4. Procore/ERP Webhook (enterprise accounts). All channels fire simultaneously for CRITICAL disruption score > 7.0.