Ocalt for

Ocalt for Operations

Stop stitching together five different tools just to keep the business running. Let Ocalt watch your inboxes, databases, devices, and live data streams, then act. Automatically process invoices when they arrive, lock or unlock equipment based on staff location, update inventory the moment stock moves, notify the right people, and trigger follow-up workflows across offices or warehouses. From daily admin to multi-site coordination, give your operations real execution power instead of another dashboard that only reports problems.

A dashboard reports; a script acts

Most operations software is very good at telling you something has gone wrong and completely incapable of doing anything about it. The value is in the second half. Stock hits zero — reorder. Invoice arrives — file it, extract the total, update the ledger, notify accounts.

The integrations are already in the language

Email, databases, HTTP, files, documents, PDFs, spreadsheets, maps, machines. Not connectors you configure and pay per seat for — verbs.

Multi-site without middleware

A script that runs against one warehouse runs against six by changing a loop. Every machine is addressed the same way, wherever it is.

It runs when nobody is watching

A CRON or a WATCH keeps working at 3am, and NOTIFICATION tells you what it did.

In practice

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

Automate one thing this week

  1. Pick the job you do every morning. The reorder check, the invoice filing, the overnight report.
  2. Write it as one script in the console and run it by hand until the output is right.
  3. Attach a schedule. Wrap the working script in NEW CRON [ ... ] EVERY DAY AT "06:00". It now runs whether or not anyone is at a desk.
  4. Have it tell you. End with NOTIFICATION so the result reaches you rather than a log nobody reads.
NEW DB "stock"
AFTER NEW TABLE "items" IN DB "stock" COLUMNS ADD "name" TYPE STRING AND ADD "qty" TYPE NUMBER
AFTER INSERT INTO DB "stock" TABLE "items" ROW "name" AS "M8 bolt" AND "qty" AS 4
AFTER SELECT ROWS FROM DB "stock" TABLE "items" WHERE "qty" IS LESS THAN 10 SET ?low
AFTER COUNT ?low SET ?n
AFTER EMIT ?n & " items need reordering"

Every plan, including Free, carries the whole language. Open the console, read the documentation, or see what a plan costs.