Managing Leads

Track incoming leads from first inquiry through conversion, including deposits and early split payments.

Beginnerownermanagersales repUpdated 2026-09-24

Managing Leads

The Leads page tracks every potential customer from first contact to closed deal. Open the Manage section in the admin sidebar, then click Leads to see your full lead list.

Screenshot placeholder
Leads page showing pipeline summary cards and lead table

Clean Estimate V2 lead workspace

In Clean Estimate V2, open Pipeline under Work. Board preserves the stage workflow, and All leads is the full responsive list. Map plots only saved service properties with valid coordinates, Follow-up shows open leads idle for more than seven days, and Sources groups the filtered leads by their actual attribution.

Search by customer, email, phone, lead number, address, city, ZIP, source, location, or assigned rep. Global search stays tied to the current query: changing the query clears the previous dropdown while the newer search is pending, an older response cannot replace a newer search, and clearing or dismissing the search does not reopen old results. Filters cover pipeline stage, rep or Unassigned, managed source or Unattributed, residential/commercial segment, shared customer tags, last activity, exact created dates, and location. Multiple selected tags match any tag; tags combine with every other active filter. Sort the current view or export its exact rows to CSV. Stage changes continue through V2's guarded server workflow, including required reason handling. New leads continue to use the real customer/property form and structured date/start/end appointment controls.

Saved views, bulk stage/rep changes, bulk automation enrollment, the multi-service job type filter, the Estimates count column, and a unified per-lead activity feed (stage moves, rep reassignment, and manual Log activity entries) all now work as described under Sales Pipeline. AI score/tier and V1's Weighted Pipeline forecast still need their V2 foundations; see V1 to V2 Lead Workspace Parity for exactly what is missing and why.

Pipeline Summary Cards

Eight status cards sit at the top of the page. Each card shows the number of leads in that stage:

StageDescription
NewJust came in, no action taken yet
Appointment ScheduledSite visit or phone call booked
Estimate CreatedAn estimate has been drafted
Estimate SentThe estimate was sent to the customer
ApprovedCustomer accepted the estimate
Deposit CollectedCustomer paid a deposit
ConvertedLead became a paying customer
LostLead did not convert

Click any card to filter the table to that status.

Stale Lead Detection

Leads that go more than seven days without an update get flagged automatically. A warning badge appears on the lead row. This keeps leads from falling through the cracks.

The Home dashboard's Leads gone quiet card shows the exact number of open, non-archived leads that have been idle for more than seven days, even when the card previews only the oldest few records.

Check for stale leads daily. Either update them with a note or move them to Lost if they are no longer viable.

Pipeline Value

The pipeline value is the total stored value of leads in non-terminal stages. A lead's value can be entered manually or follow its primary estimate's latest pricing; CE Pro does not add estimate options together. The total appears near the top of the page and updates in real time as you add or close leads.

Creating a Lead

  1. Click the Create Lead button.
  2. Search for an existing customer if this is a returning account, or click Create New Customer if they are not in the CRM yet. For a company portfolio, choose the specific service site beneath the company rather than the company account itself. The inline new-customer option appears only for roles that can manage client records.
  3. If you are creating a new customer inline, enter the customer's Name

and at least one reachable Email or Phone. CE Pro creates the customer record automatically when you save the lead. New phone entries must be a complete 10-digit North American number, an 11-digit number beginning with 1, or a supported international number beginning with + and its country code. Ambiguous formats and extensions are refused rather than assigned a guessed country.

  1. Leave Service texts and Service emails unchecked unless the customer

explicitly approved those channels. For selected channels, record whether permission was verbal in person, verbal by phone, written, or supplied in a customer online request. Adding contact information alone is not consent. If the phone or email is edited after permission is selected, that channel is cleared and must be approved again for the final destination. Service texts require a complete, deliverable phone number.

  1. Select a Lead Source from the dropdown.
  2. Type the Service Address. Google Places autocomplete will help, and you can click a suggestion directly without relying on keyboard navigation. The lead window stays open so you can finish the other fields.
  3. If the selected customer already has saved properties, pick the right Saved Property before you continue. When there is only one saved property, CE Pro now auto-selects it for you. Archived properties are not available for new leads or lead reassignment.
  4. Add any Notes about the inquiry.
  5. Assign a Rep from the dropdown if you want to route this lead to a specific salesperson. Crew-only teammates are not shown because they do not work leads in the sales workspaces.
  6. If your role has Manage calendar, optionally select **Schedule an

