CHOMPER WIKI

Cron

Admin-only page (
Cron
in the sidebar, clock icon) for Python scripts that run on a schedule instead of per-event. The main use case: periodically pull data from a third-party service and refresh a
reference table
, so
enrichment
lookups stay current without someone re-uploading a CSV by hand. Because of that, a cron script gets real network access — unlike an enrichment function, which runs per-event with no network at all.

The catalog (/cron)


Create a job by typing a name and clicking
Create
. Each row shows its cron expression with a human-readable summary underneath, an
Active
toggle that starts/stops the schedule immediately (no need to open the editor), when it last ran and how long it took, and
History
/
Delete
.

Cron catalog with one job, refresh_country_pricing


Deactivating or deleting a job here is the only way to stop it — the editor page has no Active control of its own, so there's exactly one place that starts or stops a schedule.

The editor (/cron/[id])

Name


Plain text, editable any time — nothing external references a job by its name.
Name field

Schedule


One-click presets (every 15/30 min, hourly) plus small daily/weekly builders — all of them just write a plain 5-field cron expression into the editable field below, which stays the source of truth if you want to hand-edit it. The next three real fire times are computed and shown live, so you can double check an expression before saving it.
Schedule builder with presets and next-run preview

Timeout


Wall-clock limit for a single run, 1–300 seconds (default 30). Higher than an enrichment's 2-second budget, since these scripts do real network I/O.
Timeout field

Note


Optional rich-text note about the job, shown as a small sticky-note icon next to its name in the catalog and at the top of the editor — hover to preview without scrolling down.
Note editor

Python script


Must define
def run():
— no
event
argument, unlike an enrichment's
enrich(event)
.
requests
is available for real HTTP calls, and a
chomper
helper writes straight into a reference table:
chomper.push_reference_table(name, rows, key_column=None)

Anything printed shows up as stdout in the Test result.
Check syntax
does a quick
ast.parse
-only validation before you run anything for real.
Python script editor with the default def run(): template

Test

This is a real run, not a dry run — network calls actually happen, and chomper.push_reference_table() really writes to the named table. It's the same executor a live scheduled run uses.

The result popover shows captured stdout first, then the returned result (or a structured Python error) and how long it took.
Test button with its real-run warning

Version history


Every publish is snapshotted (
History
, top right of the editor) — the same versioned/restorable pattern as Enrichments. Only the script, name, and schedule text are versioned; the Active toggle and note aren't.

Limits


Cron jobs count against your plan's own limit, alongside dashboards, reference tables, and enrichments — check
your Server's tile
for current usage.

Last updated 14 July 2026