← Selected work

Client project · Billing operations

Connecting completed work to billing

A workspace for reviewing eligible charges, preparing supporting records, and tracking the next billing action.

Client project

Workflow design and application development

The problem

Completed work needs a commercial record.

For a lender-reporting business, completed work has to be matched to customer agreements, included allowances, and prior billing. I helped design and build a workspace that brings those inputs together for the operator.

The useful question is what can be billed, to whom, and on what basis. A count of completed reports alone cannot answer that. The application connects usage with the commercial relationship and the history of what has already been allocated.

The mobile workspace.

View full-size screenshot →
Billing workspace showing a queue of fictional customers and the selected customer’s report usage, included allowance, billing contact, and proposed amount.
The implemented interface in Manual mode, shown with fictional demonstration data and adapted branding.

The work

Make the next billing action clear.

Connect accounts to agreements.

Product accounts and billing customers are not always the same. Explicit mappings connect them, while customer terms and included allowances determine which completed reports are eligible.

Review the amount and its basis together.

The customer view brings usage, allowances, contact details, and the proposed amount into the same review. Preparing a run checks the calculation again and reserves the exact supporting reports.

Keep preparation and follow-up distinct.

The interface gives the operator a clear next action for each run. A prepared file, an email draft, a sent message, and a confirmed payment remain different states with their own records.

What it provides

A working queue and a history of each run.

The workspace provides a billing queue, supporting usage records, and run history. In the current Manual mode, it prepares a CSV and a Gmail draft. The operator handles the invoice, reviews and sends the email, and records sent status and confirmed payment.

Customer terms and mappings remain available in the underlying workbook. The interface handles routine preparation while keeping the records available for inspection.

From completed work to follow-up

The application prepares the supporting work; the operator handles sending and payment confirmation.

  1. 01 · Usage and termsMatch reports to the agreement
  2. 02 · ReviewCheck eligible charges and contact
  3. 03 · Prepare billingCreate the CSV and email draft
  4. 04 · Follow upOperator records sent and paid
Implementation details

Systems and responsibilities

An application over inspectable records.

Source data · Workspace · Billing actions
Billing operations workspace built with Google Apps Script A read-only product connection feeds a validated daily DigitalOcean publisher. Google Sheets stores customer terms, eligibility, and billing records. A Google Apps Script interface reads and updates those records, prepares Drive files and Gmail drafts, and tracks the operator's actions. Manual mode is the default. An optional Xero integration can be enabled for invoices, PDFs, and payments. PRODUCT EVIDENCE RECORDS + APPLICATION Product source Accounts + report requests Completion and usage data Read-only reporting connection DigitalOcean Validated daily snapshot Publication + sync metadata Customer mappings stay explicit Google Sheets Terms + account mappings Eligibility + billing ledgers Inspectable underlying records Google Apps Script Custom billing workspace Checks + run preparation Operator actions + status MANUAL MODE · DEFAULT Prepare supporting files and an email draft for review. The operator sends the email and confirms payment. The workspace records the steps and keeps their history. Drive + Gmail Supporting report CSVs Email drafts for review Operator-controlled sending Xero · Optional Invoices, PDFs + payments Separate integration mode Requires explicit enablement

A DigitalOcean publisher supplies a validated daily product snapshot. Google Sheets holds commercial inputs, calculations, and billing ledgers. Google Apps Script provides the operator interface and connects it to Drive and Gmail. Optional Xero integration supports invoice and payment actions when enabled.

Providers and responsibilities
  1. DigitalOcean · Product-data publisher

    Read-only product access supplies accounts and report requests. The daily publisher validates the snapshot before updating the workbook; a failed validation leaves the last verified snapshot in place.

  2. Google Sheets · Inputs and ledgers

    Customer terms and explicit account mappings determine eligible usage. Billing Runs, Invoice Reports, and Billing Activity retain run state, report allocations, and the action history.

  3. Google Apps Script · Operator workspace

    A custom modal presents the queue, customer details, in-progress runs, history, and settings. Preparation rechecks the calculation before reserving reports.

  4. Google Drive & Gmail · Supporting work

    Drive holds the report CSV. In Manual mode, an operator action creates a Gmail draft with the CSV attached; the application does not send email.

  5. Xero · Optional integration

    When enabled, the integration supports draft invoices, explicit approval, invoice PDFs, accounting-status refresh, and payment recording. Xero actions are disabled in Manual mode.

Manual mode is the default and is shown in the screenshots. Drive stores the supporting CSV, Gmail holds drafts for operator review, and the workbook records the run. Xero is an optional integration; it is not required for this workflow.View the full diagram →

Records behind the interface

Preparation revalidates the calculation and source revision before reserving report IDs. Billing Runs, Invoice Reports, and Billing Activity retain run state, allocations, and an append-only action history. A failed source validation leaves the last verified snapshot in place.

Billing preparation

Keep the supporting work with the run.

Preparing a run checks the current calculation, creates a CSV of the billable reports, and reserves those report IDs against the run. In Manual mode, the next action creates a Gmail draft with the CSV attached. The operator handles the invoice, reviews the email, and sends it.

A fictional prepared billing run showing its supporting requests CSV and the next action to create a Gmail draft.
A prepared run with demonstration data. Creating a Gmail draft does not send the email.

Billing history

Follow the run through to payment.

After sending the email, the operator records that it was sent. In Manual mode, confirmed payment is recorded with its date and reference. Completed runs remain available in History, alongside the records of the reports allocated to them.

Billing history showing an illustrative completed run for a fictional customer, with its report count and recorded paid status.
An illustrative completed run in the implemented interface. The paid state uses fictional data and does not represent an actual payment.

Contact

What are you working through?

hello@outermost.us