Skip to main content
A dataset refresh is the automation that keeps one dataset current. It belongs to the dataset itself: when you ask an agent to keep a dashboard fresh, Erdo configures that dataset’s refresh instead of creating a separate job that also writes to it.

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.
Only one active execution runs for a dataset refresh at a time. Repeated page views or manual clicks join the run already in progress instead of starting a second writer.

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 PARAMETERS object.
They cannot call mutation-capable actions, make POST/PUT/DELETE requests, write another dataset directly, or call an LLM. The refresh executor owns the single target write, so approvals cannot accidentally turn a data reader into a second automation system. Experiment measurement recipes retain their dedicated typed observation and decision-signal primitives. Those platform-owned operations are not general provider actions or arbitrary dataset writes.

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.
Use upsert for rolling windows, paged sources, and historical dashboards. Use replace only when every successful run returns the complete desired dataset. Every run records its outcome in Activity. Authenticated source calls are also recorded by app and action name, without storing their input parameters or returned source data.

Editing a refresh

Ask an agent to update the dataset refresh, or reconfigure it from the dataset. The generic automation editor can rename, enable, or disable the schedule, but it cannot replace refresh instructions or source code: those stay with the dataset configuration that owns the behavior. See Data & Connectors for datasets and Automations for other scheduled work.