Mobile Sales Workspace
Use the six-tab Fusion sales workspace across Home, Schedule, Create, Inbox, Phone, More, compact records, quoting, and field communication.
Mobile Sales Workspace
The Clean Estimate Pro mobile app gives owners, managers, and sales reps one connected loop for canvassing, schedule, communication, quoting, close, and collection. The Fusion Sales workspace is organized around six tabs:
- Home
- Schedule
- Create
- Inbox
- Phone
- More
This guide explains what each part of the mobile sales workspace is for and how field sales users should use it.
Quick Add From Anywhere
Every role keeps the center Create action in the same tab position. The app checks the selected workspace's effective backend permissions before enabling each launcher. An eligible owner, manager, or sales representative can use it to start:
- a new lead
- a new customer
- a new estimate
- a job from an accepted estimate
- an invoice from a job
- a task or event for a call, email, meeting, deadline, or reminder
New leads and customers open their saved profile immediately. New estimate opens the native estimate-type picker. New job opens the proposal list so you can select the accepted estimate and schedule it as work. New invoice opens Jobs so you can select the job and tap Create Invoice.
Task / Event opens the native follow-up form. Choose the type and priority, assign it to yourself or an available teammate, optionally associate a customer, set the due date and time, and add notes. After it saves, the task appears on the assigned teammate's agenda. A custom role override can enable Task / Event for a field user without enabling CRM, estimate, job, or invoice creation. If the access check cannot be completed, the launchers stay disabled and show Access unavailable instead of guessing from the role name.
The Create tab opens a dedicated launcher, so it does not cover detail-page or estimate-builder actions.
More and the Business Hub
More is the stable office-business destination. Its first section keeps the complete record system visible for owners, managers, and sales representatives:
The prominent Search records control opens permission-aware Global Search. The separate Filter tools and settings field only narrows the destinations on the More page, so searching for a customer never gets confused with finding an app tool.
- Clients and Leads open separate compact CRM lists. Clients can sort by
name, newest, or last contacted; Leads keeps lead-specific filters and creation actions without mixing customer-only records into the list.
- Estimates opens the full estimate list and new-estimate workflow.
- Jobs opens all job statuses for the active workspace, not only the next
active field runs.
- Invoices opens the native invoice list with search, status filters,
balance, totals, line items, and linked-record navigation.
- Pipeline opens the lead and estimate pipeline without changing the six
primary tabs.
- Recurring Plans and Suds Club opens live, read-only plans, visits, and
exceptions for the selected workspace. Use the segment and status filters to review membership work; make scheduling or plan changes in the web workspace.
When you open one of these record workspaces from More, Android Back returns to More instead of jumping to Home or leaving the app. This keeps the business-hub context intact while you review Jobs, Invoices, Estimates, or another permitted destination.
- Owners and managers with View Analytics can open the live read-only
Analytics family for overview, lead-source, sales, crew, service-revenue, and Suds Club reporting across Today through Year periods.
- Additional role-permitted pages cover tasks, inventory, purchasing,
expenses, team performance, security, and workspace setup as their production mobile APIs become available. Unimplemented catalog pages say they are unavailable instead of showing preview data or editable controls.
Jobs flow from accepted and scheduled estimates. Invoices flow from jobs. The mobile lists make both lifecycle results visible even when optional scheduling or payments flags are disabled. Account, organization, pricing, tax, notifications, offline storage, and app information remain below the Business section.
To create an invoice on mobile, open a job that does not already have one and select Create Invoice. Clean Estimate copies the job customer, line items, discount, tax, total, and linked estimate into a new draft invoice, then makes it available in More > Invoices and the job payment workflow.
While the native mobile apps are still being prepared for wider release, signed-in sales users can also open the lightweight browser workspace at sales.cleanestimate.pro. It uses the same Clean Estimate login session, shows a phone-first Sales Workspace, and gives reps quick access to Home, Schedule, Customers, Lead, Quote, and Follow-ups tabs without exposing the tools publicly.
The browser workspace is intentionally narrower than the native app. It focuses on showing assigned appointments, searching customers, calling or texting from customer cards, opening full message history, saving new leads to the live CE Pro pipeline, assigning those leads to the signed-in rep, and opening the same residential quote builder used by the web app so reps can work through client/property details, services and pricing, add-ons, maintenance options, Red Line, autosave, and review/send from the road. Native app-only workflows such as offline sync, tracked canvassing shifts, property dispositions, and proposal close flows still live in the mobile app.
The Fusion v3 visual foundation gives the native shell a consistent field-operations design system. Barlow is used for readable field copy, Barlow Semi Condensed gives headings a compact, confident hierarchy, and JetBrains Mono keeps prices and measurements aligned. White screen headers finish with a thin blue-to-water gradient line, while cards use light borders, 13-pixel corners, and restrained shadows.
Customer-safe information remains on light surfaces. Commission, floor, and other rep-only context use a labeled navy Rep private surface or stay behind the privacy control. Safety orange is reserved for the single most important action on a screen, such as completing a close, instead of appearing on several competing controls.
Workspace and Data Isolation
The mobile Sales workspace is designed for both independent contractors and multi-location organizations. A signed-in user only receives data for a workspace where they have an active membership. Inactive workspaces and unrecognized workspace IDs fail closed, and sales representatives remain limited to assigned leads, estimates, jobs, and appointments on the protected sales routes.
The app sends a unique request ID with each API call for support tracing. Authenticated responses are marked private and non-cacheable across users and workspaces. Identical list reads already in progress are shared on the device, but switching workspaces clears that in-flight state before the next request.
Home
The Home tab is the rep home screen.
It is built to answer four questions immediately:
- What is on my agenda today?
- Which hot leads need follow-up?
- What is in my pipeline?
- How am I performing?
The screen includes:
- Today's assigned leads and appointments
- Hot follow-ups for new leads, repeated estimate views, and first-day estimate engagement
- Call, email, and text follow-up tasks
- Personal pipeline and performance
- A shared Today / Week / Month / Quarter / Year period filter
- The current workspace and configured telecom-number state
- A global search launcher
- Unread or needs-response conversations
- Payment-due estimates
- Active local drafts
- Record-backed AI coaching with an explicit action for each insight
- The center Create action for a lead, customer, estimate, job, invoice, task, or event
Home keeps the agenda before hot follow-ups so the next commitment is visible before performance detail.
The estimate-type picker uses compact bordered cards with an icon, description, step/time summary, and one clear start action. Android renders the card surface on a stable inner view so the accent rail and text padding do not collapse against the left edge.
From a scheduled lead's pre-knock brief, I'm at the door skips the generic estimate-type picker and opens the lead-linked native residential builder directly with the customer and service address prefilled.
Estimate entry from I'm at the door, a lead's New estimate, Quick Add, and estimate-type selection stays inside one native Estimates navigator. Residential, commercial, fleet, and holiday-light builders do not create a second nested navigator when they open, preventing an Android route crash before the first builder step appears.
Residential entry actions use the app's stable native builder route. This includes I'm at the door, a lead's New estimate, the residential card in the estimate-type picker, and qualified canvass handoffs. Customer, lead, address, and canvassing attribution continue with that route.
Inbox
The mobile Inbox is customer-threaded. Calls, voicemail, texts, emails, notes, and estimate-view activity for the same matched client appear as one customer card with the latest event and a total activity count. Tap the card to open the full conversation. Tap the customer name on either the card or the opened conversation header to open the matched CRM profile. US phone numbers display as XXX-XXX-XXXX for faster scanning. Approval requests remain separate System cards.
Use All, Needs you, Customers, and System to narrow the list. The sort control can prioritize Latest inbound activity, Our last message, or Latest estimate/invoice view. Inbound and team-message times are tracked independently, so a newer system event does not move a customer to the wrong directional position. Compact cards keep the precise latest estimate or invoice view time visible beside the reply context. Customer cards use a compact three-line summary so roughly seven conversations fit on a standard Android screen: customer and time, a full-width preview of the latest message or activity, then the channel and total activity count with small Call and Text actions.
When a customer thread opens, the filter strip keeps a fixed compact height while history loads. The header, filters, timeline, and composer therefore stay in their final positions instead of briefly stretching and snapping into place. The timeline is anchored to its newest item from its first painted frame, so opening a long history does not show an oldest-to-newest scroll animation. System activity notifications share one full-width horizontal rail rather than alternating or staggering across the conversation.
The composer automatically opens Email for an email-only customer. SMS requires a valid customer phone number, and only the recipient belonging to the opened customer thread can be submitted for either channel. Confirmed email and SMS events come back from the server timeline once, without a second optimistic copy in the conversation.
The sync status chip on this screen now shows the real number of locally queued changes waiting to upload instead of a placeholder count, so reps can trust what still needs to sync before they leave service.
The mobile app keeps the last loaded Home data visible while it refreshes, uses shorter read timeouts for live API calls, and no longer lets slower communication-summary lookups block the first Home load. That means reps should see useful schedule, follow-up, payment, and draft context faster even when a side service is catching up.
Mobile startup also has a five-second saved-session deadline. If encrypted session storage or session recovery stalls, the app releases the launch screen and returns to sign-in instead of spinning indefinitely. Valid session, profile, and organization data still restore automatically when auth recovery completes normally.
A successful sign-in now uses the session returned by Supabase immediately. Delayed startup events cannot replace that session, and only an explicit confirmed sign-out returns an authenticated user to login. When Supabase rotates a token, the newer persisted session replaces the in-memory token without interrupting the workspace. A temporary encrypted-storage delay also keeps the current known-good session visible rather than treating the delay as logout. If a network sign-in stalls, the button becomes available again with a connection message after 15 seconds. On Android, the login page resizes and scrolls with the keyboard so the sign-in action remains reachable.
If encrypted session storage finishes after the five-second startup gate, the app now restores that valid session in the background without replacing a newer login. A delayed signed-out callback must also be confirmed against the Supabase auth service before the app clears an active account. Revoked tokens still sign out immediately, while a temporary validation outage keeps the known-good session and retries with bounded backoff.
The login form accepts only one active password request at a time. Pressing the keyboard action and the Sign in button together, or tapping the button more than once before Android repaints it, reuses the same request instead of creating a burst that can hit the authentication rate limit. The bottom of the login screen also shows the active OTA release prefix and runtime version so support can confirm which update the device actually launched.
Signing out and immediately switching accounts is also serialized inside the app. The next password request waits for the previous account's Supabase logout and scoped local cleanup to finish, so a late logout cannot erase or revoke the new account's session. You can switch from a technician account to an owner, manager, or sales account without force-stopping the app between logins. While membership is loading or being cleared, the tab shell stays neutral instead of briefly guessing a sales workspace for the previous account.
Profile and workspace membership are loaded together during session hydration. The shared API client remains responsible for its bounded network retries; screens do not repeat those same retries through React Query. This shortens the wait before a failed or unavailable request reaches its recovery state.
Mobile data caches are scoped to the signed-in user and workspace rather than the short-lived access-token value. Routine token rotation therefore no longer reloads Home, Route, CRM, Inbox, search, and close-flow queries at the same time. A temporary Supabase or authorization dependency outage is also reported as a retryable service outage instead of an incorrect Unauthorized response. Read-only sales loaders can use their tenant-scoped direct fallback while the shared API reconnects; definitive invalid credentials still fail closed.
The offline-sync status banner now overlays the current screen only while it has useful status to show. When hidden, it no longer reserves an empty block above every mobile workspace.
Android builds also register the WatermelonDB JSI adapter for local offline data. That keeps queued drafts, pending sync counts, and cached proposal reads on the faster native path instead of the slower async SQLite fallback.
Canvass from More
More > Canvass opens on a shift-ready overview with the active campaign, territory, shift state, door and conversion metrics, goal pace, XP, competition, GPS state, and offline queue. Select Open field map to enter the dedicated map/list workspace.
The six primary tabs stay in place while workspace permissions load. The authenticated canvassing bootstrap decides whether More > Canvass is available and what campaigns, territories, and actions the signed-in user may access.
On the field map, select an address to review its available property context, choose a disposition, complete any required CRM or follow-up fields, and select the pinned Save visit action. See Mobile Canvassing for the complete field workflow and offline rules.
Schedule and Route
The Schedule tab organizes the signed-in rep's appointments and follow-ups in scheduled order. Leads are purple, jobs are blue, normal follow-ups are yellow, and high-priority follow-ups are orange. Filter by truck, technician/salesperson, record type, day/week view, or a date from the month picker. Each stop shows its visit time, customer, address, visit type, and saved notes. Open a stop to continue into the matching lead, job, or proposal.
Select Start route to send all stops with service addresses to Google Maps in the same order shown in the app. Stops without an address remain visible for review but are not sent to navigation. Pull down or use the header refresh action to reload today's schedule.
The route has explicit loading, empty, connection-error, and missing-address states. A failed refresh does not change appointments or remove the last schedule already visible on the device.
Pipeline from More
More > Pipeline is a mobile kanban board of active deals grouped by the organization's live sales stages.
Mobile Pipeline uses the organization-scoped live estimate data underneath. Reads use bounded pages and finish the full authorized result set, while sales representatives remain restricted to their assigned records. A later-page failure does not replace a previously complete pipeline with partial data. Stage changes still go through the authenticated mobile mutation path, so the app does not bypass server authority when a deal moves.
Each compact deal card shows the lead or estimate number, customer, service, value, street address, city/state, and time in stage. Open a card to review the full deal, contact the customer, open its proposal, or move it to another valid stage. Moving a deal to Won keeps the existing acceptance and authority checks; the new UI does not bypass close rules. Select Proposals in the Pipeline header to open the complete proposal list.
Pipeline, estimate, job, lead, client, message, and global search screens now preserve the last visible results during background refreshes. Search fields also wait briefly for the rep to pause typing before hitting the live APIs, which reduces duplicate mobile requests and makes list navigation feel steadier in the field.
Use the Pipeline service-line buttons for a fast Residential, Commercial, or Holiday Lights view. Open Filters to combine exact job types, one or more salespeople, a last-activity age range, and shared customer tags. Multiple choices inside Job type, Salesperson, or Customer tags match any selected choice; the sections themselves combine. Pipeline totals and empty states use the same filtered deals. Sales representatives remain self-scoped and do not see a salesperson section. The filter sheet keeps each control in a compact dropdown with a selected-value summary. Dropdowns start collapsed; tapping one shows only its choices, and opening another collapses the previous dropdown without clearing its selections.
Pipeline uses one continuous vertical scroll for its workspace content. The controls, filters, summary metrics, stage rail, and deal cards move together, so the Pipeline controls scroll away while you work farther down the deal list instead of occupying a permanently fixed block. The normal app header and bottom navigation remain available.
Lead Page
Lead detail is the pre-close workspace. It surfaces:
- Appointment time and address
- Native Edit, Schedule/Reschedule, and Assign actions
- A direct link to the linked customer profile
- Deposit or payment context from linked estimates
- Message history preview
- Estimate history
- Quick actions for calling from the company line, opening the message thread, and launching a new estimate
On the Leads list, Filters combines job type, salesperson, last-activity age, and shared customer tags with the existing search and status controls. Job types, salespeople, and tags allow multiple selections and match any choice inside their section; separate sections combine. Each compact dropdown shows a summary while collapsed and expands on tap, with only the opened dropdown's choices visible. Opening another dropdown keeps the prior selections and collapses that section. Clear all removes the advanced selections while the current search and status filter stay active. Lead search is applied before the mobile result window, so an older matching lead is not hidden merely because newer leads exist.
When the customer confirms the current appointment, both the lead row in Clients and the lead detail page show a green check with a prominent CONFIRMED label. Scheduling a different date or arrival window from mobile clears the old confirmation until the customer confirms again.
New lead intake always resolves a customer. Start typing a customer name to search the active workspace, select an existing profile to reuse its contact and property data, or choose Create new customer to save both records in one workflow. Lead source is selected from the managed workspace list; Add new source creates and selects an option without leaving intake. The same form can leave the lead unscheduled or save its appointment date, time, assignee, and appointment notes.
Dates and times are selected instead of typed. Tap a date field to open the in-app month calendar, move between months, and choose the day. Tap a time field to choose a readable AM/PM time in 15-minute increments. The same controls are used when editing or rescheduling a lead, scheduling a proposal follow-up, logging a canvassing follow-up or appointment, rescheduling an active job, and editing an invoice due date.
Address suggestions begin after two characters, reuse recent results, and display a compact street plus city/state line. Selecting one fills street, city, state, and ZIP.
If the linked customer is a business account, the lead page now uses the saved company name everywhere the mobile shell needs a display name, including message handoff and call actions.
Client Page
Client detail is the customer relationship workspace. It surfaces:
- Contact details and service address
- Lifetime value and recent activity
- Payment-due preview
- Message history preview
- Lead, estimate, job, and invoice history
- Quick actions for the company line, messages, edit, and new estimate
When a rep taps New estimate from a client or lead, the app carries the linked client, lead, contact details, and service address into the estimate picker. Choosing Residential then opens the builder with that CRM context already filled in.
Linked record navigation preserves context. Opening an estimate from a customer, lead, job, or invoice changes the estimate Back action to return to that originating record. Lead, estimate, job, and invoice pages also expose a direct customer-profile action, so users do not have to reconstruct the CRM path through search.
Office users can reschedule an active job from job detail. Completed, invoiced, and cancelled work remains locked. Confirmed work carries a green CONFIRMED indicator through the Jobs list, Dispatch inbox, and job detail; rescheduling removes the old confirmation. Invoice detail supports editing the due date from the same in-app calendar plus notes, while the full estimate editor remains available from the proposal workspace.
CRM now supports company-name-only customers cleanly. Reps can create, search, open, edit, and call business accounts from mobile even when there is no personal first-and-last contact name saved on the record yet.
If the extended sales-history API is temporarily unavailable, the client page still loads the core CRM record instead of dropping the rep into a blank dead-end state. The page now keeps the contact card, call action, edit flow, estimate history, and message handoff available while the live sales timeline reconnects.
Mobile-created customers now stay visible in CRM search and client detail even when they originate from the proposal-client workflow instead of the main admin client table. New customer and new lead forms also protect typed drafts if a rep hits Android Back by mistake, and modal headers respect the phone safe area on smaller screens.
New lead and new customer forms now include Google address autocomplete on the address field. Reps can start typing a street address, choose a Google suggestion, and the mobile app fills the street, city, state, and ZIP fields before the record is saved.
Proposals
Estimate work is launched from Home, Pipeline, lead detail, client detail, and canvassing property records. Select Estimates from the Pipeline header to quickly resume, present, send, schedule, or collect against a quote.
It includes:
- Search by customer or estimate number
- Filters for Drafts, Sent, Viewed, Signed, Needs Deposit, and Paid
- Compact status-header bands on every row, with the complete service address
- One-tap entry into the estimate close screen or back into a saved local draft
This tab is optimized for the actual field workflow:
- Resume a draft
- Reopen a sent quote
- Edit a synced estimate in its native builder
- Follow up after a view
- Reopen a signed quote
- Collect the deposit
From estimate detail, select Edit estimate to reopen the existing residential, commercial, fleet, or holiday-lights builder at its first editable step. Use Back and Next to review or change every section. The residential Review screen also includes Edit estimate details, which returns directly to the first step. The bottom builder bar keeps the per-visit total and navigation on one compact row. The blue Next or Review Estimate action remains visibly available without scrolling, while later steps add Back beside it. On Review, Send Estimate, Present on device, and Save as Draft remain visibly framed as actions; a usable action must never be represented by an unframed label or invisible tap target. The app restores the canonical server snapshot into the device's organization-scoped draft cache; it does not open the admin website. Saving uses the stored proposal and estimate revisions to update the same record and warns if another user changed it first.
Editing imported Holiday Lights estimates
Some manually imported or older Holiday Lights estimates were created before the native builder saved its own snapshot. For a compatible orphaned manual import, Edit estimate first asks Open as Holiday Lights? Nothing is written if you cancel. If you continue, the app rebuilds an editable draft from that estimate's own customer, property, Holiday Lights scope lines, and pricing. It never searches for or links a different estimate by customer, address, or amount, and it does not rerun the import.
Review the reconstructed scope and pricing, then create or refine the visual design as needed. An unchanged first save preserves the imported subtotal, discounts or price-lock adjustment, tax, and total. If you intentionally edit scope or prices, the builder recalculates the applicable tax and totals from those changes. The save is atomic: it attaches the native Holiday Lights snapshot to the same estimate ID without creating a duplicate. Later edits reopen that saved native snapshot and continue updating the same estimate.
The normal assignment and manager permissions, editable-status rules, and stored proposal and estimate revisions still apply. An unauthorized or locked estimate cannot be adopted, and if another teammate changes it first, the app asks you to refresh instead of overwriting the newer version.
The native estimate detail starts with the full service address over a satellite/map property visual and shows one in-screen Estimate header and the customer name once. The navigator does not stack a second Estimate Details bar above the approved screen header. Estimate details is collapsed by default, while the line-item breakdown is open. The same scroll continues through deposit, payment, signature, attachment, and note sections. Send estimate delivers the quote to the customer; Open Close Kit starts the distinct in-person approval, signature, scheduling, and payment flow.
The Review screen preserves the existing estimate number. Email and SMS destinations already stored on the customer are selected when the draft finishes loading. There is no additional Delivery Confirmation checkbox: select at least one valid destination and tap Send Estimate.
Commercial building proposal steps now block incomplete handoffs before a rep reaches review. A proposal needs a client, complete property address and square-footage details, at least one service per property, positive pricing, and a selected service frequency before it can advance to final review.
Red Line in Mobile Residential Estimates
Sales reps with Red Line Access now see the same residential floor-pricing guidance in the mobile app that managers see in the web estimator.
The Fusion Red Line foundation uses a segmented price track with a fixed ink floor marker, status-aware color, aligned mono prices, and accessible increment/decrement controls. The rep can still drag or step the live price, while floor and commission details stay in the rep-private treatment and are masked when privacy mode is on.
When the workspace has Red Line enabled in Pricing Manager, the mobile residential pricing step shows:
- The floor for each selected service
- The service status, such as below red line, at red line, near red line, above red line, or healthy upside
- The rep commission when the workspace allows reps to see commission
- A Red Line summary card with total service floor, sold service subtotal, and commission when visible
Mobile price edits are guarded by the floor. If a rep tries to enter a service price or rate below Red Line, the app raises it back to the floor and explains why. The final review step repeats the Red Line summary and blocks Save as Draft or Queue Delivery until every service is at or above its floor.
Mobile-created residential proposals also save the Red Line snapshot with the queued proposal data so the office can audit the floor, service status, and commission context after the draft syncs.
For sales coaching, use the Residential Red Line Rubric to decide when a mobile quote is healthy, near floor, or ready for manager review.
Mobile Property Prefill
Residential estimates in the mobile app now use Google address autocomplete and the same server-side property lookup used by the web estimator. Reps can start typing the property address, select the matching Google suggestion, and the builder fills the street, city, state, ZIP, and saved coordinates before Clean Estimate looks up available property data and pre-fills:
- Square footage
- Stories
- Lot size in acres
- Year built
The property step marks values that came from the property API, keeps the fields editable for field verification, and recalculates the house-wash quantity from the returned square footage.
AI Photo-Assisted Measurement
In the numbered residential builder, select at least one service, then use Measure with map or photo from Property or Services. On Residential Estimate > Measure > Photo assist, take one photo for the selected service item, such as a deck, patio, driveway, roof, fence, or gutter run. The photo stays attached to that specific service. When online, select Analyze this service photo to request a measurement range.
The response shows the suggested starting point, low-to-high range, confidence, visible observations, measurement basis, and limitations such as missing scale, perspective, obstructions, or an incomplete surface. A single photo is not a survey-grade measurement. When the image does not support a safe range, the app requires a manual measurement instead of inventing one.
AI never changes the estimate or calculates a price. To use a suggestion:
- Select Use as starting point.
- Check the quantity on site and edit it when needed.
- Select Confirm verified measurement.
- Select Apply to estimate.
Only the confirmed quantity is passed to the selected service. CleanEstimate then recalculates the line through the existing organization price book. A new photo or service selection clears the old suggestion. Offline, disabled-AI, credit-limit, and provider-error states leave manual measurement fully available and never show a fabricated fallback range.
If the active residential price book is unavailable, the property step remains editable but services and totals stay locked. Select Try pricing again to reload the organization-scoped bundle, or Keep draft & exit to preserve the property work in Proposals and return after pricing is available. Clean Estimate does not substitute built-in, expired, or another organization's rates.
Residential Upsells and Plans
The mobile residential wizard now includes a dedicated Upsells step between services and pricing review. Sales reps can add the next best residential service for a bundle conversation, build a maintenance plan with visit count and agreement length, and create a quick holiday-lights sidecar using roofline feet, mini-light strands, and wreath count.
Enabled maintenance plans and holiday-lights sidecars flow into the mobile pricing review and final review screens so the rep can confirm the annual or seasonal value before saving, sending, or handing the phone to the customer.
Messages
The Fusion Inbox is a primary Sales tab. It combines real customer conversation summaries, Red Line approval state, and recorded proposal-view activity without mixing organizations. Use All, Needs you, Customers, and System to narrow the list.
Each Inbox result is a separate bordered card with its own colored left edge, shadow, timestamp, and latest activity label. Needs-response cards use a separate alert treatment. Compact customer cards keep the activity count and small Call and Text actions on the final line so the list remains dense without allowing one conversation to visually run into the next.
Owners and managers see pending approval requests as Needs you. Sales representatives see the status of only their own requests. Proposal-view alerts respect the assigned-representative scope, and every item opens the canonical proposal or customer thread instead of a duplicate record.
Open a customer row to enter the full communication thread.
It supports:
- Search by customer, phone number, or thread preview
- Full customer thread history across SMS, email, calls, voicemail, estimate engagement, and payment activity
- A company-line call action and email action from the thread header
The thread view is meant to be the rep's customer history surface. Before calling or quoting, the rep can quickly see the most recent inbound message, sent quote activity, or missed call without leaving the thread.
When a customer does not have live thread history yet, or the thread service is still catching up, the mobile thread screen now opens with the saved customer context and shows a reconnecting / no-messages-yet state instead of a hard failure. That means reps can still confirm they opened the right customer and start a company-line call even before history finishes loading.
Proposal detail shows a recorded-view nudge and a Write follow-up action. The representative reviews each SMS or email draft before sending it.
Phone
The Phone tab is the mobile company-phone workspace for owners, managers, and sales representatives with phone access. It uses the same durable call history as the web Phone workspace.
At the top of the tab:
- Confirm the shared company number and in-app registration state.
- Enter an approved customer number in Quick dial and select **Start
company call**.
- Review calls today, missed calls, voicemails, and recorded talk time.
- Filter activity by All, Inbound, Outbound, Missed, or
Voicemail.
Every call is shown as a separate activity card. The card identifies the customer or phone number, direction, result, duration, representative, and voicemail preview when available. Select Call back to use the company line or Text to open the matching communication thread. Tap the card itself to open Call intelligence with the speaker-separated transcript, AI score, category feedback, strengths, coaching opportunities, recommended next steps, follow-up draft, work created from that call, and other open tasks tied to the same customer or lead.
The detail page keeps missing information explicit. Calls that have not completed AI review show No coaching review yet; calls without a retained transcript show Transcript unavailable. Voicemail text is labeled as a voicemail transcript rather than as a scored sales call.
Owners and managers with phone-review permission see team activity. Sales representatives see only their own calls and only their assigned related tasks. Phone data, metrics, filters, transcripts, coaching, and tasks stay scoped to the signed-in user and selected workspace.
The tab itself remains visible when an administrator removes phone access. In that case it shows an access-off explanation instead of a generic request error, and it does not request protected call history. If View Phone Activity remains enabled but Place Phone Calls is disabled, call history and detail stay readable while Quick dial and every callback action disappear. Restoring the backend permission restores those actions without changing the six-tab layout.
Incoming calls do not require the Phone tab to be open. A registered Android device still displays the incoming call controls over the current screen or through the Android notification.
Search
Search is no longer trapped inside one list. A record-search button is available from every primary tab: Home, Schedule, Create, Inbox, Phone, and More. It opens the same global search screen, which can find:
- Customers
- Leads
- Estimates
- Jobs
The filters come from effective backend permissions. Owners, managers, and sales representatives normally see CRM, Leads, Estimates, and Jobs. Crew leads and technicians with the default permissions see only jobs assigned to their user, crew, or truck. If no searchable record type is allowed, Search explains that access is unavailable; a failed permission check is shown as an error, not as an empty result set.
Customer matching covers person name, company name, email, phone, street and unit, city, state, and ZIP. Results show the contact identity when the company is the title and show the complete address, so it is clear why a result matched. These are customer identity and contact fields; private notes and other internal metadata are not searched.
Conversation search is not advertised because message-thread results are not part of the current global Search API. Use Inbox to search conversations. This lets an authorized user jump straight to the right live record without showing a filter that cannot return results.
More and release information
The More tab contains the Business record hub followed by profile, organization, pricing, notification, offline-storage, and support settings allowed for the signed-in role.
Use Search records for customers, leads, estimates, and jobs. Use the separate Filter tools and settings field when you only need to find a More destination.
Open More > About when support asks which app release is installed. The page shows the actual native build number, the active Expo release prefix, channel, runtime, and whether the app launched its embedded bundle or an over-the-air update. Select Check for update to check the device's assigned Expo channel and restart into a downloaded update.
Calling from Mobile
Lead pages, client pages, message threads, and estimate detail all support Call from the rep-side quick-action bar.
In the signed Android 1.1.2 build, Call opens a company-line sheet. Select Call in Clean Estimate to talk inside the app while the customer sees the workspace Twilio number. The full-screen call surface shows connecting/ringing/connected state and provides mute, unmute, and end controls. The app asks for microphone access before the first call.
If native registration is unavailable, Clean Estimate automatically uses its secure callback: it rings the rep's profile phone or the workspace forwarding number, then calls the customer after the rep answers. Mobile web and normal web continue to use this callback behavior. Use Device Dialer Instead remains an explicit fallback and uses the phone's personal line.
Authorized Android office users can also answer incoming company calls. An incoming call displays the caller number and Answer / Decline controls. Registered users ring first for 18 seconds. If no one answers, Clean Estimate rings the configured office forwarding number and then uses workspace voicemail. Roles without Make calls do not register or ring. If a workspace has more than ten call-capable memberships, CE Pro gives the available ring slots to the most recently registered authorized Android users so inactive memberships do not crowd out the office staff currently using the app.
Native incoming calls depend on Android call notifications. Allow notifications, do not battery-restrict the app, and sign in at least once after installing the build. Clean Estimate refreshes the registration while the session remains active so the office phone does not silently expire after an hour.
Release builds validate that the Firebase configuration includes the com.cleanestimate.pro Android client before native packaging continues. This prevents a signed build with mismatched Firebase resources from appearing healthy while incoming company calls cannot register. The current Android runtime also uses the Expo SDK 55-supported React Native 0.83.10 patch.
Native in-app calls are logged with the related record and duration. They do not currently create a recording or transcript. The secure callback and forwarding paths keep their existing provider recording behavior.
This feature required Android 1.1.2 because Twilio Voice and Firebase are native modules. It cannot be delivered to a 1.1.1 binary by OTA update and is not available in Expo Go.
Recommended Rep Flow
For most field visits, the best loop is:
- Open Home
- Tap the next appointment
- Review message history on the lead or client page
- Start a company-line call if a call is needed
- Launch or reopen the estimate
- Present the quote from estimate detail
- Hand the device to the customer for signature
- Create a deposit or balance link when payment is needed
That is the core purpose of the mobile sales workspace: fewer disconnected lists and more direct action.
For browser-only field work before the native app is installed, use this shorter loop:
- Open
sales.cleanestimate.pro - Check Schedule for assigned lead and quote appointments
- Search Customers to call, text, email, open message history, or start a quote
- Save new prospects from Lead
- Use Quote to open the same residential estimator flow used by the main web app, including services, add-ons, maintenance plans, Red Line, autosave, and review/send
- Complete the estimate or open the full admin estimate view when the job needs more office detail
- Return to Follow-ups for call, text, email, map, or quote-builder shortcuts
Related articles
Was this article helpful?
Still need help? Contact support