Skip to main content

Data Sync

Data Sync is the pipeline layer that keeps ConverSight current. A data connector grants access to a source; Data Sync orchestrates the actual movement of data from that source into ConverSight on a schedule or on demand, with transforms applied along the way. Configure a pipeline once, and Athena's downstream surfaces — Storyboards, agents, briefings — always see fresh data without anyone doing manual refreshes.

This is primarily a Data Analyst surface (with Data Engineer involvement for scheduling and operational hygiene). Each pipeline defines which tables to move, how to transform them, and when to run — and the same UI provides visibility into run history, failures, and data-quality flags so reliability stays observable, not invisible.

Where Data Connectors handle authentication and access, Data Sync handles flow and freshness. Together they replace the patchwork of cron jobs, ad-hoc Python scripts, and "did anyone refresh the data this morning?" Slack threads that most organizations rely on before adopting the platform.

Data Studio option highlighted in the Workbench section of the ConverSight platform left navigation

Key Concepts​

Understanding the following terms helps users navigate the application efficiently.

TermMeaning
PipelineA named data sync job with its own configuration and schedule.
Sync GroupOne source connector paired with one destination connector. A pipeline may contain multiple sync groups to move data from different sources to different destinations within the same job.
Stream / TableAn individual table or SQL query being synced within a sync group.
TransformationAn optional SQL statement that can be configured to run after the data is loaded into the destination. It is typically used for aggregations, joins, validations, or incremental processing logic.
VariableA named value reused across SQL queries in a pipeline. Variables are referenced in SQL using the {{variable_name}} syntax, avoiding hard-coded values across multiple queries.
ScheduleA one-time rule that automatically triggers the pipeline at a defined time or frequency.

Accessing Data Sync​

To access Data Sync, log into the ConverSight platform and open Data Studio from the Workbench section in the left navigation. On the Data Studio landing page, select the Data Sync module to open the application.

Data Sync module highlighted in the Modules section of the Data Studio landing page

Creating a Pipeline​

The New Pipeline action creates a pipeline shell that Sources, Destinations, and Streams are then added to.

Configuration​

Step 1: Click the + New Pipeline button. This opens the Pipeline Configuration panel to its Configuration tab.

FieldDescription
NameSpecifies the name of the pipeline.
TagsOptional tags to categorize the pipeline.
DescriptionA free-text description of the pipeline's purpose.
ExecutionDetermines where the pipeline runs — Platform (default) or Agent.
Lock after creationBy enabling, once created, this pipeline cannot be edited by anyone.

Pipeline Configuration panel's Configuration tab, opened by clicking + New Pipeline

Step 2: Click Create Pipeline to initialize it. This unlocks the remaining tabs — Streams, Settings, Variables, and Environments — for further configuration.

Pipeline Configuration panel after clicking Create Pipeline, with the Streams, Settings, Variables, and Environments tabs unlocked

Step 3: Under the Sources section, click Add Source and select an existing connector. A source is where the data comes from the system that already holds the data, whether that's a production database, a cloud storage bucket, or any other system the platform can read from. The pipeline connects to it, reads its tables or files, and treats it strictly as read-only input. Nothing configured on a source ever writes back into it.

Sources section with Add Source clicked, showing the searchable list of existing connectors

To create a new connector select New Connector and add the connector.

New Connector option at the bottom of the connector list, for registering a new connector without leaving the pipeline

Once a connector is selected, the source row displays the following controls:

ElementDescription
Type iconA small blue icon indicating this is a Source row. Not clickable.
Connector selectorShows the connector's logo and name. Clicking it reopens the searchable list of pre-configured connectors, with a + New connector... option at the bottom to register a new one without leaving the pipeline.
Edit connectorOpens an Edit Connector for that specific connector which has the same Basic Information, Configuration, and Credentials sections described in the Connectors documentation, including the locked "Stored in encrypted vault" Credentials section. To know more about the edit connector, Click here.
Copy buttonLabeled with the connector's full Resource Name.
Alias badge (e.g., "src_1")The short internal ID used to reference this source within the pipeline, such as in stream mappings. Labeled "Click to rename alias" — clicking it allows renaming to something more descriptive.
DiscoverTriggers schema discovery — queries the actual source connection to fetch its available tables/columns so streams can be selected.
Schema fieldThe database schema to use, defaulted to "public."
Skip missing streams toggleWhen enabled, the pipeline won't fail if a previously configured stream disappears from the source.
note

