Make¶
A private custom app records one run event per scenario execution. Create it in your Make organization once from the JSON blocks below, add the Record a Run module at the end of a scenario, and the value report builds itself.
Make's dashboards count operations and credits; there is no time-saved or ROI figure in the product. LumaTrack prices each run at a rate you can cite, counts failures against the total, and keeps the baseline as your labeled assumption, per client where you report to clients. The app is how a scenario gets into that ledger.
Create the app¶
The app is distributed as the JSON blocks Make's custom-app editor takes, and you create it as a private app in your own organization. That needs no partnership agreement, no review and no listing. Download the blocks from github.com/LumaTrack/lumatrack-make, then:
- In Make, open Custom apps and click Create app. Name
lumatrack, labelLumaTrack, theme#0F766E. Save. - Base tab: paste
base.json. - Connections: add a connection of type Basic. Paste
connection/api.jsoninto Communication andconnection/parameters.jsoninto Parameters. - Remote procedures: add
listAutomationsandlistEventTypes, pasting eachrpcs/<name>/api.jsoninto Communication. - Modules: add an Action module
recordRunlabelled "Record a Run". Pastemodules/record-run/api.json(Communication),mappable-parameters.json,interface.jsonandsamples.jsoninto their tabs. Repeat forrecordLossEventfrommodules/record-loss-event/.
Self-hosting or a custom domain: change baseUrl in base.json and the url
in the connection block before pasting.
Connect¶
Add a LumaTrack module to any scenario and create the connection:
| Field | Value |
|---|---|
| API key | From Settings, API keys in LumaTrack, shown once at creation |
An ingest-only key is enough and is the one to use: if it leaks, an attacker can post junk runs, and they cannot read or restate your ledger. The connection test reads your automations list, which is the one read an ingest-only key is allowed.
Record a run¶
Pick the automation from the dropdown, map External ID, and leave the rest alone on the happy path. Blank fields are omitted from the request, so the API applies its own defaults.
| Field | Notes |
|---|---|
| Automation | Required. The slug this scenario reports as; create it in the app or over the API |
| Status | success, failure, skipped or cancelled; defaults to success |
| External ID | Idempotency key. Map the trigger bundle's own id, so a re-run returns the original run instead of creating a duplicate |
| Units processed | Records this run handled; drives per-unit valuation. A scenario that processed 240 rows reports one run with 240 units, even from inside an Iterator |
| Duration (seconds) | Wall-clock runtime. Leave it blank rather than send a guess |
| Failure reason | Root cause, e.g. auth/credential. Powers the failure-reason Pareto |
| Executed at | Only for evidence that genuinely happened earlier. Closed months are refused; send late evidence without it |
| Baseline minutes override | Manual minutes this specific run replaced, when it differs from the automation's baseline |
| Metadata | Key/value pairs kept with the run. Store references; a whole payload bloats the run |
| Source | Defaults to make |
The module outputs the run id, whether the request was a replay
(deduplicated), and whether the run was held over the
plan's monthly cap. A held run is stored and earns nothing, so a router that
cares can branch on it.
Report failures too¶
One module on the happy path is half the integration. Failed scenarios cost money and save nothing, and reporting them is what makes the reliability chart and the net numbers credible.
Right-click the module that can fail and add an error handler. End the
handler route in a second Record a Run with Status failure and the error
message mapped to Failure reason, followed by the Resume, Ignore or Break
directive your scenario needs.
skipped and cancelled each book as themselves. A filtered-out route did no
work, and a cancelled run did not finish. Neither earns value and neither
inflates your failure count.
Record a loss event¶
The second module, Record a Loss Event, books a ticket, an outage or a truck roll into the loss ledger: pick the event type, map the ticket or alert id to External ID, and send measured downtime only. Dollars are never estimated from a guess. See incidents.
Limits and honesty¶
- The app is private to your Make organization. Make's invite-link publishing is irreversible and comes with a partnership agreement, so the app is offered as source instead; a verified listing waits until enough people use the private one to justify its maintenance promise.
- A run is one HTTP call, and Make re-runs a failed bundle by replaying it. The External ID is what keeps a replay from counting twice.
- Runs over your plan's monthly cap are held and released when you upgrade or the month resets.