ClockWork

The all-in-one ERP and CRM operating system for your business — numbers and relationships in the same namespace.

Open ClockWork

Overview

ClockWork is a unified business operating system that brings accounting, resource planning, sales pipelines and customer relationship management into a single coherent environment. It is designed to close the gap between the numbers that keep a business running and the relationships that keep it growing.

Back-office operations and front-office client work share the same data, the same permissions model and the same interface. There is no separate “CRM side” and “accounting side” to keep in sync.

What it is

A business operating system, not a pair of tools glued together with CSV. Leads, deals, invoices, stock, tickets and people are rows in the same namespace your scripts already know how to query. ClockWork is the product surface; OcaltQL is how anything else in the stack reads or writes the same facts.

It is built for teams that have outgrown a desktop accounting package plus a spreadsheet plus a chat thread that is pretending to be a pipeline.

What it does

  • Tracks leads, deals, customer interactions and support tickets.
  • Manages invoices, inventory, purchasing and internal resources.
  • Gives every team member a single place to see the state of both the client relationship and the financial reality behind it.
  • Produces the operational views a growing business actually needs, without a second system to fill the gaps.
  • Runs in a business namespace, so members work on the company allowance with grants you set — not on a pile of shared logins.

How it works

Every module reads and writes the same underlying data store. A sale updates the pipeline, the invoice, the stock level and the customer record in one motion. Permissions and audit trails are enforced at the platform level rather than bolted on afterwards.

Because the store is an Ocalt namespace, a script can close the loop the UI does not have a button for. Stock hits a threshold — raise a PO, mail the supplier, notify operations. An invoice arrives in mail — file it, extract the total, update the ledger.

Getting started

  1. Create the business in your Ocalt account. It is yours on every plan.
  2. Add the people who work in it. Grant what they may do — databases, files, mail, machines — and which products they may open while acting.
  3. Switch to acting as the business. ClockWork, files, mail and scripts now run in that namespace.
  4. Open clockwork.ocalt.com. Create the first customers, a pipeline, an invoice. Confirm the same rows from QueryAdmin or the console.
Open invoices, one reminder each
SELECT ROWS FROM DB "sales" TABLE "invoices" WHERE "paid" IS IDENTICAL TO "no" SET ?due
AFTER FOREACH ?due SET ?inv
OPEN
  DOC CREATE FROM STRING ["Reminder: invoice " & ?inv("number")] AS "pdf" SET ?pdf
  AFTER MAIL TO ?inv("email") SUBJECT "Invoice reminder" BODY "Attached." ATTACH ?pdf
CLOSE
AFTER NOTIFICATION "reminders sent"

What lives in ClockWork

AreaHoldsTouches
CRMLeads, deals, interactions, ticketsMail, people, pipeline reports
SalesQuotes, orders, invoicesStock, ledger, customer record
InventoryItems, quantities, suppliersPurchasing, warehouse machines
AccountingLedger, VAT, paymentsInvoices, bank imports, reports
ResourcesPeople, jobs, timePermissions, operations scripts

You do not turn modules on as SKUs. They are views onto the same store. If you do not sell stock, you will not live in inventory; the table can still exist for the one product you do keep.

Automating ClockWork

Treat ClockWork data as ordinary tables. Schedule the work you already do every morning. End with NOTIFICATION so the result reaches a person rather than a log nobody reads.

Daily reorder check
NEW CRON [SIDELOAD `
SELECT ROWS FROM DB "stock" TABLE "items" WHERE "qty" IS LESS THAN 10 SET ?low
AFTER FOREACH ?low SET ?item
OPEN
  DOC CREATE FROM STRING ["Reorder: " & ?item("name")] AS "pdf" SET ?po
  AFTER MAIL TO "supplier@example.com" SUBJECT "Purchase order" BODY "Reorder attached." ATTACH ?po
  AFTER NOTIFICATION "PO raised for " & ?item("name")
CLOSE
`] EVERY 1 DAY SET ?job

Who it is for

Businesses and teams that have outgrown separate accounting packages and CRM tools and want one system that treats operations and relationships as the same problem. Two-person shops and companies with depots in three provinces use the same structure — adding people does not grow a middleware layer.

FAQ

Is ClockWork a separate database?

It is a product on top of your namespace. The rows are yours. Export them. Query them. Do not wait on a vendor dump.

Can a member see payroll?

Only if you granted the database and the product. Grants are per person and narrow. The owner holds billing and the API key regardless.