Clicking Discover runs a live query against the actual source connection, and editing/saving inside the Edit Connector modal changes the underlying connector's real configuration. Both should be used deliberately, not just to preview what a field looks like.

Step 4: Under the Destinations section, click Add Destination and select an existing connector to write data to. A destination is where the data ends up — the target system the pipeline writes into after pulling data from the source. This could be a cloud storage bucket, a data warehouse, another database, or a data lake table.

Destinations section with Add Destination clicked, showing the searchable list of existing connectors

Once selected, the destination row shows the same core controls as a source row — type icon, connector selector, Edit connector, Copy button, and an alias badge (e.g., "dst_1") — but in place of Discover, it has a Configure destination icon. This reflects the difference described above: a destination needs write-behavior settings that a source has no use for.

Clicking Configure destination opens a Destination Settings panel with the following fields:

FieldDescription
Target SchemaThe schema/namespace written tables land in, defaulted to "public."
Default Sync ModeThe fallback write behavior for any stream that doesn't specify its own mode. Options: • Not set: No default; each stream must specify its own sync mode. • Append — Adds new rows on top of existing ones. • Overwrite — Replaces the entire target with fresh data each run. • Upsert — Updates matching rows and inserts new ones — useful when existing records can change over time. • Staging Swap — Loads into a temporary copy first, then swaps it in atomically, so the destination is never left in a half-written state. • Snapshot — Keeps a full timestamped copy rather than mutating existing data — useful for auditing or historical comparisons.
Optimize (toggle)Compacts/reorganizes the destination's stored files for better read performance.
Vacuum (toggle)Reclaims space from deleted or overwritten data.

Streams​

Once a source and destination are added, the Streams tab is where you define exactly which data moves between them.

Streams tab, showing the empty streams table before any stream is added

Add Stream​

On the Streams tab, click Add Stream to add a new stream. Once created, it appears in the streams table with the following columns:

ColumnDescription
StreamThe stream's name (sortable).
SourceWhich connector it reads from.
DestinationsWhich connector alias it writes to (e.g., "dst_1").
Sync ModeA per-stream override, defaulting to "— inherit —" from the destination's settings.

Streams table after clicking Add Stream, showing the Stream, Source, Destinations, and Sync Mode columns

Clicking into the stream opens its configuration panel, with two modes available:

  • ELT Stream
  • SQL Model

Extract​

The Extract tab defines what data is pulled from the source.

FieldDescription
Stream NameThe stream's name.
SourceRead-only, showing the connected source.
CommentOptional, for documentation.
Replication ModeFull (extracts every row every run) or Incremental (extracts only new/updated rows using a tracking field).
Column SelectionAll columns, an Allow-list (checklist of columns with data type, with search and "Deselect all"), or Glob patterns (e.g. *, !ssn, prefix_*, where * means everything and !field excludes a specific one).
Freshness/SLAMax Staleness, in minutes.
Field OverridesCollapsible section for manual overrides on specific fields.

Extract tab of a stream's configuration panel, showing Replication Mode, Column Selection, and Freshness/SLA fields

Transform​

The Transform tab defines what happens to the data after it's extracted and before it's loaded. This is optional; users can skip it if the data doesn't need any changes.

Clicking Add Transform opens a categorized menu:

CategorySteps available
CoreFilter, Drop Columns, Add Column, Cast, Select Fields, Hash Fields, SQL, Project
Join & SplitJoin, Split
JSONJSON Extract, JSON Flatten, JSON Unroll, JSON Filter
AI/MLChunk, Embed, Validate