appointment, choose the date and start/end times with the browser pickers, and select the separate Appointment assignee who will run the visit. A web-capable teammate with Run sales appointments but without Manage calendar also sees scheduling when the lead is assigned to themselves; the appointment assignee is then fixed to You. This does not change Assigned rep, who continues to own the lead. A teammate must have Run sales appointments** and access to the service location before they can be selected. The end time must be after the start time. Remove the appointment when no visit has been booked.

  1. Click Create Lead.

The New Lead quick-add and new-property creation during lead reassignment use structured service-address fields for street, optional second address line, city, state, postal code, country, and available Google Places details. Missing values stay blank; CE Pro does not fill them from older records.

The New lead dialog keeps keyboard focus inside the form, returns focus to the opener when closed, and asks before discarding edited details. Escape and the close control stay disabled during an active save so an uncertain result cannot be hidden by dismissing the form.

The existing-client search and Location, Job source, Segment, and Assigned rep controls have accessible names for screen readers. Their visible form layout is unchanged.

The New lead dialog uses the wider V1 layout again, giving the form more room without changing its fields or save workflow.

The web New lead form uses visible labels for inline customer name, phone, and email. Name is required, with at least one reachable email or phone. Press Enter from a form field to submit. Missing or invalid values show field-level errors; an invalid attempt does not create a lead or inline customer.

For an inline customer, the customer, contact methods, selected service-message grants, property, and lead commit together. If lead creation fails, none of those partial records or grants remain. Selecting an existing customer never changes that customer's consent.

The office lead form uses one save request for one deliberate lead intent. The form disables its fields while the save is in progress. If the browser loses the response, select Try again; Clean Estimate reuses the same request so the original client, property, lead number, pipeline stage, and activity are returned instead of creating a duplicate. Closing the form and selecting New lead again starts a separate intent. After a confirmed save, the app opens the lead detail page with the canonical client, service property, location, source, and stage. Refreshing or returning to Pipeline keeps that same record.

If a recovery attempt receives a session, permission, or validation error, the submitted details stay locked because that response cannot prove whether the first request already saved. Select Try again to recover the same intent; use Start new lead only when you accept that a separate lead could duplicate one that was already saved.

A signed-in customer can also create a lead from Request Service on the customer-account Home page. Those leads show source Customer portal and open in the normal default pipeline; Holiday Lights requests can follow the Holiday Lights routing rule. Open the lead to see the requested service, preferred date, original customer notes, and received time. The preferred date does not book the shared calendar—the office still confirms and schedules the appointment with structured date/start/end controls. Retry-safe request keys prevent a reconnect or double click from creating duplicate leads.

When the save includes a selected service-message grant, the signed-in teammate's active status, web-capable role, and selected office access to an active office are rechecked inside the save. A teammate or office deactivation, role change, or office reassignment racing the submission cannot leave a stale service-message grant.

Screenshot placeholder
Create Lead dialog with fields filled in

Lead Table

The table opens with 25 leads per page. Use Rows per page below the table to switch between 25, 50, and 100, then use Previous and Next to move through the filtered results. Selecting all applies to the leads visible on the current page.

The first page stays visible while newer lead data refreshes in the background. Opening the Sales workspace also avoids preloading every lead detail page, so a large pipeline does not create a burst of unnecessary requests before you choose a record.

Opening a lead now includes both the lead record and assignable team members in the initial secured page response. The workspace no longer shows a loading spinner while separate lead and team startup requests repeat authentication.

The table displays all your leads with these columns:

ColumnDescription
Lead #Auto-generated lead number
ClientCustomer name
Service AddressProperty address
StatusCurrent pipeline stage
SourceWhere the lead came from
Assigned RepSalesperson responsible
CreatedDate the lead was entered
Est. ValueDollar value of the potential deal

In the mobile app, the same information is reorganized into compact cards. The customer name and value stay readable even when an imported lead number is long; the identifier moves into secondary metadata instead of squeezing the identity or amount. Address, city, source, assignment, and engagement details appear only when they exist on the live record.

