Getting Started
SepticCycle is a web-based management platform built specifically for septic, grease trap, and waste hauling businesses. It runs entirely in your browser — no software installation required — and manages customers, properties, tanks, contracts, invoices, jobs, compliance, and payments all in one place.
Accessing SepticCycle
Open any modern web browser (Chrome, Edge, Firefox, or Safari) and navigate to:
SepticCycle is optimized for desktop use. The desktop dashboard is the primary interface for office staff and administrators. A separate mobile-optimized app exists for field technicians — see Section 19.
Creating Your Account — First-Time Setup
If your company is new to SepticCycle, one person should complete the initial account setup. This creates both your user account and your company's workspace.
- 1Navigate to septiccycle.com and click Sign Up.
- 2Enter your email address and create a strong password.
- 3Enter your Company Name. This appears on invoices, contracts, and customer-facing documents — enter it exactly as you want customers to see it.
- 4Click Create Account. You are taken directly to your dashboard. No email verification is required to begin.
- 5Complete your company profile: navigate to Settings and fill in your company address, phone number, and logo. These appear on all printed documents.
Logging In
- 1Navigate to your SepticCycle URL.
- 2Enter your email address and password.
- 3Click Sign In. You are taken directly to your dashboard.
- 4To sign out, click your initials at the bottom of the left sidebar and select Sign Out.
Navigation Overview
SepticCycle uses a persistent sidebar on the left side of every page. The sidebar is icon-based when collapsed (64px wide) and expands on hover to show labels and sub-links. The active section is highlighted. On mobile, the sidebar becomes a bottom navigation bar.
The Dashboard
After logging in you land on the main dashboard — your command center showing real-time information across your entire operation.
Quick Stats Bar (Top of Page)
- Customers: Total active customer records.
- Properties: Total service locations on file.
- Septic Systems: Total tanks and systems tracked.
- Services Due: Properties with service overdue or due within the next 30 days.
- Active Contracts: Contracts currently in force.
- Renewals Soon: Contracts expiring within 90 days.
Services Due Widget
Lists properties with upcoming or overdue service. Each row shows the property address, customer name, and how many days until (or since) service was due. Click Add to Calendar to schedule a job directly from this widget.
Upcoming Renewals Widget
Shows contracts expiring soon with toggles for 30, 60, or 90 day windows. Click any contract to open its detail page and initiate renewal.
County Deadlines Widget
Displays pending county compliance submissions that need attention. Each entry shows the county name, contract, and days until the deadline.
First-Time Company Setup
Before adding customers or scheduling jobs, work through this checklist. The settings below are prerequisites for specific features — skip them and those features simply won't work as expected. Plan for about 20–30 minutes to complete everything on your first login.
💡 Tip: Steps marked Required block a specific feature until completed. Steps marked Recommended have a direct impact on daily operations. Steps marked Optional can be done any time.
Step 1 — Company Profile Required
Your company name, address, and logo appear on every invoice, contract, and customer-facing document. Set these before creating any records.
- 1Navigate to Settings in the left sidebar.
- 2Enter your Company Name exactly as it should appear on documents.
- 3Enter your Address, City, State, and ZIP.
- 4Enter your Phone Number and Email.
- 5Upload your Company Logo — appears on invoices, contracts, and the customer portal. PNG or JPG, recommended 400×200px or wider.
- 6Click Save.
Step 2 — Invoice Settings Required
Invoice numbering must be configured before your first invoice is created. Once invoices exist, changing the prefix or starting number does not renumber existing invoices.
- 1Click the Invoices tab within Settings.
- 2Fill in the Invoice Header section at the top: enter your Business Phone, OSSF License Number, and Company Address (Street, City, State, ZIP). These print on every invoice PDF and are required by state regulations.
- 3Set your Invoice Prefix (e.g.,
INV). - 4Set your Starting Invoice Number. If migrating from another system, set this one above your last invoice number to avoid gaps.
- 5Set your default Payment Terms (e.g., Net 30).
- 6Add any standard Invoice Notes or Footer Text you want on every invoice.
- 7Click Save.
Step 3 — Contract Settings Required
Two fields here are required for contracts to work correctly: the contract number prefix, and the representative name used in the in-person signing modal.
- 1Click the Contracts tab within Settings.
- 2Set your Contract Number Prefix (e.g.,
SC) and starting number. - 3Enter your Representative Name and Email — this pre-fills the company signature block every time you countersign a contract in the office.
- 4Enter your standard Terms & Conditions text. Pre-fills on every new contract.
- 5Click Save.
Step 4 — Define Your Counties Required for Contracts & Compliance
County records must exist before you can assign a county to a contract or generate compliance reports. The county dropdown on new contracts will be empty until at least one county is configured here.
- 1Navigate to Contracts › County Requirements in the sidebar.
- 2Click Add County for each county you service.
- 3For each county, set the submission frequency, submission method, deadline, and any contact information or portal URL.
- 4Save each county. They will now appear in the county dropdown when creating or editing contracts.
Step 5 — Add Technicians Required for Jobs
Jobs cannot be assigned without technician records. The auto-scheduler also requires technicians to exist before it can dispatch any work. Add at least one before scheduling your first job.
- 1Navigate to Technicians in the sidebar.
- 2Click Add Technician and enter their name, phone, and email.
- 3Set their status to Active.
- 4Repeat for each field technician on your team.
Step 6 — Scheduling Settings Required for Auto-Scheduler
The automated job scheduler runs daily and uses your business hours and timezone to determine when jobs can be created. Without these set correctly, the scheduler may create jobs at wrong times or not at all.
- 1Click the Scheduling tab within Settings.
- 2Set your Company Timezone — this affects all timestamps, notifications, and the auto-scheduler.
- 3Set your Business Hours start and end time.
- 4Toggle your Working Days.
- 5Set the Default Job Duration in minutes and any Buffer Time between jobs.
- 6Click Save.
Step 7 — Connect Stripe for Online Payments Required for Online Payments & Sign & Pay
Stripe must be connected before customers can pay invoices online, before the Send for Payment email flow works, and before the Sign & Pay public portal can be activated. Without Stripe, all payment processing is manual.
- 1Click the Billing & Payments tab within Settings.
- 2Click Connect with Stripe and complete the Stripe onboarding flow.
- 3Once connected, a green Stripe Active indicator appears.
- 4Configure the Credit Card Processing Fee: set the percentage fee (default 3%), flat fee (default $0.32), and label. Toggle Pass to Customer on to add the surcharge to card payments, or off to absorb the cost.
- 5Click Save.
Step 8 — Add Trucks & Disposal Sites Required for Manifests
Waste manifests require both a truck and a disposal site to be selected. Neither field can be left blank. If you use manifests, add these before creating your first manifest.
- 1Navigate to Trucks in the sidebar and click Add Truck.
- 2Enter the vehicle name/number, make, model, tank capacity, and status.
- 3Save. Repeat for each vehicle.
- 4Navigate to Disposal Sites in the sidebar and click Add Disposal Site.
- 5Enter the facility name, address, accepted waste types, and fee schedule.
- 6Save. Repeat for each disposal facility you use.
Step 9 — Route Optimization Home Base Required for Route Optimization
Route optimization cannot calculate any routes without a starting point. Set your home base address, then geocode your existing properties so the optimizer has accurate coordinates for every stop.
- 1Click the Route Optimization tab within Settings.
- 2Enter your Home Base Address (office or yard) and click Save & Locate.
- 3Click Geocode All Properties to batch-convert all property addresses to GPS coordinates. This is a one-time operation — new properties geocode automatically going forward.
- 4Click Save.
Step 10 — Create at Least One Contract Template Required for Sign & Pay Portal
The Sign & Pay public booking portal cannot be activated until at least one contract template exists and is marked as publicly visible. Templates also speed up contract creation for your office staff.
- 1Navigate to Contracts › Templates in the sidebar.
- 2Click New Template and configure your most common service plan — services, pricing, duration, and terms.
- 3Toggle Public Visible on if you want this template to appear on the Sign & Pay portal.
- 4Save.
Step 11 — Notifications & SMS Optional
Email notifications are on by default. SMS requires explicitly enabling the toggle. Neither blocks other features but both significantly improve the customer experience once configured.
- 1Click the Notifications tab within Settings.
- 2Review and adjust which events trigger customer emails.
- 3To enable SMS: toggle SMS Enabled to ON.
- 4Customize the five SMS templates to match your company voice.
- 5To show your business number on outbound texts instead of a shared number, click Port Number — see Section 13.10 for full porting instructions.
- 6Click Save.
Step 12 — Invite Team Members Optional
- 1Navigate to the Team section in the sidebar.
- 2Click Invite Member.
- 3Enter their email and assign a role: Admin (full access including Settings), Office (no Settings, billing, or team management), or Technician (mobile app only).
- 4They receive an email invite and set their own password on first login.
✅ Setup complete — you're ready to go!
With these steps done, every feature in SepticCycle will work as intended. Start by adding your first customer, property, and tank — then create your first contract and schedule a job. The rest of this guide covers each area in detail.
Customer Management
Customers are the foundation of SepticCycle. Every property, contract, job, invoice, and compliance record is linked to a customer. The hierarchy is: Customers → Properties → Tanks/Systems.
Viewing the Customer List
- Search: Type any part of a name, email address, or phone number to filter the list in real time.
- Add Customer: Click the + Add Customer button in the top right corner.
Adding a New Customer
Customer Information
- Customer Name (required): Full name of the individual or business. Appears on all documents.
- Email Address: Primary contact email. Invoice emails and appointment reminders are sent here.
- Phone Number: Primary phone number.
- Status: Active (default), Inactive, Bad Debt, or Do Not Service. Status affects how the customer appears in the dashboard and whether jobs can be scheduled.
Billing Address
Enter Street, City, State, Zip. This is separate from the service/property address and used on invoices.
Additional Contacts
Click + Add Contact to add secondary contacts (property manager, spouse, emergency contact, etc.). For each contact enter Name, Role (Owner, Property Manager, Tenant, Spouse, Emergency, Billing, or Other), Email, Phone, and whether they are the Primary Contact. There is no limit on additional contacts.
Customer Detail Page
Click any customer name to open their full profile. The page uses a tabbed layout with eight tabs.
Header Area
Always visible: customer name, status badge (color-coded), email, phone, and billing address. Quick action buttons: New Job, New Contract, and Edit.
Info Tab
- Left column: Email, phone, billing address, customer since date, and all additional contacts. If the customer has the Requires Advance Notice flag set, an amber 🚩📞 banner appears at the top of this column with any instructions entered for the dispatcher or technician.
- Right column: Six stat tiles (Properties, Tanks, Active Contracts, Jobs Done, Total Paid, Open Issues), outstanding balance callout, next scheduled job, and next contract renewal date.
Properties Tab
Card grid of all properties. Click the property address to open the read-only property detail page. Use the pencil icon on the card to go directly to the edit page. Each card shows the address, county, permitting authority (if set), property type, parcel number, all tanks with their custom name or type, status and last service date, and photo thumbnails.
Jobs, Service History, Contracts, Invoices, Issues, and Notes Tabs
Separate tabs give you a full history table for each record type linked to this customer. The Notes tab is a communication log where you can add timestamped notes categorized as Phone Call, Email, In-Person, Voicemail, Text Message, Site Visit, Complaint, Follow Up, Reminder, or General Note.
Customer Status Codes
- Active: Normal, currently-serviced customer. Appears in all standard lists.
- Inactive: Not currently being serviced. Hidden from most active-customer views.
- Bad Debt: Has outstanding invoices deemed uncollectable. Flagged on the receivables dashboard.
- Do Not Service: Jobs cannot be scheduled. Used for customers who have been terminated.
Merging Duplicate Customers
Merging moves all properties, contacts, contracts, invoices, and history from the source customer into the target customer. The source record is then deleted.
- 1Navigate to Customers › Merge.
- 2Search for and select the customer you want to keep (Target Customer).
- 3Search for and select the duplicate customer to merge in (Source Customer).
- 4Review the merge preview showing what will be transferred.
- 5Click Merge Customers to complete.
Bulk Customer Import
- 1Click Import Customers. Download the template CSV if needed.
- 2Prepare your CSV with columns for customer name, email, phone, and address.
- 3Upload your file and preview the data. The system validates each row.
- 4Confirm the import. Successfully parsed rows are created as customers. Any rows with errors are listed for manual review.
Property Management
Properties are the physical service locations where your crews perform work. One customer can have multiple properties, and each property can have multiple tanks tracked individually. Properties store the service address, GPS coordinates, access instructions, photos, and complete service history.
Adding a Property
- 1Open the customer record and click the Properties tab.
- 2Click + Add Property.
- 3If the service address matches the billing address, check Same as Billing Address to auto-fill.
- 4Enter Street, City, State, Zip, and County (free-text county name).
- 5Enter the Parcel Number if applicable (used for compliance reports).
- 6Enter the Permitting Authority (optional) — the regulatory agency responsible for this system, e.g., "Hill County Environmental Health." This is separate from the County field and appears on the property detail page.
- 7Set the Service Zone / Route (optional) — assign this property to one of your configured service zones. The dropdown is populated from zones defined in Settings › Scheduling › Zone Scheduling. Used by zone scheduling to determine which month to create jobs, and appears in auto-filled contract PDF fields. If no zones are configured this field is hidden.
- 8Set the Property Type: Residential, Commercial, or Industrial.
- 9Enter Access Instructions (e.g., "Use the gate on the south side") and a Gate Code if applicable. Technicians see these in the mobile app.
- 10Add any property notes, then click Save Property.
Property Photos
Each property can have a full photo gallery. Photos are visible to technicians in the mobile app and help with site identification, access documentation, and before/after comparisons.
- 1Open the property detail page from the customer record.
- 2Scroll to the Property Photos section.
- 3Click the upload area or drag and drop image files (JPG, PNG, HEIC supported).
- 4Multiple photos can be uploaded at once. Each uploads immediately in the background.
- 5Optionally add a caption to each photo by clicking the caption field below the thumbnail.
On the customer detail page (Properties tab), each property card shows photo thumbnails. Click any thumbnail to open the full gallery viewer with navigation between photos and download options.
Property Diagrams
In addition to photos, you can upload site diagrams showing tank locations, drain field layout, and access points. Diagrams display in their own section on the property page and are visible to technicians in the mobile app.
Checklist History
Below the tanks section on a property detail page, the Checklist History panel shows all completed inspection checklists for that property. Each entry shows the checklist template name, the service date, the technician who completed it, and links to the job record and full checklist responses.
GPS Coordinates & Mapping
Each property stores GPS coordinates (latitude and longitude) for route optimization and map display. Coordinates are set in two ways:
- Automatic geocoding: Use the Geocode All button in Settings › Route Optimization to batch-geocode all properties from their addresses.
- Manual entry: Enter GPS coordinates directly on the property form — useful for rural properties where the address doesn't geocode accurately.
The property's Google Maps and Directions links use these stored coordinates for pinpoint accuracy rather than relying on address lookup at the time of navigation.
Tank & Septic System Management
Each property can have multiple tanks tracked individually. SepticCycle records each tank as its own entity with its own GPS coordinates, photos, service history, and maintenance records — a key differentiator from systems that treat a property as having a single generic system.
Adding a Tank
Click Add Tank from a property card. The tank form is organized into sections:
Basic Identification
- Custom System Name (optional): A short custom label like "North System" or "Front ATU." When set, the tank displays as "North System (ATU)" throughout the app — on the property detail page, in job and contract dropdowns, and in the technician mobile view. Leave blank to use the auto-generated label (e.g., "ATU #1" for the first ATU on a property).
- Tank Type: Septic, Holding, Aerobic, ATU (Aerobic Treatment Unit), Biogenerator, Grease Trap, Dosing Chamber, Pump Chamber, or Other.
- Status: Active (being serviced), Inactive (out of service), or Abandoned (decommissioned).
- Capacity: For standard tank types, this is in gallons (250–30,000 gal). When ATU or Biogenerator is selected, the field switches to GPD (gallons per day) with options from 500 to 5,000 GPD, reflecting the daily treatment capacity of aerobic systems.
Installation & Identification
- Install Date: When the tank was installed. Used to calculate tank age.
- Manufacturer and Model: The tank maker and model number if known.
- Serial Number: Manufacturer serial number if available.
- Material: Concrete, Fiberglass, Plastic, Steel, or Other.
- Shape: Rectangular or Cylindrical.
Physical Location
- Location Description: Written description of where the tank is (e.g., "20 feet behind garage, beneath the large oak tree").
- GPS Coordinates: Exact GPS location of the tank — not just the property. Allows pinpoint mapping for multi-tank properties.
- Depth to Lid (inches): How far below ground the tank lid is located.
Access Information
- Lid Type: Single, Double, or Triple compartment lids.
- Lid Material: Concrete, Cast Iron, Plastic/HDPE, or Fiberglass.
- Lid Count: Number of lids on this tank.
- Riser Installed: Yes or No.
- Riser Material: Concrete, Plastic, or Fiberglass if applicable.
- Access Notes: Notes for technicians (e.g., "Lid is offset 6 inches to the right").
Technical Specifications
- Number of Compartments.
- Inlet / Outlet Depth (inches): Depth from lid to each baffle.
- Baffle Type: Tee, Sanitary, Effluent Filter, or None.
- Effluent Filter Brand: For ordering replacement filters.
Alarm & Control Systems
- Alarm System: Whether an alarm is installed (Yes/No).
- Alarm Type: Float, Pressure, or Electronic.
- Control Panel Location: Where the alarm control panel is mounted.
- Last Alarm Date: Date of most recent alarm activation.
Pump System
- Pump Installed: Yes/No.
- Pump Type: Effluent, Grinder, or Submersible.
- Pump Brand, Model, Horsepower, and Voltage.
- Last Pump Replacement Date.
Drain Field & Disposal
- Drain Field Type: Conventional, Mound, Chamber, Drip, or None.
- Distribution Method: How effluent is distributed within the drain field. Options: Conventional (gravity), Spray (sprinkler heads — enter sprinkler count, radius, and field condition), LPD — Low Pressure Dosing (enter number of lateral lines), Drip Irrigation (enter emitter spacing, zone count, and filter details), or Other. Selecting Spray or LPD reveals additional fields specific to that method.
- Drain Field Size (sq ft).
- Distribution Box Present: Yes/No.
- Soil Type: Sandy, Clay, Loam, Gravel, or Other. Affects service frequency recommendations.
Service Schedule
- Service Interval (months): How often this specific tank should be serviced. Default is 36 months. A restaurant grease trap might be 1 month.
- Last Service Date: Auto-populated from service records, or set manually when entering an existing customer's history.
- Next Service Due: Calculated automatically as Last Service Date + Service Interval. Appears on the dashboard Services Due widget.
- Recommended Next Service: Technician's recommended date from the most recent service.
Condition & Notes
- Current Condition: Good, Fair, Poor, or Critical. Updated during each service visit.
- Tank Notes: Persistent notes visible on every future job (e.g., "Roots in outlet pipe — monitor closely").
Tank Service History
Each tank displays its complete service history on the property page. The history shows every service visit with date, service type, gallons pumped, sludge depth, scum depth, tank condition recorded, technician, and any notes. Service records are created automatically when a job is completed.
Editing a Tank
Click the Edit button on any tank card to update any field. Changes are saved immediately. Editing a tank does not affect historical service records — those are permanent.
Contract Management
Contracts are service agreements between your company and customers. They define scope, duration, pricing, and terms. SepticCycle tracks the full contract lifecycle from creation through signing, active service, and renewal.
Creating a Contract
⚠️ Prerequisites: A Customer and Property must exist before a contract can be created. If you use county compliance reporting, counties must be defined first (Contracts › County Requirements) or the county dropdown will be empty. Contract numbering should be configured in Settings › Contracts before your first contract.
- Customer & Property: Type to search and select.
- Contract Type: Annual Service, Multi-Year, One-Time, or Maintenance Agreement.
- Template (optional): Pre-fills services, pricing, and terms. Everything is still customizable after selecting.
- Start Date, End Date, and Renewal Date.
- Service Frequency: Monthly, Every 2 Months, Every 4 Months, Quarterly, Tri-Annual (3× per year), Semi-Annual, Annual, Every 2 Years, As Needed, or Custom.
- Services Included: Add each line item with description, quantity, and price.
- Billing Frequency: For auto-invoicing — Monthly, Quarterly, Semi-annually, or Annually.
- Next Billing Date: The date the first auto-invoice should generate. The system advances this after each invoice is created.
- Custom Terms and Conditions.
- County Requirements: Enable to link this contract to county compliance reporting.
Click Save Contract to create in Draft status.
Contract Statuses
Contract Templates
Templates create reusable service package definitions so you don't re-enter the same information for every new contract. SepticCycle comes pre-loaded with 24 templates for common septic services.
- 1Click + New Template.
- 2Enter the Template Name (internal use, e.g., "Annual Residential Pumping").
- 3Set the Default Duration, Default Price, and Services Included.
- 4Add any standard terms and conditions to pre-fill on new contracts.
- 5Toggle Active to make the template available for selection.
- 6Click Save Template.
💡 Tip: Templates can also be marked Public Visible so customers can self-select plans on the Sign & Pay portal.
Bulk Contract Import
The unified import page auto-detects whether you're uploading a CSV or PDF and routes you through the appropriate workflow.
CSV Import
- Download the template CSV, prepare your data, and upload.
- Each row is color-coded: green = customer and property matched, yellow = customer matched only, red = no match. Use dropdowns on red rows to manually assign.
- Click Import to create all matched contracts.
PDF Import
- Upload one or more PDF contract files.
- The system extracts text and auto-detects customer name, contract type, dates, value, and property address.
- Review extracted details on each card. Manually assign any PDFs that couldn't be auto-matched.
- Click Import. Original PDFs are stored alongside the contract records.
Electronic Signatures
⚠️ Prerequisites: For in-person signing, your Representative Name and Email should be set in Settings › Contracts — these pre-fill the company signature block automatically. For remote signing, the customer can pay by card (requires Stripe) or by any offline method you have enabled in Settings › Billing & Payments.
- In-Person Signing: Open the contract detail page and click Sign Contract. The customer draws or types their signature on a tablet or touchscreen. Your company representative's name and email pre-fill from Settings.
- Remote Signing: Click Send for Signature. The customer receives a secure email link, reviews the contract, selects a payment method, and signs — no account required.
All signatures are timestamped and IP-logged. Signed contracts can be downloaded as PDFs from the contract detail page.
Remote Signing — Payment Step
When a contract has an invoice attached, the signing page includes a payment step before the customer can sign. The payment method buttons shown to the customer are drawn directly from your Accepted Payment Methods setting (Settings › Billing & Payments).
- Credit Card (online): Only shown if Stripe Connect is active. The invoice summary displays the base amount plus any card processing fee (percentage + flat fee) as a separate line item — exactly as it appears on invoices. The customer pays, then proceeds to signature automatically.
- Check, Cash, ACH, Venmo, Zelle (offline): The customer selects their method, sees relevant payment instructions from your settings, and clicks Continue to Sign. No card fee is added. The customer is not blocked from signing.
- Already paid: If you have already recorded payment on the linked invoice in the dashboard, the signing page detects this automatically and skips the payment step entirely, dropping the customer straight to the signature.
Owner Notification Email
Once the customer completes signing, all admin users and your company email receive a notification. The email adapts to the payment method: a green "Contract Paid & Signed" email is sent for card payments; a blue "Contract Signed — Payment Pending" email is sent for offline methods, clearly showing the method (e.g., Check — Pending Collection) so you know to confirm receipt before countersigning.
SMS Opt-In During Contract Signing [New in v35]
The signing page includes an optional SMS opt-in section below the agreement checkbox. The customer sees a clearly labeled Optional — Text Message Notifications box with an unchecked checkbox and full disclosure language: their company name, message frequency (1–5 per service event), msg & data rates disclosure, and STOP/HELP instructions. If the customer checks the box, they may also enter a mobile number; if left blank, the phone number on their customer record is used. Checking the box writes sms_consent = true and a timestamp to their customer record. This box is never pre-checked, never required for service, and completely separate from the service agreement. No staff member can check this box on the customer's behalf.
Customer Choice Add-Ons and the Invoice
When a customer selects a paid Customer Choice option during signing, the add-on is automatically reflected in the linked invoice. A separate line item is added for each selected add-on (e.g., Add-on: Service Plan Upgrade — Option 2), and the invoice subtotal, total, and balance due are updated to match the agreed amount. For card payments, Stripe charges the adjusted total. For offline payments (cash, check, etc.), the invoice is updated to show the correct amount due so you collect the right figure when payment arrives.
Extras Paid in Full When Monthly Billing Is Selected [New in v36]
When a customer selects the Monthly Installment payment option and also chooses paid add-ons, the add-on total is always collected in full at signing — it is never divided across monthly installments. Only the base contract price is split into monthly payments. This protects the company when supplies are purchased up front for a customer who later cancels their monthly plan. The signing page shows a clear breakdown: installment per month (base only), add-ons due today in full, and a Due Today total combining both. The invoice reflects the same split with separate line items.
Offline Payment Instructions [New in v36]
When a customer selects an offline payment method (Check, Cash, ACH, Venmo, or Zelle) on the contract signing page, detailed instructions are now shown automatically. Configure them in Settings → Billing → Offline Payment Instructions. Check and Cash show payable-to name and mailing address. ACH shows bank name, routing number, account number, and account type. Venmo shows the company handle. Zelle shows the registered email or phone. Each block ends with a confirmation that the contract will be activated once payment is received.
Renewal Management
The Renewals dashboard categorizes all expiring contracts into urgency buckets:
- Overdue: Contracts already past their renewal date. Shown in red.
- Next 7 Days: Urgent renewals due this week. Shown in orange.
- Next 30 Days: Upcoming renewals. Shown in yellow.
- Revenue at Risk: Total contract value of all overdue and next-30-day contracts combined.
Renewing a Contract
- 1Click Renew on the contract.
- 2Set the new Duration (6 to 36 months), Start Date, and any Price Adjustment.
- 3Optionally generate an invoice for the new contract term.
- 4Click Confirm Renewal. The old contract is marked Renewed and a new contract is created.
Contracts can have an auto-renew flag to automatically renew when they expire. For mass renewals, select multiple contracts and click Bulk Renew.
County Requirements
⚠️ Prerequisites: County records must be created here before they appear in the county dropdown on contracts or in the Compliance dashboard. The county field on new contracts will be empty until at least one county is defined.
Configure county-specific compliance reporting requirements. For each county, set:
Each county can also be configured with Report Format (PDF, CSV, or both) and a CSV Fields list. These control the default output options when generating compliance reports for that county. For per-report-type field configuration, use the Report Settings page (see below).
- Submission Frequency: Per service, Monthly, Quarterly, Semi-annual, or Annual.
- Submission Method: Email, portal, mail, fax, or in-person.
- County Contact Information and portal URL.
- Deadline Days: How many days after the period ends to submit.
- Notes: Any special requirements for this county.
PDF Contract Template Upload
SepticCycle allows you to upload your existing PDF contracts and convert them into smart, auto-filling templates. The editor detects text fields in the PDF and lets you configure how each one fills — automatically from customer data, by customer choice at signing, or manually by your office. Once activated, the template generates a filled PDF every time you issue a contract.
💡 Tip: The PDF upload system works best with text-based PDFs rather than scanned images. If your contract is a scan, add a text layer using a PDF editing tool before uploading.
Step 1 — Upload Your PDF
- 1Navigate to Contracts › Templates in the sidebar and click Upload PDF Template.
- 2Select your PDF file and click Upload. SepticCycle analyzes the document and detects fillable blanks.
- 3The template editor opens automatically when processing is complete.
Step 2 — Review and Configure Each Field
The editor uses a split-screen layout: the PDF is displayed on the left with numbered field badges overlaid at each detected position, and the field configuration panel is on the right. Work through each field and set:
- Display Label: The name shown to customers on the signing page (e.g., "Customer Name").
- Field Type: Controls how the field is filled — see the Field Type Reference below.
- Auto-fill Source: Appears when Field Type is Auto-filled (System). Choose the data point to inject.
- Helper Text: Optional hint shown to the customer for Company Fill and Customer Choice fields.
Drag any field badge on the PDF to reposition it. Use the resize handles to adjust its size. Each field can also be positioned precisely using the X, Y, W, H numeric inputs in the configuration panel.
Configuring Customer Choice Options
When a field is set to Customer Choice, expand the field in the right panel to configure its options. Click + Add Option for each choice the customer can make. For each option set:
- Option Label: The text shown to the customer on the signing page (e.g., "Septic Additive").
- Add-on Price: Added to the contract base price when this option is selected. Leave at $0.00 for no-charge options.
- PDF Fill Value: The text written into the PDF blank when this option is chosen.
- Helper Text (optional): A short description shown below the option label on the customer signing page.
To give customers a clear way to decline an add-on, check the "Include No Thanks option" toggle in the Customer Options panel header. This automatically appends a "No Thanks" radio button at the bottom of the options list. When selected, no price is added and the PDF field is left blank. The toggle must be enabled and the template saved for the button to appear on the customer signing page.
📌 Note: Customer Choice fields must have at least one option defined. If you want customers to be able to decline, use the "Include No Thanks option" toggle rather than leaving the field with a single option.
Field Type Reference
- Auto-filled (System): Populated automatically from job data — customer name, property address, start date, permit number, company name, and more. No customer input required.
- Customer Choice: The customer selects from a set of options you define (e.g., service add-ons). Each option can carry a price delta that adjusts the contract total. See Configuring Customer Choice Options below for setup details.
- Company Fills: Your office enters this value before the contract is sent. Useful for custom notes, special terms, or fields unique to each job.
- Company Date: A date field filled by your office, formatted consistently across all contracts.
- Company Signature / Customer Signature: Signature image blocks for each party. These fields are not auto-detected by the PDF parser and must be added manually using + Add Field. Place the Company Signature badge over your company's signature line and the Customer Signature badge over the client signature line. Drag and resize each badge so it fits precisely within the underline. The correct signature image is drawn automatically at the positioned location when the final PDF is generated after countersigning. If these fields are not added and positioned, signatures will not appear in the final PDF.
- Date (auto): Inserts today's date automatically when the contract is generated.
- Ignore: Marks a detected field as not used. Ignored fields are skipped entirely during fill and do not appear on the signing page.
Step 3 — Add Fields Manually
If a blank was missed by auto-detection, click + Add Field in the action bar, then click anywhere on the PDF to place a new field badge. Configure it in the right panel and drag it to the exact position.
Step 4 — Preview the Filled PDF
Click Preview Filled PDF at any time to see the contract populated with sample data (dummy customer name, address, today's date, etc.). The preview auto-saves your current field configuration first, so what you see always reflects your latest changes. The preview opens in a new browser tab as a live PDF.
⚠️ Always preview before activating. Verify that every field lands inside its underline or box, that text is not clipped or overflowing, and that signature blocks are correctly positioned over the signature lines. Use the W (width) and H (height) inputs on each field badge to resize, and drag to reposition. Click Save Draft and re-preview after any adjustments until the layout is correct.
Step 5 — Save and Activate
Click Save Draft to save your progress without making the template available. When all fields are configured and reviewed, click Activate Template to publish it. Active PDF templates appear in the template list and can be assigned to contracts.
📌 Note: Customer Choice fields must have at least one option defined before activation is allowed.
Once a contract has been fully signed and countersigned, the contract detail page shows a Final Contract PDF section with an Open PDF button. A ↺ Re-generate button appears alongside it — use this to rebuild the filled PDF at any time after making template corrections or adding missing signature fields to an already-signed contract.
Monthly Installment Billing [New in v33]
Monthly installment billing lets customers spread the cost of a service contract across equal monthly payments. The system handles automatic charging, invoice generation, progress tracking, and early payoff.
Setting Up
When creating or editing a contract, set Allowed Payment Options to Customer Choice, Monthly Only, or One-Time Only. Set Duration Months to the number of installments. The installment amount is calculated at signing as Total Contract Value divided by Duration Months.
Customer Signing Experience
On the signing page, customers with a monthly-enabled contract see a payment selection card:
- Pay in Full: Full contract value charged today.
- Monthly Installments: First installment charged today. Subsequent installments billed automatically each month. Customer sees per-installment amount and duration.
If the contract start date is in the future, an amber notice informs the customer that payment is collected today to reserve their slot.
Auto-Charge vs. Manual Pay
- Auto-Charge (default): Card saved at signing is charged automatically each month. Customer receives a receipt email after each successful charge.
- Manual Pay (opted out): Customer checks 'I prefer to pay each monthly invoice manually' during signing. SepticCycle generates and emails an invoice each month with a Pay Now link. No automatic charge occurs.
Monthly Billing Plan Panel
On any active monthly contract detail page, the Pricing & Payment card shows a Monthly Billing Plan section with: In Progress / Complete badge, installment amount per month, progress counter (e.g., 3 of 12 paid), next billing date, auto-charge status, and a progress bar.
Early Payoff
Click Pay Off Balance in the contract action bar (visible for active monthly contracts with remaining installments). A modal shows the payoff summary. Click Send Payoff Link to create a single invoice for the remaining balance and email the customer a direct Pay Now link. The contract is not re-signed — the customer simply pays the invoice.
Contract PDF
The downloaded PDF for monthly contracts shows Payment Terms as Monthly Installments, the per-installment amount and duration, and auto-charge status. One-time contracts are unaffected.
Invoicing
SepticCycle includes a complete invoicing system for creating, editing, sending, and tracking payment. Invoices can be created manually, generated from contracts, or auto-generated on a recurring schedule.
Creating an Invoice
From a Contract
On any active contract detail page, click Generate Invoice. This pre-fills the customer, property, line items, and pricing from the contract — the fastest way to create invoices for contracted customers.
Standalone Invoice
- Select a customer, then select the property.
- Set the Invoice Date and Due Date (defaults from Settings › Billing and Payments).
- Add Line Items: Service Type, Description, Quantity, and Unit Price.
- Payment Method: When Credit Card is selected, the card processing fee from Company Settings is automatically calculated and added as a surcharge. The fee includes both the percentage (e.g., 3%) and flat fee (e.g., $0.32), ensuring your company receives the full invoice amount after Stripe processing costs.
- Discount: Apply a dollar amount or percentage discount.
- Invoice Notes: Customer-facing notes on the invoice.
- Internal Notes: Staff-only notes not shown to the customer.
Click Save Invoice to create in Draft status.
Invoice Statuses
- Draft: Invoice created but not yet sent to the customer.
- Sent: Invoice emailed to the customer. Awaiting payment.
- Viewed: Customer opened the payment portal link.
- Pending: Customer has indicated via the payment portal that they will pay by an offline method (Check, Cash, ACH, Venmo, or Zelle). Payment has not yet been collected. Use Record Payment on the invoice detail page once you receive it. The Resend button remains available on Pending invoices.
- Paid: Payment recorded in full.
- Partial: A partial payment has been recorded; a balance remains.
- Overdue: Payment terms have passed without full payment.
- Void: Invoice cancelled and removed from receivables.
Sending Invoices
Click Send Invoice on any draft or saved invoice. SepticCycle emails the invoice directly to the customer. The email includes your company branding and contact information, a formatted invoice with all line items, and a direct Pay Now link to the Customer Payment Portal (no login required). The invoice status updates to Sent and delivery is logged in the Email Log.
- Resend: Open any already-sent invoice and click Resend Invoice to send a fresh copy to the customer with the same payment link — useful if a customer reports not receiving the original.
- Bulk Send: From the Invoices list page, select multiple invoices using the checkboxes and click Bulk Send to email all selected invoices in one action. Ideal for end-of-month billing runs.
Automatic Overdue Reminders
The system automatically sends email reminders for unpaid invoices:
- 7 days overdue: First reminder email.
- 14 days overdue: Second reminder email.
- 30 days overdue: Final reminder email.
Each reminder includes invoice details, outstanding balance, and a direct payment link. Reminders run at 8 AM UTC daily and stop automatically once the invoice is paid or voided.
Recording Payments [Updated in v23]
Open any sent invoice and click Record Payment. Enter:
- Amount: Click Pay Full Balance to auto-fill the remaining balance.
- Payment Method: Check, Cash, Credit Card, or ACH / Bank Transfer.
- Reference Number: Check number, transaction ID, or other reference.
- Notes: Optional notes about this payment.
Partial payments are fully supported. The invoice status changes to Partial and the remaining balance is displayed prominently.
Automatic Job Status Sync [New in v23]
When an invoice is marked as Paid — whether through manual payment recording, Stripe online payment, or any other path — SepticCycle automatically updates the linked job's status from "invoiced" to "paid." A status history entry is created noting the payment amount and method. If a previous payment attempt failed to sync the job status, opening the invoice detail page triggers an automatic reconciliation that corrects the job status and logs the correction in status history.
Online Payment Portal
Customers can pay invoices online without logging in. Each invoice has a unique payment URL: yourdomain.com/pay/[invoiceId]
When a customer opens the link they see your company branding, all invoice line items and totals, and their available payment options.
Credit / Debit Card (Online)
- Shown when Stripe Connect is active.
- The customer's card is charged through your connected Stripe account.
- With default fee settings (3% + $0.32 flat), processing costs are passed to the customer as a surcharge. Your company receives the full invoice amount.
- SepticCycle automatically records the payment and updates the invoice status to Paid.
- You receive the funds directly — SepticCycle never holds your money.
Offline Payment Methods (Check, Cash, ACH, Venmo, Zelle) [Updated in v39]
If you have enabled offline payment methods in Settings › Billing & Payments, those options appear as buttons on the payment portal. When a customer clicks a method, the portal immediately shows the payment instructions for that method (mailing address, bank details, etc.) with a ← Change method link. The customer then confirms their selection:
- The invoice status changes to Pending.
- A timestamped note is written to the invoice's Internal Notes confirming which method they selected (e.g., "Customer indicated payment by Check via the payment portal. Pending collection.").
- You collect the payment in person or by mail, then use Record Payment on the invoice detail page to mark it Paid.
- The Resend button is available on Pending invoices to follow up with the customer.
💡 Tip: Configure per-method instructions in Settings › Billing & Payments › Offline Payment Instructions. Check and Cash show payable-to name and address. ACH shows bank name, routing, and account number. Venmo shows the company handle. Zelle shows the registered email or phone. Only enabled methods appear on the portal.
Saved Payment Methods (Cards on File)
Customers can save their card for future payments when paying via the portal. Saved cards are securely stored by Stripe and enable one-click future payments, automatic monthly installment billing, and automatic payment retry when a charge fails. The full card number is never accessible to SepticCycle — only the card brand and last four digits are stored.
SepticCycle supports multiple cards per customer, organized into two tiers:
- Customer Default: The card used for any property that does not have its own card on file. Marked with a gold star badge. Use the Set Default button to promote any customer-level card to default.
- Property Card: An override card saved against a specific property. Marked with a blue "Property override" badge. When a contract's property has its own card, that card is always charged first. If no property card exists, billing falls back to the customer default.
To manage cards, open the customer profile and click the Payment Methods tab. The tab shows the Customer Default section at the top and a separate section for each of the customer's properties below it. Use + Add Card within any section to attach a card to that scope. To send the customer a self-service link to add their own card, click Request Payment Method at the top of the tab.
Automatic Invoice Generation (Auto-Invoicing)
⚠️ Prerequisites: Auto-invoicing only triggers on contracts that have a Billing Frequency set (e.g., Monthly, Annual). Contracts without a billing frequency are ignored by the auto-invoicing cron. Invoice prefix and starting number should also be configured in Settings › Invoices before the first invoice generates.
Contracts with a billing frequency set automatically generate invoices on a recurring schedule. A daily process runs at 6 AM UTC and checks all active contracts. When a contract's Next Billing Date is today or earlier:
- A new invoice is created with line items matching the contract's services and pricing.
- The invoice is created in Draft status (configurable to send automatically in Settings).
- The contract's Last Invoice Date is updated and the Next Billing Date is advanced by the billing frequency.
Setting Up Auto-Invoicing
- 1Open the contract you want to auto-invoice.
- 2Set the Billing Frequency: Monthly, Quarterly, Semi-annually, or Annually.
- 3Set the Next Billing Date to when the first auto-invoice should generate.
- 4Save the contract.
Automatic Payment Retry (Failed Charge Recovery)
When an automatic invoice charge fails (e.g., a saved card is declined), SepticCycle automatically retries the payment:
- Stripe notifies SepticCycle via webhook that the payment failed.
- If the customer has a saved payment method on file, the invoice enters the retry queue.
- The system retries on a schedule: Day +1, Day +3, and Day +7 after the initial failure (three attempts total).
- If a retry succeeds, the invoice updates to Paid and the customer receives a confirmation email.
- If all three retries fail, the invoice is marked
payment_failed, the contract is flagged for review, and you receive a notification to follow up manually.
Receivables Dashboard
- KPI Cards: Total Outstanding, Total Collected, Collection Rate, Average Days to Pay.
- A/R Aging: Receivables grouped as Current, 1–30 Days, 31–60 Days, 61–90 Days, and 90+ Days. Each bucket is expandable to see individual invoices.
- Overdue Follow-Up: Past-due invoices sorted by most overdue first.
- By Customer: Outstanding balances grouped by customer.
- Monthly Trends: Last 6 months of invoiced vs. collected amounts as a bar chart.
Invoice Tags
Invoice tags let you categorize invoices by service type for filtering and reporting. Tags are optional and can be applied when creating or editing any invoice. An invoice can carry one tag at a time.
Available Tags
- Contracts: Invoices for contract-related work or setup fees.
- Inspection: Invoices for inspection services.
- Installation: Invoices for new system installations.
- Porta-Johns: Invoices for portable restroom rental and service.
- Pumping: Invoices for routine septic pumping services.
- Repairs: Invoices for repair work on existing systems.
Tags appear on the invoice list, invoice detail page, the Receivables dashboard, and in Reports — allowing you to filter and compare revenue by service category.
Monthly Installment Auto-Billing [New in v33]
When a contract uses monthly installment billing, SepticCycle generates and processes installment invoices automatically each month. The auto-billing cron runs daily at 6:00 AM UTC. If a Monthly Billing Surcharge is configured in Settings → Billing, it is added as a separate "Monthly Billing Fee" line item on installments 2 through N. Installment 1 is collected at signing and does not include the surcharge. [New in v36]
Invoice Format
- Line item 1: 'Installment N of M — CONTRACT-NUMBER' for the installment amount.
- Line item 2 (card payments only): 'Credit Card Processing Fee' for the surcharge.
- Invoice notes: 'Installment N of M — Monthly billing plan'.
Auto-Charge Path
For contracts with a card on file and auto-charge enabled: the cron creates a Stripe payment intent off-session. On success, the invoice is marked Paid, a receipt email is sent breaking out Service Charge and Credit Card Processing Fee separately, and remaining installments decrements by one. On failure, the invoice enters the Failed Charge Recovery queue.
Manual Pay Path
For opted-out contracts or those with no saved card: the cron generates an invoice and sends a Monthly Installment Due email with a Pay Now link. The next billing date advances immediately at generation time so the schedule stays on track regardless of when the customer pays.
Final Installment
When the last installment is paid, a system note is written: "Final installment paid — contract is now fully paid. All N installments complete." The billing plan panel shows a Complete badge and the progress bar fills to 100%.
Estimates
Overview [New in v44]
Estimates let you quote a scope of work and pricing to a customer before any job or invoice is created. An estimate moves through a simple lifecycle from draft to accepted, and can be converted directly into a job, an invoice, or both. Every estimate is linked to a customer and can optionally be tied to a specific property and an existing job.
- Multi-Option Quotes: Present up to several pricing options on a single estimate. Each option has its own line items, title, and description. The customer selects one, and only that option's line items carry forward when converting.
- Pricebook Integration: Pull items directly from your Items Catalog into any estimate option with the Pricebook button.
- Cost Basis Tracking: Record internal cost and markup per line item without exposing those figures to the customer.
- Pipeline View: The Estimates list page shows pipeline value, accepted value, and open count summary cards with one-click filtering by status.
Creating an Estimate
- 1Search for and select a Customer. The estimate title auto-fills with the customer name.
- 2If the customer has multiple properties, select the Location / Property.
- 3Set an Estimate Title and Expiration Date (required). Expiration defaults to 30 days from today.
- 4Optionally enter a Reference (PO number or work order) and Commission Recipient.
- 5Use the Link To toggle to link the estimate to an existing job, or leave it set to None.
- 6Toggle Save As Estimate Template if you want to reuse this structure for future quotes.
- 7Add line items in the first estimate option tab.
- 8Add Tags as needed using the tag input.
- 9Fill in any Additional Fields (Instructions, Contract Status).
- 10Add Estimate Notes (customer-visible) or Internal Notes (office only) in the notes tabs.
- 11Adjust the Tax rate using the number input in the Summary panel. To add a surcharge or discount, click Add Surcharge or Add Discount — each opens an inline form with an Amount and optional Description field. Enter the value and click Add. Click Add Credit Card Fee to toggle the card processing fee on or off.
- 12Click Save as Draft to save without sending, or Save & Send to send immediately.
Estimate Options (Multi-Option Quotes)
Each estimate can present the customer with multiple pricing options — for example, a basic package and a premium package. Options appear as tabs on the line item section.
- Click + Add Estimate Option to add a new option tab. Each option has its own title, description, and independent set of line items.
- Use Add Item to add a blank line item, Pricebook to insert from the Items Catalog, or Add Grouping to insert a section header row.
- Click % Apply Markup/Margin to apply a uniform markup percentage to all line items in the active option at once. An inline panel appears below the action row — enter the percentage and click Apply (or press Enter). Items with a cost basis set use that as the base; all other items use their current unit price.
- The option subtotal is shown below each option's line items.
- Click the ✕ next to an option tab to remove it (not available when only one option exists).
- The first option is selected by default. When converting an estimate to a job or invoice, the selected option's line items are used.
💡 Tip: Option titles default to "Option 1", "Option 2", etc. Replace these with descriptive names like "Standard" and "Premium" to make the customer-facing estimate clearer.
Estimate Statuses
- Draft: Saved but not yet sent. Fully editable.
- Sent: Emailed to the customer. Still editable.
- Viewed: Customer has opened the estimate link. Still editable.
- Accepted: Customer approved the estimate. Edit button is hidden. Conversion buttons appear.
- Declined: Customer rejected the estimate. Can be deleted.
- Expired: Expiration date has passed with no customer decision. SepticCycle auto-sets this status when you open an estimate whose expiration date is in the past.
📌 Note: You can manually mark any estimate as Accepted or Declined using the action buttons at the top of the detail page, regardless of whether the customer has interacted with it.
Sending an Estimate
Click Send Estimate on any draft estimate. A modal opens showing the recipient email address (pre-filled from the customer record), a preview of the email subject and body, and an optional personal message field. Click Send Estimate in the modal to dispatch the email. The estimate status updates to Sent and the sent-to address is recorded.
To resend an already-sent estimate, click Resend from the detail page. This generates a fresh email to the same address.
Converting an Estimate to a Job
When an estimate is in Accepted status and has not yet been converted, the 🔧 Convert to Job button appears in the action bar. Clicking it opens a modal where you can:
- Edit the Job Title (pre-filled from the estimate title).
- Set a Scheduled Date for the new job (optional).
- Add any Additional Notes for the technician.
Clicking Create Job creates a new job pre-populated with the customer, property, estimate total as quoted price, and a summary of the selected option's line items in the description. The estimate is stamped with the new job ID and its status is set to Accepted. You are redirected to the new job detail page to continue setup (assign technician, finalize scheduling, etc.).
💡 Tip: After converting to a job, the Convert to Job button is replaced by a 🔧 View Job link. The Convert to Invoice button remains available so you can also create an invoice independently.
Converting an Estimate to an Invoice
When an estimate is in Accepted status and has not yet been converted to an invoice, the 💵 Convert to Invoice button appears. Clicking it opens a modal showing:
- A line item preview from the selected estimate option, with descriptions and totals.
- Invoice Date (defaults to today).
- Due Date (optional — leave blank to use your company's default due-day setting).
- Invoice Notes (optional — leave blank to carry over the estimate notes automatically).
Clicking Create Invoice creates a new Draft invoice carrying the estimate's subtotal, tax, fees, and discounts, with line items from the selected option. If the estimate was already converted to a job, the invoice is automatically linked to that job. The estimate is stamped with the invoice ID and you are redirected to the invoice detail page to review and send.
📌 Note: Both conversions can coexist. You can Convert to Job first and Convert to Invoice separately. The estimate tracks both linked records in the Activity sidebar and shows View Job and View Invoice links once both exist.
Estimate Tabs
The estimate detail page has six tabs:
- Info: Customer details, option line items, grand total, notes, and the activity/details sidebar.
- Cost Basis: Internal view showing cost basis, markup %, gross profit, and margin % per line item. Not visible to customers.
- Comments: Internal comment thread. Each comment shows the author and timestamp. Use for internal coordination on the estimate.
- Payments: Record deposits or partial payments received against the estimate before it becomes a job or invoice. Payments appear as a running total.
- Files: Attach reference documents (PDFs, images, Word docs, spreadsheets) up to 10 MB each. Files are stored privately and accessible only to your company.
- Purchase Orders: Log POs from vendors related to the estimate. Each PO tracks a number, vendor, amount, and status (Pending, Received, Cancelled). Mark POs received inline when materials arrive.
Estimate Numbering Settings
Configure your estimate number format in Settings › Invoices Tab under the Estimate Numbering section:
- Estimate Prefix: The text prepended to every estimate number (default: EST-). Example: EST-1001.
- Next Estimate Number: The numeric counter for the next estimate. Increments automatically with each new estimate created.
Jobs & Work Orders
Every field visit is tracked as a job. Jobs link customers, properties, technicians, and tanks into a single work record that flows through scheduling, field execution, completion, and invoicing.
Job Status Workflow [Updated in v23]
Additional statuses: On Hold (paused, can resume), Cancelled (terminated), Draft (incomplete, not on calendar), No Access 🔒 (technician could not access property — returns to Scheduled for rescheduling). [Updated in v37]
📌 Note: New in v23: The "Paid" status completes the financial lifecycle. When an invoice linked to a job is paid through any method (manual recording, Stripe checkout, or auto-charge), the job automatically transitions to Paid. Paid jobs display in dark green (#228B22) on the calendar.
Creating a Job
⚠️ Prerequisites: At least one Technician must exist before a job can be assigned. A Customer and Property must also exist. If scheduling settings (business hours, timezone) are not configured, auto-scheduling may not work correctly.
- Customer: Search by name. Each customer in the list shows their service address for easy identification. Single-property customers with a tank show: Name — Tank Name — Street, City, State, ZIP. Single-property customers with a property but no tanks (for example, customers migrated from another system) show: Name — Street, City, State, ZIP using the property address directly. Multi-property customers show: Name (N properties) and a property picker appears after selection. Only customers with no property record at all fall back to phone number.
- Property (multi-property customers only): When you select a customer with more than one property, a Property dropdown appears immediately below. Each option shows the tank's custom name and service address — for example, "Backyard — 579 N Collins Rd, Sunnyvale, TX, 75182". Select the correct property before choosing a site. For single-property customers this step is skipped automatically.
- Site: A dropdown loads all tanks for the selected customer (or selected property for multi-property customers). Each option shows the tank name and site address (or property address if no site address is set) with tank type and capacity. Selecting a site auto-fills the job's site address. If the selected property has no tanks, the property address is used directly.
- Service Type: Sorted alphabetically. Each option shows the pricing mode — Flat Rate types display their price (e.g., "Camera Inspection - $275"), while Time & Materials types show "T&M". Selecting a Flat Rate service type auto-fills the Quoted Price. Selecting a T&M service type clears the price and displays a notice that the final price will be calculated from labor hours plus parts used. [Updated in v20]
- Job Title: Auto-fills from service type. Customize if needed.
- Scheduled Date and Time, Estimated Duration.
- Primary Technician: Select the lead staff member from the dropdown. Shows all company users — technicians, office staff, and admins. Non-technician users appear with a "(Staff)" label. Admin and office users can be assigned as primary for single-person companies. [Updated in v21]
- Additional Technicians: A checklist of remaining active staff appears below the primary dropdown. Check one or more to assign them as supporting technicians on the same job. Additional assignees appear on their own row in Day View and are filterable via the All Staff dropdown on the calendar. [New in v19]
- Priority: Normal, High, or Emergency. Emergency jobs display with a red border on the calendar and mobile app.
- Pricing: For Flat Rate service types, the Quoted Price auto-fills from the service type. For T&M service types, an amber notice appears explaining that the final price is calculated from labor and parts — an optional estimated price can be entered. [New in v20]
- Special Instructions / Notes, Link to Contract.
💡 Tip: Create Job saves with status "Scheduled" and requires a customer and title. Save as Draft requires only a customer — the title defaults to "Draft Job" if blank. Drafts can be promoted to Scheduled at any time from the edit page. [New in v18]
Job Detail Page
Assigned Technicians Panel [Updated in v21]
Every job detail page includes an Assigned Technicians panel on the right column listing all staff assigned to the job. The primary technician is shown first with an emerald Primary badge and a click-to-call phone link. Admin or office staff assigned as primary display correctly with their profile name. Each additional assignee is listed below with a gray Additional badge. For jobs that are not yet completed or cancelled, a + Add Tech button lets you assign additional staff inline without leaving the page. Each additional row also has a Remove link to instantly unassign that person.
GPS Check-In / Check-Out [Updated in v21]
Each technician on a multi-tech job checks in and out independently. When a technician clicks Check In, the system records their GPS coordinates, a timestamp, and their distance from the property address (shown in green under 500m, orange warning over 500m with a "View on map" link). Check Out records departure coordinates and distance. On multi-tech jobs, each person sees only their own Check In / Check Out / Pause / Resume buttons and their own billable time breakdown — one tech's check-in does not affect another's.
Time Tracking [New in v21]
A billable time tracker starts automatically when a technician checks in. Controls include Pause (switches timer to amber), Resume (restarts from pause), and Check Out (finalizes the entry). The "My Billable Time" section shows a running counter, individual time segments with start/end times, and a cumulative total. All time entries feed into the itemized cost breakdown at job completion. Each technician's hourly rate is set in their profile under Technicians.
Signatures Panel
- Arrival Signature: Customer confirms technician arrived. Name pre-fills from the customer record.
- Completion Signature: Customer acknowledges completed work. Appears after the arrival signature is captured.
Each signature stores the signer name, timestamp, and a preview image. Signatures appear on the printed job summary PDF.
Service Checklists [Updated in v20]
Jobs can have multiple checklists attached. When the job is In Progress, click + Add Checklist to select from available templates. Each checklist appears as a collapsible card showing its name, pricing mode (Fixed or T&M), and status badge (Pending, In Progress, or Completed). Expand a card to fill in inspection fields and manage parts. Default items from the service type's item associations auto-load into the Parts & Materials section. See Section 10 (Checklists & Inspections) for full details.
Legacy jobs created before multi-checklist support display a read-only "Legacy Checklist" card with historical data preserved.
Job Photos
Upload photos from mobile camera, gallery, or drag-and-drop on desktop. Each photo can be categorized as Before, During, After, Issue, or Other.
Issues Found
Click + Add Issue to record problems discovered during service: Title, Category (Structural, Mechanical, Hydraulic, Environmental, Safety, Compliance, or Other), Severity, estimated cost, and the tank where the issue was found. A follow-up job can be created directly from the issue.
Delete Job [New in v23]
A red Delete button appears in the action bar at the top of every job detail page. Before deleting, the system checks six related tables (time entries, photos, checklists, service records, issues, and invoices) for linked records. If any linked records exist, deletion is blocked with a descriptive message listing exactly what needs to be removed first. If no linked records exist, a confirmation modal appears and the job is permanently deleted. This is a hard delete — it cannot be undone.
Post-Completion: Invoice Link [New in v23]
After a job has been completed and invoiced, the Post-Completion section on the right side displays a direct link to the generated invoice. The link shows the invoice number (e.g., "View Invoice — INV-1037") with a color-coded status badge: green for paid, blue for sent, or purple for other statuses. Click the link to navigate directly to the invoice detail page.
Job Files [New in v38]
A Job Files card appears in the left column of every job detail page, between the Notes section and Checklists. Admin and office users can upload reference documents — such as installation drawings, site permits, or manufacturer specs — that technicians may need in the field. Supported formats: PDF, images (JPG, PNG, WEBP), and Word documents (.docx). Maximum file size: 25 MB per file.
- Uploading: Click the dashed upload area, select a file, and it saves immediately. The card refreshes to show the file with its name, size, and upload date.
- Opening: Click Open next to any file to view it in a new browser tab. PDFs and images open natively; Word documents download.
- Deleting: Click Delete and confirm. The file is permanently removed from storage and the job record.
- Tech access: On the mobile tech view (/tech/[id]), a collapsible Job Files section appears between Property Photos and Customer Notes. Techs can open files but cannot upload or delete them.
Completing a Job [Updated in v34]
Click Complete Job. The system first validates that all technicians have stopped their timers — if any tech has an active time entry, you'll see a named list of who still needs to check out. The completion modal shows an itemized cost breakdown:
- Labor: Each technician's hours × hourly rate, listed individually (e.g., "Labor — Casey Edge: 2.5 hrs × $45.00/hr = $112.50").
- Parts & Materials: Items used from the job's checklists, each with quantity × unit price.
- Fixed Rate: For fixed-price service types, a single line item with the flat rate.
- Calculated Total: Green bar showing the sum of all labor + parts (or the fixed rate).
Below the breakdown: Final Price (pre-filled but editable for discounts), Next Service Date, Additional Notes, and an optional Issue Report toggle.
Payment Method Selector [Updated in v38]
Four payment method buttons appear in a 2×2 grid below the final price: 💳 Card, 💵 Cash, 📝 Check, and 🧾 Bill Left on Site. The selection determines the job and invoice status after completion:
- Card: Invoice is created with status "sent" and emailed to the customer with a Pay Now link. If the customer has SMS enabled and has opted in, a text message is also sent with a direct link to the online payment page. Job status becomes "invoiced."
- Cash: Invoice is created with status "paid" and the payment is recorded immediately. Job status becomes "paid." No further collection is needed.
- Check: Invoice is created with status "sent" and a note reading "Check collected on-site — pending deposit." Job status becomes "invoiced." When Check is selected, a Check # input appears — enter the check number if available (optional). It is appended to the invoice notes (e.g., "Check collected on-site — pending deposit. Check #1042."). If the technician photographed the check on mobile, the photo appears in a dedicated Check Photo section on the job detail page and invoice page. When you deposit the check, open the invoice and click Record Payment to mark it paid.
- Bill Left on Site [Updated in v39]: Invoice is emailed to the customer with a Pay Now link (if an email is on file) and an SMS pay link is sent if the customer has opted in. A note reads "Bill left on site — paper invoice delivered in person." If no email is on file, an amber warning appears in the modal but the job can still be completed. Job status becomes "invoiced."
Attach Checklist PDF [New in v34]
When the job has at least one completed checklist, a 📋 Attach Checklist PDF toggle appears in the completion modal and is automatically enabled. When on, a professional Service Checklist Report PDF is generated and attached to the invoice email. The PDF includes all checklist sections, field responses, parts used, and a parts total. Toggle off to send the invoice without the checklist attachment.
Attach Photos to Invoice [New in v34]
When the job has photos, a 📷 Attach Photos to Invoice photo picker grid appears. Tap any photo to select it (emerald border + checkmark overlay). A counter shows how many are selected. Selected photos are embedded in the invoice email body so the customer sees service photos alongside their invoice. Leave all unselected to send without photos.
Receipt Confirmation [New in v34]
After completing, an alert confirms whether the invoice email was sent successfully and to which address — for example, "Invoice sent to customer@email.com" for card, "Receipt sent to customer@email.com" for cash, or "Invoice sent — check collected on-site" for check. If the customer has no email on file, no alert appears.
A blue invoice preview box shows exactly what the customer will be charged, including the card processing fee breakdown (service amount + fee = total). Click Confirm & Invoice to complete. The generated invoice uses your company's invoice prefix and numbering from Settings. This creates a service record, updates the tank's last service date, and calculates the next due date.
Deleting a Job
Click the 🗑 Delete button in the action bar. The system checks for linked records (time entries, parts, checklists, technician assignments, status history, and invoices). If any exist, a red message lists exactly what must be removed first. If no linked records exist, a confirmation dialog allows permanent deletion. Only admin and office users can delete jobs.
Job Calendar [Updated in v23]
Status Color Legend [Updated in v23]
- ■ Light Blue = Scheduled
- ■ Orange = Dispatched
- ■ Yellow = In Progress
- ■ Amber = On Hold
- ■ Light Green = Completed
- ■ Purple = Invoiced
- ■ Dark Green = Paid [New in v23]
- ■ Red = Cancelled
- ■ Teal = Maintenance Contract visit
Calendar Views
- Month View: Traditional calendar grid. Job blocks are color-coded by job status. Each job block displays the assigned technician's name and a color dot. Emergency jobs have a red border. Time-off blocks appear with a striped OOTO pattern. Drag a job to another day to reschedule — the target date highlights blue while hovering.
- Week View: Seven-column time grid (6 AM – 7 PM). An OOTO row shows which technicians are off each day.
- Day View: Full-detail single-day view with one row per staff member. Route Optimizer panel appears for any technician with 2+ jobs. Jobs without a scheduled time appear as wider blocks with dashed borders and a "No time set" label — drag them to a time slot to assign a start time.
Day View: Auto-Scroll to Current Time [New in v23]
When you open the Day View for today's date, the calendar automatically scrolls horizontally so the current hour is centered in view. You no longer need to manually scroll past the early morning hours to find what's happening now. When viewing a past or future date, the calendar scrolls to 8:00 AM as a sensible default starting position.
Day View: Current Time Indicator [New in v23]
A thin red vertical line with a red dot at the top marks the exact current time on today's Day View. The line spans the full height of the grid across all technician and staff rows, making it easy to see at a glance which jobs are past, current, and upcoming. The indicator only appears when viewing today's date and only within the 6 AM–8 PM grid range.
Day View: Compact Lane Stacking [New in v23]
When multiple jobs overlap in time on the same technician's row, they are automatically arranged into thin horizontal lanes within the row's fixed height. Each lane shows a compact single-line display (time + customer name). Hover over any compact lane to see full details in a tooltip and bring the job to the front. Jobs are guaranteed to stay within their row boundaries — they never bleed into adjacent technician rows.
Filters and Drag-and-Drop
The All Staff filter dropdown includes all company users — technicians and office/admin staff alike. Selecting any staff member filters the calendar to show only their jobs. An "Unassigned" option shows only jobs with no assignment. Drag and drop any job to a different day (Month View) or time slot / technician row (Day View) to reschedule. Time conflicts are detected automatically.
Recurring Job Generation
Active contracts with a recurring service frequency can automatically generate scheduled jobs months in advance.
- Generate All Jobs: Select how many months ahead (1, 2, 3, 6, or 12) and click Generate All to create jobs for every eligible contract at once.
- Generate per Contract: Click Generate on a single contract row.
- The system never creates duplicate jobs. If a job already exists for the same contract and date, it is skipped.
- Each technician is capped at 8 jobs per day.
Automatic Job Scheduling
⚠️ Prerequisites: Auto-scheduling requires: Active technicians to assign jobs to, Business hours and timezone configured in Settings › Scheduling, and Active contracts with a service frequency set. Without all three, the scheduler runs but creates no jobs.
SepticCycle includes a fully automated job scheduler that runs every day at 5:00 AM UTC (midnight Central). It creates upcoming service jobs from all active contracts without any manual intervention — ensuring no service date is ever missed.
What the Auto-Scheduler Does
- 21-day lookahead: Creates jobs for any service due within the next 21 days across all active contracts.
- Respects working days: If a calculated date falls on a weekend or non-working day, the job moves to the nearest working day based on your Settings › Scheduling configuration.
- Auto-assigns technicians: Picks the best available technician based on proximity to the property (GPS), current daily workload, and PTO exclusion. Technicians on approved time off are automatically skipped.
- 8-job daily cap: No technician receives more than 8 auto-scheduled jobs per day. Overflow jobs move to the next available working day (up to 7 days out).
- Time staggering: Start times are automatically staggered based on estimated service duration plus the scheduling buffer configured in Settings.
- Duplicate prevention: If a job already exists for the same contract within ±14 days of the calculated service date, the scheduler skips it entirely.
- Advances next service date: After creating a job, the contract's Next Service Date is updated so future runs don't double-schedule.
- Customer notification: A scheduling confirmation email is automatically sent to the customer when a new job is auto-created.
💡 Tip: Administrators can still create and override jobs manually at any time. The 8-job daily cap applies only to auto-scheduling, not to jobs you create manually from the dashboard.
Setup Required
For the auto-scheduler to run effectively, each active contract must have a Next Service Date populated. Navigate to a contract and set this field if it is blank. The scheduler reads this date to know when to create the next job.
Zone Scheduling [Updated in v34]
Zone Scheduling automatically creates jobs on the 1st of each month for all active contracts whose properties belong to a zone whose service months include the current month. When technicians are assigned to a zone, jobs are automatically assigned to the least-loaded technician in that zone on the target date. If no technicians are assigned to a zone, the job is created unassigned with an internal note prompting manual assignment.
How It Works
- Zones: Properties are tagged with a zone name via the Service Zone / Route field. Each zone is configured in Settings with a set of months when it should be serviced.
- Tech auto-assignment [New in v34]: The cron picks the least-loaded technician assigned to that zone on the target date. Tie-breaking: fewest jobs that day → fewest jobs that month → alphabetical by last name.
- Unassigned fallback: If no technicians are assigned to a zone, the job is still created — it lands unassigned with an internal note reading "No technicians are assigned to the [zone] zone — please assign manually."
- Eligible contracts: Only active or signed contracts whose property is in an active zone and whose service frequency is in the configured applies-to list are included.
- Duplicate prevention: If a zone-scheduled job already exists for the same contract in the current month, the run skips it.
- Status: All zone-generated jobs are created with status Scheduled. They appear on the calendar with no time block, ready for dispatch.
- Job notes: Each job includes an internal note identifying the zone, month, visit number, and assigned technician (or unassigned warning).
Scheduling Modes
Two modes are available, configured in Settings › Scheduling › Zone Scheduling:
- Manual: All jobs land on the 1st weekday of the month. Best for companies who prefer full control over their schedule.
- Smart Spread: Jobs are spread across the month based on each contract's anniversary date (the day-of-month from the contract start date). If a customer signed on the 14th, their job targets the 14th of each service month. If that day is full or a weekend, the system walks outward one day at a time until it finds an available weekday. The Max Jobs Per Day setting caps how many jobs can land on any single day.
💡 Tip: Smart Spread is the recommended mode for companies with 20+ recurring contracts. It prevents the dispatcher from facing a wall of 50 unscheduled jobs on the 1st and distributes the workload naturally across the month. Daily capacity = Max Jobs Per Day × zone technicians working that day-of-week (e.g. 3 techs × 6 = 18 jobs/day). The scheduler fills each technician to their daily max before advancing to the next date, compressing all jobs into the fewest days possible. [New in v36]
Configuration
- Navigate to Settings › Scheduling and scroll to the Zone Scheduling section.
- Toggle Enable Zone Scheduling on.
- Select your Scheduling Mode — Manual or Smart Spread.
- Set Max Jobs Per Day (Smart Spread only) — the maximum jobs that can be placed on any single working day. Default is 6.
- Configure which Service Frequencies are eligible. Supported: Monthly, Every 2 Months, Every 4 Months, Quarterly, Tri-Annual, Semi-Annual, Annual, Every 2 Years. As Needed and Custom are not supported.
- Add and configure Zones — assign a name, color, and which months each zone is serviced.
- On each Technician record, toggle which zones they cover (Settings › Technicians › Edit). Assigned zones appear as colored badges on the tech card.
- On each property record, set the Service Zone / Route field to the matching zone name.
Job Scheduling Email Notifications
SepticCycle sends automated emails to customers at four key points in every job's lifecycle:
- New job scheduled: Sent immediately when a job is created (manually or by the auto-scheduler). Includes scheduled date, time, service type, assigned technician name, and property address.
- Job rescheduled: Sent automatically when a job's date or time changes. Shows the original scheduled time and the new scheduled time so the customer knows exactly what changed.
- 7-day advance reminder: Sent one week before the scheduled service date. Includes technician name, date, time, property address, and any pre-service instructions.
- 1-day advance reminder: Sent the day before service as a final confirmation. Includes all job details and company contact information for any last-minute questions.
All scheduling emails are logged in the Email Log (Settings › Notifications) with full delivery status and timestamps. Reminders stop automatically if the job is cancelled before the reminder date.
📌 Note: Job scheduling emails require the customer record to have a valid email address. No email on file means the job is still created and scheduled — only the notification is skipped.
Advance Notice Flag [New in v37]
Some customers require a phone call before the technician arrives. The Requires Advance Notice flag marks these customers so the office and tech never forget to call ahead.
Setting the Flag
- 1Open the customer profile and click Edit.
- 2Scroll to Scheduling Preferences (amber background).
- 3Check 🚩📞 Requires Advance Notice.
- 4Optionally enter instructions (e.g. "Call 30 min before; gate code 1234").
- 5Click Save Changes.
Where the Flag Appears
- Customer Info tab: Amber banner at the top of the Contact Information card.
- Job detail page (admin): 🚩📞 next to customer name plus an amber instructions banner.
- Calendar month view: 🚩 prepended to the customer name on the job block.
- Tech My Jobs & Schedule tab: 🚩📞 shown inline after the customer name on each job card.
- Tech Job Detail: 🚩📞 in the colored header. An amber "Call Customer Before Arriving" banner with a Call Now button appears in the content area.
📌 Note: The flag is informational only — it does not block scheduling or change job statuses.
No Access [New in v37]
When a technician arrives at a property but cannot access it (locked gate, no one home), they mark the job No Access from the job detail page.
Marking No Access
Click the red 🔒 No Access button in the action bar (visible when status is Scheduled, Dispatched, or In Progress). After confirming, the system automatically:
- Updates job status to No Access with timestamp and reporting user.
- Writes a system note: "🔒 No Access reported by [Name] on [Date]."
- Sends an email alert to the company notification address with job details.
- Sends an SMS alert to the company phone (if SMS enabled).
- Sends an SMS to the customer (if SMS consent is on file) stating the tech could not access the property and you will be in touch.
After No Access
The job returns to Scheduled so it can be rescheduled. The note and timestamps are preserved as a permanent record of the access attempt.
📌 Note: The No Access button is also available on the mobile technician view (/tech/[id]) — techs can mark No Access directly from their phone without needing to call the office. [New in v38]
Job Files [New in v38]
Job Files lets admin and office users attach reference documents directly to a job — installation drawings, permits, site plans, manufacturer specs, or any file a technician may need on-site. Files are stored securely and accessible from both the admin job detail page and the technician mobile view.
Uploading Files
- Open any job at Dashboard › Jobs › [Job].
- Scroll to the Job Files card in the left column (between Notes and Checklists).
- Click the dashed upload area and select a file.
- Supported types: PDF, JPG, PNG, WEBP, DOCX. Maximum size: 25 MB per file.
- The file appears immediately in the list with name, size, and upload date.
Technician Access
On the mobile tech view, a collapsible Job Files section appears between Property Photos and Customer Notes. Techs can see the file count badge, expand the section, and tap Open to view any file in a new browser tab. Techs cannot upload or delete files — that is restricted to admin and office users.
Managing Files
- Open: Opens the file in a new browser tab (PDFs and images preview natively).
- Delete: Permanently removes the file. Requires confirmation. Cannot be undone.
Issue Tracking
Issues track problems discovered during service visits that need follow-up attention. They bridge the gap between a technician finding a problem in the field and your office scheduling the repair job.
Issue Fields
- Title and Description of the problem.
- Category: Structural, Mechanical, Hydraulic, Environmental, Safety, Compliance, or Other.
- Severity: Critical, High, Moderate, or Low.
- Estimated repair cost and quoted price.
- Linked tank, customer, property, and originating job.
- Photos: Attach photos to document the issue.
Issue Lifecycle
Issues can also be set to Deferred if the customer acknowledges the issue but declines repair at this time. Open issues appear on the customer's Issues tab, in the Info tab summary (Open Issues count), and in the Issues dashboard for all-customer visibility.
Creating a Follow-Up Job
From any open issue, click Create Follow-Up Job. A new job record is created pre-linked to the issue, customer, and property. The issue status updates to Approved once a follow-up is scheduled. When the follow-up job is completed, the issue status advances to Resolved.
Issues List
The Issues page shows all issues across all customers with filtering by status (Open, Quoted, Approved, Resolved, Deferred) and severity (Critical, High, Moderate, Low). Each row displays a color-coded severity indicator, title, category, customer name, property, and any linked follow-up job.
County Compliance Reporting
SepticCycle includes a comprehensive compliance reporting system to meet county submission requirements. Track which contracts need reports, generate professional PDFs, and monitor submission status — all from one dashboard.
Compliance Dashboard
⚠️ Prerequisites: Counties must be defined in Contracts › County Requirements before any compliance data appears here. Contracts must also have a county assigned and must have had at least one completed job recorded against them.
- Quick Stats: Active contracts requiring submission, pending reports, overdue count, and counties served.
- Overview Tab: County-by-county summary with pending submissions and upcoming deadlines sorted by urgency.
- Reports Tab: All generated reports filterable by status and county.
- Pending Tab: Contracts with unreported services needing attention.
Generating a Compliance Report
A three-step wizard guides you through report creation:
- 1Select Contract: Choose the report type and contract. County-specific requirements are displayed if configured.
- 2Choose Services: Set the reporting period and select which completed service records to include. Toggle whether to include technician notes.
- 3Review and Generate: See the summary of total services and gallons. Add additional notes. Click Generate Report.
Batch Report Generation
Batch generation lets you produce compliance reports for every contract in a county in one operation. Each contract row shows the customer name, contract number, property address, and a count of pending services not yet included in a report.
- 1Select a county from the left panel. All active contracts requiring county submission are listed.
- 2Set the Report Period — choose a calendar month using the month picker, or enter a custom start and end date.
- 3Select a Report Type (Maintenance Report or Service Summary) and toggle Include Technician Notes.
- 4Click Select All or individually check the contracts to include.
- 5Click Generate Reports. A progress bar tracks each report as it is created.
- 6Review the results screen — successful reports show the report number with a link; contracts with no services in the selected period are flagged.
- 7Download individual PDFs from the Compliance dashboard, or download a ZIP file containing one PDF per contract for bulk county submission.
Report Detail, PDF & Submission Tracking
- Download PDF: Professional PDF formatted for county submission. Includes your company header, service records table, summary statistics, and certification statement with signature lines.
- Mark as Submitted: Record the submission method (email, portal, mail, fax, in-person), reference number, and notes.
- Record Response: Track the county's response: Accepted, Rejected, or Pending, with response date and notes.
Report Status Workflow
Rejected reports can have a reason recorded and can be corrected and resubmitted.
Report Settings
Report Settings lets you configure exactly which data fields each county receives in compliance reports, with full control at the global and county level.
- Global Defaults: Settings that apply to all counties unless overridden. Configure these first to establish a baseline for your entire operation.
- County Overrides: Select any county from the left panel to configure county-specific settings. An amber banner indicates the county is inheriting from Global Defaults. Making any change creates a blue-badged override. Use Reset to global default to remove the override.
- Report Type Tabs: Each panel has five tabs (Maintenance Report, Inspection Report, Service Summary, Contract Registration, Installation Report). A blue dot indicates a county-specific override exists for that report type.
- Output Format: Choose PDF, CSV, or both. When both are configured, the admin selects the format at generation time.
- Included Fields: Check which data fields to include in CSV exports. Available fields vary by report type. Service reports include service data (customer name, address, tank type, dates, permit, technician, notes, BOD, TSS). Inspection reports add system details. Contract and Installation reports add contract and permit details.
- Other Fields: Add custom columns this county requires. Each custom field has a Field Name (CSV column header) and a Value. Static values appear as fixed text in every row. Dynamic values are pulled from the record at generation time (tank latitude, longitude, serial number, install date, property county/zip, company license, report date, period dates). Custom fields from Global Defaults appear with a gray global badge in county views and cannot be removed at the county level. A county can override a global custom field by adding a field with the same name.
Checklists & Inspection Templates
Checklists provide structured digital inspection forms for technicians. They replace paper forms and ensure inspection data is captured as structured, queryable records rather than unstructured notes. Jobs can have multiple checklists attached, each independently tracking completion and parts used.
Pre-Built Templates
SepticCycle includes 13 ready-to-use templates covering all standard septic service types:
- Aerobic System Inspection (detailed component testing, spray field, photo documentation)
- Aerobic System Maintenance (routine ATU servicing)
- Camera Inspection (pipe assessment, blockage, root intrusion)
- Drain Field Inspection (site conditions, distribution box, field assessment)
- Emergency Service (arrival assessment, diagnosis, resolution)
- Grease Trap Service (commercial trap cleaning)
- Land Application (compliance-grade field data with GPS, setback distances, and certification)
- Minor Repairs (issue assessment, repair work, follow-up)
- Pump Repair (pump diagnosis, replacement, float/wiring checks)
- Real Estate Inspection (property transfer with pass/fail result)
- Riser Installation (pre-install measurements, installation steps, completion)
- Septic Tank Pumping (safety, pre/post inspection, pumping service)
- System Inspection (full system evaluation with drain field and D-box)
Loading Default Templates
New companies can load all 13 default templates with one click. Click the 📋 Load Defaults button on the Checklist Templates page. A confirmation dialog appears explaining that 13 templates will be added. Templates already in your account (matched by name) are automatically skipped — no duplicates will be created. You can edit or delete any template afterward to customize it for your company.
Creating a Custom Template
- 1Click + New Template.
- 2Enter a Template Name and select the associated Service Type.
- 3Click + Add Section to create logical groupings (e.g., "System Information," "Component Inspection," "Findings").
- 4Within each section, click + Add Field. For each field, set: Label, Field Type (Text, Textarea, Number, Checkbox, Dropdown, Date, Time, or GPS), options for dropdowns, and whether the field is Required.
- 5Drag and drop sections and fields to reorder.
- 6Click Save Template.
Importing a Checklist from a Document
Upload an existing paper form or Word document. The system analyzes the document structure and creates a structured checklist template matching the form's layout. Review the generated template and adjust as needed before saving.
Multiple Checklists Per Job
Jobs can have more than one checklist attached. This is useful when a single visit involves multiple service types — for example, a septic pumping plus a system inspection on the same trip. Each checklist independently tracks its own completion status (Pending, In Progress, Completed) and a job is not considered fully done until all attached checklists are completed.
Adding Checklists to a Job
On the job detail page (when the job is In Progress), click the + Add Checklist button. A panel opens listing all available templates with their pricing mode (Fixed or Time & Materials). Click a template to attach it. The checklist appears as a collapsible card with a status badge. Click the card header to expand or collapse it.
Checklist Actions
- Save Checklist: Saves the current field data. The status changes to In Progress and a progress bar shows completion percentage.
- ✓ Mark Complete: Marks the checklist as done. Fields become read-only.
- Reopen: Returns a completed checklist to In Progress for edits.
- Remove Checklist: Deletes the checklist and all associated parts data from the job.
Parts & Materials Tracking
Each checklist includes a Parts & Materials Used section at the bottom. This tracks every product or service item consumed during the job.
Default Parts Auto-Loading
When you add a checklist to a job, any items tagged as Default for that job's service type (configured in Settings › Items › Service Type Associations) are automatically added to the Parts section with their default quantities and catalog prices. This saves techs from manually searching for common items every time.
Adding Parts Manually
- From Catalog: Click + Add Part, type to search your items catalog, and click the item to add it with its catalog price.
- Custom / Freeform: Below the catalog search, enter a description, quantity, and unit price for any item not in the catalog.
Each part shows its description, unit price, editable quantity, and calculated line total. The Parts Total is displayed at the bottom. For Time & Materials jobs, this total feeds into the final job cost calculation.
Waste Manifests & Trip Tickets
Waste manifests are legally required documents that track the chain of custody for septic waste from pickup to disposal. SepticCycle handles the full lifecycle: collection, transport, and disposal with volume reconciliation.
Creating a Manifest
⚠️ Prerequisites: Manifests require: at least one Truck (Jobs › Trucks) and at least one Disposal Site (Disposal Sites in the sidebar). Both fields are required on every manifest — leaving either empty will block submission.
- Source: Select the customer and property where waste was collected. Choose waste type.
- Pickup Details: Pickup date, time, total gallons pumped, and technician.
- Equipment: Select the truck/vehicle ID used for transport.
- Disposal: Receiving facility name, address, and authorization number.
- Signatures: Capture signatures from the customer (at pickup), technician, and receiving facility (at disposal). Signatures can be drawn on screen or typed.
Statuses & Volume Reconciliation
SepticCycle automatically compares gallons pumped (from pickup) versus gallons received (at disposal). If the difference exceeds 10 gallons, a red Volume Discrepancy alert appears on the manifest. Click the alert to review both figures and add an explanation note.
Technicians & Equipment
Technician Management
Each technician is a user account with Technician role access. Their profile stores:
- Name, email, phone, and employee ID.
- Hire date and status: Active, Inactive, On Leave, or Terminated.
- Certifications and licenses with expiration dates.
- Skills and specializations.
- Default working hours and days.
- Hourly Rate Matrix [New in v35]: Five rate fields per technician — Customer (standard contracted rate), Non-Customer (prospect or one-off calls), Commercial (commercial accounts), Weekend (Saturday/Sunday), and Holiday (company or federal holidays). All five are configured in the technician edit modal. Leave any field blank if that rate type is not used.
- Calendar Color: The color used to identify their jobs on the calendar. Each technician gets a unique color automatically. Change it by clicking Edit on their card.
- Assigned Zones [New in v34]: One or more service zones this technician covers. When zone scheduling runs, jobs in a zone are automatically assigned to the least-loaded technician assigned to that zone on the target date. Toggle zone buttons in the edit form to assign or remove. Assigned zones appear as colored badges on the tech card. A technician can cover multiple zones.
- Working Days [New in v35]: Sun–Sat toggle buttons control which days a technician is available to be scheduled. Mon–Fri are selected by default. Smart Spread only places jobs on days when at least one zone tech is available — if all zone techs are off a given day, that day is skipped entirely for the zone. Configured per-technician in the edit modal.
First-Login Password Change [New in v23]
When a new technician account is created by an admin, the system sets a must_change_password flag on their profile. The first time the technician logs in to the mobile app, they are automatically redirected to a password change screen before they can access any jobs. This ensures every technician has a personal, secure password rather than a shared temporary one. Once changed, the flag is cleared and future logins go directly to the My Jobs screen.
Time Off (PTO) Management
- 1Click Time Off on their card in the Technicians list.
- 2Select Start Date and End Date.
- 3Choose a Reason: Vacation, Medical, Sick, or Personal.
- 4Click Next to see any jobs that overlap the time-off period.
- 5Choose how to handle affected jobs: Reassign to another technician, or Push to the next available day.
- 6Click Confirm.
Approved time off appears on the Job Calendar as striped OOTO blocks labeled with the reason (e.g., "OOTO-Vacation").
Trucks & Vehicle Management
- Vehicle name/number, make, model, year, VIN, and license plate.
- Tank capacity in gallons.
- Insurance and registration expiration dates.
- Status: Active, Maintenance, or Out of Service.
Trucks are linked to manifests to track which vehicle transported each waste load.
Disposal Sites
- Facility name, address, contact information, and operating hours.
- Accepted waste types.
- Fee Schedule: per-gallon rate, minimum fee, and/or flat rate.
- Authorization number and expiration date.
- Permit Number and permit expiry date.
Company Settings
Settings is the centralized configuration hub for your entire SepticCycle account. Changes here set the defaults for all new records across the system.
Billing & Payments Tab [Updated in v25]
Credit Card Processing Fee
- Percentage Fee (%): Enter your fee percentage (e.g., 3.000%). This covers Stripe's 2.9% processing rate. The total customer surcharge is calculated as: (invoice × percentage) + flat fee.
- Flat Fee ($): A per-transaction flat surcharge (default $0.32). This covers Stripe's $0.30 per-transaction fee plus a $0.02 platform fee. Combined with the percentage fee, this ensures your company receives the full invoice amount after all processing costs.
- Fee Label: The text shown to customers on invoices (e.g., "Credit Card Convenience Fee").
- Pass to Customer: Toggle on to automatically add the fee as a surcharge when customers pay by card. Toggle off to absorb the processing cost yourself. The Settings page shows a live example calculation so you can see exactly what customers will be charged at any invoice amount.
Other Billing Settings
- Default Payment Terms: Net 30, Net 15, Due on Receipt, etc.
- Accepted Payment Methods: Check, Cash, Credit Card, ACH, Venmo, Zelle. Controls which methods appear on invoices and which payment options customers see on the remote signing page. Enable only the methods your company actually accepts.
- Late Fees: Configure a percentage, flat fee, or both for past-due invoices.
Invoices Tab
Invoice Header
The Invoice Header section controls what appears at the top of every PDF invoice. State regulations require your license number, phone, and address on all invoices. Configure these in Settings › Invoices › Invoice Header.
- Business Phone: Your company phone as it appears on invoices.
- OSSF License Number: Your state-issued license number, required on all invoices.
- Street Address, City, State, ZIP: Your company address shown on the invoice header.
Numbering & Defaults
- Invoice Prefix and Next Number: Customize numbering format (e.g., INV-1001). Auto-increments.
- Default Due Days: Days from invoice date until due date.
- Default Notes: Standard note on every new invoice (editable per invoice).
- Invoice Footer: Text at the bottom of printed invoices.
- Payment Instructions: Instructions for how to pay.
Contracts Tab
- Contract Prefix and Next Number: Customize numbering (e.g., CON-1001).
- Default Duration, Cancellation Notice, Auto-Renew Default, Renewal Reminder.
- Representative Name and Email: Pre-fills the in-person signature modal for every contract signing.
Scheduling Tab
- Business Hours: Start and end time for the workday.
- Working Days: Toggle each day of the week on or off.
- Default Service Duration.
- Buffer Between Jobs: Minimum travel/transition time between consecutive jobs.
- Company Timezone: Ensures all timestamps and notifications use the correct local time.
Zone Scheduling Settings [Updated in v34]
The Zone Scheduling section controls how the monthly zone-based job auto-creation cron operates. See Section 7.8 for a full explanation of how zone scheduling works.
- Enable Zone Scheduling: Master toggle. When off, the cron runs but creates no jobs.
- Scheduling Mode: Manual — all jobs land on the 1st weekday of the month. Smart Spread — jobs are distributed across the month based on each contract's anniversary date.
- Max Jobs Per Day: Used by Smart Spread. Sets the cap on jobs that can be placed on any single working day. Default: 6.
- Apply to Frequencies: Which contract service frequencies trigger zone job creation. Supported: Monthly, Every 2 Months, Every 4 Months, Quarterly, Tri-Annual, Semi-Annual, Annual, Every 2 Years. As Needed and Custom are excluded (no fixed interval).
- Zones: Define your geographic zones. Each zone has a name, a color (shown on the calendar), and a set of months when it is serviced. A live tech count badge shows how many active technicians are assigned to each zone — green if covered, amber if none assigned.
- Tech assignment warnings [New in v34]: When Smart Spread is active and any zone has no assigned technicians, an amber warning banner lists the affected zones with a direct link to the Technicians page.
- Month conflict warnings: If the same calendar month is assigned to more than one zone, a conflict warning appears showing which month and which zones overlap.
Holidays (Federal & Custom) [New in v37]
The Holidays section at the bottom of the Scheduling tab controls which days appear as holiday markers on the job calendar.
Federal Holidays (Auto-Applied)
All 11 US federal holidays are computed automatically for the current and following year — no setup required. They appear as a read-only reference list. Badges display on the actual calendar date (e.g. July 4 always shows on the 4th regardless of which day of the week it falls on). Federal holidays are informational only and do not block scheduling.
Custom Company Holidays
- 1Select a date and enter a name (e.g. "Day after Thanksgiving").
- 2Click + Add Holiday or press Enter.
- 3Click Save Settings to persist.
To remove a custom holiday, click Remove next to it and save. Custom holiday badges appear on the calendar in the same red style as federal holidays.
Notifications Tab
- Appointment Reminders: Toggle on/off and set how many days in advance reminders are sent.
- Invoice Reminders: Toggle on/off and select which overdue intervals trigger reminder emails (7, 14, 30 days).
- Renewal Reminders: Toggle contract expiration notifications and set the lead time.
Route Optimization Tab
- Home Base Address: Your office or yard address — the starting point for all route calculations. Click Save & Locate to save and geocode.
- Geocode All Properties: One-click batch conversion of all property addresses to GPS coordinates.
- Geocoding Status: Shows the count of properties that are geocoded, pending, or failed.
Service Types & Pricing Mode [Updated in v39]
Service Types define the kinds of work your company performs. They appear in dropdowns when creating jobs, invoices, and checklists. Each service type has a name, description, base price, estimated duration, and a color for calendar display.
Pricing Mode
Each service type has a Pricing Mode toggle with two options:
- 💲 Flat Rate: A fixed price per job. The base price auto-fills into the Quoted Price field when creating a new job. The price is shown in the service type list and in the job creation dropdown.
- 🔧 Time & Materials (T&M): Final price is calculated from labor hours plus parts used. The job creation form shows "Estimated Price (optional)" with a note that the final price will be calculated from labor and parts. The service type list shows "Varies" instead of a dollar amount.
To change a service type's pricing mode, click the edit icon next to the service type, select the desired mode, and save.
Annual Maintenance Service Flag [New in v39]
Each service type has an Annual Maintenance Service checkbox. When enabled, jobs of that type use a no-invoice completion flow: the payment section is hidden, a blue “No charge for this visit” banner appears, and the submit button reads “Send Service Record.” If the tech adds parts with a price during the job, the standard payment flow is shown instead with an amber notice. Service types with this flag show a blue “🔧 Maintenance” badge in the list.
Items Catalog [Updated in v43]
The Items Catalog is a centralized list of all products and services your company uses on jobs and invoices. Items are categorized as either 📦 Product (physical parts like pipes, fittings, pumps) or 🔧 Service (labor, inspections, contracts). Each item has a name, optional SKU, category, description, and customer-facing sell price.
Pricing Fields
Each item has three pricing fields in addition to the customer-facing Sell Price:
- Wholesale / Cost: Your internal purchase cost. Never shown to customers.
- Markup %: The markup percentage you apply over wholesale cost. When both Wholesale Cost and Markup % are filled, the Sell Price is calculated automatically and a green "Auto-calculated" badge appears next to it.
- Revision Date: The date you last reviewed this item's pricing. Visible in the Rev Date column of the items table (shown on wide screens).
You can override the auto-calculated sell price at any time by typing directly into the Sell Price field — this clears the auto-calculated badge and your value is used as-is. The sell price is the only value shown on invoices and checklists.
Managing Items
- + Add Item: Create items one at a time with name, type, category, SKU, sell price, wholesale cost, markup %, revision date, and description.
- 📄 Import CSV: Bulk import from a CSV file. The importer auto-maps columns (Invoice Item Name, SKU, Item Type, Unit Cost, Unit Price, Description, Tags). Wholesale cost, markup %, and revision date are not set by CSV import — edit items individually after import.
- 📋 Load Defaults: One-click load of 826 default products and services covering common septic industry parts, labor items, and equipment. Items already in your catalog (matched by name) are skipped.
- Search & Filter: Search by name, SKU, or description. Filter by type (Product/Service), category, and active/inactive status.
- Pagination: Items display 10 per page with navigation controls.
- Active/Inactive Toggle: Click the status badge to toggle. Inactive items are hidden from job checklists but preserved for historical records.
Service Type → Item Associations [New in v20]
Below the items catalog table, the Service Type → Item Associations section lets you link items to specific service types. Select a service type from the dropdown, then click + Add Items to search and add items from your catalog.
Default vs. Available
- ✓ Default: Items marked as Default auto-load into the Parts & Materials section whenever a checklist for that service type is added to a job. Techs see these items pre-populated with their default quantity and catalog price.
- Available: Items marked as Available can be added manually by techs but do not pre-load. Toggle between Default and Available by clicking the badge in the Pre-Load column.
You can also set a Default Qty per association — for example, always pre-load 2 chlorine tablets for aerobic service visits.
SMS Notifications
SepticCycle can send automated SMS text messages to customers via Twilio. No Twilio credentials or phone numbers are needed — everything runs through the SepticCycle platform.
Enabling SMS
- 1Navigate to Settings › SMS.
- 2Toggle the SMS Enabled switch to ON.
- 3Save settings.
SMS Templates
Five built-in templates, each fully customizable with a live preview and 160-character counter. Available placeholder variables: {company_name}, {property_address}, {job_date}, {tech_name}, {eta}, {invoice_number}, {amount}, and {payment_link}.
| Template | When It Sends | Purpose |
|---|---|---|
| Appointment Reminder | 24 hours before a scheduled job | Reminds customer of upcoming appointment |
| En Route | When tech marks job as Dispatched | Alerts customer technician is on the way |
| Job Completed | When job is marked Completed | Notifies customer work is done |
| Invoice Reminder | 7 and 14 days past due | Prompts payment on overdue invoices |
| Job Scheduled | When a new job is scheduled | Confirms scheduling with customer |
Customer Consent
SMS messages are only sent to customers who have a phone number on file and have SMS consent enabled. Manage consent per customer from their profile. Customers can also manage their own preferences by replying to any message:
- STOP or OPTOUT: Unsubscribes from SMS notifications.
- START or SUBSCRIBE: Re-subscribes after opting out.
- YES (in reply to an appointment reminder): Automatically confirms the job.
Manual SMS
On any job detail page, use the Send SMS button to send a one-off message to the customer. Select a template or write a custom message. All sent messages are logged and visible in the SMS Log on the customer's profile.
SMS Log
Every SMS message is recorded with the message content, delivery status, timestamp, and type. View the log from a customer's profile page. Administrators can also send a test SMS from Settings › SMS to verify the integration is working.
Automated SMS Schedule
The automated SMS cron runs daily at 9:00 AM Central Time. It sends appointment reminder texts for jobs scheduled within the next 24 hours and invoice reminder texts for invoices at the 7 and 14 day overdue marks. Each customer receives at most one reminder per job and one per overdue invoice to prevent duplicate messages.
SMS Sender Number — Port Your Business Number
By default, outbound texts come from a shared number pool managed by SepticCycle. Porting your existing business phone number means every SMS your customers receive will show your familiar number — not an unfamiliar shared number.
💡 Tip: Customers are far more likely to open and respond to texts from a number they already recognize. Porting takes 5–15 business days and does not interrupt your existing phone service during the process.
Before You Start
Contact your current carrier's porting department (not general customer support) and confirm the following details are correct. Any mismatch between what you submit and what your carrier has on file will cause a rejection.
- Account holder name (first and last) exactly as it appears on your carrier account
- Business name (if the service is registered under your company)
- Service address (street, city, state, ZIP — must be a physical address, not a PO Box)
- Account number and PIN / passcode (required for wireless numbers)
How Number Porting Works
- 1Navigate to Settings › Notifications › SMS Sender Number and click Start Number Porting.
- 2Select your number type (Landline, Wireless, or Toll-Free) and account type (Business or Residential).
- 3Enter the phone number to port, your name as it appears on the carrier account, and the service address — each field must match your carrier's records exactly.
- 4For wireless numbers: enter your carrier account number and PIN or last 4 of SSN.
- 5Download, complete, and sign the Letter of Authorization (LOA) — see the Downloads section below. Upload as a PDF (max 4MB).
- 6Upload your most recent billing statement (within 30 days) as a PDF (max 4MB). It must show the account holder name, service address, and phone number being ported.
- 7Review and accept the terms acknowledgment — you must keep your number active with your current carrier until the port completes, and you are responsible for any early termination fees.
- 8Click Submit Port Request. SepticCycle submits the request to Twilio, who coordinates with your carrier. Processing typically takes 5–15 business days.
Once porting is complete, SepticCycle automatically activates your ported number for all outbound SMS. No further configuration is needed.
Port Request Statuses
| Status | What It Means |
|---|---|
| Draft | Request saved but not yet submitted. You can still edit all fields. |
| Submitted | Request sent to Twilio. Waiting for carrier acknowledgment and FOC (Firm Order Commitment) date. |
| Processing | Carrier has accepted the request. Porting is in progress. FOC date shown if available. |
| Completed | Number successfully ported. All outbound SMS now use your ported number. |
| Failed | Carrier rejected the request. Common causes: incorrect account info, unpaid balance, VOIP number. See the failure reason and start a new request after resolving. |
| Cancelled | You cancelled the request before completion. |
📌 Note: ⚠️ VOIP numbers (Google Voice, Vonage, MagicJack, and similar services) cannot be ported. Standard landlines and cell phone numbers from AT&T, Verizon, T-Mobile, Spectrum, and similar carriers can be ported. Toll-free numbers can be ported but require additional verification after the port completes.
Letter of Authorization (LOA) — Downloads & Reference
Twilio requires a signed Letter of Authorization when you submit a port request. You can use either Twilio's official LOA form or the SepticCycle example LOA pre-written for septic service companies.
Downloads
The Twilio Official LOA is the standard form accepted for all port requests. The SepticCycle Example LOA is a pre-filled example for a fictional septic company (ABC Septic Services) showing exactly how to complete each field — use it as a reference when filling out the official form.
What to Enter on the LOA
| Field | What to Enter |
|---|---|
| First Name / Last Name | Your name exactly as it appears on your carrier account — not your preferred name, not a nickname. Check a recent bill. |
| Business Name | Your registered business name if the phone service is under the company (e.g., "ABC Septic Services, LLC"). Leave blank if residential. |
| Service Address | The physical address your carrier has on file. Must match exactly. PO Boxes are not accepted. |
| Phone Number(s) | The number(s) you are porting, with area code. Format: (XXX) XXX-XXXX |
| Service Provider | Your current carrier name (e.g., AT&T, Verizon, T-Mobile, Spectrum) |
| Signature & Date | Sign with wet ink or a digital signature. Print your name. Date it. |
Required Documents Summary
| Document | Format | Notes |
|---|---|---|
| Letter of Authorization (LOA) | PDF, max 4MB | Signed by the authorized account holder. Name and address must match carrier records exactly. |
| Recent Billing Statement | PDF, max 4MB | Within the last 30 days. Must show account holder name, service address, and the phone number being ported. |
📌 Note: ⚠️ The company name and address on the LOA must exactly match what your phone carrier has on file for your account. If they don't match, the carrier will reject the port request. Contact your carrier's porting department (not general customer support) to confirm the exact details before submitting.
Online Payments (Stripe Connect)
SepticCycle uses Stripe Connect so each company connects their own Stripe account. Customer payments go directly to your bank account — SepticCycle never holds your funds or has access to your money.
Connecting Your Stripe Account
- 1Navigate to Settings and click the Payments tab.
- 2Click Connect Stripe Account.
- 3You are redirected to Stripe's secure onboarding flow. Follow the prompts to verify your business identity, enter your bank account details, and agree to Stripe's terms of service.
- 4After completing onboarding, you are returned to SepticCycle. Your account status shows as Active with both Charges and Payouts enabled.
💡 Tip: Stripe requires identity verification for payouts. Have your business EIN and a government-issued ID ready.
Payment Settings
The Payments tab shows:
- Stripe Connection Status (Active/Inactive)
- Charges Enabled (whether you can accept payments)
- Payouts Enabled (whether Stripe can send funds to your bank)
- Stripe Dashboard link — opens your Stripe account to view transactions, manage payouts, and handle disputes.
How Payments Flow
- 1You send an invoice email to the customer (or share the payment link manually).
- 2The customer opens the link and clicks Pay Now.
- 3A secure Stripe-hosted payment form collects their card information.
- 4The payment is routed directly to your connected Stripe account.
- 5SepticCycle automatically records the payment, updates the invoice, and logs the transaction.
- 6Stripe deposits the funds to your bank account, typically within 2 business days. With default fee settings, your company receives the full invoice amount.
Refunds processed through Stripe are automatically reflected in the invoice balance in SepticCycle.
📌 Note: Stripe charges 2.9% + $0.30 per standard US card transaction. With the default card processing fee settings (3% + $0.32 flat), these costs are passed to the customer as a surcharge, ensuring your company receives the full invoice amount. A $0.01 per-transaction platform fee is retained by SepticCycle. You can adjust or disable the surcharge in Settings › Billing & Payments.
Sign & Pay Portal
The Sign & Pay Portal is a public-facing customer self-service feature. Prospective customers can browse your service plans, sign a contract, and pay a deposit or full balance online — without creating an account and without any involvement from your staff.
How It Works
When a prospective customer visits your public booking URL, they are guided through a five-step checkout wizard:
- 1They browse your available service plans displayed as cards with name, description, price, and deposit amount.
- 2Step 1 — Customer Information: Full name, email, phone number, and property address.
- 3Step 2 — Contract Review: They review the plan details, pricing, and deposit amount.
- 4Step 3 — Signature: A digital signature pad. They sign with finger or mouse and agree to terms.
- 5Step 4 — Payment: A secure Stripe payment form collects their card information.
- 6Step 5 — Confirmation: A success screen confirms signup. A confirmation email is sent automatically.
What Gets Created Automatically
- Customer Record: New customer profile. If a customer with the same email exists, that record is updated instead.
- Property Record: A new property using the address they provided.
- Signed Contract: Created from your template with status Signed.
- Invoice: For the deposit amount. Marked as Paid immediately if Stripe payment succeeds.
- Email Notifications: Confirmation email to the customer and new customer notification to your team.
Setting Up Sign & Pay (Step by Step)
Prerequisites
⚠️ Prerequisites: Sign & Pay requires all three of the following before it can be activated: Stripe Connect configured in Settings › Billing & Payments, at least one Contract Template marked as Public Visible in Contracts › Templates, and your Company Name set correctly in Settings. Missing any one of these will prevent the portal from working.
- At least one active contract template exists in Contracts › Templates and is marked Public Visible.
- Stripe Connect is configured and active in Settings › Billing & Payments.
- Company name and address are set in Settings.
- 1Enable the Portal: Go to Settings › Sign & Pay and flip the toggle to Active.
- 2Set Your URL Slug: Enter a unique slug (e.g., abc-septic). Your booking URL will be: septiccycle.com/book/abc-septic. Availability is checked in real time.
- 3Add a Welcome Message (Optional): Appears at the top of your booking page.
- 4Configure Your Public Plans: For each contract template you want to offer: toggle Public Visible ON, set the Deposit Type (Full Payment, Percentage, or Fixed Amount), write a Customer Description, and set a Sort Order.
- 5Save: Click Save Sign & Pay Settings. Your booking page is immediately live.
Sharing Your Booking Link
- Add it to your company website as a "Sign Up" or "Get Started" button.
- Print it on business cards, door hangers, flyers, yard signs, and truck decals.
- Include it in email signatures and marketing emails.
- Post on social media or in neighborhood apps.
- Generate a QR code and print on physical marketing materials.
Troubleshooting Sign & Pay
Customers See "Page Not Available"
- Verify the portal toggle is set to Active in Settings › Sign & Pay.
- Confirm the URL slug saved correctly (green checkmark in the slug field).
- Double-check the URL format: septiccycle.com/book/your-slug with no extra slashes.
- Make sure you clicked Save Sign & Pay Settings after changes.
No Plans Appear on the Booking Page
- Confirm at least one template has Public Visible toggled ON.
- Verify each public template is also marked Active in Contracts › Templates.
- Ensure each public template has a base price greater than zero.
Payment Step Fails
- Verify Stripe Connect shows Active status in Settings › Payments.
- For test environments: use Stripe test card
4242 4242 4242 4242with any future expiration and any CVC. - Check Vercel function logs for the /api/book/checkout endpoint.
Customer Did Not Receive Confirmation Email
- Check the Email Log in your dashboard to verify if the email was sent.
- Ask the customer to check their spam folder.
- Email is sent asynchronously and typically arrives within 1–2 minutes.
Route Optimization
SepticCycle includes built-in route optimization for daily technician scheduling. It converts property addresses to GPS coordinates and uses a nearest-neighbor + 2-opt algorithm to minimize total driving distance.
Initial Setup
⚠️ Prerequisites: Route optimization requires a Home Base address set in Settings › Route Optimization. Without it, the optimizer has no starting point and cannot calculate any routes. Also run Geocode All Properties once before your first optimization — properties without GPS coordinates are excluded from route calculations.
- 1Set your Home Base: Enter your office or yard address and click Save & Locate. This is the starting point for all route calculations.
- 2Click Geocode All to batch-convert all property addresses to GPS coordinates. This is a one-time operation — new properties geocode automatically.
- 3Configure your Google Maps API key in Vercel environment variables as
GOOGLE_DIRECTIONS_API_KEY.
Running Route Optimization
- 1Open the Job Calendar and switch to Day View for the date you want to optimize.
- 2For any technician with two or more jobs that day, a Route Optimizer panel appears.
- 3Click Optimize Route to preview the optimized job order. The panel shows a before-and-after comparison with total distance saved and a visual route map.
- 4Click Apply Route to accept. Jobs are reordered and suggested start times are assigned.
- 5Click Cancel to discard the preview without changes.
How the Algorithm Works
- Phase 1 (Nearest Neighbor): Starting from the company home base, the algorithm visits the closest unvisited job next, building an initial route.
- Phase 2 (2-Opt Improvement): Iteratively swaps pairs of route segments to reduce total distance until no further improvement is possible.
- Distance Calculation: Haversine (straight-line) distances with a 1.3× road-distance multiplier to approximate real driving distance without requiring a routing API call.
- Suggested Times: Arrival times are estimated based on distance between stops plus average stop duration from Settings.
Drag-and-Drop Rescheduling
- Month View: Drag any job to a different day to change the scheduled date. Time conflicts are detected automatically.
- Day View: Drag any job to a different time slot to change the scheduled start time. Changes save instantly.
Reports & Analytics
SepticCycle's built-in Reports & Analytics dashboard tracks business performance across multiple dimensions. All report data respects your selected date range.
Date Range & Filters
All report tabs share a date range picker at the top. Choose from preset ranges: Last 7 Days, Last 30 Days, Last 90 Days, This Year, Last Year — or set a custom start and end date. Changing the date range refreshes all tabs simultaneously.
Exporting Reports
- CSV Export: Downloads a spreadsheet-ready file with the raw data from the active tab. Open in Excel, Google Sheets, or any spreadsheet application.
- PDF Export: Generates a formatted report with your company header, selected date range, summary statistics, and data tables — suitable for printing or sharing with stakeholders.
Land Applications
Land application records track the beneficial reuse of treated septic waste applied to agricultural or approved land sites. This section provides regulatory documentation for the land application process.
Creating a Land Application Record
Click + New Land Application and enter:
- Application Date and Site: The date and location where treated waste was applied.
- Applicator: The technician who performed the application.
- Volume Applied: Total gallons applied.
- Waste Source: Originating property and customer.
- Soil and Crop Information: Details about the land and any crops present.
- Weather Conditions: Temperature, wind, and precipitation at time of application.
- Regulatory Notes: Applicable permit numbers or regulatory references.
Managing Records
All land application records appear in a list sorted by date. Records can be filtered by date range and applicator. Each record can be viewed and edited. PDF exports are available for regulatory submissions and audits.
Mobile App for Technicians
SepticCycle includes a mobile-optimized web app built specifically for field technicians. It runs in your phone's browser and can be installed to your home screen for a native app experience using the Progressive Web App (PWA) standard.
Installing the App
- 1On your smartphone, open Chrome (Android) or Safari (iPhone) and navigate to your SepticCycle URL.
- 2Log in with your normal email and password.
Android (Chrome or Edge)
- An install banner appears at the bottom of the screen. Tap Install, or tap the browser menu (three dots) and select "Add to Home Screen."
- The SepticCycle app icon appears on your home screen.
iPhone (Safari)
- Tap the Share button (the square with an upward arrow at the bottom of the screen).
- Scroll down in the share sheet and tap "Add to Home Screen."
- Give the app a name and tap Add.
Once installed, the app opens full-screen without browser toolbars. If you dismiss the install banner, it reappears after seven days.
My Jobs (Today's View) [Updated in v23]
The main screen shows a greeting with your name and today's date, quick stats (Remaining, Completed, and Total job counts for today), and all jobs assigned to you today sorted by priority: In-Progress first, then Dispatched, then Scheduled. Jobs where you are an additional technician (not just primary) now appear in your daily view as well. Use the left and right arrows to browse other days.
Auto-refresh: The view automatically refreshes its data whenever you switch back to the app from another tab or after backgrounding your phone. This means you always see the latest job status without needing to manually reload.
Each job card shows: route order number, status indicator, service type, customer name, property address, scheduled time, and estimated duration. Emergency jobs are flagged with a red border. Each active card has quick-action buttons to call the customer, open navigation, or send a text message.
Job Detail & Status Progression [Updated in v37]
Tap any job card to open the full job detail screen. The header color changes based on status: blue (scheduled), purple (dispatched), yellow (in-progress), green (completed). A large action button advances status:
- Start Driving: Changes status from Scheduled to Dispatched. Records dispatch time.
- Arrive On Site: Changes from Dispatched to In Progress. Records start time.
- Complete Job: Opens the completion form.
Collapsible Sections
- Property Details: Address, access instructions, gate code, and all tank information (58 fields, read-only).
- Notes: Internal and customer-facing notes attached to the job.
- GPS Check-In: Tap Check In when you arrive. GPS location, timestamp, and distance from property are recorded. Each tech on a multi-tech job checks in independently — your timer runs separately from other assigned techs. A "My Billable Time" section shows your running counter with individual time segments and a cumulative total. Use Pause/Resume to handle breaks. Tap Check Out when you leave.
- Signatures: Capture arrival and completion signatures on the phone screen.
- Service Checklists: Add one or more checklists to the job. Each checklist is a collapsible card with inspection fields and a Parts & Materials section. Default items auto-load based on the service type. Progress bar shows completion. [Updated in v20]
- Photos: Take from camera or upload from gallery. Categorize as Before, During, After, Issue, or Other.
- Customer Notes: View internal office notes and customer-facing notes attached to the job. Add your own field notes directly from this section — they are saved to the customer's profile and visible to office staff and other technicians.
- Service History: Shows the last six completed service visits for this customer. Each visit card displays the service date, type, technician, and tank condition badge. Tap a card to expand it and see gallons pumped, sludge and scum depth readings, work performed, recommendations (highlighted in amber), completed checklist field data, and service photos. Gives you full context on the customer's tank history before starting work.
Advance Notice Banner [New in v37]
If the customer requires advance notice, an amber 🚩📞 Call Customer Before Arriving banner appears below the primary action button. It shows instructions from the office and a direct Call Now button.
No Access Button [New in v37]
A red 🔒 No Access button appears in the action bar when status is Scheduled, Dispatched, or In Progress. Tap it when you cannot access the property. The system updates the status, writes a note, alerts the office, and notifies the customer. The job stays as Scheduled so the office can reschedule.
Completing a Job on Mobile [Updated in v43]
When you tap Confirm & Invoice, the completion screen shows an itemized cost breakdown: Labor (each tech's name, hours, rate, and total), Parts & Materials (from checklists), or a Fixed Rate line. A green Calculated Total bar shows the sum. Below: Final Price (editable), Next Service Date, Additional Notes, and an optional Issue Report toggle.
Payment Method [New in v23]
Three payment buttons appear: 💳 Card, 💵 Cash, and 📝 Check. Select the payment method the customer is using:
- Card: Invoice is emailed with a Pay Now link. Job becomes "invoiced."
- Cash: Invoice is created as "paid" immediately. Job becomes "paid." No follow-up needed.
- Check: Invoice is created with a "check collected on-site" note. Job becomes "invoiced." A Check # input appears when Check is selected — enter the check number if available (optional). A 📷 Take Photo of Check button also appears. Tap it to photograph the check using your device camera. The photo is saved to the job and automatically displayed in a dedicated Check Photo section on both the admin job detail page and the invoice page. Record the payment in the office after depositing.
A blue invoice preview box shows the customer's total including any card processing fee (service amount + fee = total). Checklist data (gallons pumped, sludge depth, etc.) is written to service records automatically. A green confirmation message shows the invoice number and the email address it was sent to.
Schedule Tab [Updated in v23]
Tap the Schedule tab in the bottom navigation to see your jobs for the next seven days grouped by date. Each entry shows scheduled time, status dot, customer name, property address, and a quick link to open the job detail. The schedule includes jobs where you are assigned as an additional technician, not just primary. The tab auto-refreshes when you switch back to it from another app or tab.
Tips for Technicians
- Take before and after photos on every job for documentation and liability protection.
- Use GPS Check-In to prove arrival and departure times for billing and compliance disputes.
- Always enter a final price on the completion form so the invoice generates and emails automatically.
- Select the correct payment method — Cash marks the job as fully paid immediately; Card and Check leave it as invoiced for later collection; Bill Left on Site emails and texts the invoice (same as Card) and a paper bill is left on site.
- If you find a problem during service, toggle the issue report on the completion form — the office will see it on their dashboard.
- Get a customer signature at completion. They can draw on the screen or you can type their name.
- The app requires internet. If you lose signal, complete your work and sync when back in range.
Timecard [New in v39]
Tap the Timecard tab in the bottom navigation to log your daily hours. The timecard supports multiple clock-in and clock-out segments per day, so you can clock out between jobs and clock back in for additional calls or after-hours work without losing your earlier time.
- Clocking In: Tap Clock In. Your GPS location is verified against your company's home base. Within 0.5 miles you clock in normally. Beyond that, a warning shows your distance with a Clock In Anyway option. Out-of-range clock-ins are flagged in amber and visible to your supervisor.
- While Clocked In: A live timer shows total time worked today, including all prior segments from earlier in the day. Mark Lunch Break Taken when you take your 30-minute break. Once marked on any segment it applies to your whole day and locks. An alert appears automatically at 8 hours if lunch has not been marked.
- Clocking Out and Back In: Tap Clock Out to end your current shift. If you are called back later in the day, tap Clock Back In to start a new segment. All segments are summed for your daily total.
- Admin Timecard View: Admins and office staff can access Dashboard › Timecards to see all staff records. The Today view shows live working status for each person. History groups entries by date with individual segments, totals, lunch compliance, and out-of-range flags. Any entry can be corrected directly. The page also includes a My Time Today widget so admins and office staff can clock in for themselves without leaving the dashboard.
Team Management
Manage all user accounts for your SepticCycle workspace from one place.
User Roles
- Admin: Full access to everything — customers, jobs, invoices, contracts, compliance, settings, billing, team management, and user administration (create, edit, reset passwords, delete users).
- Office: Manage customers, jobs, invoicing, contracts, and compliance. Cannot access Settings, billing, or create/delete users. Can edit users and reset passwords from Settings › Team only.
- Technician: Field-focused view with job details, checklists, photos, GPS check-in/out, and status updates. Cannot edit customer records, tank specs, or financial data. Technicians granted Field Office Access by an admin can switch into Office Mode from their Profile tab (see Field Office Access below).
Inviting Team Members
- 1Go to Settings › Team.
- 2Click Invite Team Member.
- 3Enter the person's email address and select their role.
- 4Click Send Invitation. They receive an email with a link to set their password and access the system.
Managing Existing Users [Updated in v38]
From the Team page, click the ⋯ menu on any user card to access:
- Edit User — change the user's full name, email address, or role. Available to Admin and Office users. Changing email updates both the login credential and the display address. The user must log in with the new email going forward.
- Reset Password — set a new password on behalf of the user. Available to Admin and Office users. Optionally check "Require password change on next login" to force them to set their own.
- Manage Licenses & Certs — link to the Technicians page for license management (only appears for technician-role users with a linked technician record).
- Delete User — permanently removes the login account. Admin only. The user's historical job and service records are preserved.
📌 Note: Office users can see the ⋯ menu and use Edit User and Reset Password. They cannot see the Delete User option or the New User button — those are Admin-only actions.
Field Office Access [Updated in v40]
Field Office Access lets specific technicians browse and edit customer records from the mobile app without a full office role. It is designed for senior techs or working foremen who need to look up customer history, update contact details, or verify site information while in the field.
- Granting Access (Admin Only): Go to Settings › Team, open the Edit modal for a technician, and scroll to the Field Office Access toggle. Enable it and save. The toggle only appears for Technician-role users and is cleared automatically if the role changes.
- Enabling Office Mode (Tech): Once access is granted, an Office Access toggle appears on the tech's Profile tab. Tap it to enable Office Mode. The app header turns blue, an Office Mode Active bar appears above the bottom navigation, and a Customers tab is added to the nav. Office Mode resets every time the app is closed, so the tech always starts fresh in standard Tech Mode.
- What the Tech Can Do (Mobile): Search and browse all company customers. Tap a customer to view their info card, job history grouped by property and tank, full checklist field answers, notes (internal and customer-facing), and job photos. Edit the customer's name, phone, email, status, billing address, and advance notice settings.
- Desktop Dashboard Access: On the Profile tab, tap Desktop Dashboard to switch to the full desktop view for the current browser session. The sidebar shows Dashboard, Customers, and Jobs only. All other sections are hidden. Within Customers, the Contracts and Invoices tabs are visible read-only with no create, edit, or delete actions. Tap ← Tech App in the sidebar or toggle Office Mode off to return to /tech.
- Security: Desktop access requires both the session cookie and the DB-level secondary_role = office flag. A tech without the flag cannot reach the desktop dashboard even with a stale cookie. Revoking Field Office Access in Settings takes effect on the next page load.
- Audit Trail: All customer edits made in Office Mode automatically generate an internal system note on the customer record showing the date, the tech's name, and exactly which fields were changed and what the old and new values were.
Alerts & Notifications
Overview
SepticCycle generates alerts and notifications in two forms: in-app dashboard alerts that surface actionable items when you log in, and outbound notifications sent automatically to customers or your own team by email and SMS. This section is a complete inventory of everything the system currently generates and what triggers each one.
📌 Note: Most outbound notifications can be toggled on or off — or have their timing adjusted — in Settings › Notifications. SMS requires the SMS toggle to be enabled and each customer to have SMS consent recorded on their profile.
Dashboard Alerts (In-App)
These widgets appear on the main dashboard and surface items that need your attention. They are passive — you see them when you log in, but the system does not send you an email or SMS when a threshold is crossed.
Services Due Widget
Lists every property whose Next Service Due date (calculated as Last Service Date + Service Interval set on the tank) is today or earlier, plus properties coming due within the next 30 days. The Quick Stats bar at the top of the dashboard shows a live count. Each row has an Add to Calendar button to schedule the job without leaving the widget. This is the primary mechanism for catching tanks that haven't been pumped in a long time — e.g. a customer whose 3-year service interval has elapsed.
Upcoming Renewals Widget
Shows contracts expiring soon. Toggle between 30-, 60-, and 90-day windows. The Quick Stats bar shows a Renewals Soon count for anything within 90 days. Click any contract row to open it and start the renewal process. The full Renewals Dashboard (Sidebar › Contracts › Renewals) breaks them into urgency buckets: Overdue (red), Next 7 Days (orange), and Next 30 Days (yellow), along with a Revenue at Risk total.
County Deadlines Widget
Displays pending county compliance submissions that have an upcoming or past deadline. Each row shows the county name, the linked contract, and the number of days until (or since) the deadline. The Compliance Dashboard (Sidebar › Compliance) gives a fuller view with an overdue count, a county-by-county summary sorted by urgency, and a Pending tab listing all contracts with unreported services that need attention.
Issues Dashboard
All open issues across all customers appear in the Issues list (Sidebar › Issues), color-coded by severity: Critical, High, Moderate, and Low. Open issues also surface on the individual customer's Issues tab and in the Open Issues count on their Info tab summary panel. Issues remain visible until they are resolved or deferred.
Manifest Volume Discrepancy
When a manifest is completed, SepticCycle automatically compares gallons pumped at pickup versus gallons received at the disposal facility. If the difference exceeds 10 gallons, a red Volume Discrepancy alert appears directly on the manifest record. Click the alert to review both figures and add an explanation note.
Automated Emails to Customers
The following emails are sent automatically to the customer's email address on file. All are logged in the Email Log (Settings › Notifications) with delivery status and timestamps.
| Trigger | What Sends |
|---|---|
| Job created (manual or via auto-scheduler) | New job scheduled email with date, time, service type, assigned technician, and property address. |
| Job date or time changes | Rescheduled email showing the original scheduled time and the new time. |
| 7 days before scheduled job | 7-day advance reminder with full job details and any pre-service instructions. |
| 1 day before scheduled job | Final confirmation reminder with job details and company contact information. |
| Invoice overdue 7 days | First overdue reminder with outstanding balance and a direct Pay Now link. |
| Invoice overdue 14 days | Second overdue reminder. |
| Invoice overdue 30 days | Third and final overdue reminder. Stops automatically once the invoice is paid or voided. |
| Contract nearing expiration | Renewal reminder email. Lead time is configurable in Settings › Notifications › Renewal Reminders. |
💡 Tip: Configure which overdue intervals fire (7, 14, 30 days) and toggle reminders on or off individually in Settings › Notifications › Invoice Reminders.
Automated SMS to Customers
SMS notifications require the SMS toggle to be enabled in Settings › SMS and each customer to have SMS Consent recorded on their profile. All five templates are fully customizable with a live preview. Available placeholders: {company_name}, {property_address}, {job_date}, {tech_name}, {invoice_number}, {amount}, {payment_link}.
| Template | When It Sends | Purpose |
|---|---|---|
| Job Scheduled | When a new job is created | Confirms scheduling with the customer |
| Appointment Reminder | 24 hours before the scheduled job | Reminds customer of their upcoming appointment |
| En Route | When tech marks job as Dispatched | Alerts customer that the technician is on the way |
| Job Completed | When job is marked Completed | Notifies customer that work is done |
| Invoice Reminder | 7 days overdue, then again at 14 days overdue | Prompts payment on overdue invoices |
📌 Note: Customers can reply STOP to unsubscribe or START to re-subscribe at any time. A customer who replies YES to an appointment reminder SMS will have their job automatically confirmed in SepticCycle.
Company / Owner Notifications
These notifications are sent to your company's admin users and company email address — not to the customer.
- Contract Paid & Signed (green email): Sent when a customer completes the signing flow and pays by credit card. Confirms both payment and signature were received.
- Contract Signed — Payment Pending (blue email): Sent when a customer signs but selects an offline payment method (check, cash, ACH). Clearly shows the selected method (e.g. "Check — Pending Collection") so you know to confirm receipt before countersigning.
- Failed auto-charge notification: If an auto-invoice charge fails after all retry attempts, you receive a notification to follow up manually and the contract is flagged for review.
What Is Not Yet Automated
The following situations currently surface only as passive dashboard widgets — no outbound notification is sent to your team when the threshold is crossed:
- Tank service overdue: A tank crossing its Next Service Due date appears on the dashboard Services Due widget, but no email or SMS is sent to your office. A proactive "overdue service" digest email to the company is a planned future feature.
- County compliance deadline approaching: The County Deadlines dashboard widget shows upcoming deadlines, but the system does not currently send your office an email reminder when a submission deadline is near.
- Issue severity escalation: Open issues are visible in the Issues dashboard, but the system does not send a notification if a Critical issue has been open for an extended period without a follow-up job.
💡 Tip: If any of the above would improve your workflow, use the thumbs-down on any response to send feedback to the SepticCycle team — these are actively considered for upcoming releases.
Quick Reference
Status Codes Summary
Invoice Statuses
Job Statuses [Updated in v23]
Additional: On Hold, Cancelled, Draft, No Access 🔒
Contract Statuses
Compliance Report Statuses
Issue Statuses
Manifest Statuses
Automated System Schedules
- 6:00 AM UTC daily: Auto-invoice generation — checks all active contracts and creates invoices for contracts whose Next Billing Date is today or earlier.
- 8:00 AM UTC daily: Overdue invoice reminders — sends email reminders for invoices at the 7, 14, and 30 day overdue marks.
- 7:00 AM UTC daily: Appointment reminders — sends upcoming appointment reminder emails.
- 8:30 AM UTC daily: Job scheduling email reminders — 7-day and 1-day advance job reminders.
- 5:00 AM UTC daily: Auto job scheduler — creates upcoming service jobs from all active contracts within the 21-day lookahead window.
- 1st of month, 7 AM UTC: Zone scheduling — creates jobs for all active zone contracts whose service months include the current month.
- 9:00 AM Central daily: Automated SMS reminders for upcoming jobs (within 24 hrs) and overdue invoices (7 and 14 day marks).
Need Help?
Can't find what you're looking for? Download our guides or reach out to our team.