Help Center
Straight answers from the same product guide WaterMark uses inside the office and field apps.
What do you want to get done?
Choose a topic to jump straight to its guides.
Popular
Start with the paths pool offices use most.
Getting Started
Your first login: pick how to start
The very first time you open WaterMark on a brand-new company, you get three clear ways to start instead of an empty screen: import your customer list, add your first real customer, or load a sample company to explore. All three are safe, and you can use the other tools afterward.
Where: Today (home) screen - the blue "Welcome to WaterMark" card shows automatically on a brand-new company
- Open WaterMark. On a fresh company you land on the Welcome card with three choices side by side.
- To bring over an existing book, choose "Bring my book over" and click "Import my customers" to open the CSV importer.
- To start for real, use "Set up my company": type a customer name and service address (those two are the only required fields), tap the weekday for their weekly visit, and type a price per visit (the field starts empty; a blank price is saved as price needed, not as zero).
- Click "Add customer -> see your route." WaterMark creates the customer, puts them on that weekday's route, and shows you the real route so you can see the stop actually exists.
- From the confirmation you can add another customer, import your whole list from a CSV, or open Route Manager.
- To look around first instead, use "See it live first" and click "Load sample data" to fill the app with a demo book of business you can safely explore and remove later.
- Prefer a hand? Use the "We'll set you up" link on the card to email support for a guided start.
- The Welcome card is owner-only - office staff and techs don't see it.
- Only name and address are required. Pool size, type, and other details all have sensible defaults you can change on the customer's card later.
- Adding your first customer defaults their service day to today's weekday, so the stop shows up on a route you can actually see right away.
Work through the Get-started checklist
Once your company has a customer or two, the Welcome card becomes a six-step Get-started checklist with a progress bar. Each step is a real setup task with a button that takes you straight to it. It ticks itself off as you go and tucks itself away once you're genuinely up and running.
Where: Today (home) screen - the "Get started with WaterMark" card near the top
- Add your first customer - click "Add customer" to create one account with its pool.
- Import your customers - click "Import CSV" to bring your whole book in from a spreadsheet or your old system.
- Set your service pricing - click "Set pricing" to open the Grow area and add a pricebook item or service rate.
- Invite your crew - click "Invite crew" to open Team and email a teammate a secure sign-in link.
- Load sample data to explore - click "Load sample" to see the app full with a demo book of business.
- Get paid - connect payouts - click "Connect payouts" to connect Stripe so customer card payments land in your bank.
- Build your routes - after the checklist, follow "Build your first route from imported customers" to set each pool's cadence, day, and route before you generate its stops.
- Each step marks itself Done automatically as you complete it - you don't check anything off by hand.
- The card hides itself once you have real customers and pricing set. If you dismiss it with the X, it stays gone for that browser.
- There's also a "Setup" button in the left sidebar that opens a separate go-live checklist (import, open a customer card, team, automations, your booking link) - use it any time to see what's left.
Import your customers from a spreadsheet or old system
You don't have to re-type your book of business. Paste or upload a CSV exported from ServiceTitan, Skimmer, or any spreadsheet, and WaterMark maps the common columns for you. You always see a preview - with duplicates flagged - before anything is saved.
Where: Get-started card -> Import CSV, or Manage -> Import customers (CSV)
- Open the importer from the Get-started card ("Import CSV") or the Manage menu.
- Either click "Choose a .csv file" to upload, or paste your rows into the CSV box. You can grab a "Download CSV template" to see the exact layout.
- Make sure your file has a header row. Only a name column is required; address, phone, price, day, service_frequency (weekly / biweekly / monthly), and active are recognized automatically.
- Click "Preview" to see every row tagged NEW, INACTIVE, or DUP. Duplicates (matched by exact customer name) are skipped, never doubled.
- Check the preview for any unrecognized-column warnings or rows that need a service day, then click "Import" to bring them in.
- Switching systems? After customers, use the Equipment, Water-test history, and Open balances (AR) buttons in the importer to bring the rest over - no QuickBooks required.
- Add a service_frequency column (weekly / biweekly / monthly) so each pool keeps its real cadence instead of everyone being billed weekly.
- Customers imported without a service day come in "unscheduled" - assign them a day afterward to put them on a route.
- An active=false row is retained for history, statements, and open balances but does not generate visits or receive marketing. Its saved cadence returns if the office reactivates it.
- Start a 30-day free trial of the $59 a month plan, no card required. There is no permanent free tier. Until a card is on file, the entire trial includes up to 100 text segments, 20 AI actions, 10 receptionist minutes and 5,000 customer emails. A trial without a subscription can have 2 active technicians, the seats the plan includes. On a subscription, paid AI stops at 30 blocks ($300) a month and paid receptionist minutes stop at 40 blocks ($200) a month; past either cap that feature is declined for the rest of the month and nothing more is billed. At day 30, choose a subscription or your workspace pauses. Your data stays stored and exportable. Existing Starter customers receive at least 30 days of advance notice before their access changes.
Your 30-day trial and subscription
Start a 30-day free trial of the $59 a month plan, no card required. There is no permanent free tier. Until a card is on file, the entire trial includes up to 100 text segments, 20 AI actions, 10 receptionist minutes and 5,000 customer emails. A trial without a subscription can have 2 active technicians, the seats the plan includes. On a subscription, paid AI stops at 30 blocks ($300) a month and paid receptionist minutes stop at 40 blocks ($200) a month; past either cap that feature is declined for the rest of the month and nothing more is billed. At day 30, choose a subscription or your workspace pauses. Your data stays stored and exportable. Existing Starter customers receive at least 30 days of advance notice before their access changes.
Where: Sidebar "Trial - N days left" badge, or Manage -> Money -> Billing & plan
- Watch the trial clock: while you're on a trial, a "Trial - N days left" badge rides the left sidebar on every screen (it turns amber at 7 days, red at 2).
- Click that badge any time to open Billing & plan and see your plan, price, and what's included.
- If no subscription is active, click Start subscription to choose monthly or annual billing. New accounts begin with a 30-day free trial of the $59 a month plan, no card required. There is no permanent free tier. Until a card is on file, the entire trial includes up to 100 text segments, 20 AI actions, 10 receptionist minutes and 5,000 customer emails. A trial without a subscription can have 2 active technicians, the seats the plan includes. On a subscription, paid AI stops at 30 blocks ($300) a month and paid receptionist minutes stop at 40 blocks ($200) a month; past either cap that feature is declined for the rest of the month and nothing more is billed. At day 30, choose a subscription or your workspace pauses. Your data stays stored and exportable. Existing Starter customers receive at least 30 days of advance notice before their access changes.
- When you're ready to grow past the caps or keep everything after a trial, click Upgrade / Start subscription in Billing & plan.
- To settle up card payments, connect Stripe payouts (see "connect payouts") so money lands in your bank.
- If you use QuickBooks Online, connect it from the QuickBooks panel to sync invoices and payments - QuickBooks is the live, recommended accounting path.
- Monthly is the default. Annual billing costs 10 times monthly, so 2 months are free: the standard base is $590 a year with 2 techs included, plus $200 a year for each added tech through the tenth and $150 a year from the eleventh. Full annual refund within 30 days of the annual charge, none after. Upgrades prorate as credit.
- The paid plan is per-crew, and the standard base is $59 a month with 2 technicians included, then $20 a month for each added technician through the tenth and $15 a month from the eleventh. You only pay for active techs beyond the two included, and there's no long contract.
- Start a 30-day free trial of the $59 a month plan, no card required. There is no permanent free tier. Until a card is on file, the entire trial includes up to 100 text segments, 20 AI actions, 10 receptionist minutes and 5,000 customer emails. A trial without a subscription can have 2 active technicians, the seats the plan includes. On a subscription, paid AI stops at 30 blocks ($300) a month and paid receptionist minutes stop at 40 blocks ($200) a month; past either cap that feature is declined for the rest of the month and nothing more is billed. At day 30, choose a subscription or your workspace pauses. Your data stays stored and exportable. Existing Starter customers receive at least 30 days of advance notice before their access changes.
- Xero is available as an optional paid accounting add-on, but it stays off until you enable it with keys. QuickBooks Online is the built-in, recommended path.
Explore the live demo with no sign-up
WaterMark has a public demo you can open in a browser without logging in. It drops you into a fully populated sample pool company so you can click around every screen safely. It's the fastest way to learn the app or show it to a partner without touching your own data.
Where: Go to watermarkapp.online/demo in any browser
- Open watermarkapp.online/demo in a web browser - no account or password needed.
- You're auto-signed into a shared sample company ("Blue Horizon Pools - Live Demo") preloaded with customers, visits, invoices, and memberships.
- Click through Today, Route Manager, customer cards, Money, and reports to see how everything fits together.
- Try building an invoice or opening a dispatch board - it all behaves like the real app.
- When you're done, just close the tab. Nothing you did affects any real customer.
- Ready to keep your work? Start your own company from the first-login fork instead - the demo is for exploring, not for storing your real book.
- The demo is a shared, sample company that resets clean every night, so don't store anything real in it.
- For safety, the demo can't send texts or emails to real people and can't be billed - it's a look-around, not a live account.
- This is a great link to send a business partner or a pool pro you're referring so they can see WaterMark before signing up.
Get your crew onto the mobile field app
Your techs run their day from the WaterMark field app on their phone: their route, each stop, water tests, dosing, and visit recaps. You invite them from the office and control what they can see and do. The office and the app stay in sync.
Where: Manage (top bar) -> Team tile -> Invite an employee by email; per-person controls under the same screen
- Click "Manage" in the top bar, open the "Team" tile, and scroll to "Invite an employee by email." (The sidebar's Team button is timesheets and payroll - not this screen.)
- Enter the tech's name and email, choose the "Tech (field)" role, and make sure "Field app" access is checked.
- Click "Send invite." WaterMark emails them a secure link (valid 7 days) to set their own password - no shared temp password.
- The email also tells them to download the field app - "WaterMark Pool Service" on the App Store or Google Play - and sign in there with the password they just set.
- Once they sign in on their phone, dispatch stops to them from Route Manager so their route isn't empty.
- Set what field workers can do using the field-app permission defaults in Team, and use a person's "Permissions" button to allow or block one individual.
- Techs clock in and out, complete each stop, log water tests, and send visit recaps from the app; the office sees it all live.
- The route map shows each tech's planned stops and their last check-ins - it is not live GPS fleet tracking.
- Tap to Pay on iPhone (taking a card tap on the phone) is not available. What works today: on a job assigned to them, a tech taps "Build invoice & take payment," creates the invoice, then taps "Collect" to enter the card on the phone. That needs your Stripe payouts connected.
- Automated text reminders to customers are built in, and they send only while customer texting is on for your account. WaterMark manages that switch; the Setup panel in your office shows whether customer texting is ready.
Your first week with WaterMark
A simple order of operations for a new office manager. Do these in roughly this sequence and by the end of the week you'll have your real book loaded, your crew on the app, and money flowing in - without feeling lost.
Where: Start on the Today screen and follow the Get-started card
- Day 1 - Add one real customer from the Welcome card so you see a route appear, then import the rest of your book from a CSV.
- Day 2 - Set your service pricing in the Grow area so visits invoice at the right amount, and open a few customer cards to confirm pool details.
- Day 3 - Invite your crew from Team and dispatch their stops in Route Manager so their field app has a real route.
- Day 4 - Connect Stripe payouts so customers can pay online, and connect QuickBooks Online if you keep your books there.
- Day 5 - Run a normal service day: watch stops complete from the field app, review recaps, and send an invoice or estimate.
- Anytime - Check the sidebar "Setup" button for anything still open, and keep an eye on the trial badge so you upgrade before you outgrow the free caps.
- If you get stuck, everything you need is reachable from the "Manage" button (settings, team, billing, tools) and the sidebar.
- You don't have to do it all in one sitting - the Get-started checklist remembers what's done and picks up where you left off.
- One founder reads and answers this inbox: support@watermarkapp.online. Email is answered within one business day.
Triage notifications, messages, and activity
The notification center brings confirmed operations alerts, unread customer conversations, and recent team activity into one place without treating an unavailable source as clear.
Where: Dashboard header -> Notification center (bell)
- Open the bell in the dashboard header. What needs me shows confirmed operations alerts and unread conversations first.
- Open Messages to read or reply to customer texts, homeowner portal messages, and crew chat.
- Open Activity to review confirmed arrivals, completed visits, readings, photos, and crew updates from today.
- If a source says unavailable or partial, use Retry before treating that area as clear.
- Opening the notification center does not mark a conversation read. A customer conversation is marked read only when you open its thread.
- The three summary counts show a dash when that source could not be confirmed; a dash never means zero.
Run the day from Needs Your Attention
The Command Center groups the few office items that need action now, shows tracked dollar exposure only where the live signal supplied an amount, opens the exact workspace to resolve each one, and warns when any source could not be confirmed.
Where: Today -> Needs Your Attention
- Open Today and start with the first Needs Your Attention row; the highest-impact pool-office item is first.
- Use the row's action to open the real estimate, route, renewal, review, stock, payroll, or report workspace.
- Use Up and Down Arrow to move between action rows, then press Enter to open the row's primary workspace.
- Resolve the item there, then return to Today; the feed refreshes from confirmed office data.
- If the panel names a source that failed to load, use Retry. Do not treat a partial feed as an all-clear.
- The tracked-exposure strip adds only explicit dollar fields returned by the server. A signal without a confirmed amount is still shown in the queue but is not added to the total.
- On Money, Unpaid Invoices and both Chemical Cost panels can collapse to loaded summaries. On Customers, Customer Messages can collapse to its conversation count and newest sender. Each choice stays on this browser for the current company.
- The daily list is intentionally short. Open the underlying tabs only when you need the deeper detail.
- Ask AI appears only where WaterMark can prepare a real reviewable action.
Find a record or start an action with Ctrl+K
Search customers, jobs, leads, and the invoice number printed in the office, or launch common navigation and create actions without hunting through menus.
Where: Any dashboard view -> Search anything (or press Ctrl+K); press ? for the shortcut guide
- Press Ctrl+K from any dashboard view to focus Search anything.
- Type a customer name, phone, address, job number, or the displayed invoice number such as #1146. You can also type an action such as 'create invoice' or 'open reports'.
- Press Arrow Down to highlight the result, then Enter to open it. Press Escape to close the palette without changing anything.
- Press ? when you are not typing to open the keyboard-shortcuts guide; the number keys 1 through 9 follow the visible sidebar order.
- Record search needs a live connection; navigation and create commands remain available if record search cannot load.
- Opening an invoice result returns you to that customer's billing context rather than a dead-end editor.
- Inside Manage, use Find a tool with everyday words such as dispatch, payroll, SMS, map, permissions, or notifications. The result count names only buttons that actually match, and Escape clears a typed search before it closes the directory.
Customers & Pools
Add a new customer (and edit one later)
Create a customer record with their pool, contact info, gate/access notes, and service schedule. Everything about that account lives here, and you can come back and change any of it.
Where: Top bar -> + New -> + Customer (to edit: open the customer, then Edit)
- Click + New in the top bar, then + Customer.
- Fill in Name and Address. Add Phone, Email, and a Gate code if you have them.
- Use Access notes for how to get in (side gate, dog in yard, equipment behind the shed). Use Internal office notes for anything the tech should NOT see.
- Set the pool details lower down: Pool size (gallons), Water (chlorine or salt), Body (pool, spa, or both), and Finish.
- Set the money and schedule: Service $/visit, Frequency (weekly, biweekly, monthly, every N days), and Service day.
- Click Save. To change anything later, open the customer and click Edit.
- For a former customer, open Advanced details and turn off Active customer. WaterMark pauses untouched future visits and marketing while preserving billing history and open balances. Turn it back on to restore those paused visits.
- The 'Special note for tech's next visit' shows LOUD on the tech's phone on their next stop - great for 'gate locked, skip today' or 'bring DE grids.'
- 'Do not text' opts that customer out of all SMS. 'Tax exempt' stops sales tax on their invoices and lets you record the certificate number.
- Assign a Route so the pool inherits that route's tech automatically, instead of setting a tech by hand.
Track more than one pool per property
Some properties have an indoor and outdoor pool, or a pool plus a spa. WaterMark calls each one a 'body of water,' and each keeps its own gallons, price, and schedule.
Where: New customer form -> 'More bodies of water' (or edit an existing customer -> 'Bodies of water' -> + Add body)
- While creating a NEW customer, scroll to 'More bodies of water' near the bottom of the form.
- Click '+ Add another body of water' and fill in its Label (e.g. 'Indoor pool' or 'Spa'), Body type, gallons, price, frequency, and day.
- Add as many as the property has - the first pool up top plus every extra saves together in one step.
- For a customer you already saved, open them and click Edit, then find the 'Bodies of water' block.
- Type a Label, pick the Body type (spa, pool, water feature), and click '+ Add body.'
- Save. Each body now carries its own schedule and shows separately on the customer record.
- Every body of water is scheduled and priced on its own, so a weekly pool and a biweekly spa at the same house each bill correctly.
- In the Customer 360 view, a 'Body of water' dropdown appears when there's more than one - use it to switch which pool's chemistry and equipment you're looking at.
- Advanced per-body settings (seasonal dates, route, every-N-days) are tuned in the customer editor after the body is created.
See a customer's whole story in Customer 360
Customer 360 is the single screen that pulls together everything about one account: money, water chemistry, equipment, notes, service history, and the photo timeline from the field.
Where: Customers list -> click any customer (or press Ctrl+K, search, and pick the customer)
- Open the Customers list and click the customer's card. Or press Ctrl+K, type a name/phone, and select them.
- Read the top strip: lifetime revenue, current balance, customer-since, last review, and next visit at a glance.
- Use the quick actions at the top to Schedule job, Message, open the portal, or Edit without leaving the account.
- An inactive account is labeled at the top and cannot schedule new work. Its history, statements, and open balances remain available; use Edit to reactivate it.
- Scroll through the two-column workspace - pools and history stay on the left; billing, membership, estimates, and notes stay on the right.
- Check Customer History at the bottom for the full timeline of visits, texts, payments, and service photos.
- Tap any photo thumbnail to open it full-screen; tap the backdrop or press Escape to close.
- Press Escape after a nested action to return to the same Customer 360 record instead of losing your place.
- Add a timestamped note with '+ Add note' in the Notes section - it's stamped with who wrote it and folds into the history timeline.
- Pinned notes ride along with a specific pool and reappear on every visit, so a standing instruction never gets lost.
- A failed text shows struck-through and marked 'not delivered' - the timeline never pretends a message went out when it didn't.
Set up HOAs, portfolios, and parent accounts
When one client - an HOA, a property manager, or a portfolio owner - owns several properties, link them under a parent account and choose whether they get one bill or a bill per property.
Where: Customer editor -> 'Parent account' dropdown | Customers view -> 'Parent accounts' button (top right)
- Create each property as its own customer first.
- Open a property, click Edit, and pick the owner under 'Parent account (multi-location).'
- On the parent account itself, tick 'HOA / portfolio parent - bill ONE consolidated invoice' if they want a single statement.
- Save. Click 'Preview rollup' to see every property's open balance totaled up before you bill.
- When you're ready, click 'Generate consolidated invoice' to roll all open balances into one invoice - each source invoice is marked rolled-up so nothing is double-billed.
- Use the 'Parent accounts' button at the top of the Customers view to see every parent, its property count, billing mode, and open A/R in one table.
- Leave the consolidated-billing box unchecked to bill each property separately - the table labels this 'per property.'
- Preview and Generate only appear after the parent customer is saved - create it first, then link the children.
- If you run multiple yards or offices, the Branch / location field routes each account to the right crew - that's separate from parent-account billing.
Import your customer list from a CSV
Moving from another system or a spreadsheet? Paste or upload a CSV and WaterMark builds your customers and pools in one pass, with a preview and duplicate protection before anything is saved.
Where: Manage (top bar) -> Import customers (CSV) - also the 'Import CSV' button on an empty Customers list
- Open Manage and choose 'Import customers (CSV)' (or click Import CSV when your customer list is empty).
- Click 'Download CSV template' to see the exact columns, or export from ServiceTitan, Skimmer, or any spreadsheet - common column names are matched automatically.
- Choose your .csv file or paste the rows into the box. Only a name column is required; include active=false for a former customer you need to retain without routing.
- Include a service_frequency column (weekly / biweekly / monthly) so each pool keeps its real cadence.
- Click 'Preview' and review the list: NEW rows import, INACTIVE rows are retained without automatic service, and DUP rows (matched by exact customer name) are skipped so nothing doubles.
- Click 'Import' to finish. If any pools came in without a service day, click 'Choose route day' to put them on the schedule.
- The preview flags unrecognized columns so you can rename headers and re-upload - the rest still imports fine.
- After customers, use the buttons in the import window to bring over Equipment, Water-test history, and Open balances (AR) - no QuickBooks needed.
- Start a 30-day free trial of the $59 a month plan, no card required. There is no permanent free tier. Until a card is on file, the entire trial includes up to 100 text segments, 20 AI actions, 10 receptionist minutes and 5,000 customer emails. A trial without a subscription can have 2 active technicians, the seats the plan includes. On a subscription, paid AI stops at 30 blocks ($300) a month and paid receptionist minutes stop at 40 blocks ($200) a month; past either cap that feature is declined for the rest of the month and nothing more is billed. At day 30, choose a subscription or your workspace pauses. Your data stays stored and exportable. Existing Starter customers receive at least 30 days of advance notice before their access changes.
Invite a customer to the homeowner portal
The homeowner portal lets a customer see their service reports, balance, and history. You invite them with a private link - by text one at a time, or to your whole list at once.
Where: Open a customer -> 'Text portal link' (in the editor and in Customer 360) | Manage -> Invite all to portal
- Open the customer, or open their Customer 360 view.
- Click 'Text portal link' to send that customer their private portal link by SMS.
- To invite everyone, open Manage and choose 'Invite all to portal' - anyone invited in the last 30 days is skipped automatically.
- If a link ever gets over-shared, open the customer's editor and click 'Reset link' to revoke the old one and issue a new one.
- Confirm the customer's phone number is on file first - the invite goes to that number.
- Texting the portal link needs SMS on for your account. Until it is, the button tells you 'texting not active yet' rather than pretend it sent. WaterMark manages that switch; the Setup panel in your office shows when customer texting is ready.
- The portal itself is live today; the only gated piece is the outbound text that carries the invite.
- Resetting a link stops the old one working immediately, so text the customer the fresh link right after.
What your customer sees in the visit recap
The recap is your company's face. This guide lists exactly which captured fields reach the homeowner, and the honesty rules that keep a recap from ever overstating a visit.
Where: Field app -> close-out screen -> send recap; Office -> a completed job -> recap
- The recap describes the visit in plain language: the work done, and when the next visit is.
- Three homeowner-safe readings can be included: free chlorine, pH, and total alkalinity. Deeper chemistry stays in your records.
- Chemicals added are listed only from saved dose records. A dose that was typed but never saved cannot appear in a customer's recap.
- A recap can only be sent for a visit that actually happened: an unfinished job with no technician, readings, doses, or photos refuses to generate one.
- Recaps go out in the customer's language - English or Spanish - based on their preference.
- The reassurance line at the end is earned, not automatic: it only appears when the visit's saved records support it.
- Customers can pay from the recap's payment link by card or bank (ACH) when online payments are set up - through your own Stripe account.
- The same honesty rules apply whether the recap is sent from the truck or from the office.
Keep one contact across many pools and accounts
The Contact Hub stores one real person once, links them to multiple customers or pools, and keeps service and marketing permission separate by phone or email.
Where: Customers -> Contact Hub; Customer 360 -> Contacts & dispatch
- Open Contact Hub and search before creating a new contact, so an HOA manager or tenant is not duplicated.
- Link the contact to the right customer or pool and choose the relationship: primary, gate contact, tenant, or property manager.
- Set service-notification and marketing permission separately for each contact method.
- Use Link across every pool only when that same person should apply to the customer's whole pool portfolio.
- A shared contact is still one person; changing it updates every linked pool deliberately.
Review and safely merge duplicate customers
WaterMark detects likely duplicate customer records, previews every dependent record and credit dollar, and supports a bounded undo without overwriting later activity.
Where: Customers -> Review duplicates
- Open Review duplicates and select one suggested customer pair.
- Read the merge preview, including invoices, jobs, pools, messages, contacts, and customer credit that will move.
- Choose which conflicting field value survives, then confirm the merge once.
- Use Undo only when needed; WaterMark moves back the rows captured at merge time and leaves later customer activity on the survivor.
- The archived shell is hidden from daily work but retained for a safe audit trail.
- Portal and unsubscribe links continue to resolve to the surviving customer.
Turn on homeowner tracking, surveys, equipment, and self-scheduling
Optional homeowner trust surfaces show only real technician, GPS, equipment, warranty, feedback, and capacity-backed scheduling state.
Where: Manage company -> Company & Tax -> Homeowner trust surfaces
- Turn on only the homeowner features the pool company is ready to use: on-my-way tracking, completion surveys, portal equipment, and self-scheduling.
- Upload trusted technician photos in Team, then turn on Show employee photos in Company settings when the office is ready to display them on routes, crew maps, and homeowner tracking.
- Confirm equipment make, model, serial, install date, and warranty on each pool; the portal shows only that homeowner's enabled pool records.
- Configure real service zones and arrival-window capacity before offering self-scheduling.
- Tracking expires, ends on arrival, and withholds stale GPS instead of inventing a location.
- A completion survey is sent once after a real completed job when the org toggle is on.
Scheduling & Routes
Build your first route from imported customers
Imported customers become a working route after each pool has a cadence, service day, and route or territory. Set those defaults, generate the service dates you need, and check the board before the crew starts.
Where: Customers -> open a customer -> Edit customer -> Advanced details; Manage -> Setup -> Routes & territories; left sidebar -> Route Manager
- Open Manage, find Setup, and choose Routes & territories. Add a route, then choose that route's Default tech and Route day.
- Open Customers, choose an imported customer, click Edit customer, and expand Advanced details.
- For the pool, choose Frequency and Service day, then select Route / territory. The selected route's default tech is used when recurring jobs are generated. Click Save.
- For many imported pools with no day, use Manage -> Actions & exports -> Schedule unscheduled pools. Choose Route day and Frequency, click Preview changes, then Confirm schedule. This bulk action does not choose a Route / territory, so assign that on each customer's pool when you need route-based tech assignment.
- If a city or ZIP code is served only on certain weekdays, open Route Manager -> Route tools -> Schedule intelligence -> Advanced setup -> Service-day zones and click Add zone. Set its Zone name, Cities or ZIP codes, Route days, and Save zone.
- In Route Manager, select the first service date you want to prepare and click Generate schedule. This creates pending stops from the recurring plans for that selected date.
- Confirm the customer appears on that date under the expected technician. Select each other service date you need, use Generate schedule, and verify those stops the same way.
- Generate schedule is safe to use again for the same date: it skips pools that already have a stop that day.
- A service-day zone warns the office and constrains online booking for the cities or ZIP codes you list; it does not assign a pool to a route or generate a stop.
- Schedule unscheduled pools changes only pools that have no usable schedule. Existing days and custom interval schedules are left alone.
What the Optimize button actually does
Optimize is not a black box. This guide explains the exact order it builds, how appointment windows are respected, what the miles numbers mean, and its honest limits.
Where: Route Manager -> a technician's day -> Optimize; the field app's route screen has the same action
- Optimize groups the day's located stops by appointment window first: morning stops, then anytime stops, then afternoon stops. A stop with a window is never reordered out of it to save miles.
- Inside each group it orders stops by real driving distance, chaining from where the previous group ends. If your day starts from a depot, the depot anchors the first leg.
- The office preview compares your current order against the optimized one using the same road-distance data, so the before-and-after miles are an honest apples-to-apples comparison.
- If road data is unavailable, the app falls back to straight-line distance and labels the result as an estimate instead of presenting it as road miles.
- The office and the field app use the same solver, so an office-optimized day and a tech-optimized day can never disagree about the order.
- Honest limits: Optimize orders one technician's existing day. It does not move stops between technicians, does not change which day a pool is served, and does not currently take a custom end-of-day location.
- A day that is all anytime stops with no depot is a single pure distance optimization - the simplest case, and the fastest.
- Optimize never touches your data until you apply it. The preview is read-only.
Open the Route Manager and read the dispatch board
The Route Manager is your day-of dispatch board. It shows every stop for a chosen date laid out in a column per technician, so you can see who is doing what, drag work around, and keep the day moving.
Where: Left sidebar -> Route Manager
- Click Route Manager at the bottom of the left sidebar.
- Use the date picker at the top to choose the day you want to see.
- Click Add job to schedule one stop on that date, or use the plus button in a technician's column to preselect that technician.
- Click Generate schedule to create the day's pending stops from your recurring plans (does nothing if they already exist).
- Read each technician's column top to bottom; the number badge shows done vs total stops.
- Click any stop card to open its notes; use Optimize route to reorder pending stops by shortest drive.
- To save a dispatch setup, click the presets control beside the date, choose the technicians, layout, grouping, sort, and card density, then name the preset. It also remembers the selected date and business-unit filter.
- Use Apply preset in the board toolbar to switch to one of your presets in one selection. Your presets follow your login between browsers and do not change another dispatcher's board.
- Click Map to plot the day's stops, or Print for a clean route sheet per tech.
- Click Done when you're finished; the board saves changes as you go.
- If a stop has no valid street address it won't plot on the map. Add city and state to the customer, then reopen the map.
- The Optimize route button reorders stops for the day you're viewing across every active tech; it saves drive time but never moves work to a different day.
- Older company layouts remain available as read-only choices. Saving one creates your own private copy. If a saved technician or business unit is later removed, WaterMark ignores that reference and keeps the board usable instead of showing a false empty day.
- The board's Map shows planned stops and each tech's last check-in dot. It is not live GPS. The separate Live crew button shows only techs who opted in to share location, with an honest 'N min ago' age on each dot.
Reassign a stop to another tech or move it to another day
When a tech calls out or a customer asks for a different day, you can move a single stop without touching the rest of the route. Reassigning changes who does it; rescheduling changes when.
Where: Route Manager -> click a stop's Reassign or Move to another day button
- Open the Route Manager and find the stop's card.
- To change the technician, click Reassign on the card, pick the new tech (or Unassigned) from the list, and click Reassign.
- To change the day, click Move to another day, pick the new date, and click Move stop.
- To make the change stick every week, check 'Move every week from now on' before saving - this shifts the pool's recurring service day.
- Leave that box unchecked to move only this one visit.
- You can also drag a card from one tech's column to another to reassign it - same result as the Reassign button.
- 'Move every week from now on' is the right choice when a customer permanently switches service days; leaving it off is for one-time changes like a vacation skip.
Move a whole day at once (storm or holiday reschedule)
Snow, a holiday, or a truck down? Instead of moving stops one by one, push every movable stop from one day to another in a single action. Finished and in-progress stops stay put.
Where: Route Manager -> Move day
- Open the Route Manager and set the date to the day you need to clear.
- Click Move day in the top toolbar.
- Confirm the 'Move stops from' date and pick the 'To' date you're pushing work to.
- Optionally limit it to one technician, or leave it on All technicians.
- Add a short reason if you like (for example 'Snow - moved to Friday').
- Click Move day. WaterMark tells you how many stops moved and how many were left put.
- Stops that are already finished or in progress are never moved - only pending work shifts, so you won't disturb a tech mid-route.
- This moves the visits for that day only; it does not change the pools' ongoing weekly service day. Use Move to another day with the weekly box checked for a permanent day change.
Put unscheduled pools onto a route day
Newly imported or newly added pools often have no route day yet, so they never show up on the board. This tool assigns a day and frequency to all of them at once, and lets you preview the exact count before anything changes.
Where: Manage company -> Schedule unscheduled pools
- Open the Manage company hub from the Account menu, then choose Schedule unscheduled pools (also offered right after a CSV import).
- Pick the Route day (for example Wednesday) and the Frequency (Weekly, Every other week, or Monthly).
- Click Preview changes to see how many unscheduled pools will be affected, broken down by their current setting.
- Review the count, then click Confirm schedule.
- Open the Route Manager for that weekday and click Generate schedule to create the actual stops.
- This only touches pools with no schedule - pools already on a day or on a custom interval are left alone, so it's safe to run.
- You must Preview the current day and frequency before the Confirm button appears; changing either resets the preview.
Track seasonal openings and closings
Seasonal pools need an Opening in spring and a Closing in fall. WaterMark keeps a backlog of every open/close that's due so none slip, and weekly visits pause automatically off-season.
Where: Manage company -> Seasonal services
- Set a pool's service season on its profile so WaterMark knows it's seasonal.
- Open the Manage company hub and choose Seasonal services.
- Click 'Refresh this year's open/close' to generate this year's Opening and Closing for every seasonal pool.
- Under 'Needs booking', click Book on an item and pick a date to drop it onto the schedule.
- Open the Route Manager for that date to assign the open/close to a technician.
- After the visit, come back and click Mark done, or use Skip to drop one you won't do this year.
- Booking a seasonal service puts it on the board but does not assign a tech - finish the job by opening the Route Manager for that day and reassigning it.
- The Needs attention button on the Route Manager also flags seasonal open/close that still need booking, so nothing hides in a menu.
Plan the week ahead and balance routes across techs
The Week ahead board shows all seven days at once so you can plan and shuffle work before the day arrives. Auto-balance evens out stops across your technicians when one route is stacked.
Where: Manage company -> Week ahead; Auto-balance is on the Today dashboard
- Open the Manage company hub and choose Week ahead to see the full week.
- Switch between Days and Swim-lanes layout; Swim-lanes gives one row per technician across the week.
- Drag a stop to another day to reschedule it, or (in Swim-lanes) to another tech's row to reassign it.
- Check 'Make moves permanent' first if you want those drags to shift the pool's recurring day, not just this week.
- To even out a lopsided day, go to the Today dashboard's 'Today's Progress by Technician' panel and click Auto-balance routes.
- Review the summary WaterMark shows of how stops were spread across techs.
- Leave 'Make moves permanent' unchecked for one-off week planning; check it only when a customer's regular day is really changing.
- Auto-balance is a quick evener for a single day - for drive-time efficiency on one tech's route, use Optimize route inside the Route Manager instead.
Set service-day zones and real arrival-window capacity
Optional ZIP/city zones and minute-based arrival windows help the office offer only route days and windows the crew can actually serve.
Where: Route Manager -> Schedule intelligence
- Open Schedule intelligence and review the next seven days before changing any setup.
- In Advanced setup, define the ZIPs or cities served on each weekday.
- Create named arrival windows, choose offered weekdays, and set route-minute capacity.
- Use the capacity view to fill open time; an address outside the configured zone remains an office follow-up lead rather than a fake booking.
- Existing routes keep working until the office opts into zones and formal windows.
Plan multi-visit pool work and review schedule exceptions
Green-pool recovery and installs can carry multiple dated appointments, while structured hold/cancel reasons and GPS review keep the dispatch record explainable.
Where: Route Manager -> Schedule intelligence -> Plan visits / Reasons / GPS review
- Open the pool job and choose Plan visits for a green-pool cycle, install, or other multi-day job.
- Preview every appointment date, arrival window, and assigned tech before confirming the series.
- When a visit is held, canceled, or skipped, select the real reason instead of burying it in a note.
- Review GPS-versus-timesheet exceptions in Schedule intelligence; WaterMark flags evidence for office review and does not rewrite payroll automatically.
- Manual-project billing prevents each follow-up appointment from creating an unintended visit invoice.
Jobs & Field Work
What works offline, exactly
The field app is built for backyards with no signal. This guide names every action that queues offline, how replay works when signal returns, and the short list of things that genuinely need a connection.
Where: Field app -> any stop; queued work shows in the outbox until it sends
- Work the stop like normal. These nine actions queue on the phone with no signal: arrive, complete, photo, skip, reschedule, readings, signature, pause, and resume.
- Chemistry runs on the device. Readings, LSI, and dosing guidance compute locally - no connection needed to know what to add.
- Customer texts and the visit recap you send at close-out queue too, and go out when signal returns.
- When signal comes back, queued work replays exactly once, in order. A queued action is never sent twice and never silently dropped.
- If a send fails in a way that can be retried, it stays in the queue and retries. The app tells you what is still waiting instead of pretending it sent.
- Honestly, what does need a connection: signing in the first time, record search from the command palette, taking a card payment, and the AI features. Everything in the daily service loop above works without one.
- Downloaded customer data is cached encrypted on the device for offline viewing.
- The app decides online versus offline by actually trying WaterMark's own server - not by trusting the phone's signal bars - so weak-signal days do not park your finished work.
Set up job types and their service checklists
A job type (Maintenance, Spa Maintenance, Opening, Closing, Green-to-clean, and any you add) carries its own service checklist, its own forms, and its own badge color. Set these once and every visit of that type shows the tech the right tasks.
Where: Manage -> Job types, checklists & forms
- Click Manage at the top of the dashboard, then open Job types, checklists & forms to see every type in one list.
- To rename a type or change its badge color, edit the name box or the color swatch on its row (it saves as soon as you click away).
- Click Checklist on a type's row to open its task list. Add tasks with '+ Add task', reorder them with the up/down arrows, and click Save checklist.
- Turn on the '✦ Required' box next to any task that must be checked before the tech can finish that visit. Leave it off for optional tasks.
- Click Forms on the row to pick which forms show for this type, and mark any form Required so it must be filled to complete the job.
- Click Fields to hide job-screen fields that don't apply (for example, hide the water test on an acid wash) and to require a signature, photo, or recap at close-out.
- To add a new type, type its name in the box at the bottom, pick a color, and click '+ Add type'.
- Required tasks and required forms are enforced on both the tech's phone and the server, so a required step genuinely cannot be skipped.
- Only the owner sees 'Reset to defaults'. It restores the built-in types' colors, checklists, and field settings. Your custom types and all customer data are never touched.
- A type you just added has no list of its own yet, so its Checklist panel shows the Maintenance tasks your techs actually see on it and says so. Edit them and click Save checklist to give that type its own list.
- Deleting a custom type moves its jobs and pool defaults back to Maintenance and removes that type's checklist and form mappings, so reassign anything important first.
Build a form and read what techs submit
Forms are the extra paperwork your techs fill in the field: opening checklists, equipment inspections, damage reports. You build them by clicking, with no syntax to learn, and every filled copy comes back to the office.
Where: Manage -> Forms
- Open Manage, then Forms. Scroll to 'Build a new form' and give the form a name (and an optional description).
- Click 'Add field' for each question. Type a label, then pick a field type: text, number, checkbox, select, date, photo, or signature.
- For a 'select' field, type the choices separated by commas. Turn on 'Required' for any field the tech must answer.
- Reorder fields with the up/down arrows, remove one with the X, then click Create form.
- Use the Active checkbox in the forms table to control whether a form shows to techs in the field; uncheck it to retire a form without deleting it.
- Attach the form to the job types that should show it (Manage -> Job types, checklists & forms -> Forms) so it appears on the right visits.
- Watch 'Submitted forms' to see copies as techs fill them; click any row to read the answers.
- Editing a form (click its name) changes it going forward; already-submitted copies keep the answers they were filled with.
- Deleting a form removes it from the field app and deletes its saved submissions, and that cannot be undone.
Schedule a one-off job
Most stops come from a customer's recurring route, but you can drop a single extra visit onto a tech's day for a repair, a green-to-clean, or a one-time call.
Where: Customer 360 -> Schedule job, or + New (top-right) -> Job
- From a customer record, click Schedule job; WaterMark carries that customer into the form. Or click '+ New' and choose Job from anywhere.
- If you started from + New, type the customer name or phone and choose the matching account.
- Pick the technician who will run it.
- Set the date for the visit.
- Optionally add skill tags (like 'repair' or 'saltwater') so skill-aware auto-balance can route it to the right tech.
- Click Schedule. The stop lands on that tech's route for that day.
- Set the job's type after it's on the board: open the stop on the schedule and change 'Job type' so the tech sees the correct checklist and forms.
- To move the stop to another day or hand it to a different tech, use 'Move to another day' or 'Reassign' right on the schedule board, no need to recreate it.
How a tech runs a stop in the field app
This is the order a technician works a visit on their phone, from pulling up to the pool to marking the job complete. Knowing the flow helps the office answer 'why won't it let me finish?' calls.
Where: Field app (technician's phone) -> today's route -> the stop
- The tech opens the day's route and taps the stop to open the job screen.
- They tap Start Job. The job opens and records arrival automatically; there is no separate Arrive button.
- They enter the water test readings (free chlorine, pH, alkalinity, and the rest of the panel you left visible for this job type).
- They log any chemicals dosed, picking from your chemical catalog with the amounts.
- They work through the service checklist and fill any forms attached to the job type.
- They add before/after photos, review the customer recap, and capture the customer's sign-off if you require one.
- They tap Complete. If a required form, checklist task, or close-out step is missing, the app blocks completion and names what's left.
- What the tech sees is driven by the job type: the checklist tasks, which forms appear, which fields show, and which close-out steps are required all come from your Job types, checklists & forms setup.
- The same required-step gate runs on the server, so a job can't be forced complete through a shortcut even if the phone is offline and syncs later.
Done, Return, or Review: the completion relay
When a tech finishes, they tell the office what happens next: the visit is Done, it needs a Return trip, or it needs an office Review. That choice flows straight to your schedule board and callback queue so nothing gets forgotten.
Where: Schedule board (chips on the card) and Operations -> Callback queue
- Done means the visit is finished and the customer is back on their normal rotation; no flag appears.
- Return means the tech couldn't fully resolve it and someone has to go back. The tech adds a timeframe: return now, in a few days, or by a specific date.
- Review means the tech needs an office judgment call before anything else happens (for example, a quote or an owner decision).
- On the schedule board, a Return shows a red 'return' chip and a Review shows a highlighted 'Office review' chip, each with the tech's note.
- Open Operations to see the Callback queue, a running list of every job needing a return or review, with the customer, address, tech, and reason.
- When you've handled one, click 'Mark handled' on that row to clear it from the queue.
- Hover a job card on the board to see the 'Next' line spelling out the exact action, like 'Return by 2026-07-20'.
- A Review flag doesn't schedule anything on its own; it's a note asking the office to decide the next step.
Fix a form answer after the job is done
If a tech mistyped a reading or missed a box, the office can correct a submitted form in place, up until the job's invoice settles and the record locks.
Where: Manage -> Forms -> Submitted forms
- Open Manage, then Forms, and find the visit under 'Submitted forms'.
- Click the row to open the submission and read the answers.
- Click 'Edit answers', change what's wrong, and save. The office user and time are recorded on the submission.
- If the job's invoice has already settled, the form shows a lock and can no longer be edited.
- By default, field techs can only edit their own forms until the end of the day they were completed. Turn on 'Let field techs edit forms until the job is locked' on the Forms screen to give them until the invoice settles.
- The office can always edit a submission until the job locks, regardless of that tech setting.
Spanish for your crew + translate a recap for the customer
WaterMark is bilingual on the field app: seeded checklist tasks and the forms library show in Spanish automatically for a Spanish-language tech, custom form names are auto-translated once, and a tech can translate a job recap into the customer's language before sending it, with a proofreading back-check.
Where: Field app (each tech sets their language) + the recap screen
- A tech sets their app language to Spanish in the field app: the daily-driver screens, seeded checklist tasks, and the forms library render in Spanish with no office setup.
- When you create a custom form or checklist item in the office, WaterMark translates its name/labels into Spanish once and caches it, so the crew sees it in their language too.
- On the recap screen, a tech can translate the customer recap into the customer's preferred language before sending. The app re-translates it back and flags any drift so the message stays faithful.
- The crew-facing Spanish (seeded tasks + forms library) is built in: it works offline and costs nothing.
- This lives on the FIELD app and the data layer. There's no separate office toggle to switch on.
- The recap translator uses the AI assistant, so it counts toward your monthly AI usage like other AI actions.
Billing & Invoices
Create and send an invoice
Build a one-off invoice for any customer, add line items and a tip, and email it with a pay link so they can pay by card online.
Where: Press Ctrl+K and choose Create invoice, or open Money
- Press Ctrl+K, type 'create invoice,' and choose the command. If you have no customers yet, WaterMark will tell you to add one first.
- Type the customer name or phone in the customer picker and choose the matching account.
- Add each line item: a description and a unit price. Add as many lines as you need.
- Watch sales tax fill in automatically based on the customer's state (see Set sales tax rates by state).
- Optionally add a tip amount, then click Create invoice.
- Find the new invoice in the customer's billing (Customer 360) or the invoices list, and click Email to send it with a pay link.
- An invoice must have at least one line item with a description, or it won't save.
- You can edit an unpaid invoice's line items later, but once any money is collected it locks - that keeps your books honest.
- Card payments only land in your bank once your company has connected its Stripe payout account. Until then the invoice still sends; the customer just can't pay by card.
Send a Good / Better / Best estimate and get it accepted online
Build tiered quotes so the customer picks the option they want, then approve it to turn the accepted amount into an unpaid invoice.
Where: Money section -> Estimates
- Open Estimates and create or open a quote for the customer.
- Set up to three tiers - Good, Better, and Best - each with its own amount and scope.
- Click Copy link to share the customer's portal link so they can review the options themselves - that works today. (Sending the estimate by text only reaches the customer once SMS is enabled and approved for your account.)
- When the customer picks a tier, open the estimate and choose that option first.
- Click to mark the estimate Approved - this creates an unpaid invoice for the chosen amount.
- Email that invoice with a pay link, or collect payment however you normally do.
- Approving an estimate always creates an unpaid invoice - it does not charge the card by itself.
- For a Good/Better/Best quote, choose the option before you approve, so the invoice bills the right tier.
- Copy link lets you text or paste the estimate to the customer yourself, which works today. Resend re-sends it by text, which only delivers once SMS is enabled and approved for your account.
Set sales tax rates by state
Tell WaterMark each state's tax rate once, and every invoice - service, memberships, parts, and estimates - is taxed by the customer's own state automatically.
Where: Company settings -> Sales tax -> Set rates by state
- Open Company settings and find the Sales tax row.
- Click Set rates by state to open the tax rates screen.
- Add a state and its rate (for example, a percentage for the state where you do business).
- Repeat for every state where you have taxable customers.
- Save. From now on each customer is taxed at their own state's rate, resolved from their address.
- A state you do not list is taxed at 0% - never at another state's rate. So if a customer shows no tax, check that their state is on this list.
- The rate applies to every kind of invoice: service, memberships, parts, and estimates.
- If you only work in one state, you still add just that one rate here.
Statements, AR aging, and the collections worklist
AR aging is money customers still owe you, grouped by how old it is. WaterMark puts the oldest balances first so you know where to follow up.
Where: Money tab -> Unpaid Invoices and AR Aging
- Open Money. Unpaid Invoices leads the workspace, with Ready to Bill directly after it; AR Aging stays farther down for balance age at a glance.
- Use Open collections worklist for every balance, or Chase 31+ day balances to open the same worklist already filtered to older accounts.
- Use Find never-opened invoices to jump to Unpaid Invoices with that confirmed receipt filter applied. Unknown view status is never labeled never-opened.
- Use Export AR aging for the real aging CSV you can open in Excel or hand to your accountant.
- For any customer, click Statement to view their account, or Email to send that statement with a pay link.
- Use Email everyone to send a statement to every customer who carries a balance, or select several rows and email just those.
- From a customer's statement you can also Download statement (PDF) for a chosen period - an accountant-ready file.
- A statement summarizes what a customer owes and has paid - email it with a pay link so they can settle online in one tap.
- The worklist tells the difference between 'nobody owes you' and a failed load, so an empty screen really means you're caught up.
- Sending a reminder or statement here uses email, which works today. Automated overdue text reminders only go out once SMS is enabled and approved for your account.
Credit memos, refunds as credit, and prepay packages
Give a customer documented account credit, return a payment either as money or as credit, and collect prepayments that draw down future invoices.
Where: Customer 360 (open a customer) -> billing actions; refunds under Money -> Payments & refunds
- To credit an account: open the customer, click Issue credit memo, enter an amount and a reason, and issue it. The dollars go to their credit balance and can be applied to a specific invoice or voided later.
- To sell a prepayment: open the customer, click Sell prepay package, enter the amount collected and any bonus credit. The full package credit is available immediately and automatically draws down future invoices.
- To refund a paid invoice: open Payments & refunds, find the invoice, and click Refund.
- Choose Money refund to send the card charge back through Stripe (it also flags any cash/check owed), or Refund to account credit to move no money and create spendable customer credit.
- Either refund choice closes the invoice and removes it from collected revenue.
- Account credit moves no money - it's spendable on the customer's next bills. A money refund actually returns funds (via Stripe for card charges).
- Bonus credit on a prepay package can't exceed the amount collected.
- Credit memos are documented with a reason and can be voided, so your books always show why a credit exists.
Automatic late fees on overdue invoices
Turn on automatic late fees so overdue invoices are charged a fee after a grace period (a flat amount or a percentage) without you chasing anything by hand.
Where: Manage -> Billing settings
- Open Manage and go to Billing settings.
- Turn on Automatic late fees.
- Set the grace period (how many days past due before a fee applies). The minimum is 7 days.
- Choose a flat dollar amount or a percentage of the overdue balance.
- Save. From then on the nightly run adds the fee to any invoice that's still unpaid past the grace period, once per invoice.
- Late fees are OFF until you turn them on. Nothing is charged retroactively.
- A fee is applied at most once per invoice, so an invoice that stays overdue isn't fee-stacked every night.
- Pair late fees with automatic dunning (failed-card retries and reminders) so overdue balances work themselves down while you're on the route.
Memberships, recurring auto-billing, and dunning
Create membership plans, enroll customers, and optionally let WaterMark charge members' cards on file each cycle so you stop chasing recurring invoices.
Where: Grow section -> Memberships (New plan / Enroll customer); auto-billing under Company settings
- Open Memberships and click New plan. Name it, set a price and billing period (monthly, quarterly, or yearly), and an optional member discount.
- Choose the type: Term (a contract length you can extend, pause, or renew) or Visit credits (buy N visits, one used per completed visit).
- Click Enroll customer to put a customer on a plan.
- To turn on recurring auto-billing: open Company settings and check 'Auto-charge members' cards on file each cycle.' It's off by default and needs a connected payout account.
- Also check the dunning option so a customer whose card is declined gets an email with a link to update it. Declines retry on a backoff schedule.
- Auto-billing is off by default because it moves customer money - turn it on only when you're ready. Enrolling in a recurring plan is the customer's authorization to be charged.
- With auto-billing off, memberships still generate invoices; you just collect them yourself.
- The dunning email requires a connected payout account and, of course, that email is set up for your company.
Set regular, member, and flat-rate pool repair prices
Price common pool work once, keep an explicit member tier when needed, and let invoices preserve the exact price source used at billing time.
Where: Inventory -> Pricebook -> Add item or Flat-rate starter
- Open the Pricebook and classify the item as a service, material, or equipment item.
- Enter the regular price and, when appropriate, a member price that does not exceed the regular price.
- Use the flat-rate starter to review pool defaults such as filter clean, pump replacement, heater diagnostic, salt-cell replacement, and green-pool recovery.
- Preview every row before saving. Existing pricebook items are never overwritten by the starter.
- An explicit member price wins instead of stacking with a plan percentage discount.
- Historical invoice lines retain their price snapshot after the pricebook changes.
Recover a membership card before the customer churns
Membership renewal risk is based on provider-confirmed card or failed-cycle evidence, and recovery messages are durable, cooldown-limited, and visible when delivery fails.
Where: Money -> Memberships -> Fix renewals; Today -> Needs Your Attention
- Open the renewal-risk row to see whether the member's card is expiring, expired, missing, or attached to a real declined cycle.
- Review the customer and renewal before sending the prewritten secure card-update request.
- Send once; WaterMark reserves the recovery action so a double click or nightly retry cannot send a duplicate message.
- If delivery fails, correct the customer email or provider setup and retry from the same member row.
- Pre-renewal recovery applies only to memberships configured for automatic collection.
Payments & Getting Paid
Connect Stripe so customers can pay you online
Connecting Stripe turns on online card and ACH payments. When the Get Paid Online card says the account is ready, customer money routes to your Stripe account and pay links appear on invoice emails, service reports, and the homeowner portal.
Where: Money -> Get Paid Online
- Click Money in the left sidebar and find Get Paid Online.
- If the card says Not set up, click Set up online payments.
- Complete the business and bank details on Stripe's hosted setup page, then return to WaterMark.
- If the tag says verification pending, click Finish setup and supply the information Stripe still needs.
- When the tag says ready and the card says Ready to accept payments, online payment links are available.
- Start in Money -> Get Paid Online. Its tag reports ready, verification pending, not set up, or status unavailable instead of guessing at the connection state.
- Use Finish setup when verification is pending, or Set up online payments when the account is not set up. The card has no Disconnect Stripe control and offers no reconnect action while it reports ready.
- If the card reports status unavailable, use its Retry button or reopen Money so WaterMark can check again.
- Check /status for a current WaterMark service incident before changing payment setup.
How homeowners pay you online
Once Stripe is connected, every invoice you send carries a pay link, and customers can also pay from the homeowner portal. The homeowner clicks the link, enters their card, and the money lands in your bank - the invoice marks itself paid.
Where: Any invoice -> Email button; or the homeowner portal
- Make sure Stripe is connected first (the "Get Paid Online" card on the Money tab shows "live").
- Open an invoice and click Email to send it to the customer. The email includes a pay link.
- The homeowner opens the email, clicks the link, and pays by card on a secure Stripe page.
- Customers with a portal login can also open the portal and pay any open balance there.
- When the card clears, the invoice moves to Paid on its own - you don't have to mark it.
- Pay links ride along automatically on invoice emails, service reports, and the portal - there's no separate "add a pay link" step.
- If a customer says the pay link didn't work, confirm your Stripe connection still shows "live" on the Money tab.
- No card on hand? You can always record their cash or check payment yourself (see "Record a payment").
Record a payment or mark an invoice paid
When a customer pays you by cash, check, card, or bank transfer, record it against the invoice so your books stay right. You can record a partial payment or mark the whole balance paid in one click.
Where: Open an invoice, or a customer's billing section -> Record payment / Mark Paid
- Open the invoice (from the customer's record or your invoice list).
- For a full payment, click "Mark Paid," choose the method - Cash, Check, Card, or ACH / bank transfer - and confirm.
- For a partial payment, click "Record payment" instead, enter the amount, pick the method, and add an optional note like a check number.
- Save. The invoice shows Paid, or Partial with the remaining balance if it wasn't the full amount.
- If a customer overpays, the extra automatically becomes account credit you can apply to their next bill.
- Marking an invoice paid cancels any open online card payment first, so a customer can't accidentally pay twice.
- Use the note field on a check payment (e.g. "check #1042") - it makes reconciling with your bank much easier later.
- Recording a payment here is for money you already collected; it does not charge the customer's card.
Refund a payment or issue account credit
You can return money on a paid invoice two ways: a money refund (sends card charges back through Stripe) or account credit (moves no money, but gives the customer a spendable credit for a future bill). Either choice closes the invoice and removes it from collected revenue.
Where: Money tab -> "Payments & refunds" -> the paid invoice -> Refund
- Open the Payments & refunds view from the Money section.
- Find the paid invoice in the Paid list and click Refund.
- Read the amount shown - this is the full amount being returned.
- Choose "Money refund" to send card money back through Stripe (it also flags any cash or check portion the office needs to hand back).
- Or choose "Refund to account credit" to move no money and instead give the customer spendable credit.
- Confirm. You'll see a toast confirming the refund or the credit, and the invoice moves to the Refunded list.
- Account credit is the friendly option when a customer will use you again - it keeps the money with your business.
- A money refund on a card goes back through Stripe to the same card; cash and check portions you return by hand.
- Refunded and disputed invoices sit in their own section at the bottom of Payments & refunds so you can track them.
See what you've collected (payments summary)
Payments breakdown shows eight parts of the payment ledger for the selected dates: Card, ACH, Cash, Check, QuickBooks / Xero / other, Card surcharges collected, Refunds, and Credits / adjustments.
Where: Money tab -> Owner digest preview -> Payments breakdown
- Open the Money section from the sidebar.
- Under Owner digest preview, open "Payments breakdown".
- Choose This week, This month, This quarter, or Year to date. For a Custom range, set Start and End, then select Apply range.
- Read the eight tiles: Card, ACH, Cash, Check, QuickBooks / Xero / other, Card surcharges collected, Refunds, and Credits / adjustments.
- Select a tile to see the dated ledger rows behind its total.
- Use Deposit activity to reconcile net invoice payments with tips and Card surcharges collected.
- Check Open invoices below the tiles to see the current unpaid count and balance.
- Net invoice payments collected excludes tips, card surcharges, account-credit entries, and payments on void invoices.
- The breakdown is payment-dated. The Money KPI and owner digest are invoice-dated, so period totals can differ when payment comes in later.
- Export CSV downloads the date range currently shown.
Inventory & Trucks
Track your chemicals and parts stock
WaterMark keeps one running count of the chemicals and parts you stock, what they're worth, and when you're running low. Set an on-hand count and a reorder point for each item, and the app flags anything that dips below it.
Where: Manage company -> Catalog & forms -> Inventory (or the Inventory panel on your dashboard)
- Open Manage company, then under Catalog & forms choose Inventory. You'll see your stock value, this month's chemical spend, and a row for every item.
- To add an item, use the "Add / update a chemical" strip at the bottom: type the name (e.g. Liquid Chlorine 12.5%), pick a unit (lb, oz, gal, bag, case, ea), and enter on-hand, reorder-at, cost per unit, and optionally a SKU and supplier. Click Save.
- A brand-new name adds an item; typing a name that already exists updates it instead.
- Adjust a count fast with the − and + buttons next to on hand. To rename or remove an item, use Edit or Delete in that row.
- Set the Reorder @ number for each item - when on-hand drops to or below it, the item shows a LOW badge.
- Scroll to "Stock movement (recent)" to see the running log of everything used on a job, dosed, received, or adjusted, and who did it.
- The dashboard's Inventory panel gives you a quick view plus a "Purchase orders, vendors & stock history" link that opens this full screen.
- On-hand counts move on their own when techs dose or use parts on a job - the movement log always shows why a number changed.
Stock inventory by truck instead of one company total
If your company stocks each truck, turn on per-truck inventory. Then a part a tech uses on a job automatically comes off that tech's truck, and you can see on-hand for every truck and the shop side by side. It's off by default.
Where: Dashboard -> Trucks & inventory locations panel
- Find the "Trucks & inventory locations" panel on your dashboard and click "Turn on per-truck inventory." Confirm when asked - your existing stock total is never lost.
- Click "+ Add truck." Give it a name (e.g. Truck 3 - Mike), an optional ID (plate, VIN, or your own number), and pick the regular driver from your technician list. Save.
- Repeat for each truck. The tech you set as regular driver is whose truck a job's parts deduct from.
- Use "Receive stock" to load parts onto a truck or the shop from a delivery or sign-out sheet: pick the location, add item + quantity lines, and click Receive.
- Use "Transfer" to move stock between the shop and a truck - your company total doesn't change.
- Read the "On hand by location" table to see each item's count per truck and shop, with a red ⚠ on anything low.
- Only turn this on if you actually stock trucks this way - for one shared supply, the single company total is simpler.
- Turning it back off returns you to one company-wide total but keeps your per-truck breakdown in case you switch back.
- Removing a truck keeps its stock history and sends its assigned tech back to the shop.
Reorder low stock and receive purchase orders
WaterMark can draft a purchase order for everything that's below its reorder point, email it to your vendor, and then add the goods to stock when they arrive. Nothing is added to your counts until you receive it.
Where: Manage company -> Catalog & forms -> Inventory -> Purchase orders / Vendors
- First add your suppliers: in the Inventory screen's Vendors section click "+ Add vendor" and enter a name and an email (the email is what lets you send POs). Save.
- Click "Auto-reorder low stock." WaterMark drafts one purchase order from every item under its reorder point. This is a draft only - it does not change your stock yet.
- Review the draft in the Purchase orders list. To email it, click Send on that PO - it goes to the vendor's email on file (the app only reports it sent when the email actually goes through).
- Use Print for a paper or PDF copy of the order.
- When the order physically arrives, click Receive… on the PO. Enter the quantity actually delivered on each line, then "Receive entered," or click "Receive all" to receive every line in full.
- Receiving adds those quantities to on-hand and records it in the stock movement log. A partly-filled order shows a "partial" badge so you can receive the rest later.
- Receiving is a deliberate step on purpose - the app never blind-adds an order to stock, so your counts always match what really showed up.
- A PO won't send until its vendor has an email on file. If Send says no email, edit the vendor, add one, and re-draft.
- Over-receiving is clamped to what was ordered so you can't accidentally inflate a count.
Build your chemical catalog and water-balance targets
The chemical catalog is the master list your techs pick from on the job screen. Water-balance targets are the ideal ranges your dosing engine aims for. Tune both to how your company runs.
Where: Manage company -> Catalog & forms -> Chemical catalog / Water-balance targets
- Open Manage company, then under Catalog & forms choose Chemical catalog.
- To add a chemical, fill the "Add a chemical" row: name (e.g. Cal-Hypo 73%), a category, a unit, the min/max/step amounts for the field stepper, and any package sizes (separate them with semicolons). Click + Add.
- Edit any chemical in place to rename it or change amounts. Untick "show" to hide it from techs while keeping it in the catalog; use Delete to remove it for good.
- To set your water targets, go back to Catalog & forms and choose Water-balance targets.
- For each reading (pH, chlorine, and so on) set your min, ideal, and max. Leave a row alone to use the industry-standard default; click reset on any row to restore it.
- Click Save targets. The field app's dosing recommendations and your customer reports will now aim for your numbers.
- Liquids measured in gallons get quick fraction chips on the field app; everything else gets a number stepper.
- Hiding a chemical is safer than deleting when you just want it off the field list for the season.
Bill parts your techs logged in the field
When a tech logs a part on a job, it lands in Ready to Bill so nothing you installed goes un-invoiced. One click turns a customer's logged parts into an itemized invoice.
Where: Money tab -> Ready to Bill panel
- Open Money and find "Ready to Bill" directly after Unpaid Invoices - it lists each customer with parts logged in the field but not yet billed.
- Read the line under each customer to see the parts and quantities, and the total on the right.
- When you're ready, click "Bill it" for that customer.
- WaterMark creates an itemized invoice from those parts and confirms how many line items and the amount.
- The customer drops off the Ready to Bill list once billed. Manage the new invoice from your Unpaid Invoices list like any other.
- An empty Ready to Bill panel just means no parts are waiting - it fills up as techs log parts on jobs.
- Parts flow here from the field app, so the office never has to re-key what a tech installed.
Match vendor bills to purchase orders and receipts
Vendor bills compare ordered, received, and invoiced quantities before approval; returns reduce stock once and track expected versus received vendor credit.
Where: Inventory -> Money operations -> Vendor bills / Returns
- Create or open the vendor, purchase order, and stock receipt for the pool chemicals or parts.
- Enter the vendor bill and review the three-way match against ordered and received quantities.
- Approve only after the receipt truth exists and the cumulative billed quantity fits the purchase order.
- For a return, review the stock reduction, ship once, and record vendor credit only when it actually arrives.
- WaterMark tracks operational AP evidence but does not replace QuickBooks or Xero as the general ledger.
Review min/max replenishment and local tax zones
Truck or shop stock targets propose a draft purchase order for human review, while ZIP/county tax zones preserve precise local rates and fall back to the state rate.
Where: Inventory -> Money operations -> Replenishment; Manage company -> Tax zones
- Set a minimum and target quantity for each high-use pool chemical or part at the Shop or truck location.
- Review the proposed replenishment quantity, then confirm only the items the office wants on a draft purchase order.
- Use the tax-zone wizard to enter a ZIP or county and its full local rate.
- Resolve every tax-mismatch attention row before invoicing a customer whose address changed.
- WaterMark proposes replenishment; it never places an automatic vendor order.
- Overlapping active tax geography is rejected so one invoice has one deterministic rate.
Team & Payroll
Add a technician or office user
Invite the people who work for you so they can use the field app, the office dashboard, or both. Inviting by email is the clean way: WaterMark emails them a secure link and they set their own password.
Where: Manage (gear icon) -> Setup -> Team
- Open Manage (the gear icon), then under Setup click Team.
- Scroll to "Invite an employee by email." Type their name (optional) and email.
- Pick Role & access: Tech (field), Office, or Owner. The Field app and Office checkboxes auto-set to match, but you can tick both for someone who works trucks and does office work.
- Click Send invite. They get a secure link, valid 7 days, to set their own password.
- If you don't have email set up yet, open "Or add a member with a temporary password," set a temp password, and hand it to them to change later.
- Adding a Field app (mobile) member can add a paid seat to your plan - WaterMark shows the exact new monthly cost and asks you to confirm first. Office-only logins are free and never count toward seats.
- After you invite a field tech, a follow-up card offers to jump to Route Manager to assign their stops and to enable common field permissions - do both so they're working on day one.
- No email showing up? Use "Send test email" at the bottom of Team to check your email setup before blaming the invite.
Set roles, manager access, and who sees money
The Team table is where you control what each person can reach: the field app, the office dashboard, manager powers, whether a tech sees the company's money, and which branch they belong to. Every checkbox saves the moment you click it.
Where: Manage (gear icon) -> Setup -> Team (top table)
- Open Manage -> Setup -> Team to see everyone in one table.
- Field app: tick to give someone the mobile app; untick to remove it. Office: tick to give the web dashboard (you can't remove your own).
- Manager: tick to let an office user connect QuickBooks or Xero and configure and approve payroll. Owners always have this.
- Sees $: owners and office staff always see money. For a technician, tick it to show the company's money: balances, invoice totals, costs, margins and money reports. Without it a tech still sees the sell price of what they install and takes payment at the close-out of their own jobs.
- Active: untick to switch off a person who left - it blocks their access without deleting their history.
- If you run multiple branches, use the Branch column to assign someone, and tick "only" to lock them to just that branch's board and reports.
- There is no company-wide default for "Sees $": every technician starts without it, and only an owner turns it on, one person at a time.
- To fully offboard someone, untick Active rather than trying to delete them - payroll and job history stay intact.
- Owners can always manage accounting and payroll and always see every branch; those cells show "always"/"all" instead of a checkbox.
Control what field techs can do (defaults and per-person overrides)
Field-app permissions decide what a tech can change out in the field - editing customers, deleting customers, editing the company name, editing their own name, and managing gate/access info. You set a company-wide default, then allow or block individuals as needed.
Where: Manage (gear icon) -> Setup -> Team ("Field-app permissions" section)
- Open Manage -> Setup -> Team and scroll to "Field-app permissions."
- The checkboxes there are the DEFAULT for every field worker. Most stay locked until you opt in; "Manage access info" is on by default so techs can fix a wrong gate code on the spot.
- Tick or untick a default to change it for all field workers at once.
- To change one person, click the Permissions button on their row in the table above.
- In that drawer, each ability shows three buttons: Default (follows the company setting), Allow, or Block. Pick Allow or Block to override just that person, then click Done.
- Per-person Allow/Block always wins over the company default, so you can keep the default tight and open things up for a trusted lead tech only.
- "Manage access info (gate code)" being on by default is deliberate - it lets a tech correct a bad gate code without calling the office. Uncheck the default if you'd rather lock it.
Set each tech's pay: hourly, commission, per-job, or track-only
Per-tech pay setup tells WaterMark how to compute each person's earnings on a payroll run. Most pool companies pay hourly; commission is optional and set per tech. You also decide here whether hourly overtime follows the federal FLSA rule.
Where: Manage (gear icon) -> Setup -> Company settings -> "Crew pay & pricing"
- Open Manage -> Setup -> Company settings and scroll to "Crew pay & pricing."
- Set the company Commission basis default: Revenue (% of collected dollars) or Profit (service dollars plus parts margin).
- Leave "Weekly overtime for hourly techs (FLSA)" ON unless your crew is 1099/day-rate - it pays time-and-a-half past 40 hours in a Mon-Sun week.
- Under "Per-tech pay setup," choose each tech's Pay type: Hourly, Track hours only, Per job, or Commission.
- Fill in the Rate ($/hr or /job), and for commission techs a Service % and/or Parts %; set Basis to inherit the company default or override it.
- Click Save on that tech's row - it saves immediately and re-loads to show the stored values.
- "Track hours only" records hours but computes no pay - use it when you run payroll in another system and just want WaterMark's clocked hours.
- On a Profit basis, the parts portion pays on margin (price minus cost), not the full part price.
- If a job is worked by a crew, the "Split pay across a job's crew" toggle in the same section decides whether pay is shared by each member's share or the lead keeps it all.
Review timesheets and fix a missed clock-out
The Timesheets panel shows real clocked hours per tech for a pay week, straight from the field app. When a tech forgets to clock out, you fix the punch here so payroll hours are right.
Where: Left sidebar -> Team -> Timesheets panel
- Click Team in the left sidebar. The Timesheets panel loads the current pay week.
- Use the period dropdown to switch between This pay week and Last pay week.
- Click a tech's name to expand their entries and totals. A red ⚠ next to a name flags a shift that needs a clock-out correction, and it opens automatically.
- To fix a punch, click Edit on the entry, set the correct clock-in/clock-out time and an optional note, and Save.
- To close a still-open shift at the current time, use the entry's close action; to set an exact end time instead, use Edit.
- Missing a shift entirely? Click "+ Add entry," pick the tech, enter clock-in/out, and add it.
- Deleting a clock entry removes its hours from payroll, so correct times with Edit rather than deleting unless the entry is truly bogus.
- Clock in/out comes from the field app - techs don't need the office to log hours, you're just correcting exceptions.
- Fix missed clock-outs before you run payroll for that week so the snapshot captures the right hours.
Run, adjust, approve, and export payroll
A payroll run snapshots a pay week into a draft you can review and adjust, then approve to lock as the permanent paid record and export to CSV. Earnings come from collected revenue, the parts ledger, and clocked hours.
Where: Left sidebar -> Team -> Payroll panel
- Click Team in the left sidebar and find the Payroll panel.
- Pick the period (This pay week or Last pay week) and click Run payroll - it creates a DRAFT and opens it.
- Review each tech's line: pay type, jobs, hours (overtime past 40 is marked OT), revenue, and earnings.
- Add an adjustment or bonus if needed - pick a tech or the whole run, add a label and amount (negative for a deduction), and click Add.
- When the numbers look right, click Approve & lock. This freezes it as the immutable paid record with your name and timestamp.
- On an approved run, click Download CSV to export it for your payroll processor or bookkeeper.
- Approving locks the run - you can't edit it afterward, so add every adjustment while it's still a draft.
- An asterisk on hours means they were estimated from visits because no time was clocked; fix the timesheet and re-run if you want real hours.
- Only owners and managers can configure and approve payroll - grant the Manager toggle in Team to an office user who needs it.
Reward collected pool work with pay rules and spiffs
Optional pay-rule profiles add per-SKU spiffs and one matching revenue tier to the established payroll calculation, using collected and refund-aware money.
Where: Team -> Pay rules & exports -> Set up pay rules
- Open Set up pay rules and choose the technicians who use the profile.
- Add a flat-dollar or percentage spiff to a real pricebook item such as a filter clean or salt-cell replacement.
- Optionally add revenue tiers and a cap; only the highest matching tier applies.
- Run the exact preview before saving so the office can see which collected jobs and techs qualify.
- Partial collections prorate a spiff and refunds reduce its collected basis.
- No profile means the technician's existing hourly, commission, or per-job rules stay unchanged.
Export payroll and resolve employee sign-off disputes
Approved payroll can be mapped to generic, ADP, Gusto, or Paychex earnings codes, while each employee can sign the immutable run or open one reviewable dispute.
Where: Team -> Pay rules & exports; Payroll run -> Sign-off
- Map the payroll provider's earnings codes and each tech's provider employee ID.
- Preview and approve the payroll run using the established payroll workflow.
- Export the provider CSV; WaterMark prepares the file and never claims it submitted payroll.
- If a tech disputes an approved run, review the note and resolve it; any dollar correction belongs on the next payroll run.
- State overtime profiles use the same elapsed-time buckets as the timesheet and avoid premium pyramiding.
Integrations & API
QuickBooks sync: exactly what crosses, and what does not
Trust in a sync comes from knowing its edges. This guide lists every record type the two-way QuickBooks sync carries, and names plainly what stays in WaterMark.
Where: Money -> QuickBooks
- Crosses both ways: customers, invoices (with itemized lines), and payments.
- Crosses to QuickBooks: refunds (as refund receipts or adjustments), credit memos and their applications, and payout reconciliation - deposits with matching payout and fee journal entries, so your bank feed matches to the penny.
- Invoice totals always match exactly, tax included: the tax amount rides the invoice so QuickBooks and WaterMark can never disagree on what the customer was billed. WaterMark does not fill in QuickBooks' own tax-code entries - if you file sales tax from QuickBooks' tax module, apply your tax codes there.
- A payment voided in QuickBooks is pulled back and reversed in WaterMark automatically, with a note naming the QuickBooks payment it reverses.
- Does not cross, by design: quotes (they sync once they become invoices), photos and attachments, chemical and expense records, and time or payroll data.
- Voiding an invoice in WaterMark does not void an already-pushed copy in QuickBooks - void it there too. Invoices that are void, refunded, disputed, or consolidated before ever syncing are deliberately never pushed.
- Every pushed record carries an idempotent request id, so a retried sync can never create a duplicate.
- The optional Xero add-on ($15 a month as of September 2026; the panel always shows the live price before you enable it) follows the same push and pull shape.
- If something looks out of step, the "When the sync doesn't look right" section of the QuickBooks guide walks the honest recovery path.
Connect QuickBooks Online (two-way sync)
QuickBooks Online is WaterMark's live, recommended accounting connection. Once you connect it, your customers, invoices, and payments flow both ways so your books stay current without double entry.
Where: Money tab -> QuickBooks panel
- Open the Money tab and find the QuickBooks panel below the daily invoice work and Get Paid Online.
- Click "Connect to QuickBooks" and sign in to your QuickBooks Online company when the QuickBooks window opens.
- Approve the connection; you land back on WaterMark and the panel shows "Connected to [your company]."
- Click "Push to QuickBooks now" to send your current customers and invoices over the first time.
- Click "Pull from QuickBooks" any time you want to import invoices and payments that were created inside QuickBooks.
- Leave it running: WaterMark payments and invoices push as they happen, and QuickBooks-created invoices and payments import back on a nightly catch-up.
- Start in Money -> QuickBooks. The tag and panel show not connected, Connected to your company, or Could not load QuickBooks status.
- To refresh the authorization, click Disconnect and confirm, then click Connect to QuickBooks and approve the connection again.
- If invoices push but get skipped, add an Item in QuickBooks first - QuickBooks requires a product/service Item on every invoice line. WaterMark tells you when this is the cause.
- There is no single-invoice re-push control. After you correct the connection or Item, click Push to QuickBooks now; it retries eligible unsynced records.
- Check /status for a current WaterMark service incident before disconnecting a working connection.
- To choose where each kind of work lands in QuickBooks, follow "Choose income accounts for QuickBooks and Xero" in Help.
- You must be an owner or a manager to connect or disconnect QuickBooks.
- QuickBooks is production-approved and the connection WaterMark recommends. Use it before considering Xero.
Choose income accounts for QuickBooks and Xero
Use the Income accounts panel to choose where invoice lines land in a connected QuickBooks or Xero company. Set a default first, then add a category or catalog-item override only when that work needs a different income account.
Where: Money tab -> Income accounts panel
- Open the Money tab and scroll to Income accounts. Connect QuickBooks or Xero first; the panel shows a separate section for each connected provider.
- Choose the Default income account. Work without a saved override uses this account.
- Use a category selector when every catalog item in that category should use the same income account.
- Expand Per-item overrides and choose an account for any single active catalog item that should not use its category or the default.
- Click Save QuickBooks mapping or Save Xero mapping for the provider you changed. The status beside the button confirms when the save finishes.
- An owner or manager can change these mappings. Other office users can read the panel but cannot save changes.
- If a saved account says Not found, WaterMark leaves the mapping on the record and uses the provider default until you choose an account that is available again.
- When both providers are connected, save each provider's mapping separately.
Turn on the Xero add-on (optional, paid)
Xero is an optional monthly accounting add-on. After it is active and connected, its Money panel can push WaterMark records to Xero and pull Xero records back; it stays off until you enable it.
Where: Money -> Xero
- Open Money and find Xero below QuickBooks.
- If the panel says Not configured yet, Xero is not available and the panel shows no setup action.
- When the add-on offer is available, review the monthly price shown there, click Enable Xero sync, and confirm the charge on your WaterMark invoice.
- Click Connect to Xero and sign in to your Xero organisation.
- When the panel reports connected, use Push to Xero now to send records or Pull from Xero to import records.
- Use Turn off add-on to stop its billing and remove Xero access for the company.
- Start in Money -> Xero. The panel can show not connected, Connected to your organisation, or Could not load Xero status.
- To refresh the connection, click Disconnect and confirm, then click Connect to Xero and approve the connection again.
- If the panel specifically asks for payout access, click Reconnect Xero before retrying payout bank transactions.
- After correcting the connection or accounting setup, use Push to Xero now or Pull from Xero again. Each action reports its whole result beside the controls; the panel does not offer a single-record retry.
- Check /status for a current WaterMark service incident before disconnecting a working connection.
- The add-on must remain active before the panel offers Connect to Xero.
Connect safely with the free REST API
WaterMark includes a free public REST API on every plan. Read customers, jobs, invoices, and payments; run checkpointed incremental exports; or exchange a key for a 15-minute access token. Optional automation is deliberately limited to office tasks and non-access customer notes.
Where: Manage company -> Setup -> Webhooks & API (owner only)
- Open the menu and choose "Manage company," then find "Webhooks & API" under the Setup section.
- Scroll to the "API keys" section.
- Type a name so you remember what the key is for (for example "Zapier"), then click "Create key."
- Copy the key immediately - it is shown only once. Store it somewhere safe like a password manager.
- Send the key on each request as an Authorization header: "Authorization: Bearer wk_...", or exchange it at POST /api/v1/oauth/token for a 15-minute access token.
- Call the read endpoints for customers, jobs, invoices, and payments. Use /api/v1/export/{resource} when another system needs an incremental feed with a stable checkpoint.
- For Zapier actions, create a separate key with the optional automation scope. Every action must include an Idempotency-Key.
- A key is scoped to your company only - it can never read another company's data.
- The general customer/job/invoice API remains read-focused. The automation scope can only create an office task or append a non-access customer note; it cannot create or edit customers, jobs, invoices, payments, access instructions, or credentials.
- Incremental exports describe current rows and do not emit delete tombstones. Run a periodic full reconciliation when a downstream system must detect deletions.
- Requests are rate-limited (about 120 per minute per key). See the public docs at the /developers page for details.
- Only the company owner can create or manage API keys.
Send events to Zapier or your own app with webhooks
A webhook pushes a signed notification to a URL you choose the moment something happens - a job is completed, an invoice is paid, a review comes in. It's the easiest way to wire WaterMark into Zapier, Make, or your own backend.
Where: Manage company -> Setup -> Webhooks & API (owner only)
- Open "Manage company" from the menu, then "Webhooks & API" under Setup.
- In "Add a webhook," paste your receiver URL (for example a Zapier catch-hook URL).
- Check the events you want, or leave them all unchecked to receive every event.
- Optionally paste a signing secret, or leave it blank and WaterMark generates one for you.
- Click "Add webhook," then click "Send test" on the new row to confirm your endpoint receives it.
- Verify each delivery by computing an HMAC-SHA256 of the raw request body with your secret and comparing it to the X-WaterMark-Signature header.
- Available events include customer.created, job.completed, invoice.paid, payment.received, lead.created, job.rescheduled, job.skipped, estimate.approved, review.received, and agreement.signed.
- If your endpoint is down, WaterMark retries immediately, then queues the event under "Delivery failures" and re-tries for a few days. Fix your endpoint and click "Replay" to re-send.
- Only the company owner can manage webhooks.
Get WaterMark alerts in Slack
Send plain-English notifications into a Slack channel when key things happen - a job is completed, a payment is received, an invoice is paid. Setup takes one URL and needs no Slack app install or approval.
Where: Manage company -> Setup -> Webhooks & API -> Slack notifications
- In Slack, create an Incoming Webhook for the channel you want alerts in, and copy its URL.
- In WaterMark, open "Manage company," then "Webhooks & API" under Setup.
- Scroll to the "Slack notifications" section.
- Paste your Slack Incoming Webhook URL into the field.
- Save it, then send a test to confirm the message lands in your channel.
- To change channels later, paste a new URL to replace the saved one; to stop, remove it.
- Slack sends readable messages like job completed, payment received, and invoice paid - no code needed.
- No Slack app install or admin approval is required; an Incoming Webhook URL is all it takes.
- This lives in the same Webhooks & API screen, so it's owner-only.
Subscribe to your schedule (.ics calendar feed)
Get your upcoming stops in Google Calendar, Apple Calendar, or Outlook by subscribing to a private calendar feed. It updates automatically - no importing files by hand.
Where: Manage company -> Company settings -> Subscribe to your schedule (calendar feed)
- Open Company settings from the Manage company menu.
- Scroll to "Subscribe to your schedule (calendar feed)."
- Click "Get my calendar (.ics) link" to reveal your private URL, then click "Copy."
- In Google Calendar or Apple Calendar, choose "Subscribe" or "Add by URL" and paste the link.
- Your upcoming stops now appear in your calendar and refresh on their own.
- The link is private and personal to you - anyone with it can view your schedule, so don't share it.
- This is a subscription feed, not a one-time file, so new and changed stops keep flowing in automatically.
Build a replay-safe Zapier workflow
WaterMark combines signed event webhooks, checkpointed read exports, and two deliberately narrow Zapier actions without opening customer, job, invoice, payment, or credential mutation.
Where: Manage company -> Setup -> Webhooks & API -> Advanced automation
- Create a separate API key with read plus automation only after the owner reviews the exact boundary.
- Subscribe the Zapier workflow to a signed WaterMark event such as job.completed or invoice.paid.
- Read current or incremental customer, job, invoice, and payment data using the documented cursor checkpoint.
- For an action, include a unique Idempotency-Key and create only an office task or a non-access customer note.
- Automation cannot create or edit customers, jobs, invoices, payments, access instructions, or credentials.
- Incremental exports have no delete tombstones, so downstream mirrors need periodic full reconciliation.
Reports & Growth
Read your Business Overview KPIs
Today starts with the work that needs attention and a drillable daily-number strip. Business Overview sits just below the operational feed and lets you compare revenue, jobs, outstanding balance, and more across time periods.
Where: Today tab (the default screen) -> Business Overview
- Sign in and stay on the Today tab, which is the left-most item in the sidebar.
- Start with Needs Your Attention. Its tracked dollar exposure is the sum of the explicit A/R, unbilled-work, unsold-work, and renewal-MRR amounts attached to the currently confirmed signals; it never estimates a value for a signal that did not return one.
- Open a Command Center row with its action button, or focus the row and use Enter. Up and Down Arrow move between visible rows.
- Then use the daily-number strip to open dispatch, revenue, chemical cost, profit, or outstanding invoices.
- Continue to Business Overview for the longer-period KPI tiles.
- Use the period toggle on the right of that panel's title to switch between All, Month, Quarter, and YTD.
- Every tile updates to that period, so pick Month to see this month or YTD for the year so far.
- Scroll down the Today tab to see Ask WaterMark AI, where you can type a plain-English question about your numbers.
- The period toggle only changes the KPI tiles, not the panels further down the page.
- Ask WaterMark AI can answer things like "What did we bill today?" or "Who has the biggest unpaid balances?" using your live data. It includes 200 AI actions a month; usage shows in Company & Tax settings.
See profit by route, chemical cost, and retention
The Money tab holds your deeper profit reports: which crew actually makes money, what chemicals are costing you by tech and by pool, and how many customers you gained versus lost. These are the numbers that tell you where your margin is going.
Where: Money tab (left sidebar)
- Click Money in the left sidebar.
- Scroll to Profit by Route to see revenue minus chemical cost for each crew; use the dropdown to change the window (this month, quarter, year, or last 12 months).
- Click the CSV button on the Profit by Route panel to download that breakdown for your records.
- Look at Chemical Cost by Tech to spot a tech using more product than the others, and Chemical Cost by Pool to find a single money-pit pool.
- Collapse either chemical-cost panel when you only need its loaded total or top-pool summary; the collapsed line keeps the selected timeframe visible and says when the report is unavailable.
- Scroll to Customer Retention to see new versus churned customers for the period you pick in its dropdown.
- Read the Owner digest preview under retention for the exact weekly summary numbers at a glance.
- Chemical cost pulls from the doses your techs log in the field, so the more consistently they record water tests, the truer these numbers are.
- The weekly owner digest email is turned on in Company & Tax settings; the preview here shows what it will contain before you enable it.
Run reports and export data to CSV
WaterMark can hand you a spreadsheet of nearly anything: customers, invoices, payments, jobs, equipment, water tests, A/R aging, and profit by route. Open Report studio to preview, pin, or schedule a trusted dataset, or grab a raw CSV to open in Excel or send to your accountant.
Where: Manage (top bar) -> Insights -> Report studio; CSV buttons also live in the Manage hub and the Money tab
- Click Manage in the top bar (or Account -> Manage company) to open the Manage hub.
- Under Insights, click Report studio to open the full report builder.
- Start from a trusted template such as A/R aging, route profitability, chemical cost, retention, or membership MRR.
- Choose the bounded fields and window, then click Preview before you save anything.
- Pin a useful report to Today or schedule it for email only after the preview matches your question.
- For other data, use the CSV buttons in the Manage hub (Customers, Invoices, AR aging) or the CSV button on the Money tab's Profit by Route panel.
- The AR (accounts receivable) CSV is the aging report your accountant usually wants for collections.
- If a report says it couldn't load, it will show a Retry button instead of a misleading $0 -- WaterMark never shows fake zeros for data that simply didn't load.
Track lead-source ROI and cost per customer (CAC)
The Lead-Source ROI panel shows which marketing channel actually pays: leads, how many became customers, the revenue they brought, and once you record your ad spend, your cost per acquisition (CAC) and return (ROI). It is how you decide where to put next month's marketing dollars.
Where: Grow tab (left sidebar) -> Lead-Source ROI & CAC panel
- Click Grow in the left sidebar and scroll to Lead-Source ROI & CAC.
- Set the window with the dropdown (last 3, 6, 12, or 24 months).
- In the small form, type a Source (for example google), pick the month, enter the dollars you spent, and click Record spend.
- Watch the table fill in CAC (spend divided by customers won) and ROI (revenue minus spend, over spend) for that source.
- Compare sources: a green ROI means that channel is paying for itself; red means it's costing more than it returns.
- Open Manage, choose Leads, and under New lead enter the channel in the Source field before you click Add lead.
- CAC and ROI stay as a dash until you record spend for that source -- the numbers won't guess.
- Attributed revenue is the lifetime paid invoices from customers that source brought in, so a channel can look better over a longer window.
Send campaigns, run drip sequences, and work your pipeline
The Grow tab is your marketing hub. Send a one-time email or text campaign to a segment, set up automated multi-step email journeys (drips) for win-back and cross-sell, and track prospects through a sales pipeline. Email works today; texting sends once SMS is enabled for your account.
Where: Grow tab (left sidebar) -> Marketing & referrals panel
- Click Grow and find the Marketing & referrals tiles.
- Click New campaign, choose Email or Text, pick an audience (all, lapsed, or members), optionally start from a template, write your message, and Send.
- Click Drip sequences to build automated email journeys; start from the Win-back or Membership cross-sell template, or a blank one, then Start it.
- Click Sales pipeline to see prospects as a kanban board; use the arrows on each card to move a lead between stages, and convert a won lead to a customer.
- Click Win-back list to see customers with no recent visit, then Message this list to reach them in one step.
- Drip sequences are email-only by design and run nightly. They stop automatically for anyone who leaves the audience, so a won-back customer never keeps getting win-back mail.
- Text campaigns only actually send once SMS is enabled for your account (it's behind a carrier-approval switch). If texting isn't active yet, the send report will say so honestly and no messages go out.
- Use {{first_name}} and {{company}} in any message and WaterMark personalizes each one automatically.
Manage reviews and grow by referral
Two word-of-mouth engines live on the Grow tab: the reviews inbox for reading and replying to your Google reviews, and referrals -- both customer referrals (a neighbor they send you) and the Refer a pool pro program that earns you account credit when another pool company you invite becomes a WaterMark customer.
Where: Grow tab (left sidebar) -> Reviews inbox, Referrals, and Refer a pool pro panels
- Click Grow, then Reviews inbox; if it's available for your account, connect your Google Business Profile to read and reply to reviews without leaving WaterMark.
- To ask happy customers for a review, click New campaign, choose the Ask for a review email template, and send it to your customers.
- Add your Google review link in Company settings so it's ready to share with satisfied customers.
- Click Referrals to see who referred whom; grab a customer's personal share link from the Copy referral link button on their customer card.
- Scroll to Refer a pool pro, copy your referral link, and share it with another pool company to earn account credit when they become a paying customer.
- A fast owner reply to a review is one of the strongest reputation signals on Google -- the inbox flags how many are still unanswered.
- Referral rewards for customers are manual: WaterMark tracks who sent you business, and you credit them however you like.
- The Refer a pool pro credit is recorded to your account and applied to a future bill -- nothing is ever charged or moved automatically, and you earn it only once per company after they're paying.
Find the pools and routes that are actually profitable
Operating margin combines revenue, technician pay, employer burden, chemical cost, and parts cost on one shared per-job basis.
Where: Money -> Profit by Route; Customer 360 -> pool margin; Recent Service -> Job cost
- Open Money -> Profit by Route and choose the period you want to review.
- Scan GM% by route, then open a route to see each pool visit's revenue, payroll, burden, chemical, and parts stack.
- From Customer 360, open a pool's trailing margin when one account needs investigation.
- Treat rows labeled estimated as planning values until an invoice is collected; collected rows use real refund-aware money.
- The default labor burden is planning-only and never changes technician pay or a customer invoice.
- Low-margin attention signals require a repeated pattern, not one odd pool visit.
Read MRR, retention, churn, and deferred service value
Membership reporting uses explicit cycle events for MRR and retention, with an optional operational deferred-revenue view that never invents dates for legacy cycles.
Where: Grow -> Revenue & retention; Manage company -> Advanced membership revenue view
- Open Revenue & retention and choose the reporting period.
- Read MRR, ARR, starts, exits, churn, and plan mix; the panel states the denominator used.
- Turn on the advanced operational recognition view only if the office wants cycle service value split between recognized and deferred.
- Keep legacy cycles labeled unclassified when they do not contain explicit service dates.
- This is an operational view, not a general ledger or tax financial statement.
Recover missed calls and prove which marketing source booked work
Tracking calls create real lead attribution, missed-call recovery follows consent and quiet hours, and listing consistency is shown only from provider read-back or an explicit manual snapshot.
Where: Grow -> Calls & attribution / Listing consistency
- Choose a paid subscription in Billing before claiming or forwarding a tracking number. Paused workspaces cannot forward calls. Then open Calls & attribution and follow the website DNI instructions.
- Review missed calls; recovery sends one registered booking text only when consent and recipient-local quiet hours allow it.
- Convert the lead normally so future pool jobs retain the immutable source and booked revenue can tie back to spend.
- Open Listing consistency to review confirmed provider data; use Sync only after reviewing the exact change.
- A manual directory snapshot says WaterMark did not publish it.
- Call recordings remain off until disclosure and recording are explicitly enabled.
Build a pool report from a trusted template
Report Studio starts from six reconciled pool datasets and supports bounded table, KPI, or bar modules, Today pins, and scheduled email without user-written SQL.
Where: Grow -> Report studio; Today -> pinned reports
- Open Report studio and start from Profit by pool, Chemical cost, Retention, Route profitability, Membership MRR, or A/R aging.
- Choose the allowed columns, aggregation, and filters, then run Preview.
- Save only after the confirmed preview matches the office question; changing a control makes the old preview stale.
- Optionally pin the report to Today or expand Advanced delivery to schedule an email.
- Provider failure stays failed and retryable; WaterMark never narrates an email that was not accepted.
- Ask AI can prepare a report proposal, but confirmation and preview remain required.
Text or email all your customers at once
One message to your whole book: a winter watch notice, a storm check, a season opening. WaterMark shows you exactly how many customers it reaches and its estimated cost BEFORE anything sends, then sends it in the background so you can close the window, and finishes with an honest receipt.
Where: Grow tab (left sidebar) -> Marketing & referrals -> New campaign
- Click Grow in the left sidebar, then click New campaign in the Marketing & referrals panel.
- Choose Text message (SMS) or Email, pick the audience (all customers, lapsed, or members only), and write your message. Start from a template if one fits.
- Click Review and send. Nothing has gone out yet.
- Read the review screen: how many customers this reaches, an estimate of how many text segments that is and how many of them your plan includes this month, and the estimated extra cost if it goes past your included segments (the final charge follows the segment count the carrier verifies, which can be lower or higher).
- Click the send button (it names the recipient count), then confirm the question.
- Watch the progress bar, or close the window and let it finish on its own. The receipt shows how many sent, how many were held for quiet hours, and how many were skipped.
- Every text carries the required brand and opt-out line (Reply STOP to opt out), which adds about 50 characters. A message just under the one-segment limit often becomes two segments. The review screen counts text segments, that line included, not characters, the way a toll-free number splits a text. When the provider verifies a lower count, as it can for a text sent from a regular number, you are billed the lower count. The verified count can also be higher, and you are billed that count either way, so the segment counts and the extra cost on the review screen are estimates.
- Anyone whose own local clock is inside quiet hours (9 PM to 8 AM) is HELD, not sent and not dropped, and the text goes out on its own, never before 8 AM their local time (in a state with two time zones, once it is 8 AM in both). If a customer's local time cannot be read, the review screen says so and that text waits in your send queue until you decide. A notice written at 6 AM reaches nobody until then.
- A daily safety breaker holds a company's texts past 10,000 in one of its calendar days: they are HELD, never dropped, and go out on their own after 8 AM the next morning, in each customer's own time zone.
- Customers who texted STOP, who have Do not text set, or who opted out of marketing are never contacted, and they are counted apart from failures so a receipt never blames a delivery problem that did not happen.
- Use {{first_name}} and {{company}} anywhere in the message and every copy is personalized automatically.
- One campaign sends at a time per company. If you reload or click twice, WaterMark attaches you to the campaign already running instead of texting your book a second time.
Settings & Company
Understand billing, upgrades, and cancellation
The owner-only Billing & plan screen shows the current WaterMark plan, active technician seats, the next charge and payment method when they can be confirmed, and paid subscription receipts. Upgrade or open the secure billing portal from the same screen.
Where: Left sidebar -> Account -> Manage company -> Money -> Billing & plan (account owner)
- Click Account in the left sidebar, choose Manage company, find the Money section, and click Billing & plan.
- Read Plan and Seats in the account details. The screen also shows the next charge and payment method when those facts are available.
- Under Subscription receipts, open a Receipt link to view a paid subscription invoice when the provider supplies one.
- If no subscription is active, click Start subscription to choose monthly or annual billing. New accounts begin with a 30-day free trial of the $59 a month plan, no card required. There is no permanent free tier. Until a card is on file, the entire trial includes up to 100 text segments, 20 AI actions, 10 receptionist minutes and 5,000 customer emails. A trial without a subscription can have 2 active technicians, the seats the plan includes. On a subscription, paid AI stops at 30 blocks ($300) a month and paid receptionist minutes stop at 40 blocks ($200) a month; past either cap that feature is declined for the rest of the month and nothing more is billed. At day 30, choose a subscription or your workspace pauses. Your data stays stored and exportable. Existing Starter customers receive at least 30 days of advance notice before their access changes.
- For an active subscription, use Switch to annual or Switch to monthly on Billing & plan to change the billing interval: WaterMark makes that change itself and Stripe credits the time already paid. Update card or cancel opens the secure billing portal, which is where the payment method and cancellation live.
- Return to Billing & plan to read the current status. When a cancellation is scheduled for period end, the screen shows the date the plan ends.
- Monthly is the default. Annual billing costs 10 times monthly, so 2 months are free: the standard base is $590 a year with 2 techs included, plus $200 a year for each added tech through the tenth and $150 a year from the eleventh. Full annual refund within 30 days of the annual charge, none after. Upgrades prorate as credit.
- Billing & plan and the billing portal are account-owner controls; WaterMark hides them from other office users.
- Seats is the active technician count used for the plan. The screen does not present customer or office-login counts as technician seats.
- Subscription receipts lists provider-confirmed paid subscription invoices. If that history cannot be confirmed, the screen says so instead of showing an empty history as proof that no charge occurred.
Set up your company profile and tax
Your company name, logo, address, license, website, and time zone brand every invoice, statement, portal page, and text you send. Set them once and everything downstream reads correctly. This is also where sales tax, payment terms, and message-log retention live.
Where: Manage (gear) -> Setup -> Company & Tax
- Open the Manage menu (the gear icon) and under Setup click Company & Tax.
- Type your Company name exactly as customers should see it - it brands invoices, reports, the portal, and texts.
- Upload a Business logo (PNG or JPG under 4 MB); it appears on customer invoices and statements. Use Remove to clear it.
- Fill in Business address, Business phone, License #, and Website.
- Pick your Time zone - it drives 'today', scheduling, and every timestamp, so get this right first.
- Click 'Set rates by state' next to Sales tax to enter a rate for each state you work in (each customer is taxed at their own state's rate).
- Paste your Google review link so happy customers get sent to the right place.
- Under Payment terms, set Net days (0 = due on receipt) to control when invoices become due.
- Click Save.
- Company & Tax is owner-only. If you don't see it in the Setup section, you're signed in as office staff, not the owner.
- Sales tax is set per state, not one global rate - WaterMark taxes each customer by their own state so a multi-state book stays correct.
- Late fees and automatic chemical billing are configured separately, under Manage -> Billing & plan, not here.
Organize work with business units
Business units group your work by line of business - for example Maintenance, Service/Repair, and Construction. They color-band your dispatch board, filter routes, and split your scorecards. They're optional; skip them if you run a single line.
Where: Manage (gear) -> Setup -> Business units
- Open Manage -> Setup -> Business units.
- Type a unit name in the 'New unit name' box (e.g. Maintenance).
- Pick a color for the unit using the color swatch - that color bands the unit on your dispatch board.
- Click 'Add unit'.
- Repeat for each line of business you run.
- To rename or recolor a unit later, edit it in the list and it saves automatically; uncheck Active to retire a unit without deleting it.
- Deleting a unit does not lose data - techs, pools, and jobs in that unit simply become unassigned.
- If you run one type of work, leave this empty. Units are a convenience, not a requirement.
Turn on automated customer messages
Automations send customers a message on their own - an estimate follow-up, a past-due reminder, or a review request - so you stop chasing them by hand. You control each one and the wording lives in Message templates.
Where: Manage (gear) -> Automations (and Manage -> Setup -> Message templates)
- Open Manage -> Automations. You'll see three toggles: Estimate follow-up, Past-due reminder, and Review request - all off by default.
- Flip on the ones you want. Each saves the moment you toggle it.
- Set the 'After N day(s)' number for each (e.g. follow up on estimates after 3 days, remind on past-due after 7).
- Open Manage -> Setup -> Message templates to edit the exact wording customers receive; merge tags like the customer's name auto-fill.
- Click Save templates.
- Use 'Run now' in the Automations window any time you want to process eligible customers immediately instead of waiting for the daily run.
- Automated TEXT messages only go out once your account's SMS is enabled - outbound texting sits behind a master switch plus carrier (A2P) review. Until that's on, turning an automation on won't send a text yet; the setting is saved and ready.
- Each customer is messaged at most once per automation - no spam, even if you tap Run now repeatedly.
- Where a customer has an email but SMS isn't available, transactional messages like a past-due reminder can fall back to email.
Route emails, reminders, and your weekly digest
WaterMark can email each tech their route, send the whole next-day book every night, text customers a day-before reminder, and email you a weekly business digest. All of these live in Company & Tax as simple checkboxes.
Where: Manage (gear) -> Setup -> Company & Tax
- Open Manage -> Setup -> Company & Tax.
- Check 'Email each tech their next-day route with the daily run' to send each working tech tomorrow's stops (needs email set up). If the richer nightly schedule option is also live, it replaces this simpler copy so techs are not emailed twice.
- Check 'Email tomorrow's route every night' so the office gets the full next-day book and each tech gets their own route, each with a printable PDF.
- Click 'Preview tomorrow's email' or 'View route PDF' to see exactly what goes out before committing.
- Check 'Text customers a day-before appointment reminder' to remind each customer the day before their visit (opt-outs are honored).
- Check 'Email me a weekly business digest' for a weekly summary of revenue, AR, jobs, and customers.
- Click Save.
- The nightly tomorrow's-route email shows 'Off until launch - preview works now.' The preview and PDF work today; the automatic nightly send is held platform-wide until launch, so nothing is emailed to customers or techs yet.
- Day-before appointment reminders are text messages, so they follow the same SMS-enabled rule as automations - they'll start sending once your account's SMS is switched on.
- Route and schedule emails need email set up for your account; use the Preview buttons any time to confirm the content and recipients.
Let customers self-schedule online
Turn your public booking page into a real self-scheduler: customers pick an open day, and you get a confirmable request instead of just a lead. You cap how many bookings a day and how far out to offer.
Where: Manage (gear) -> Setup -> Company & Tax -> Online booking
- Open Manage -> Setup -> Company & Tax and scroll to Online booking.
- Check 'Let customers self-schedule a day on your booking page'.
- Set 'Bookings per day' to cap how many self-scheduled visits you'll accept in one day.
- Set 'Days out to offer' to control how far into the future the page shows open days.
- Click Save.
- Watch for incoming requests under Leads -> Booking requests and confirm each one.
- With self-schedule off, your booking page still works - it just collects a lead instead of offering specific open days.
- The page never overbooks: it only shows days that are under your bookings-per-day cap.
Set up the AI phone receptionist (optional)
WaterMark can answer your phone with an AI receptionist that knows pools and your services, books callbacks, and transfers to a person on request. It's an optional capability you turn on - it stays inert until a voice number is pointed at your account.
Where: Manage (gear) -> Setup -> Company & Tax -> AI phone receptionist
- Open Manage -> Setup -> Company & Tax and scroll to AI phone receptionist.
- Check 'Answer calls with an AI receptionist' to enable the capability.
- Enter a 'Transfer to a person (phone)' number so callers can reach a human on request.
- Optionally write a custom Greeting; leave it blank to use the default.
- Click Save.
- Click Save. WaterMark then sets up the dedicated receptionist number; reopen Company & Tax in a moment if the number is still being confirmed.
- This is off by default. Saving the enabled setting starts dedicated-number setup; calls cannot be answered until that number is confirmed.
- Start a 30-day free trial of the $59 a month plan, no card required. There is no permanent free tier. Until a card is on file, the entire trial includes up to 100 text segments, 20 AI actions, 10 receptionist minutes and 5,000 customer emails. A trial without a subscription can have 2 active technicians, the seats the plan includes. On a subscription, paid AI stops at 30 blocks ($300) a month and paid receptionist minutes stop at 40 blocks ($200) a month; past either cap that feature is declined for the rest of the month and nothing more is billed. At day 30, choose a subscription or your workspace pauses. Your data stays stored and exportable. Existing Starter customers receive at least 30 days of advance notice before their access changes.
- This is a phone-answering capability, not live GPS or dispatch - it handles inbound calls only.
Fit more office rows on screen
Choose Comfortable or Compact spacing for your own office account. Compact tightens lists, tables, and panels while every button and control keeps its full touch target.
Where: Account menu (bottom-left sidebar) -> Account settings -> Workspace density
- Open the Account menu at the bottom-left and choose Account settings.
- Under Workspace density, choose Comfortable for today's spacing or Compact to see more rows.
- Wait for the saved confirmation. The choice follows your login on other browsers.
- Comfortable is the default, so no existing account changes until that person chooses Compact.
- Density is personal: changing yours does not change another dispatcher or technician's screen.
- Compact changes whitespace only. Buttons, controls, permissions, and the information shown stay the same.
Use Ask AI to propose an office action safely
Do something mode can propose five allowlisted office operations, but nothing moves, sends, saves, or changes pay until the user reviews and confirms the exact server-validated summary.
Where: Ask AI -> Do something
- Open Ask AI, choose Do something, and describe one exact pool-office task with the needed dates, dollars, or names.
- Select Review plan and read the validated proposal; if WaterMark needs one detail, add it and review again.
- Choose Confirm action only when the summary is exactly right. A shared confirmation dialog repeats the consequence before execution.
- Read the final status. If delivery failed, the result says Nothing sent and the underlying estimate remains open.
- Supported actions are membership-plan creation, report creation, route reschedule, spiff configuration, and estimate follow-up.
- A proposal expires and is rejected if its live source data changes before confirmation.
Let the AI receptionist book a known caller honestly
The receptionist proposes one real capacity-checked day, asks the caller to confirm, and creates a real route job only when the caller maps unambiguously to a customer and pool.
Where: Manage company -> Company & Tax -> AI phone receptionist
- Turn on the receptionist only after the platform voice rail and the pool company's greeting and transfer number are configured.
- A known customer calls, states a date, and confirms the exact day offered by the capacity engine.
- WaterMark creates one real job and appointment using the pool and route defaults; a repeated Twilio callback reuses the first result.
- For an unknown caller, the office receives a held booking request to complete. The caller is not told a full service job was booked.
- The receptionist never guesses a date, customer, address, pool, or route.
- Do Not Service and capacity rules use the same guards as office and public booking.
Security & Your Data
How WaterMark protects your company and customer data
A plain-language rundown of the safeguards built into WaterMark so you can answer a homeowner or a worried owner with confidence. No jargon, just what is actually true.
Where: Account menu (bottom-left sidebar) -> Account settings, and -> Your data & account
- Know that traffic is encrypted in transit: everything between your browser or the field app and WaterMark travels over an encrypted (HTTPS) connection.
- Trust that each company is walled off: your company's data is isolated from every other company on WaterMark; one company can never see another's customers, jobs, or invoices.
- Understand card handling: when you connect Stripe, card numbers are handled by Stripe and are never stored on WaterMark's servers.
- Rest easy on connected accounts: tokens for connected services like QuickBooks are stored encrypted, not in plain text.
- Turn on two-factor authentication for owners and office staff for a second layer at sign-in (see the dedicated article).
- The daily backup job attempts an off-site copy when off-site storage is configured; without that configuration it does not run a backup. Backup configuration alone does not confirm a successful backup. Ask support to confirm recent backup and restore checks.
- If a homeowner asks 'is my info safe?', the honest short answer is: card numbers live with Stripe (never with us), your data is encrypted in transit and isolated from other companies, and it's backed up nightly.
- WaterMark does not currently hold formal certifications like SOC 2 - don't claim one. Describe the actual safeguards above instead.
Turn on two-factor authentication (2FA)
Add a second step at sign-in so a stolen password alone can't get into your account. Strongly recommended for owners and office staff. You'll use a free authenticator app on your phone.
Where: Account menu (bottom-left sidebar) -> Account settings -> scroll to 'Two-factor authentication'
- Install an authenticator app on your phone if you don't have one - Google Authenticator, Authy, or 1Password all work.
- Open the Account menu at the bottom-left and choose 'Account settings'.
- Scroll to the 'Two-factor authentication' section and click 'Enable two-factor'.
- Scan the on-screen QR code with your authenticator app (or type in the setup key by hand if you can't scan).
- Enter the current 6-digit code from your app to confirm, then click to verify.
- Save the 8 backup codes it shows you - they appear only once. Keep them somewhere safe in case you lose your phone.
- The backup codes are shown one time only and each works once. Download or write them down before you close the window.
- Lost your phone and your backup codes? Contact support@watermarkapp.online - they can help you regain access after verifying you own the account.
- To turn 2FA off later, return to the same section and use 'Turn off' (you'll enter a current code to confirm).
Export all your data anytime
You own your company's data and can download a full copy whenever you want - for your records, an accountant, or peace of mind. Available to the company owner.
Where: Account menu (bottom-left sidebar) -> Your data & account
- Open the Account menu at the bottom-left of the dashboard.
- Click 'Your data & account' (this option is available to the company owner).
- Click 'Download my data (JSON)' to get one complete file with your customers, pools, jobs, invoices, payments, equipment, technicians, and users.
- Or use the CSV buttons to pull a single list - Customers, Invoices, Payments, Jobs, Equipment, or Water tests - for a spreadsheet.
- Save the downloaded file somewhere safe; it's a snapshot of your data at that moment.
- The JSON file is the complete export; the CSV buttons are handy when you just need one list in Excel or Google Sheets.
- Exporting is a good habit before any big change - like closing your account or switching accountants.
Request account closure and data deletion
How to close your WaterMark account and have your data erased, and what happens to financial records the law requires us to keep. Nothing is deleted instantly - we confirm with you first.
Where: Account menu (bottom-left sidebar) -> Your data & account -> Close / delete my account
- Export a copy of your data first if you want to keep it (see the export article) - closure is permanent.
- Open the Account menu and click 'Your data & account' (owner only).
- In the red 'Close / delete my account' box, click 'Request account closure…' and confirm.
- We receive the request right away and contact you to verify ownership before anything is removed.
- A confirmed deletion request is completed within 30 days.
- Prefer email? Send a request from the email on your account to privacy@watermarkapp.online with the subject 'Delete my account.'
- Individual records - a single customer or photo - can be deleted immediately inside the app. Full account closure is the request flow above.
- Invoices, payments and tax records are kept up to 7 years, then purged.
- You don't need to close your whole account just to remove some data - delete individual records in the app instead.
What to do if you suspect a security problem
If something looks off - an unexpected sign-in, a strange charge, an email you didn't expect - here's how to lock things down fast and reach a human.
Where: Account menu -> Account settings (password & 2FA); support@watermarkapp.online
- Change your password right away: Account menu -> Account settings -> Change password.
- Turn on two-factor authentication if it isn't already on (see the 2FA article) so a stolen password alone can't get back in.
- Check your team list under Manage company for any user you don't recognize.
- Email support@watermarkapp.online with what you noticed - the more detail (dates, what looked wrong), the faster they can help.
- Don't share passwords, 2FA codes, or backup codes with anyone, including over email - WaterMark support will never ask for them.
- WaterMark will never email or call asking for your password or a 2FA code. If someone does, it's not us.
- Card numbers are never stored on WaterMark, so a WaterMark issue can't expose full card numbers - those live with Stripe.
Frequently asked questions
I just signed up and my dashboard is empty. Is something broken?
No - a brand-new company is supposed to be empty, so instead of a blank screen you get a Welcome card with two ways to start. Add one real customer to see a route appear, or click "Load sample data" to fill the app with a demo book you can explore and remove later. As soon as you add customers the card turns into a step-by-step checklist.
Do I need a credit card to try WaterMark?
Start a 30-day free trial of the $59 a month plan, no card required. There is no permanent free tier. Until a card is on file, the entire trial includes up to 100 text segments, 20 AI actions, 10 receptionist minutes and 5,000 customer emails. A trial without a subscription can have 2 active technicians, the seats the plan includes. On a subscription, paid AI stops at 30 blocks ($300) a month and paid receptionist minutes stop at 40 blocks ($200) a month; past either cap that feature is declined for the rest of the month and nothing more is billed. At day 30, choose a subscription or your workspace pauses. Your data stays stored and exportable. Existing Starter customers receive at least 30 days of advance notice before their access changes.
Can I see the app before I commit, without setting up my own company?
Yes. Open watermarkapp.online/demo in any browser and you're dropped straight into a fully populated sample pool company - no sign-up, no password. Click around anything you like; it resets clean every night and can't touch real customers. It's also a good link to send a partner or a pool pro you're referring.
How do my techs get on the mobile app?
Invite each one from Team: enter their name and email, choose the "Tech (field)" role with Field app access checked, and send the invite. They get a secure link to set their own password, then sign in on their phone. Dispatch stops to them in Route Manager so their route isn't empty, and set what they can see or do using the field-app permissions in Team.
How do I handle a house with both a pool and a spa?
Add them as two bodies of water on the same customer. On a new customer, use the 'More bodies of water' section; on an existing one, open Edit and use '+ Add body.' Each keeps its own gallons, price, and schedule, so a weekly pool and a biweekly spa both bill correctly.
A customer says they never got their portal invite. What happened?
The portal link is sent by text, and customer texting has to be on for your account first. If it isn't on yet, the 'Text portal link' button tells you 'texting not active yet' instead of sending. WaterMark manages that switch; once the Setup panel in your office shows customer texting as ready, resend. Always double-check the phone number on file too.
If I import a CSV twice, will I get duplicate customers?
No. The import preview matches incoming rows against your existing customers by exact customer name and marks them DUP. (Phone isn't used to match: distinct accounts like HOA/property-manager pools or spouses often share one number.) Duplicates are skipped, never doubled. You always see the NEW vs DUP breakdown before anything is saved.
Can one HOA or property manager get a single bill for all their properties?
Yes. Link each property to the parent account, then tick 'HOA / portfolio parent - bill ONE consolidated invoice' on the parent. Use 'Preview rollup' to check the total, then 'Generate consolidated invoice.' Each original invoice is marked rolled-up so nothing is billed twice.
A customer wants to switch from Tuesdays to Thursdays for good. How do I make that stick?
Open the Route Manager, find that stop, and click Move to another day. Pick a Thursday date, then check 'Move every week from now on' before you save. That shifts the pool's recurring service day, so every future visit lands on Thursday instead of just this one week.
I imported a bunch of new customers but none of them show up on the dispatch board. What's wrong?
Imported pools usually come in without a route day, so they have nothing to schedule. Open Manage company and run Schedule unscheduled pools to assign a day and frequency to all of them, then open the Route Manager for that day and click Generate schedule to create the actual stops.
It's going to storm Thursday. What's the fastest way to push the whole day to Friday?
Open the Route Manager, set the date to Thursday, and click Move day. Set the 'To' date to Friday and click Move day. Every pending stop moves at once, while anything already finished or in progress stays put. Add a reason like 'Snow - moved to Friday' so your notes are clear.
Does the route map show where my technicians are right now?
No. The Route Manager's Map shows planned stops plus each tech's last check-in - it is not live GPS tracking. There's a separate Live crew view that shows only technicians who opted in to share location, and it labels each dot with how many minutes ago it reported, so you always know how fresh it is.
My tech says the app won't let him finish a job. What's going on?
The job type has a required step still open. WaterMark blocks completion until every required form, every required checklist task, and any required close-out step (a signature, a photo, or the recap) is done, and the app names exactly what's missing. Check that job type under Manage -> Job types, checklists & forms to see which items you marked required.
What's the difference between a job type and a form?
A job type (like Opening or Maintenance) is the whole visit template: it carries a service checklist, a badge color, which job-screen fields show, and which forms appear. A form is one piece of paperwork the tech fills, such as an equipment inspection. You build forms in Manage -> Forms, then attach them to the job types that should show them.
Does the customer get a text when the job is finished?
The recap is built at close-out and the tech can review it on the visit. Automatic text messages to customers sit behind a master switch plus carrier (A2P) review, so they don't go out until SMS is enabled for your account. Once SMS is on, recaps and reminders can be sent; until then the recap lives on the job for the office to see.
Can I change the checklist for one job type without messing up the others?
Yes. Each job type keeps its own checklist, forms, fields, and color. Click Checklist on that type's row in Manage -> Job types, checklists & forms, edit its tasks, and Save. Nothing you do there touches any other type.
When I create an invoice, does the customer get charged automatically?
No. Creating an invoice makes an unpaid bill - it never charges a card on its own. You email it with a pay link and the customer pays by card online, or you record another payment. Automatic charging only happens for members when you deliberately turn on auto-billing in Company settings.
Why is a customer's invoice showing no sales tax?
WaterMark taxes each customer at their own state's rate, and any state you haven't listed is taxed at 0%. Open Company settings, go to Sales tax, click Set rates by state, and make sure that customer's state has a rate entered.
What's the difference between a refund and a credit memo?
A money refund returns the actual payment (through Stripe for card charges) and flags any cash or check portion you owe. A credit memo - or choosing 'Refund to account credit' - moves no money and instead adds spendable credit to the customer's account for future bills. Both are documented so your books stay clear.
Can I text customers automatic payment reminders when a card fails?
Automatic reminder texts go out only while outbound SMS is on for your account; it sits behind a master switch plus carrier approval. Email works either way: dunning emails a member a link to update a declined card, and you can email statements and reminders from the collections worklist. Manual texting from the office thread also works once SMS is enabled for you.
Where does the money go when a customer pays by card?
Straight into your own bank account. When you connect Stripe, payments settle directly to you - WaterMark never holds or touches your money. You can watch what's been collected in the Payments breakdown on the Money tab.
Do I have to mark card payments as paid myself?
No. When a customer pays online through a pay link or the portal, the invoice marks itself paid automatically. You only record payments by hand for cash, check, or bank transfers you collect yourself.
Can I take a credit card tap on my phone in the field?
No. Tap to Pay on iPhone is not available. What works today: in the field app, open the job, tap "Build invoice & take payment," create the invoice, then tap "Collect" and enter the card on the phone. Any tech can do this on a job assigned to them. The office can also email the invoice with its pay link so the customer pays by card online, and the office records cash or check. Card payments need your Stripe payouts connected.
Why did my chemical count go down when nobody touched the office?
On-hand counts move automatically when a tech doses or uses a part on a job - that's the app keeping stock honest. Open Inventory and check "Stock movement (recent)" to see exactly what changed, the reason (used, dosed, received, or adjusted), and who did it.
Does WaterMark order supplies for me automatically?
No. "Auto-reorder low stock" drafts a purchase order from everything below its reorder point, but it stops there for you to review. You send it to the vendor, and stock only increases when you click Receive after the goods arrive. Nothing is ordered or added behind your back.
Should I turn on per-truck inventory?
Only if your company actually stocks each truck. With it on, a part a tech uses comes off their truck and you get an on-hand-by-location view. If you run one shared supply, leave it off and use the single company total - it's simpler. You can switch either way anytime without losing your counts.
What's the difference between the chemical catalog and the inventory list?
The catalog is the master menu of chemicals your techs pick from on a job. The inventory list is your actual stock - counts, costs, and reorder points. A chemical can be in your catalog for field use without you tracking its stock, and vice versa.
What's the difference between "Team" in the sidebar and "Team" under the gear menu?
They're two different screens with the same name. The Team button in the left sidebar opens Timesheets and Payroll. The Team item under Manage (gear) -> Setup opens the member manager where you invite people, set roles and access, and configure field-app permissions. Pay rates themselves live under Company settings -> Crew pay & pricing.
Does adding a team member cost me money?
Adding a Field app (mobile) member can add a paid seat to your plan. WaterMark shows the exact new monthly amount and asks you to confirm before it's added, so there are no surprises. Office-only logins are free and don't count toward seats.
A tech forgot to clock out - how do I fix their hours before payroll?
Go to Team in the sidebar and open the Timesheets panel. The tech with a missing clock-out shows a red warning and opens automatically. Click Edit on that entry, set the correct clock-out time, and Save. Do this before running payroll so the snapshot captures the right hours.
Can I add a tip to a tech's pay?
Tips collected at pay time flow through to the tech automatically and show up on the payroll run as a pass-through (they aren't commissioned). If you want to add a discretionary bonus, open the draft payroll run, use "Add an adjustment / bonus," pick the tech, and enter the amount before you approve and lock the run.
Should I use QuickBooks or Xero?
Use QuickBooks Online. It's the live, production-approved, two-way sync and it's included at no extra charge. Xero is an optional paid monthly add-on that mirrors the same idea, and on many accounts it isn't switched on yet. Pick one accounting system, not both.
Can I create or update records through the API, or only read them?
The broad API is intentionally read-focused: customers, jobs, invoices, payments, and incremental exports. A separately granted automation scope can create an office task or append a non-access customer note, and every action needs an Idempotency-Key. It cannot create or edit customers, jobs, invoices, payments, access instructions, or credentials.
Are my automatic customer text messages part of these integrations?
No. Outbound automated texts (SMS) are a separate feature behind a master switch and carrier review, so they don't send until SMS is enabled for your account. The integrations here - QuickBooks, Xero, the API, webhooks, Slack, and the calendar feed - work independently of your texting setup.
Why can't my technician see the Webhooks & API screen?
That screen is owner-only. Creating API keys, adding webhooks, and setting up Slack all change how your company's data leaves WaterMark, so only the company owner can open and manage them. If you need access, ask your owner to set it up or make the change for you. For anything else, reach us at support@watermarkapp.online.
Why do my campaign texts show as skipped or not sending?
Outbound texting sends only once SMS is enabled for your account, which sits behind a carrier (A2P) approval step. Until that's switched on, text campaigns are composed and the send report tells you honestly that texting isn't active, so nothing goes out. Email campaigns work today regardless. WaterMark manages the texting switch; the Setup panel in your office shows whether customer texting is ready.
What's the difference between a campaign and a drip sequence?
A campaign is a single email or text you send now to a segment. A drip sequence is an automated multi-step email journey (like win-back over several days) that runs nightly and enrolls the right customers on its own. Drips are email-only by design, and they automatically stop for anyone who no longer fits the audience.
How does WaterMark know my cost per customer (CAC)?
It divides the ad spend you record by the number of customers a source brought in. That's why CAC and ROI stay blank until you enter spend for that source in the Lead-Source ROI panel on the Grow tab. Tag your incoming leads with a source, record what you spent, and the table fills in the rest.
Can I get my data out as a spreadsheet?
Yes. WaterMark exports customers, invoices, payments, jobs, equipment, water tests, AR aging, and profit by route as CSV files you can open in Excel or hand to your accountant. Look in the Operations menu, inside the Reports window, and on the Money tab for the CSV buttons.
I turned on an automation but no texts went out - what's wrong?
You probably haven't got a bug. Automated text messages sit behind a master SMS switch plus a carrier (A2P) review, so turning an automation on saves the setting but won't send a text until your account's SMS is enabled. Your wording and timing are ready and will start sending the moment SMS is switched on. If you need it sooner, email support@watermarkapp.online.
Can I see the nightly 'tomorrow's route' email before it actually starts sending?
Yes. In Company & Tax, use 'Preview tomorrow's email' and 'View route PDF' - both work today. The automatic nightly send itself is held off platform-wide until launch (you'll see 'Off until launch - preview works now'), so nothing is emailed to customers or techs yet, but you can review exactly what will go out.
Why can't my office staff open Company & Tax settings?
Company & Tax, along with Team, Billing, and Webhooks, is owner-only. Office staff won't see it in the Setup section. Sign in with the owner account to change company identity, tax, payment terms, or the automation-adjacent toggles.
Does WaterMark delete my old data automatically?
Only if you tell it to, and only your customer message log. In Company & Tax you can set a retention period and turn on nightly auto-delete for old texts and emails - never invoices, payments, customers, jobs, or water-test history. Leave it on 'Forever' to keep everything, or use 'Preview / purge now' to see the count before anything is removed.
Do you store my customers' credit card numbers?
No. When you connect Stripe, card numbers are handled entirely by Stripe and are never stored on WaterMark's servers. That means a WaterMark issue can't expose full card numbers.
Can another pool company using WaterMark see my customers or pricing?
No. Each company's data is fully isolated from every other company on WaterMark. There's no shared list - one company can never see another's customers, jobs, invoices, or settings.
Is WaterMark SOC 2 certified?
WaterMark does not currently hold a formal certification like SOC 2, and we won't claim one it doesn't have. What is true: your data is encrypted in transit, isolated per company, backed up off-site nightly, card numbers stay with Stripe, and you can turn on two-factor authentication.
If I delete my account, is everything really gone?
A confirmed deletion request is completed within 30 days; invoices, payments and tax records are kept up to 7 years, then purged.