Updating Lead Status

Each lead row has a Status dropdown. Click it and select the new stage. The change saves immediately and updates the pipeline summary cards.

Screenshot placeholder
Status dropdown open on a lead row

Editing Lead Details

Open any lead to update the record directly from the lead detail page.

In the mobile app, the lead detail page groups calling and record actions, customer information, estimates and payments, recent messages, and notes into labeled sections. A compact progress strip at the top uses the active subscriber workspace's configured pipeline names, colors, and order. Each tenant therefore sees its own sales process rather than a fixed five-stage tracker.

Before using Call, Message, or New Estimate, confirm that the linked client is the intended customer or service-site recipient. If the lead stayed linked directly to a standalone client after that client was promoted into a V2 company portfolio, reassign the lead to the intended child service site first, unless a sent estimate blocks reassignment as described below. The reassignment preserves the lead context and makes that child site the communication recipient and work owner; the portfolio parent itself is only a rollup.

  • Change the Status without returning to the list view
  • Reassign the Assigned Rep to any active owner, manager, or sales rep
  • Update the Lead Source from the shared dropdown, or create a new lead source inline
  • Fix the service address, city, state, ZIP, and property square footage
  • Edit the linked customer's name, email, and phone from the same screen
  • Tap the Appointment card on the same page to change the date or time, or

switch the lead back to Unscheduled

  • Assign leads to a salesperson. Truck and crew assignment begins on the job,

not the lead.

On the web, one compact Lead & customer editor now keeps the fields used most often together:

  • customer name, email, and phone
  • status, assigned sales rep, and lead source
  • service address, city, state, ZIP, and property square footage
  • internal lead notes

Change any of those fields, then select Save changes once to commit the record. The web page keeps the scheduled appointment and linked estimates in compact sections, with Tasks & Notes and activity in the left column. The right rail follows the V1 composition: a six-row Summary, Deposit & Payments, automation history, and a safe Archive action.

The lead header keeps the V1 follow-up controls together. More groups View client, View account, and Mark lost; the linked client's Tags stay compact and inline below the header controls. The configured V2 stages are shown as one contiguous horizontal strip. On a narrow web window the strip scrolls horizontally without changing the stage names or order.

The Activity panel can log an internal Note, Call, Email, Text, or Meeting entry. These labels describe the activity record only; logging one does not send a message or start a call. Existing notes keep the default Note type.

The Status control uses your configured V2 pipeline stages, so a stage change does not invent a separate payment or acceptance status. Property square feet must be a positive whole number; leave it blank to clear the lead-owned value. The lead save checks the record's current revision, so a stale tab is asked to reload instead of overwriting newer source, assignment, stage, address, or note changes. The save covers lead-owned fields in one request.

When a lead has a linked client, contact and service-address edits can then be offered together as one explicit confirmation. Declining leaves the linked client and shared property unchanged while keeping the lead-owned save. If the sync is accepted but one part fails, the page reports the partial result and asks you to reload before trying again. Shared property edits use the linked property record, so they do not create a second address copy on the lead. The confirmed property follow-up also checks the structured address that was shown when you confirmed it; if that shared property changed elsewhere first, the write is refused and the editor requires a reload before another attempt.

For contact changes, clearing an email or phone retires only the displayed current method; another valid method may become the current fallback after the page reloads. When no method is primary, replacing the exact fallback shown in the editor makes that value current without carrying over the old method's verification or consent state. A retired identifier is no longer used for current sign-in, delivery, or search, while its history is kept.

Bulk stage or rep changes keep each selected lead's current revision. If some rows are stale or unavailable, successful rows remain applied and the failed rows stay selected with their individual reason so you can reload and retry only those records. Saved views can be saved, renamed, applied, and reopened without losing the current pipeline and location scope.

Clean Estimate V2 appointment controls

Clean Estimate V2 uses structured appointment fields instead of asking the office or road team to type a time window:

  • On web, use the Date, Start time, and End time controls in the

create-lead dialog or the lead detail page, then choose the separate Appointment assignee. The shared Calendar shows that visit beside service work.

  • In the mobile app, the same fields open the native calendar and clock

