Skip to content

V2 UI Reference — Run Insights Tab

The Run Insights tab is the post-run dashboard for V2 integrations. It reads the most recent IntegrationRun for the current instance — Sync Preview or Full Sync — and presents the run-level summary plus a per-stage breakdown. It is the same on every V2 driver.

The tab is split in two:

  1. Summary cards at the top — headline counters from the run’s summary_json (status, create count, update count, open problems).
  2. Stage progress below — one card per pipeline stage with status, metrics and a summary block populated by that stage.

If no run has been executed for this instance yet, the tab displays an empty state and points back at the action bar to launch a Sync Preview.

Placeholder — Run Insights tab populated after a Sync Preview run

CardToneSourceMeaning
StatusSkyrun.statusOne of queued, running, preview_ready, completed, failed. preview_ready means a Sync Preview finished cleanly through decide and is waiting on you to promote it to Apply.
CreateVioletsummary.decisions.createNumber of candidates that resolved to a create decision. In Sync Preview these are not yet committed.
UpdateIndigosummary.decisions.updateCandidates that matched an existing rConfig device and would update it on Apply.
Open ProblemsRed when > 0, otherwise tealsummary.problems.openCount of candidates parked in Problem Devices for review (canonicalize errors, ambiguous matches, conflicts).

A red Open Problems card is the single most important signal on the page — even a “completed” Apply run can leave problems behind that need manual resolution.

Below the cards, each pipeline stage gets its own card in execution order:

  1. validate_setup
  2. extract
  3. canonicalize
  4. reconcile
  5. decide
  6. apply (Full Sync only — Sync Preview stops at decide)

Placeholder — Stage progress section showing per-stage metrics grids

Each stage card shows:

  • Stage name and status badge (sky border for completed, amber for running, red for failed).
  • Metrics grid — up to two columns of key/value pairs from metrics_json, excluding the nested summary block.
  • Summary block — additional, stage-specific aggregates (for example, extract reports pagination stats, memory usage, and any truncation_reason; reconcile reports counts by tier).
StageTypical keys you’ll see
validate_setupconnection, credentials
extractprocessed, missing_policy_actions, pagination_type, page_count, items_extracted, truncated, memory_usage_mb
canonicalizeprocessed, valid, invalid, validation_errors
reconcilestrong, medium, ambiguous, none
decidecreate, update, skip, conflict, top_decision_reason_codes
applycreated, updated, skipped, links_refreshed, backups_scheduled

Object values (nested JSON) are rendered as a one-line JSON string so you can scan them without a hover. For the full structure, open the same stage in the Logs Tab where the entire metrics_json and error_payload are available.

When run.status = failed, exactly one stage card will be red. That stage holds the failure point:

  1. Read its error_summary (one-line, in the metrics block).
  2. Open Logs for the same run to see the full error_payload (including up to five chained previous exceptions, when the run was launched with --debug or via the Debug Console with debug on).
  3. If the failure is in validate_setup, fix in Setup. If it’s in extract, validate filters via Extract Preview. If it’s in canonicalize, the affected candidates are visible in Problem Devices.
Signal in Run InsightsWhere to go next
extract.truncated = trueIncrease the driver’s pagination cap, or tighten filters. The truncation reason is in the stage summary.
canonicalize.invalid > 0Open Problem Devices — most common cause is missing hostname, missing primary IP, or unresolved Device Profile slug.
reconcile.ambiguous > 0Open Problem Devices — pick the correct target device for each ambiguous candidate, or tighten the reconciliation policy.
decide.conflict > 0Open Problem Devices, the Conflict group — these block Apply for the affected candidates.
decide.skip is high but no problemsCheck the decision reason codes in the summaryMISSING_UPSTREAM_DISABLED_LINK and MEDIUM_MATCH_REQUIRES_REVIEW are common, both are intentional.
apply.created is 0 after a Full Sync where create > 0 was decidedThe Apply stage failed — open Logs for the apply stage’s error_payload.
  • The tab is read-only. There are no buttons inside the panel. Re-runs are launched from the Detail page action bar, not from here.
  • The tab refreshes when you switch to it. There is no live polling — refresh the page (or click another tab and back) to pick up a queued run that has just finished.
  • For long Full Sync runs, the tab is most useful after the run, not during. Use the Debug Console to watch live progress.
  • Screenshot: PLACEHOLDER_v2_run_insights_tab.png — full Run Insights tab after a Sync Preview, showing all four summary cards and the stage progress section.
  • Screenshot: PLACEHOLDER_v2_run_insights_stages.png — close-up of two stage cards (one with metrics, one with a populated summary block).
  • Verification: confirm the four summary card labels (Status, Create, Update, Open Problems) match RunInsightsTab.vue at the V8.2.0 release tag.
  • Verification: confirm the per-stage metric keys listed in the “Common metrics by stage” table match what the executors actually emit at release. The table is descriptive — verify against IntegrationStageExecutor.php and the per-stage executor classes.