Add Transform categorized menu, showing Core, Join & Split, JSON, and AI/ML transform categories

TransformWhat it does
FilterKeeps/discards rows using a SQL WHERE-style condition (e.g. status != 'cancelled').
Drop ColumnsRemoves specified columns.
Add ColumnAdds a new computed/static column.
CastChanges a column's data type.
Select FieldsKeeps only chosen columns.
Hash FieldsMasks/hashes sensitive columns.
SQLCustom SQL transformation step.
ProjectReshapes/renames the output field set.
JoinCombines this stream with another stream.
SplitSplits one stream into multiple outputs.
JSON Extract / Flatten / Unroll / FilterParse, flatten, expand, or filter nested JSON payloads.
Chunk / EmbedSplits text and generates embeddings, for AI/ML use cases.
Validate (transform)An in-pipeline validation step, run as part of the transform sequence — distinct from the Validate tab covered.

Transform tab with steps added, showing the reorder, collapse, and delete controls plus the Validate button

Each step can be reordered with up/down arrows, collapsed, or deleted, and a Validate button checks the whole transform chain before saving.

Load​

The Load tab defines how the (extracted and optionally transformed) data is written to the destination.

Load tab of a stream's configuration panel, showing the destination alias, table name/schema, and sync mode fields

FieldDescription
Destination aliase.g. "dst_1," with an enabled toggle.
Table Name / SchemaWhere the data lands at the destination.
Sync ModeDefault, or an override for this stream specifically.
Optimize / VacuumSame toggles described under Destination Settings.

Advanced Section (collapsible):​

FieldDescription
Merge KeysComma-separated columns used for upsert deduplication, overriding the primary key for merges.
Primary Key OverrideManually specifies the primary key.
Column Case / Table CaseDefaults to "Connector default."
FormatDatalake-only (S3/GCS/Azure).
Partition ByComma-separated partition columns, datalake-only.

The Error Handling section covers:

FieldOptions
On ErrorPipeline default, Skip stream, Skip batch, Fail fast
Schema Change PolicyPipeline default, Propagate columns, Sync all, Ignore, Fail

Validate​

The Validate tab defines data-quality checks that run independently of the Transform pipeline, before the load completes. This is also optional.

FieldDescription
On Validation FailurePipeline default (or an override).
Validation RulesA list of rules, each with a rule type and a target field.

Validate tab of a stream's configuration panel, showing the On Validation Failure setting and Validation Rules list

Add Rules

Rule TypeChecks
not_nullField is never null.
uniqueField values are unique.
accepted_valuesField matches an allowed list of values.
min_value / max_valueField stays within a numeric bound.
row_count_min / row_count_maxTotal row count stays within bounds.
custom_sqlCustom SQL-based validation check.

Add Rules panel, showing the available validation rule types such as not_null, unique, and custom_sql

note

Stream validations here run as pre-flight checks, independently of the Transform pipeline. For an in-pipeline validation step instead, use the Transform tab's Validate transform (Step 2) rather than this tab.

Variables​

The Variables tab lets users turn a hardcoded value inside a stream where a filter condition, a SQL query, a transform parameter, or similar — into a reusable, editable placeholder instead of typing the same raw value into every field it's needed in. This is useful when a value needs to change per environment, per run, or simply needs to live in one place so it doesn't have to be updated separately across every transform that uses it.

Variables tab of a stream's configuration panel, before any variable has been declared

Referencing a variable directly in a field​

A variable doesn't need to be declared ahead of time to be used. Typing {{variable_name}} directly into any field that accepts it — such as a Filter transform's Condition — is enough to create it. For example, changing a condition from a hardcoded status != 'cancelled' to status != {{status_filter}} registers status_filter as a variable automatically.

Once typed, the variable is picked up in two places at once:

