Still loading — this usually isn't your internet connection.
If it keeps happening: close any other ClimatePro tabs or windows, then reload.
OpsManager
You're all caught up.
Shows up next to your name on the Calendar, Crew, and account menu. Falls back to your initials when no photo is set.
Email a copy of these notifications to your inbox. Everything still appears in the bell — this just decides what hits your inbox too.
Add a 6-digit code to your sign-in. Your phone can already generate it — no app to install. iPhone: Settings → Passwords → Set Up Verification Code. Android: Samsung Pass / Google Authenticator / your password manager. Password managers: 1Password, Bitwarden, Dashlane all support this natively.
Loading…
Different rates for different work — Regular, Overtime, Prevailing wage (the California DIR-mandated rate for public-works jobs), etc. Each survey picks one. Mark one row as the default; surveys without a pick use it. The legacy "Labor rates" below are a fallback only — once a default is set here, those are ignored.
Used to compute labor cost / sell price on every survey when no Labor type default is set above.
How long anchoring, caulking, and bondkap take per linear foot.
The bondkap extrusion models your crews install. Each window that gets bondkap picks one; the cost and sell here are per linear foot of material. The Materials list and survey PDF total the footage per type so the office knows how much to order.
Fallback labor times used when a film’s product row in Settings → Products has no labor configured. When a film has setup or per sqft set on its own product row, that always wins; this kicks in only when both are zero. Small panes still use the flat per-pane time below.
Small panes (typical 12"×12"–15"×15" transoms, sidelites) take longer per sq ft than larger panes because setup overhead dominates. Any pane under the threshold is treated as a small panel: it gets a flat labor time per pane instead of the film's setup & per-sqft formula, and is counted separately in the survey totals.
Hybrid model: setup time per window plus per-sqft stripping time. Set one to 0 for flat-rate or pure per-sqft.
Defaults used when generating the cut plan on a survey or in the PDF.
These values appear on every proposal you generate. Bullet-style fields use one bullet per line.
Appears in the app header and on every exported PDF.
Use a transparent PNG for best results. Max ~600×600px.
Toggle individual features off if they're causing problems, or restrict them by role. Off-toggle disables the feature immediately for users on next sync — no redeploy needed.
Edit the title and body of each in-app notification. Use the placeholder tokens below each card — they're replaced with real values when the notification fires.
Automatically text or email customers a reminder 24 hours before their scheduled appointment. Texts go out via your Podium number (customers can reply); if there's no phone on file, we email instead.
No texts are sent during quiet hours — a reminder that comes due overnight goes out the next morning.
Sent as soon as an appointment is booked — useful when it's days or weeks out. Only goes to bookings more than 24 hours away (closer ones just get the reminder above).
Define the areas you work in as a list of zip codes — add them by name (a whole city or county) or type them in directly. Every job is sorted into the zone that owns its zip, so the calendar can group, color, and filter by area. A zip belongs to one zone.
Each dot is a customer, colored by its zone. Grey = not in any zone yet. Hover any area for its zip & city; click it to see the county and assign it to a zone. Dashed amber = zips with customers but no zone (your coverage gaps).
Every zip your customers are in — assign each to a zone. Unassigned zips show as "Unzoned" on the calendar.
Reusable templates for documents you send to customers for signature (install agreements, warranty forms, care instructions). Use the placeholder tokens — they're replaced with real values at send time.
Inbound capture (embeddable forms on your site) and outbound outreach (email + SMS templates). Both feed the Leads pipeline.
Build a form, copy its embed code, and paste the snippet on any website. Submissions land tagged with the form's source so you can track which channels convert. The 24-hour SLA clock starts the moment a visitor hits Submit.
No forms yet — create one to start capturing inquiries from your website.
Reusable outreach messages reps pick from when contacting a lead. Use {tokens} to personalize — they're substituted with the lead's name, the rep's name, your company info, etc. at send time.
No email templates yet.
No SMS templates yet.
The catalogs the survey editor pulls from when a rep is filling out a window or itemizing equipment. Mark items inactive instead of deleting if they're already used on past surveys (deleting an in-use value would orphan the survey reference).
Gear like scaffolding, planks, and PPE.
Specific ladder sizes so reps pick exactly what the install crew needs.
Offered under Frame type on each window in the survey editor.
Offered under Window type on each window in the survey editor. Single Clear / Double Tinted / Dual Low-E etc. — what the manufacturer spec sheets list as a substrate.
Names are locked once saved to keep them aligned with how manufacturer spec sheets label substrates — that's how the Glass Checklist maps optical-property data to your catalog. To remove a type from the rep dropdown, uncheck Active. To replace a type, add a new row with a new name and deactivate the old one.
Legacy multi-select tag catalog from before the two-axis refactor. The survey editor no longer reads from this — pane count moved into the Window type catalog above, and treatment moved into the per-window Glass type dropdown (Annealed / Tempered / Laminated). Kept here in case you want to repurpose it later (e.g. operation types like Fixed / Casement / Sliding).
Configure the data the AI Survey Review reads when grading a survey: cross-cutting shop guidance + reference PDFs (install guides, warranty docs, manufacturer spec sheets, code references).
Facts (the AI is told these as immutable truths):
Context auto-loaded per review:
What the AI focuses on (the system prompt's "focus list"):
Skips (the AI won't volunteer these):
Your guidance below + the AI Review Docs override these defaults. The AI is told to stay strict to your guidance — if you say "X applies except for Y", it treats Y as a precise exception list and won't generalize the rule to other axes.
Each doc has a scope — Always (every review), Manufacturer (only when a film from that manufacturer is in the survey), or Series (only when a film from that series is used).
Every 👍 / 👎 reps give on Survey Readiness findings lands here. Thumbs-up = validation that a rule is working. Thumbs-down = something to investigate. The Group by finding view shows net scores so you can spot which findings are net-loved (don't break them when tuning) and which are net-hated (priority to fix).
Build reusable forms for reps to fill out against leads, surveys, proposals, and jobs. Quality inspections, aerial-lift checks, safety sign-offs, anything multi-step. Submissions render as PDF.
No forms yet. The builder lands in the next build — you'll see + New form light up here.
PNG or JPG, 2 MB max. Square images look best.
Loading…
Loading…
Connect ClimatePro to outside services. Right now we use Podium to send SMS so customer replies thread back into your Podium inbox.
Outbound SMS for proposals + lead outreach goes through Podium. Customer replies land in your Podium inbox where reps reply two-way from the Podium app — no need to monitor a separate inbox here.
——0 inbound texts from unknown numbers (not matched to any customer or lead)
Credentials saved. Click below to grant ClimatePro access to your Podium account — you'll be sent to Podium's allow screen, then redirected back here.
Pick which location to send SMS from:
Videos uploaded since this was enabled go straight to Cloudflare Stream and play in every browser. Older videos still sit in Supabase Storage and can render as "tap to download" on Chrome Windows / Android — migrate them once and they'll play everywhere too.
No legacy videos to migrate — all videos are already on Cloudflare Stream. 🎉
Run once if videos render but won't play (CORS errors in the browser console). This applies the CF_STREAM_ALLOWED_ORIGINS setting to every video already on your Cloudflare Stream account, so the player iframe can load the manifest. Safe to re-run — it skips videos that are already correctly configured.
During the transition off Simpro, both apps stay in sync so estimators see what admins entered in Simpro and admins see what reps captured here. This page shows the health of that link.
Phase 1a — one-way pull. Customers can now be pulled from Simpro into ClimatePro. Contacts, Sites, and Leads land in a follow-up. Outbound (CP → Simpro) is still off.
—Each entity can be off, one-way (Simpro → ClimatePro only), or two-way. "Last poll" is the most recent successful read from Simpro. "Linked" is how many records here are already paired with a Simpro counterpart.
| Entity | Direction | Last poll | Linked | Action |
|---|
Local saves queue up here and a background worker drains them. Pending = waiting, In-flight = sending, Failed = retried 3+ times and needs a look.
Same record edited in both apps inside the sync window. Resolve by picking which side wins — the other side's changes are discarded.
A nightly job compares both sides and lists anything out of step: missing on one side, or fields that disagree. Empty here means the two systems matched at the last check.
Manages which @climatepro.com mailboxes get synced into ClimatePro. Email content + matching against customers/contacts/leads happens server-side every minute. Architecture overview in Help → Emails section.
Each mailbox in this list gets its inbox + sent items pulled every 60 seconds. First-time sync pulls the last 90 days; deeper history fills in over the following days.
| Mailbox | Owner | Status | Last sync | Messages | Actions |
|---|
No mailboxes added yet. Click "+ Add all @climatepro.com" to bulk-import your team's profiles, or "+ Add mailbox" to add one at a time.
Manual operations for after bulk imports, RLS / matching changes, or troubleshooting.
Customer, contact, or lead records can't be created with emails on these domains. Stops accidental (or intentional) creation of internal-team email addresses as customer records, which would otherwise expose that mailbox's correspondence to anyone who can see the record. Always keep your company's primary domain in this list.
| Domain | Reason | Added |
|---|
No blocked domains. Add your company's primary domain to close the team-mailbox privilege-escalation vector.
AI pass over your inbound mail to find what customers actually ask about. Each run extracts topic phrases from the most recent 1,500 inbound emails, then clusters them into natural categories. Takes 1-3 minutes; costs about $0.50 per run. Re-run periodically as the corpus grows to see what categories emerge.
Connect your Google Calendar. Events you enter in Google show up here as Busy blocks — just the time, no details — so your day is protected when anyone schedules you. Everything you schedule in ClimatePro is pushed to your Google Calendar with full details.
Loading…
Everyone who has connected their Google Calendar. You can sync or pause any of them.
| Person | Status | Last sync | Mirrored | Busy | Actions |
|---|
No one has connected their calendar yet.
Pings every outside service the app talks to + your own Supabase project, so you can confirm everything's reachable. See SERVICES.md for what each service does.
Author training material, organize it into tracks, and see who has completed what.
Loading…
Pick a track to see who has completed each page.
Onboarding tracks and reference material.
Loading…
Loading…
Accounts are invitation-only. Open the link in the invite email an admin sent you to set your password.
Choose a new password for your account.
—
Beta feature. The Glass Checklist is new and still being tuned. If a verdict looks wrong, use the 👍 / 👎 buttons on the Survey Readiness panel — that feedback drives the rule + prompt updates.
🎓 New here? Take the Glass + thermal stress fundamentals training course (3 short pages) — why glass breaks under window film, the heat-stress mechanism, and how to read each verdict on this page.
📖 Want the math? How the Glass Checklist works (the math) in the Help center — ASTM E2431 equation, allowable edge stress per glass material, safety-factor thresholds, and the standards we follow.
Note: this risk model implements ASTM E2431 with industry-standard adjustment factors for shading, framing, and edge condition. It's a sanity check — not a manufacturer warranty determination. For borderline cases on safety-critical installs, also consult the manufacturer's own glass-checklist tool.
—
No in-scope windows on this survey yet.
These were copied from your Company defaults when the proposal was created. Editing here affects only this proposal.
Forms scoped to proposals — pricing approvals, customer sign-offs, anything that has to attach to the deal.
No forms apply to this proposal yet. Ask your admin to set one up under Settings → Forms.
Every change to this proposal + its line items, send/sign events.
No activity yet.
Tap a customer to open their full record — contacts, addresses, notes, surveys, and proposals.
No customers yet. Tap + Add customer to create one, or convert a lead from the Leads page.
No contacts yet.
No addresses yet.
No activity yet.
No emails synced for this customer yet.
No upcoming events for this customer.
No leads for this customer yet.
No surveys for this customer yet.
No proposals yet.
No documents sent for signature yet.
No texts with this customer yet.
Every change to this customer + their contacts, addresses, surveys, and proposals.
No activity yet.
Track new inquiries, follow-ups, and dead leads. SLA: contact within 24 hours of intake.
No leads yet. New leads from your website forms land here automatically, or tap + New lead to log a phone inquiry.
No texts with this lead yet.
No activity yet — log your first contact attempt.
No emails synced for this lead yet.
Forms scoped to leads — intake checks, qualification surveys, anything multi-step.
No forms apply to this lead yet. Ask your admin to set one up under Settings → Forms.
No upcoming events for this lead.
Each signup creates a team member. Use + Add team member to pre-fill a rep's details before they sign up — when they create an account with that email their profile will be populated automatically.
These people haven't signed up yet. Share https://app.climatepro.com with them and they'll see their name and phone auto-fill once they create an account.
Recent updates and changes — newest first.
You're on build . The app updates automatically — usually within a minute of a new release.
Everything submitted via "Send feedback" lands here. Pick one to read, reply mentally, then mark it resolved.
No feedback in this view yet.
Type a reply to the submitter, then pick how this is being resolved. The reply gets emailed to them with their original message attached, and they can hit reply to write back to you.
Brings the row back into the Open tab. Doesn't email the submitter. The original reply text is kept on file in case you resolve it again the same way.
Every photo and file uploaded across surveys, jobs, and customers — newest first. Click an item to open it, or the parent chip to jump to where it lives.
No uploads match these filters.
Your to-do list — everything you need to act on, grouped by when it's due. Tasks also show on the Calendar.
No tasks match these filters.
Every change in the system — who did what, when. Latest 1,000 entries are cached locally; older entries are still queryable in Supabase.
No matching entries.
Recent activity on your proposals, jobs, and schedule. We keep the last 200.
No upcoming events. Tap + New event to schedule.
No events on this day.
No events on this day.
No team members to show. Open the filter to pick people or switch to Everyone.
Everyone sees the catalog on the window dropdown. Only admins can edit here.
Window film rolls and remnants. Migrated from Caspio — admins can manage rolls; everyone can see what's on hand.
No rolls match these filters.
No rolls match these filters.
These are the Caspio user IDs that appear in your historical transactions. Map each one to a Climate Pro account so reports can attribute them by name. Unmapped users show events as "—" in roll history.
Nothing to map.
Cover = on hand ÷ average weekly usage over the last 90 days of roll activity. A row flags 🔴 when cover drops below the lead time, 🟡 when it's within twice the lead time.
Loading…
Your suppliers and the purchase orders you've placed with them. Admin only.
No purchase orders yet. Tap + Purchase order to create the first one.
No vendors match.
Loading…
On-site measurements, photos, and film picks for each customer address. Every proposal starts here.
No surveys yet. Tap + New Survey to start.
Installs in progress, plus warranty and go-back work. New jobs are auto-created when a customer accepts a proposal.
No jobs yet. Jobs are auto-created when a customer accepts a proposal.
No rolls assigned to this job yet. Use the 📷 Scan button on the Inventory page to check rolls out, or record usage with "Use feet on job".
Customer-signed scope changes. Once signed, lines lock and the change order's total adds to the job.
No change orders yet.
No visits scheduled yet. Tap 📆 Schedule visit to add one.
Loading survey…
No updates yet. Post the first one above.
No time logged yet. Use the Clock-in button below to start.
Quality inspections, aerial-lift checks, safety sign-offs. Each submission saves as a PDF you can download.
No forms apply to this job yet. Ask your admin to set one up under Settings → Forms.
Install agreements, warranty forms, care instructions — sent to the customer for e-signature. Click any row to see the lifecycle and copy the signing link.
No documents sent for signature yet.
Contracts, COIs, schedule-of-values, photos, anything job-specific. Files are private to people on the job (admin / salesperson / crew).
No documents uploaded yet.
| Description | Amount |
|---|---|
| Total | $0.00 |
By signing, you authorize the work above as a change to the original scope. The change order's amount will be added to the job total.
| Description | Amount |
|---|---|
| Total | $0.00 |
By signing, you confirm the work is complete and as agreed. Your signature finalizes the job and authorizes invoicing.
Team-wide pipeline and revenue. Admin only.
| Salesperson | Signed $ | # | Pipeline $ | Open | Reviewed |
|---|
No activity in the last 30 days.
How fast leads get a first call and how well reps stay on them. Speed, SLA and attempts cover leads assigned in the last 30 days; Overdue and Cold are the current backlog.
| Rep | Avg to contact | Within 24h | Avg attempts | Overdue | Cold |
|---|
No assigned leads to report on yet.
What your surveys reveal about the typical job — film mix, glass types, and the labor drivers (seams, removals, anchoring). Directional at this sample size, not statistical.
No film selections recorded yet.
No glass types recorded yet.
Average coverage yield per survey by month — how much of the film we consume ends up as installed glass (the rest is trim margin + offcuts). Higher is better; 100% is unreachable because every cut needs trim.
Not enough survey data to chart yield yet.
The "typical job" and how often the costly extras show up. Seams and removals are the biggest hidden labor drivers, so these percentages are worth sanity-checking your estimates against.
| Metric | Value |
|---|
| Estimator | Surveys | Windows | Total sq ft | Avg sq ft / survey |
|---|
No surveys to report on yet.
Signed agreements and change orders sent to customers. Tap a document to view its signing link, signature, or resend.
No documents match these filters.
Quotes drafted from a survey. Send by email or text — customers sign from any device, no login needed.
No proposals yet. Open a survey and tap Draft proposal to send your first one.
No windows match your search.
Capture the tallest window or fixture the install crew has to reach. This is what dispatch uses to pick the ladder, scissor lift, or scaffolding.
Tip: stand back and frame the shot so the floor and ceiling are both in view next to the tallest window — dispatch needs to see what's above and below.
Check off what installers will need on site.
No proposals yet. Create one when you're ready to quote the customer.
Quality inspections, aerial-lift checks, safety sign-offs scoped to surveys.
No forms apply to this survey yet. Ask your admin to set one up under Settings → Forms.
Every change to this survey + its windows and photos.
No activity yet.