CRAWA Refrigeration & Air Conditioning

AirFlo Platform

AI-powered quoting, diagnostics, and automation for CRAWA's field operations. Built on AroFlo, Cloudflare Workers, and Claude.

Last updated: 8 May 2026 (evening)
Built & Deployed

AroFlo API Connector Live

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.

Endpoints: /api (AroFlo) · /auth (login) · /verify (session) · /ai (Claude proxy) · /parse-wo (document parsing) · /health

Tech Authentication Live

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.

Stateless tokens · no database required

AI Engine (Claude) Live

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.

Model: claude-opus-4-6 · Streaming: SSE passthrough

Quoting Tool UI Live

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).

Callout Fee Calculator Live

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.

Two draft quotes per job: callout invoice + works quote

Process Flow Documentation Live

Detailed process maps for current and optimised quoting workflows. Side-by-side comparison with Mermaid flowcharts, step mapping, and KPI targets.

Customer Portal Live

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.

Open customer portal → · Demo: City of Mandurah

AI Document Parser Live

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.

Endpoint: /parse-wo · Model: claude-sonnet-4-6 · Tested end-to-end with Programmed FM work orders

Back-Office WO Intake Live

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.

Open WO intake → · AroFlo task creation: live

Office Upload Portal Live

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.

Open upload portal → · 24 doc types · 6 AroFlo visibility levels
In Progress

Multi-Unit Job Support Design

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.

Depends on: AroFlo asset API access

Quote Submission to AroFlo Blocked

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.

Blocked on: AroFlo API write permissions

Email on Submit Planned

Send quote summary to three designated recipients on submission. Recipients not yet specified.

Depends on: Outlook API or SMTP integration

Search Integration Key stored

Serper.dev API key stored as worker secret. Proxy endpoint and tool wiring into the agent not yet built.

API: Serper.dev · Google search results

Email Work Order Ingestion Planned

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.

Pipeline: Email → PDF → AI parse → AroFlo task creation (auto or manual review)

Customer Portal Auth Planned

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.

Pattern: Email → HMAC signed token → session
Outstanding Blockers & Limitations

AroFlo API — Write Access Not Granted

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.

Blocks: Quote submission · Notes writeback · Photo upload to AroFlo · Scheduled job creation

AroFlo API — Asset/Location Access

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.

Blocks: Multi-unit job support · Asset history lookup · Prior work on unit

Parts & Supplier Price Data

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.

Blocks: Automated quote assembly · Agent-driven parts lookup · Markup calculation

Customer Rate Card Engine

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.

Limits: Automated pricing accuracy · Per-customer quote generation

Job Filtering by Tech

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.

Limits: Tech-specific job list · UX for techs with many assigned jobs

Offline / Poor Connectivity

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.

Limits: Remote site usability · Data loss risk on connectivity drop

Google Workspace Verification

MX records have been set but domain verification is still pending from a previous session. Required for email sending via the platform.

Limits: Email-based quote delivery
Documents & Tools