pickers. A new lead can include its appointment while offline because the lead and schedule are queued together. Reconnect before changing or clearing an existing lead appointment because the current editor gates that action on connectivity. On Android, use Clear time beneath a selected start or end field to return the appointment to date-only or remove just the end time.

  • The approved V1 mobile controls, labels, and styling stay unchanged. When

changing an existing appointment, Save schedule keeps the editor open until the shared calendar confirms the revision. Success closes the editor; a stale revision, unavailable time, ineligible assignee, changed permission, an office-archived lead, or connection failure keeps it open with an actionable error. A road teammate can preserve or release only an appointment assigned to themselves; Move others' cards alone does not grant office calendar authority. This mobile flow cannot override a calendar conflict.

  • An end time requires a start time and must be later than it. A date can be

saved without exact times when the visit is booked for the day only.

  • Appointment types are limited to the choices shown in the app. Offline new

lead creation applies the same list as the web form, so a stale or modified client cannot introduce an unsupported type. Released app versions do not carry the shared-calendar revision on an existing-lead PowerSync edit; CE Pro rejects that one legacy schedule operation with legacy-appointment-update-online-required and syncs the authoritative office schedule back down instead of accepting a last-write-wins overwrite. Other queued mobile work continues syncing. Current app versions use the acknowledged online save for every existing appointment change.

  • Selecting Unscheduled clears the date, both times, appointment type, and

any older typed arrival window together.

  • Older leads that only have a typed time window keep showing that window when

the date changes. Choosing a structured start or end time replaces the old window; selecting Unscheduled removes both formats together.

  • On the web, exact-time overlaps are blocked before save. Enter a **Conflict

override reason and select Schedule anyway** only after confirming the teammate or crew can cover both events. Changing the date, times, type, or appointment assignee clears an earlier override approval and checks the new slot again.

  • A web-capable teammate using only Run sales appointments cannot reassign

the appointment or use Schedule anyway. They must select another time.

  • Archiving or restoring a scheduled lead removes or restores shared-calendar

capacity, so it requires Manage calendar. Archival advances the schedule revision, and the locked writer rejects an archived lead, preventing an editor opened earlier from restoring it accidentally. Unscheduled leads keep their normal archive controls.

If the lead is already linked to a client record, CE Pro asks whether you also want to update that linked client. This keeps lead-side property edits separate from the core client record until the office confirms the sync.

When you move a lead to a different client, select one of that client's saved properties or enter a new service address. CE Pro applies the replacement address to the lead and its draft estimates together. Sent estimates still block client reassignment so customer-facing proposal history stays intact. The new-property option in this handoff uses those same structured address fields and leaves missing values blank instead of filling them from history.

The lead detail page also includes a shared Tags card. Saving tags there updates the linked client record so the same labels stay available in lead, estimate, job, and invoice filters. Teammates with view-only access see the saved lead, tags, estimates, appointment, tasks, and activity without edit, scheduling, payment, or delete controls.

Archive lead is a soft archive. It keeps the lead's estimates, activity, stage history, and audit trail available for permitted reads; it does not delete financial or historical records. A teammate can archive an assigned lead, while archiving another teammate's lead requires Move others' cards. Archiving or restoring a scheduled lead also requires Manage calendar and releases or restores its shared-calendar capacity.

The Open Tasks and linked-client Tags cards stay tied to the lead and client currently open. If the connection drops while adding or completing a task, creating a tag, or saving tags, the card pauses further edits and offers Reload latest. Reloading confirms the current record before you continue, so a write that may already have reached the server is not accidentally submitted twice. A control retained from a lead or client you just left is ignored rather than being applied to the newly opened record.

Lead detail actions and follow-up

The web lead detail page keeps the V1 control composition while using V2's scoped services:

  • Messages opens the linked client's existing communication history in a

right-side panel. It is shown only when the teammate has View inbox permission and the lead's client has a phone or email contact method. Opening the panel does not create a conversation or send a message. The panel reuses the customer-scoped Inbox workspace, so teammates can open a conversation, read its full timeline, and send an explicit reply without leaving the lead. Use Open full inbox when the full Inbox route is more convenient.

  • Enroll in Automation uses the active lead-eligible workflow list and the

existing lead enrollment contract. It appears only with Manage automations. The lead page keeps its automation activity section behind the same permission gate.

  • Automation activity shows the lead's complete run history, including

