When refreshes run
- On view is the default. A stale dataset refreshes when someone opens the page or dashboard that uses it, so it costs nothing while nobody is looking.
- On a schedule is for data that must already be current before another consumer runs, such as a scheduled report.
- Live refreshes use a verified webhook or supported polling source for genuinely streaming data.
Script or agent
Erdo uses a deterministic script when the source and output shape are known. That costs one credit per run and uses no LLM. An agent-backed refresh is reserved for work that genuinely needs judgement or extraction on every run. Deterministic JavaScript refresh recipes can:- read the existing target or another permitted dataset;
- read public HTTP sources with GET or HEAD;
- call connected-source actions that the integration explicitly declares as safe, read-only refresh sources; and
- read saved recipe values from the uppercase
PARAMETERSobject.
Replace, upsert, and no changes
- Replace applies a complete non-empty result and replaces the stored rows.
- Upsert merges a non-empty result using the configured key column or composite key.
- Returning an empty array means no changes in either mode. It preserves the existing dataset; it never clears it.

