PPTGDashboard manual (Manual)Back to the dashboard

PPTG Dashboard — how it works

The office tool of Porta Potty To Go (PPTG): orders, invoices, collections, recurring billing, customers, routes and reports for two markets. GoHighLevel (GHL) is the accounting book (contacts, invoices, payments); Stripe holds the saved cards; the dashboard is the collector (cobrador) and the screen people work in.

Download for an AI operator (JSON)Markdown

Start here (Empezar)

Screens (Pantallas)

Home (Inicio)

#/home (Office) · the tile grid (Phone)

The start page: greeting, today's numbers (today's stops, open quotes, invoices due / overdue = open invoices at or past their due date, won this month = paid invoices issued this month), the Ask or dictate box, and the tiles your role may open.

How to get there: Sign in. The PPTG logo or the back arrow on any screen returns here.

What you see:

Buttons:

New Order (Nueva orden)

tile New Order · Office: #/orders · tile text: “Create customer, quote, invoice”

Build an order for a customer and turn it into an invoice (factura) or a quote (cotización): customer, service address, lines from the catalog, delivery date, notes, Job/PO, tax.

How to get there: Tile 'New Order', '+ New' in Office, 'New order' on a customer profile, or a draft's 'Edit draft'.

What you see:

Buttons:

Customers (Clientes)

tile Customers · #/customers/<market>:<contactId> · tile text: “Look up, edit billing, pause”

Find any customer and see everything: contact, sites, invoices, payments, notes (History), recurring billing; edit the contact.

How to get there: Tile 'Customers', or click any customer name anywhere (every name is a link).

What you see:

Buttons:

Collections (Cobranza)

tile Collections · tile text: “Past-due queue + reminders”

The past-due queue for both markets, worst first, with the reminder ladder: the screen suggests the next step, a human clicks.

How to get there: Tile 'Collections' (its badge counts past-due invoices in both markets).

What you see:

Buttons:

Billing (Cobro recurrente)

tile Billing · tile text: “Recurring biller controls”

The recurring-billing engine (billing.php): which sites are enrolled, what the next cycle charges, holds that need approval, the daily run, and the activity timeline.

How to get there: Tile 'Billing'.

What you see:

Buttons:

Invoices (Facturas)

tile Invoices (data-nav payments) · Office: #/invoices · tile text: “Create, edit, void, payment links”

Every invoice in both markets: search, filter, sort, and the invoice menu (details, links, send, preview, record payment, refund, edit, void).

How to get there: Tile 'Invoices'.

What you see:

Buttons:

Quotes & Follow-Up (Cotizaciones)

tile Quotes & Follow-Up · tile text: “Open estimates and reminders”

Open estimates (cotizaciones) per market: edit drafts, send them, and turn an accepted quote into an invoice.

How to get there: Tile 'Quotes & Follow-Up'.

What you see:

Buttons:

Schedule Pickup (Recoger unidades)

tile Schedule Pickup · tile text: “Remove units, stop billing”

Request a pickup for an active rental: the request is written on the customer as a note for dispatch. It does NOT book the calendar, stop billing or remove the route stop — dispatch does those.

How to get there: Tile 'Schedule Pickup'.

What you see:

Buttons:

Routes (Rutas)

tile Routes · tile text: “Today's route, map, address search”

A read-only live view of today's route from HelloTracks (no HelloTracks login needed): stops by date, address search and a map.

How to get there: Tile 'Routes' (the only tile the field role sees).

What you see:

Calendar (Calendario)

tile Calendar · tile text: “Deliveries, pickups & services (Google)”

Deliveries, pickups and services on the Google calendars the routing sync reads.

How to get there: Tile 'Calendar'.

What you see:

Buttons:

Week Organizer (Organizador semanal)

tile Week Organizer · tile text: “Rebalance the weekly board”

A read-only weekly view from HelloTracks: seven day columns with the stop count and up to 25 delivery / pickup / service chips per day.

How to get there: Tile 'Week Organizer'.

What you see:

Price Lookup (Precios)

tile Price Lookup · tile text: “Rate card by ZIP and service”

The rate card by ZIP and service (the same catalog New Order uses).

How to get there: Tile 'Price Lookup'.

What you see:

Reports (Reportes)

tile Reports · tile text: “Revenue, stops, driver time”

Revenue by month: totals by market, zone and status, a separate sales-tax-by-county table, CSV exports.

How to get there: Tile 'Reports'.

What you see:

Buttons:

Assistant (Asistente)

tile Assistant · the Ask or dictate box · tile text: “Dictate an order, ask anything”

A read-only beta: ask in words (prices by ZIP, customer lookups, invoice status) or dictate; it answers, it takes no action.

How to get there: Tile 'Assistant' or the Ask or dictate box on Home.

What you see:

Buttons:

Admin

tile Admin (owner) · tile text: “Users, prices, settings”

Prices (catalog) per market, config summary and live health checks (owner).

How to get there: Tile 'Admin' (owner only).

What you see:

Buttons:

Office view (Vista oficina)

?view=office (only while the officeMode flag is on, and for roles with Customers / Invoices / Collections / Billing / New Order) · #/home #/customers #/invoices #/orders #/collections #/billing #/payments