runs from workflows that were later archived. Use Load older activity to continue through older runs. Each step keeps the channel and action that were used when that run started, so editing a workflow later does not change the historical record. Switching to another lead while activity is loading resets the list and keeps the new lead's loading and pagination state scoped to that lead. Pagination is fenced and ordered by each run's immutable creation time, so a queued run that starts while older pages are loading does not disappear or move between pages; the row still shows its real start and completion times, and a queued row uses its creation time until it starts. A failed history read includes Try again, which reloads the current lead's first page and clears stale pagination work.

  • Mark lost moves the lead through the configured Lost stage and requires a

reason. The save uses the lead's current pipeline revision and does not carry unrelated unsaved editor fields into the status change.

  • Archive lead soft-archives the current lead after the same revision check.

The action preserves estimates, activity, stage history, and audit history; ownership and calendar permissions are checked again by the server before the archive is written.

  • The page shows the configured pipeline stages as a contiguous progress strip,

a six-row Summary (Status, Sales rep, Source, Estimate value, Created, and relative Updated such as 8d ago), stale status after more than seven days without an update for non-terminal stages, and stored scheduled or confirmed appointment indicators. A confirmed badge appears only after a customer confirmation is recorded for the current appointment.

  • Open Tasks and the existing activity feed share one inline panel. New

tasks are linked to the lead and client, assigned to the current teammate, and can be completed in place. If an existing assignee is missing from the available staff list, the task editor preserves that value as Current assignee (not available in this staff list); choose a listed teammate to reassign it. Notes continue through the existing activity feed.

  • A linked client can show View account and shared customer tags. Tag

changes use the existing client tag service and remain scoped to the linked client; the Tags control remains inline in the header so it does not displace the follow-up rail.

V2 does not add a direct Convert Lead button. An accepted estimate remains the handoff signal for the existing estimate-to-job workflow. The inline readiness message is supplied by the Deposit & Payments card after it resolves the exact accepted acceptance, estimate, revision, and option lineage. It uses the card's canonical acceptance payment status together with its required, paid, refunded, and remaining deposit facts. Pending, paid, waived, refunded shortfalls, and unavailable states remain distinct; recorded money wins when a waiver or refund is followed by settlement, and a zero balance alone is not reported as paid. It asks the teammate to choose when more than one accepted proposal exists, and never infers readiness from estimates.some(...) or the newest working estimate. Due amounts retain cents in the readiness message.

Create an Estimate from a Lead

Use the New Estimate action on the lead detail page when you want to quote directly from that opportunity.

If the lead remained attached directly to a standalone client that was later promoted into a V2 company portfolio, reassign the lead to the child service site that will own the work before selecting New Estimate, Call, or Message. The portfolio parent cannot own the new estimate or serve as the recipient, and opening an unrelated site separately would lose the retained lead's context.

If a sent estimate blocks that reassignment, choose the path that preserves the customer-facing proposal correctly:

  1. If the proposal may be reopened, move the sent estimate back to Draft.

Its existing customer link stops working. Reassign the lead and its draft estimate to the intended child site, review the customer and property, then resend the proposal to create a current link.

  1. If the proposal must remain sent, leave that lead and estimate on their

retained historical record. Open the intended child service-site profile to call or message its contact or begin a new estimate directly. The new action will not carry the retained lead's context, so reference the earlier lead in notes when needed. Do not use the portfolio parent as the recipient or work owner.

CE Pro first opens the estimate-type chooser, then carries the linked client, assigned rep, lead source, service address, ZIP, and saved property square footage into the selected builder. This prevents a lead from defaulting to a Residential estimate when the work is Commercial, Fleet, Asphalt, Holiday Lights, or a Generic Quote.

On mobile, selecting the type opens that builder immediately. It does not send the rep to the general Estimates tab first. Commercial, Fleet, and Holiday Lights also preserve the lead and property prefill when their first builder step loads.

The originating lead ID remains part of the draft and is validated against the active subscriber workspace when the estimate is saved. Residential, Commercial, Fleet, Asphalt, Holiday Lights, and Generic estimates created this way appear back on the same lead; they do not become detached estimates in the general list.

