AI-powered quoting, diagnostics, and automation for CRAWA's field operations. Built on AroFlo, Cloudflare Workers, and Claude.
HMAC-SHA512 signed API proxy on Cloudflare Workers. Handles authentication, signing, and CORS so credentials never reach the browser. Tested and verified against live AroFlo data.
Field techs sign in with their existing AroFlo Field credentials. Server-side proxy validates against AroFlo Field, issues HMAC session tokens (24h expiry). No new passwords to manage.
Claude Opus 4.6 proxied server-side via Cloudflare Worker. Supports SSE streaming for real-time analysis. API key never touches the client. Powers photo analysis, note structuring, and quote generation.
Apple-inspired PWA for field use. Five-step flow: Job → Assess → Analyse → Quote → Review. Photo upload (camera or library), equipment readings, AI analysis, dual quote output (callout + works).
Built into the Review step. Standard rate ($205 first hour + $130/hr thereafter) or after-hours flat rate ($595). Generates a separate draft quote from the works quote.
Detailed process maps for current and optimised quoting workflows. Side-by-side comparison with Mermaid flowcharts, step mapping, and KPI targets.
Client-facing dashboard with real AroFlo data. Tabs for jobs, quotes, invoices, sites & assets. Next scheduled visit card, quote approval actions, and service request submission with PDF work order upload.
PDF parsing via Claude on the worker proxy. Sends documents to Claude with type-specific prompts, extracts structured data. Supports work orders, SWMS, insurance certs, contracts, invoices, equipment manuals, and 15+ other document types.
Upload PDF work orders, AI extracts all fields, auto-resolves client and location in AroFlo, maps priority and task type, creates the task. Staff login ties task to their AroFlo user.
General-purpose document upload for back-office staff. 24 document types across 6 categories. AI analyses each document with type-specific prompts, suggests classification, attach-to target, and visibility. User reviews and submits.
Sites with 100+ units need per-unit assessment (photos, notes, readings) with pause/resume capability. Unit picker UI, progress tracking, and bulk AI analysis grouped by fault type.
Push both draft quotes (callout + works) to AroFlo as draft quotes on the task. Write assessment notes and diagnosis back to the task. Attach photos to the job.
Send quote summary to three designated recipients on submission. Recipients not yet specified.
Serper.dev API key stored as worker secret. Proxy endpoint and tool wiring into the agent not yet built.
Auto-intercept incoming PDF work orders from FM companies (Programmed, CBRE, Ventia) via email. High-confidence parses auto-create AroFlo tasks; low-confidence routes to back-office portal for review.
Magic link authentication for the customer portal. Verify email against AroFlo contacts, send one-time link, create session token. Client sees only their own data.
The current API user has read-only access. Write operations (creating draft quotes, updating task notes, attaching photos) require broader permissions to be configured in AroFlo's admin panel. This is an AroFlo admin task, not a code issue.
Querying assets linked to a location (to support multi-unit jobs) requires the API user to have access to the assets and locations zones. Not currently enabled.
No structured parts catalogue or supplier price index exists. The quoting tool currently relies on manual part entry by the tech. For the agent to auto-assemble quotes (as per the optimised process), it needs access to supplier price lists, CRAWA's markup rules, and a parts database.
Different customers have different agreed rates. No structured rate card data exists — it's currently tacit knowledge held by the office expert. Needs to be captured and codified before the agent can apply correct pricing.
The quoting tool currently shows all open tasks. Once authentication is working with real users, jobs should be filtered to show only those assigned to the authenticated technician. Requires mapping AroFlo Field usernames to API user IDs.
The quoting tool works as a web app but has no offline capability yet. Field techs in remote locations or basements may lose connectivity mid-assessment. A service worker with local state persistence would solve this.
MX records have been set but domain verification is still pending from a previous session. Required for email sending via the platform.