LocationWhat it shows
The transform field itselfAn inline panel showing the number of variables required, with the Variable Name and a Value field to fill in directly.
The Variables tabA row for the same variable, showing its Variable Name, Value, and a Used In column identifying exactly where it's referenced.
note

Until a value is supplied, both locations display a warning indicating that a variable still needs a value before the stream can be validated. Supplying the value in either location clears the warning in both places, since they reference the same underlying variable.

Declaring a variable ahead of time​

To define a variable before referencing it anywhere, click + Add Variable. This adds a new row to the Variables tab.

FieldDescription
Variable NameSpecifies the name of the variable.
ValueSpecifies an optional default value for the variable.

The Used In column for a variable added this way stays empty until that variable's name is actually referenced in a transform, SQL query, or filter elsewhere in the stream.

Both approaches create the same kind of variable. Typing {{variable_name}} directly into a field and using + Add Variable are simply two different starting points — whichever is used first, the variable becomes visible and editable from both the Variables tab and wherever it's referenced in the stream.

Variables tab after clicking + Add Variable, showing the new Variable Name and Value row

SQL Model Mode​

SQL Model is the alternate way to define the same stream slot covered under ELT Stream, instead of point-and-click configuration across Extract, Transform, Load, Validate, and Variables, the stream's logic is written as a single SQL query. Switching the toggle at the top of the Configure panel from ELT Stream to SQL Model replaces those five tabs with four: Query, Materialization, Load, Variables.

Configure panel with the mode toggle switched from ELT Stream to SQL Model, showing the Query, Materialization, Load, and Variables tabs

Query tab - define the query​

The Query tab is where the stream's output is defined directly in SQL, replacing what Extract and Transform would otherwise do.

Query tab of SQL Model mode, showing the Stream Name, Source, and SQL fields

FieldDescription
Stream NameThe stream's name (same field as in ELT Stream mode).
SourceRead-only, shows the connected source.
SQLA full SQL editor where the query producing this stream's output is written. Empty by default ("No SQL yet — click to open the editor").

Clicking Open SQL Editor opens a dedicated full-screen editor with the following tools:

Full-screen SQL Editor opened from the Query tab, showing the Functions dropdown, Available tokens dropdown, and Preview/Validation tabs

ToolPurpose
Functions dropdownA snippet library of SQL functions grouped by category (e.g., Aggregate: COUNT(*), SUM(column), AVG(column), MIN(column), MAX(column)), inserted at the cursor.
Available tokens dropdownA reference list of special syntax understood by the editor — see table below.
FormatAuto-formats/beautifies the SQL.
ValidateRuns the query to check that it's valid.
Preview / Validation tabsPreview shows sample output rows; Validation shows check results.
Variables panelSame auto-detect behavior as ELT Stream — any {{variable}} typed into the query appears here automatically.

Available tokens​

The following are the available tokens:

Available tokens reference list in the SQL Editor

TokenDescription
{{stream.stream_name}}References an external catalog stream.
{{variable_name}}Substitutes a pipeline variable.
_inputRefers to the same stream being transformed. This should not be added to with_streams.
{{bookmark}}The current bookmark value (an empty string on the first run).
@start_dsThe pipeline run's start time, in ISO 8601 format.
@end_dsThe pipeline run's end time, in ISO 8601 format.

Materialization — define how the query's output is persisted​

Materialization tab of SQL Model mode, showing the Materialization Type field

FieldDescription
Materialization Typenone, table, view, incremental, snapshot, swap, or ephemeral.

The fields shown change depending on the selected type:

TypeAdditional fieldsWhat it means
none—No materialization configured yet.
tableInterval (e.g. "1h," "30m," "daily")Rebuilds a physical table on the given schedule.
viewIntervalCreates a database view — a saved query — refreshed on the given schedule.
incrementalIncremental Strategy (none / merge / append / delete_insert / insert_overwrite), Primary Key, Time Column, IntervalProcesses only new or changed data on each run rather than rebuilding everything; the strategy controls exactly how new rows are merged in.
snapshotPrimary Key, Snapshot Key, Change Strategy (timestamp or check), Updated-At Column, IntervalPreserves historical row versions over time, rather than overwriting them — an SCD Type 2 style approach.
swapIntervalBuilds into a staging copy first, then atomically swaps it into place, so the destination is never left half-written.
ephemeralIntervalA lightweight, transient materialization that isn't persisted as its own physical object — useful as an intermediate step other models can reference.