When no estimate exists, the mobile Estimate tab shows one clear empty state and one Choose estimate type button. It does not render a second card that could be mistaken for an existing estimate.

That estimate draft also autosaves while the office works through the wizard, so lead-launched quotes no longer depend on a manual save before the customer and pricing changes stick.

Appointment Notifications

When you schedule or reschedule a lead appointment from the lead detail page, CE Pro now emails the customer automatically if that lead's client record has an email address on file.

  • The confirmation includes the appointment date, scheduled time or older

arrival window, appointment type, address, and any notes you entered

  • If there is no customer email saved on the client, the appointment is still booked, but no confirmation email is sent
  • Customers can reply directly to the email and the reply routes back into your org inbox

The lead detail header shows Appointment scheduled when the canonical lead appointment has a date and shows Appointment confirmed only when the stored customer confirmation fact belongs to that current appointment. Scheduling by itself never creates the confirmed state.

The appointment email includes a secure customer confirmation link. A customer can also reply with the exact CONFIRM or CONFIRMED text from the saved phone number. Rescheduling or changing the linked customer, property, or location clears the previous confirmation so an old link or reply cannot confirm the new appointment.

Customer Self-Booking

On current V2 web, a teammate with Manage calendar permission can open an eligible unscheduled lead and select Create booking link. Copy the link from the one-time result and send it to the customer through the reviewed channel of your choice.

  • The customer sees only open times inside the hours configured under

Settings > Online self-booking.

  • Times use the lead location's timezone. Nonexistent or duration-changing DST

slots are not offered.

  • CE Pro checks other lead appointments and scheduled/in-progress work assigned

to the candidate's crew before showing a time; the shared calendar writer rechecks the exact slot when the customer submits it.

  • A qualified active assigned lead owner remains the only candidate. If that

owner is no longer eligible, CE Pro considers other active teammates with Run sales appointments permission and location access.

  • A database reservation prevents two customers from taking the same member or

crew capacity. If a displayed time is taken first, the page asks the customer to choose again from refreshed availability.

  • Booking saves the estimate visit and queues a retrying transactional email

when the customer has a usable email method. Delivery rechecks the exact schedule revision and the original customer, service property, and location through provider acceptance. When a delivery attempt starts, its selected email method and address are frozen and revalidated through that same boundary; an address changed before the first attempt can be selected, but an in-flight attempt cannot be redirected. Transactional email consent is locked and rechecked at the same final boundary, so a revocation wins before provider acceptance. An older event cannot confirm a visit the office has since moved or reassigned. The email also includes a secure link for confirming the saved appointment. Booking does not automatically move the lead to a tenant-specific pipeline stage.

  • The rotating bearer link is lead-specific, expires with the configured

booking window, and does not require a customer login. The scheduling page remains a standalone public page even if its visitor is already signed in. The public response excludes staff IDs, contact details, internal notes, and token hashes.

For safety, CE Pro cannot reveal an existing raw link after creation. Select Replace booking link to issue a new one; the previous link stops working immediately. Changing the lead's linked customer or service property also revokes the old link so it can never reveal or book the replacement customer's appointment. CE Pro removes the one-time displayed URL from the lead page as soon as that revocation is observed. It also removes a stale URL when a different office tab replaces the still-active link. Public reads revalidate the token with the customer context in one database snapshot. An archived lead, inactive office location, inactive customer, or archived service property cannot return availability or booked details. Booking locks that exact customer and property context through the reservation commit and rechecks link expiry plus minimum notice/window eligibility after waiting for booking locks. Once booked, the current link shows the saved confirmation until it expires, including after the office advances the lead to a won or lost stage.

Current V2 does not yet insert this link into configurable automations or the V1 20-point campaign. The native mobile UI is unchanged; create and replace links from the web lead detail page.

Deposits and Early Payments

When a lead has payment access, the lead detail page shows a Deposit & Payments card. The card resolves the exact accepted proposal lineage before showing payment facts. If there is no accepted proposal it explains that the lead is not ready for payment; if several accepted proposals exist it requires an explicit proposal choice. Use the card to:

  • Collect a deposit before the job is created
  • Record cash, check, bank transfer, or other offline tender
  • Open the secure Stripe checkout when the selected deposit supports online payment
  • Split an early payment across multiple methods

