L5 autonomous infrastructure goes live: per-tenant OAuth provisioning, autonomous-action policy engine, customer-success automation, and back-office billing.
- AddedPer-tenant OAuth providers: JobNimbus, CompanyCam, QuickBooks, Google Calendar, Slack. Each ships with start/callback routes and a generic refresh helper.
- AddedTenant integration tokens table (tenant_integration_tokens) with provisioning audit log (tenant_provisioning_log).
- AddedAutonomous-action policy engine: every AI-initiated action (auto_reply_send, book_meeting, send_proposal_auto, charge_card, post_social, etc.) gates against per-tenant policy_rules with daily caps.
- AddedAuto-reply audit table (auto_reply_audit). Every AI-sent reply persists prompt, draft, decision, and final body for legal-defensible review.
- AddedCal.com booking orchestrator + meeting_bookings table; Documenso e-signature flow + proposal_signatures table.
- AddedVapi inbound voice agent (POST /api/voice/inbound and /api/voice/post-call) writing to voice_calls and reusing the existing intent classifier.
- AddedCustomer-success automation: tenant_health_scores (daily), NPS surveys at day 14, quarterly check-ins at day 60, save plays for high-churn-risk accounts, expansion proposals on usage signals.
- AddedBack-office automation: monthly Stripe Invoicing run, dunning cron (3/7/14-day cadence with AI personal note + auto-pause), AI-generated SOW/MSA contracts via Documenso.
- AddedBrand & content scale: daily social-distribute cron (Buffer/Hypefury) and weekly AI-drafted case-study generator pulling from automation_logs outcomes.
Print-ready API docs become the single source of truth. Static PDF generator retired.
- AddedLive print page at /docs/api/print. Cmd+P to export the full reference as a PDF that always reflects the current resources catalogue.
- Removedscripts/generate-api-pdf.js and the bundled public/docs/expert-ai-labs-api.pdf. They kept drifting out of sync with lib/api-docs/resources.ts.
- FixedSeveral response-example payloads now use realistic restoration-industry sample data (org_β¦, lead_β¦, wh_β¦ IDs).
Webhook surface goes live with HMAC signing and self-service secret rotation.
- AddedPOST /api/v1/webhooks. Register a webhook endpoint with selected event types and per-endpoint secret.
- AddedPOST /api/v1/webhooks/{id}/rotate-secret. Rotate a signing secret without losing event history.
- AddedDELETE /api/v1/webhooks/{id}. Disable a webhook.
- ChangedAll v1 webhook payloads now include an X-EAL-Signature header (sha256 HMAC) and an idempotency_key for safe retries.
Leads resource gains create + partial-update endpoints. Audit log goes public.
- AddedPOST /api/v1/leads. Create a lead manually, with idempotency-key support.
- AddedGET /api/v1/leads/{id} and PATCH /api/v1/leads/{id}. Fetch and partial-update by ID.
- AddedGET /api/v1/audit-log. Paginated audit trail of every write across the v1 surface, scoped to the calling tenant.
- ChangedLeads list response now includes pipeline_stage, last_inbound_at, and qualification_score by default.
Pagination + rate limit headers standardized across the v1 surface.
- ChangedAll list endpoints now use cursor-based pagination (cursor / has_more / next_cursor); limit caps at 100.
- ChangedAll responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.
- ChangedError envelope standardized: { error: { code, message, request_id, details? } }.
Public v1 API launches with read-only Health, Organizations, and Leads.
- AddedGET /api/v1/health (no auth required). Service pulse.
- AddedGET /api/v1/organizations/me. Resolve the calling organization from a Bearer key.
- AddedGET /api/v1/leads. List inbound and outbound leads scoped to the calling tenant.
- AddedBearer-token authentication via per-tenant API keys with read / write / admin scopes.