Load - define how the output is written to the destination​

This tab serves the same purpose and carries the same fields as the Load tab in ELT Stream mode.

Load tab of SQL Model mode, carrying the same fields as the ELT Stream Load tab

FieldDescription
Destination toggle (e.g., dst_1)Enables or disables writing to this destination.
Table Name / SchemaWhere the output lands.
Sync ModeDefault, or an override for this stream specifically.
Optimize / VacuumSame file-compaction and space-reclaim toggles as ELT Stream.
AdvancedSame Merge Keys, Primary Key Override, Column Case, Table Case, Format, and Partition By fields as ELT Stream.
On Error / Schema Change PolicySame option sets as ELT Stream (Pipeline default, Skip stream/batch, Fail fast / Propagate columns, Sync all, Ignore, Fail).

Variables tab — reuse values across the query​

This tab works identically to the Variables tab in ELT Stream mode.

Variables tab of SQL Model mode, before any variable has been typed into the query

Variables tab of SQL Model mode showing an auto-detected variable with its Value field and Used In reference

FieldDescription
Variables tableEmpty by default ("No template variables found").
BehaviorAny {{variable_name}} typed into the Query tab is auto-detected and appears here with a Value field and a Used In reference, the same way it does in ELT Stream mode.
+ Add VariableManually declares a variable name and default value before referencing it anywhere.

Settings​

The Settings tab defines the pipeline-wide defaults that apply across every stream in the pipeline. A stream can still set its own values for things like sync mode or error handling on its individual Extract, Load, or Validate tabs — Settings only takes effect where a stream hasn't specified its own.

Pipeline Settings tab, showing the General, Post-Sync Actions, Reliability, Performance, Transform, and Advanced sections

General​

The General settings has the following items.

General settings section, showing Default Sync Mode, On Error, Schema Change Policy, Batch Size, and Default Freshness/SLA fields

FieldDescription
Default Sync ModeThe fallback sync mode applied to any stream that doesn't set its own. Options: — not set —, Append, Upsert, Overwrite, Staging Swap, Snapshot.
On ErrorWhat happens pipeline-wide when a stream errors out. Options: — not set —, Skip Stream, Skip Batch, Fail Fast.
Schema Change PolicyHow the pipeline reacts when the source schema changes. Options: — not set —, Propagate Columns, Sync All, Ignore, Fail.
Batch SizeNumber of records processed per batch (placeholder "e.g. 10000").
Default Freshness/SLA — Max Staleness (minutes)How old data is allowed to get before it's considered stale, used for monitoring/alerting.

Post-Sync Actions​

Post-Sync Actions send a webhook to an external endpoint whenever selected pipeline events occur, such as a sync starting, completing, or failing. This is off by default. To configure it, turn on Enable Post-Sync Actions.

Post-Sync Actions section with Enable Post-Sync Actions turned on, showing the URL, Events, Headers, and Body fields