The card keeps the selected acceptance, estimate, revision, and option bound to each read and write. The Summary readiness message mirrors the card's selected lineage and deposit balance, so a draft or a different estimate cannot change the handoff signal silently.

Example: if a customer wants to pay half by card and half by cash before scheduling, enter the first amount, save it, then add the second payment. The lead and linked estimate stay in sync automatically.

  • review the required deposit, collected amount, and remaining balance;
  • open the existing acceptance-bound Stripe Checkout for the remaining deposit;
  • record split cash, check, bank transfer, or ACH deposits before a job exists;
  • review sent invoices and their ledger-derived balances; and
  • record a cash, check, bank transfer, or enabled offline payment through the

existing invoice payment ledger.

If a lead has more than one valid accepted estimate, choose the proposal explicitly before viewing its history or starting a collection. A card opened from an older page carries the displayed acceptance, revision, option, and amount back to the server; if any of those facts changed, the action is refused and the page must be refreshed. Repeated manual-payment submissions use the existing invoice idempotency key, so a lost response can be retried without creating a second ledger entry.

Each pre-job deposit entry keeps the accepted estimate, proposal revision, option, and acceptance as its accounting identity. The displayed remaining deposit is a balance check, so an older tab cannot over-collect after another office entry. Exact request keys make a lost-response retry return the same manual row; changing the amount, method, or reference under that key is rejected. The final entry resolves the acceptance payment gate; partial entries remain separate history rows.

The card shows deposit and invoice history from the existing payment ledger, including the current net value after recorded refunds. Opening Checkout does not charge the customer; the provider's existing completion and webhook path records a settled deposit. Collection controls require the office's invoice management and refund permissions and current access to the lead's service location. For a pre-job deposit, the history row offers Refund for an available partial or full amount and Void for an unrefunded completed entry. Both controls require a reason, keep the exact accepted proposal lineage, and use a durable idempotency key so a lost response can be reconciled without creating a second ledger adjustment. The card shows the recorded reason and updated customer-charge balance after either action, with remaining principal and tip shown separately. Refunds include the remaining principal and tip; a successful void clears both in full. A provider-refused void remains an explicit settled error and never becomes an unrequested refund. The native mobile UI is unchanged.

Office collection keeps the saved tip choices from the accepted proposal and shows No tip plus a bounded Custom amount control. A custom tip accepts whole cents from $0.00 through $10,000.00 and is included in the displayed total before the office records the payment. If an older accepted proposal has no safe pre-tax basis for percentage tips, those choices are hidden while saved flat tips, No tip, and Custom remain available.

The card also offers the V1 Enter card securely and Use Stripe reader controls for an unpaid accepted deposit. Card entry mounts Stripe's secure Payment Element; the browser never receives or stores the full card number. Reader collection uses Stripe Terminal's web SDK to find and connect a supported internet reader for the exact location. The browser may ask for Local Network Access so the reader can be discovered; allow it only when the office expects to use its configured reader. The web app does not claim native Tap to Pay support; the approved mobile UI remains unchanged.

Both controls create one acceptance-targeted PaymentIntent with the displayed amount, estimate, revision, option, and a frozen idempotency key. The card can include an optional receipt email and office note before preparing the intent. If the page is reloaded while that exact attempt is still reserved, pending, outcome-unknown, or failed but still payable at Stripe, the card offers Resume payment. Resume sends the server-provided original request and key back to the payment service, so it can recover the same PaymentIntent without creating a second charge. If the original request is unavailable, the card shows a held recovery state and does not offer a new provider attempt. After the customer completes the card or reader step, use Check payment status when Stripe is still processing. Cancel payment is available for a pending intent. A lost response keeps the original intent and key available for reconciliation or an exact retry, so reloading payment history never silently unlocks a second charge. Permission, location, amount, and accepted- lineage checks remain server enforced.