The desktop layout of the same dashboard: left navigation, global search, dense Customers / Invoices tables with a side panel, + New, bookmarkable routes.

How to get there: View = Office in the header (desktop, when the officeMode flag is on), or ?view=office.

What you see:

Buttons:

Pay page (Página de pago)

app/pay.html?t=<token>

OUR customer-facing pay page (Stripe): pays one invoice and saves the card for future services (with consent).

How to get there: The link in the invoice email / text, 'Open payment link', 'Copy link'.

What you see:

Buttons:

How to … (Cómo hacer)

Send an invoice that saves the card

  1. new-order — Find the customer (or create one), set the service address, add the lines (The market badge follows the address.)
  2. new-order — Leave 'Send GHL's link instead' unticked (the default is our pay page)
  3. new-order — Send as INVOICE, then Confirm (The confirm sheet shows lines, tax, total and the channels.)

Outcome: The invoice exists in GHL as sent; the customer gets our pay page link; paying saves the card. Check it in: The result screen (Pay link = our pay page) and Invoices (status sent).

Send our pay page for an invoice that already exists

  1. payments — Find the invoice
  2. payments — Send pay page (saves card), choose email / text, Send (A draft is finalized first; nothing reaches the customer before Send.)

Outcome: The customer gets our pay page link. Check it in: Invoices row (status), the customer's History (note).

Record a cash / check / Zelle payment

  1. payments — Record payment on the invoice (Behind the recordPayments flag.)
  2. payments — Amount, method, date -> Record (click twice)

Outcome: The payment is recorded in GHL (no card charged); the invoice shows paid or the new balance. Check it in: Invoices row ('Paid … of …') and the customer's History.

Refund a card payment

  1. payments — Refund on a paid invoice (owner only) (Behind the refunds flag.)
  2. payments — Full or partial amount, reason -> Refund (A full refund also voids the invoice.)

Outcome: Stripe refunds the card; a note records it. Check it in: The toast, the invoice status, Stripe.

Charge a saved card

  1. payments — 'Charge <amount> to <card>' on an open invoice (Only shown when the contact has a card.)
  2. payments — Confirm (The server charges the exact amount due.)

Outcome: The invoice is paid by the card on file. Check it in: The toast (PI id) and the invoice status.

Edit a draft invoice

  1. payments — Edit draft (Opens in New Order with everything loaded.)
  2. new-order — Change lines / notes / address -> Save changes to draft #N (Updates the same draft; sending it replaces the draft.)

Outcome: The same draft, updated. Check it in: Invoices (draft row).

Bill an order in the other market

  1. new-order — Override next to the market badge, pick the market
  2. new-order — Type the reason (Required; it goes on the invoice.)

Outcome: The invoice is created in the chosen market with 'Market override: … — <reason>' in its terms. Check it in: The invoice terms and the market badge.

Find a customer and its history

  1. customers — Search by name, phone or email (or click the name anywhere)
  2. customers — Read History (invoices, payments, notes, orders, recurring) (Searchable.)

Outcome: Everything about the customer in one place. Check it in: The profile.

Preview before sending

  1. payments — Preview on the invoice (Read only, our templates.)

Outcome: You see the email / text the customer would get. Check it in: The preview dialog.

See what Orlando billed in a month

  1. reports — Pick the month
  2. reports — Read the ORL line in 'By market', or Export CSV (market = ORL)

Outcome: Orlando's billed total for the month (see the Reports known gap for past months). Check it in: Reports.

Work the past-due queue

  1. collections — Start at the top (worst first), read NEXT
  2. collections — Send reminder (the ladder dialog) or Call / Promised to pay (Every action is recorded as a note.)

Outcome: Each past-due invoice has its next step done and recorded. Check it in: Collections (last reminder) and the customer's History.

Change an invoice that was already sent (add a line)

  1. payments — Edit invoice on the sent invoice (Behind the editSentInvoices flag; not for paid invoices.)
  2. new-order — Add / change lines, notes, Job/PO -> Save changes to invoice #N (Nothing reaches the customer yet.)
  3. new-order — Resend updated invoice (One message with a new pay link for the new amount.)

Outcome: The same invoice with the new lines and total; the customer has one link that pays the new amount. Check it in: The invoice's notes ('Updated …') and the customer's History.

Stop a customer's recurring billing (early pickup, cancelled service)

  1. customers — Open the customer → Sites card → Recurring… (Or 'Recurring…' on one of their invoices.)
  2. customers — Cancel schedule on the template → confirm (House rule: the period already started is charged in full — no proration, no refunds.)

Outcome: GHL makes no more invoices from that template; already-made invoices are unchanged (void or refund them separately). Check it in: The dialog re-reads GHL and no longer lists it; a 'RECURRING CANCELLED' note on the customer's History.

Rules the dashboard follows (Reglas)

Feature flags (app/config.js)

Never (Nunca)

Glossary (Glosario)

For an AI operator

Read manual.json (schema 1) or manual.md: the same content, plus the server actions (names and purposes) and the files. Probe with the robot contact only; never send, charge, refund or void without a human click.