FieldDescription
URL — Action modeRoutes the event through a Universe Engine resource action. Fields: Resource CRN (e.g. "crn:dev🇺🇸connector:org:mysql:db-01") and Action (a dropdown, loaded after the CRN is entered).
URL — Custom modeSends events straight to a manually entered URL. Fields: a Request method dropdown (POST, GET, PUT, PATCH) and a URL box (e.g. https://api.example.com/sync-events).
Default environment variables (5)A read-only reference table the engine injects automatically: $env:DATASYNC_UNIVERSE_URL (build a callback URL), $env:DATASYNC_JWT (primary auth), $env:DATASYNC_API_KEY (API-key auth variant), $env:DATASYNC_M2M (machine-to-machine auth variant), $env:DATASYNC_ACTIVITY_SOURCE_ID (correlates to an orchestrator job).
EventsA checklist of six triggers that fire the webhook: Sync started, Sync progress, Stream completed, Sync completed, Sync failed, Credentials rotated. Select all / Clear buttons are included.
HeadersA "+ Add" button to attach custom headers.
Body — DefaultThe engine sends its own default JSON payload for the event automatically.
Body — CustomA free-text JSON box for a custom payload shape, with {{variable}} placeholders substituted at delivery time (e.g. {"event": "{{event}}", "pipeline": "{{pipeline_id}}"}), plus an Available Variables list scoped to whichever events are selected.
note

When adding custom headers, reference $env: variables rather than pasting real secrets directly into the header value.

Reliability​

The Reliability section defines how the pipeline handles failures and interruptions during a run — how many times a failed operation is retried, how long it waits between retries, and how often progress is checkpointed so a run can resume rather than restart from the beginning.

Reliability section, showing the Retry and Checkpoint fields and their defaults

FieldDefaultDescription
Retry — Max Attempts3How many times a failed operation is retried.
Retry — BackoffexponentialOptions: exponential (default), linear, fixed — controls how the delay grows between retries.
Retry — Initial Delay (s)1Wait time before the first retry.
Retry — Max Delay (s)60Ceiling on how long any single retry wait can grow to.
Checkpoint — Every N Batches10How often progress is checkpointed, by batch count.
Checkpoint — Every N Seconds300Checkpoint interval by time.
Checkpoint — Every N Records100,000Checkpoint interval by record count.
Incremental Defaults — Bookmark StrategyDefaultOptions: Default, Inclusive, Exclusive — controls whether the last-synced record is included or excluded on the next incremental run.
Incremental Defaults — Lookback Window (s)0Re-fetches a small time window behind the bookmark to catch late-arriving data.

Performance​

The Performance section controls how much of the pipeline runs at once: capping how many streams run concurrently overall, and how many can hit the same source connector at the same time, to avoid overloading it.

Performance section, showing the Max Total Streams and Max Streams Per Source fields

FieldDescription
Max Total StreamsCaps how many streams this pipeline runs concurrently (placeholder "e.g. 4").
Max Streams Per SourceCaps concurrent streams hitting the same source connector, to avoid overloading it (placeholder "e.g. 2").

Transform​

The Transform Options section controls formatting behavior applied across the pipeline's transforms — currently limited to whether column and table name casing from the source is preserved or normalized to lowercase.

Transform section under pipeline Settings, showing the Preserve identifier case toggle

FieldDescription
Preserve identifier case (toggle, off by default)When off, column/table names are normalized to lowercase. Turning it on keeps the exact casing from the source.

Advanced​

The Advanced section covers logging behavior for the pipeline — the level of detail captured, the format logs are written in, where they're saved, and whether a run summary is printed after each sync.

Advanced section under pipeline Settings, showing the Log Level, Log Format, Log File, and Summary Output fields

FieldDescription
Log LevelOptions: — not set —, Trace, Debug, Info, Warn, Error.
Log FormatOptions: — not set —, JSON, Text.
Log FilePath where logs are written (placeholder "/var/log/datasync.log").
Summary Output (toggle, off by default)"Print run summary to stdout" — writes a run summary to the console/output stream after each sync.
note

Every field above sets a pipeline-wide default. A stream can still override any of these individually on its own Extract, Load, or Validate tabs — the pipeline-level Settings only apply where a stream hasn't specified its own value.

Variables​

The Variables tab is a central registry of every {{variable}} placeholder used anywhere across the pipeline's streams that includes Transform steps, SQL Models, filters, and so on. It shows all variables in one place, lets values be assigned to them, and shows exactly where each one is used, without opening every individual stream.

Pipeline-wide Variables tab, showing the central registry of every variable used across the pipeline's streams

Variables defined here are global to the whole pipeline, not scoped to one stream. A variable added on this tab is immediately available from the Variables tab inside any stream's configuration in the same pipeline, since all streams share the same underlying pool.

When no variables exist yet, the tab shows: "No template variables found. Use {{var_name}} in any transform, SQL query, or filter — it will appear here automatically."

Layout and fields​

Field/ElementDescription
Search barFilters the list by variable name or its assigned value.
Filter buttonOpens a Type dropdown with three options: All types, Variable ({{var}}), and Stream ({{stream.x}}) — narrows the list to plain user-defined variables versus stream-reference tokens.
+ Add VariableAdds a new row with a Variable Name field and a Value field, plus an Add button to confirm the row.
Variable Name columnThe identifier referenced elsewhere as {{name}}.
Value columnAn editable field holding the variable's current value; can be left blank.
Used In columnShows where the variable is referenced — "defined but not referenced" if unused, or a badge naming the exact stream and step, e.g. "sample_stream → transform 1," once referenced somewhere.
Row / header checkboxSelects one or all rows for bulk actions.
Delete (trash) iconRemoves the variable, after a confirmation popup.
Tab badgeThe Variables tab label shows a count badge reflecting how many variables currently exist.

Pipeline-wide Variables tab after adding a variable, showing the Variable Name, Value, and Used In columns

After configuring, click Save Changes on the Pipeline Configuration panel to persist the variable and its usage.

note

The Used In column updates in real time as a {{name}} reference is typed into a field, even before saving — useful for confirming a variable is wired up correctly. Clicking Cancel or closing the panel without saving discards any unsaved reference, and Used In reverts to "defined but not referenced." Because the variable pool is shared pipeline-wide, a variable only needs to be defined once to be available across every stream in the pipeline.

Environments​

The Environments tab lets users define named runtime environments — such as dev, staging, or prod — for the pipeline. Each environment holds a JSON block of config overrides that get deep-merged onto the pipeline's base configuration whenever the pipeline is run with a matching --env flag. This allows one pipeline definition to behave differently depending on which environment it's executed in, without duplicating the whole pipeline.

Environments tab, showing the environments list and the override JSON editor

Layout and fields​

Field/ElementDescription
Environments list (left panel)Lists every environment added so far. Clicking a name selects it and loads its override JSON in the right panel.
env name field + Add buttonAt the bottom of the left panel — type a name and click + Add to create a new environment entry.
Delete (trash) iconAppears next to an environment's name in the list. Removes that environment immediately, with no confirmation popup.
Override editor (right panel)Shows the selected environment's name and a JSON text box, defaulting to {}, where override values are written.
Tab badgeThe Environments tab label shows a count badge reflecting how many environments exist.
note

Deleting an environment happens immediately, with no confirmation step — unlike deleting a variable, which does prompt for confirmation. Be careful when clicking the trash icon here.

Schedule​

Schedule opens the Resource Scheduler, where automated, unattended runs for the pipeline: one-time or recurring are configured, so the pipeline runs on its own without needing Sync to be clicked manually each time.

Schedule tab, showing the Resource Scheduler with Local Time/UTC toggle, Calendar button, and Create Schedule action

Field/ElementDescription
Schedules (count)Header showing how many schedules exist for this pipeline, e.g. "Schedules (0)."
Local Time / UTC toggleSwitches all displayed times between UTC and local timezone.
Calendar buttonOpens a separate Schedule Calendar Overview — a month calendar (with a Month/Year toggle and a color legend: green = Recurring, blue = One-Time, orange = Event) plus an hour-by-hour timeline for the selected day.
Create ScheduleOpens the schedule creation form.
Search schedulesText search across existing schedules.
All Statuses filterOptions: All Statuses, Active, Paused.
All Types filterOptions: All Types, Recurring, One-Time, Event-Based.
All Targets filterOptions: All Targets, Agent, Platform.

Creating a Schedule​

Click Create Schedule to open the schedule creation form.

Schedule creation form opened by clicking Create Schedule

FieldDescription
Schedule NameFree text label for the schedule.
TimezoneA searchable dropdown of timezones, defaulting to the local timezone. All run times are interpreted in this timezone.
Schedule TypeOne-Time or Recurring — changes the remaining fields on the form.
Runs OnPlatform or Agent — where the scheduled execution is carried out.
Retry BackoffA toggle. When enabled, reveals a numeric delay field (in seconds, default 60) for retrying failed tasks.

If Schedule Type is One-Time​

FieldDescription
Run DateThe single calendar date the job should run.
Run TimeThe time of day it should run.

If Schedule Type is Recurring​

FieldDescription
FrequencyEvery N Minutes, Hourly, Daily, Weekly, or Monthly — each reveals different sub-fields, detailed below.
Start DateThe date recurrence begins.
End Date (optional)Defaults to "No end date," meaning the schedule runs indefinitely.

Configuring recurrence by frequency​

Every N Minutes: Reveals an Interval (min) field (default 10), plus optional Window Start and Window End time fields to constrain runs to a specific time window each day.

Hourly / Daily: The simplest recurrence — only a Run Time field is needed, alongside Start/End Date.

Weekly: Reveals a Days of Week selector with individual Mon–Sun toggles, plus three quick-select presets: Weekdays, Weekend, and All Days.

Monthly: Reveals a Monthly Option dropdown with three choices — First Day of Month, Last Day of Month, or Specific Day. Selecting Specific Day reveals a Day of Month field (default 1).

Review the live "Next" preview to confirm the computed run time matches what's intended, then click Create Schedule to save it, or Cancel/the X icon to discard without creating anything.

Schedule creation form with a recurrence configured, showing the live Next preview

Runs​

Runs, also called Run History, is the execution log for a pipeline - a record of every time it ran, whether triggered automatically by its schedule or manually, showing the outcome of each attempt and letting a specific run be re-triggered if needed.

Run History is used to audit past executions, identify which runs failed, and re-trigger a specific run if needed.

Run countShown next to the title, e.g. "Run History (20)" — the total number of recorded runs.
UTC toggleControls the timezone runs are displayed in.
RefreshReloads the list.
Search runsA search box to filter the list.
FiltersDropdowns for All Schedules, All Statuses, and All Targets, to narrow the list.

Table columns​

ColumnDescription
Run TimeTimestamp of when the run occurred (e.g., "Aug 5, 2026, 11:45 AM UTC"). Sortable via the arrows next to the header.
Schedule NameThe identifier of the schedule that triggered the run.
StatusThe run's outcome — Submitted (queued/in progress, shown in orange), Failed (shown in red), or Success.
DurationHow long the run took to complete, e.g. "1m 24s." Runs still in Submitted status show "—," since they haven't finished.
Triggered ByWhat initiated the run — Schedule (ran automatically per the configured schedule) or a manual trigger.
Runs OnThe execution environment the run occurred on, e.g. Platform.
ActionA Re-Run button per row, to manually re-trigger that specific run again.

Run History table, showing Run Time, Schedule Name, Status, Duration, Triggered By, Runs On, and Action columns

Sync​

Sync manually triggers an immediate, on-demand run of the pipeline, separate from any automated schedule — a "run now" action rather than waiting for the next scheduled execution. After clicking Sync, a new row appears at the top of Run History, with Triggered By showing something other than "Schedule" (e.g., "Manual") to distinguish it from scheduled runs.

Run History after clicking Sync, showing a new row triggered manually at the top of the list

note

Clicking Sync starts a real pipeline run against live data immediately. Confirm this is intended before clicking it, especially on a pipeline already running on an active schedule.

Delete Pipeline​

The Delete action removes a pipeline that's no longer needed, along with its configuration, streams, and schedules.

Delete Pipeline confirmation for removing a pipeline along with its configuration, streams, and schedules