Stripe Checkout deposits use the same durable provider command rail before invoice allocation, so a provider request can be recovered with its original key. Once a deposit is allocated to an invoice, the existing invoice deposit refund rail remains the source-linked path; it cannot be refunded or voided from the lead card. Invoice allocation pauses while an accepted refund or void is pending or needs recovery, so a provider retry cannot race the invoice credit ledger. Manual cash, check, bank transfer, ACH, and external-card ledger entries can use the lead card's local refund and void controls. Use External card only when the office actually collected the card elsewhere; it is not a replacement for the provider-backed card or reader controls. An unresolved provider result keeps that same action open until status is authoritative or the office cancels it. If a provider reversal needs attention, the card keeps the action details open and explains the next setup or reconciliation step. It never records a successful provider charge from a reader button alone, and it never refunds a settled provider payment automatically after a cancel refusal. Manual cash, check, bank transfer, ACH, and external-card ledger entries can use the lead card's local refund and void controls.

If a browser reloads while an unmapped direct intent is still unresolved, the server may replay it only inside a conservative 23-hour recovery window. A missing, invalid, or older reservation is shown as Recovery required with no new provider request. A reservation with a known PaymentIntent ID remains retrievable through its pinned connected account, so the office can reconcile the existing provider attempt safely.

Lost Reason Tracking

When you change a lead's status to Lost, a dialog appears. Select a reason from the dropdown:

  • Price too high
  • Chose competitor
  • No response
  • Not ready
  • Out of service area
  • Other

Add optional notes for context. Click Confirm to save.

Tracking lost reasons helps you spot patterns. If most lost leads cite price, you may need to revisit your pricing strategy.

Screenshot placeholder
Lost reason dialog with dropdown and notes field

Lead Detail Navigation

The lead detail header keeps related-record navigation in More:

  • View client opens the linked customer when the lead has one.
  • View account appears when the linked client belongs to a company account.
  • Mark lost uses the configured Lost stage and the existing reason dialog;

it is shown only when the teammate can move the current lead.

The page uses a permission-gated Archive lead action instead of destructive deletion. Archiving retains estimates, payments, activity, and audit history for reporting and review, and the existing revision check prevents a stale tab from archiving a newer lead state.

The search bar at the top of the table works across multiple fields. Search by:

  • Lead number
  • Address
  • City
  • Client name

Results filter in real time as you type.

The global search in the page header also shows the matching lead number, customer, and service address together. This makes multiple leads for the same customer easy to distinguish before opening one.

The leads toolbar also includes a shared date-range picker. Use it to keep the list on a recent preset or set exact start and end dates when you only want leads created inside a specific follow-up window.

Mobile lead filters

On mobile, open Filters on the Leads page to narrow the loaded lead list by:

  • Job type — select one or more requested services or customer types.
  • Salesperson — select one or more assigned teammates, or Unassigned. Sales representatives remain limited to their own authorized leads, so this section is hidden for that role.
  • Last activity — choose 0–7 days, 8–30 days, or 31+ days. Age measures time since the latest recorded lead or customer activity, not the appointment date.
  • Customer tags — select one or more tags from the shared CRM client tags.

The filter sheet keeps each control in a compact dropdown that is collapsed by default and summarizes its current selections. Tap a dropdown to show only that filter's choices. Opening another dropdown collapses the previous one, and its selections remain in place when you switch sections or reopen it.

Selections inside Job type, Salesperson, and Customer tags match any selected option. Different sections combine, so a lead must satisfy every active section. The existing search and status filters also stay active. The filter button shows the active selection count; use Clear all to remove the advanced selections while keeping the current search and status filter.

Tags

The leads list now uses a shared Filter by tag dropdown instead of showing every tag as a long row of chips.

  • Click Filter by tag to open the searchable tag list
  • Select one or more tags to narrow the lead list
  • Tags are color coded so the same labels are easy to spot across leads, jobs, estimates, and invoices
  • If the tag does not exist yet, type its name in the dropdown and click Create new

The tag filter works off the same client tag labels used across the rest of the CRM.

Tips

  • Act on new leads fast. Leads contacted within the first hour convert at much higher rates.
  • Pick a saved property when a client has multiple locations. If the client profile already has addresses saved, the lead dialog lets you choose the right property before scheduling the appointment, and a lone saved property now auto-fills itself.
  • Use the inline new-customer path for brand-new inquiries when your role can manage clients. You no longer need to leave the lead dialog just to create the customer first.
  • Use stale lead alerts. Do not let leads sit for more than a week without a touchpoint.
  • Track lost reasons consistently. The data is only useful if your team fills it in every time.

Was this article helpful?

Still need help? Contact support