OptionalCustomCustom (unmapped) source keys observed this run, keyed by target MJ entity name — the out-of-band candidate statistics gathered regardless of row writes/skips (see CustomKeyStat). Undefined for a customs-free sync.
OptionalDurationDuration of the sync in milliseconds
OptionalEntityPer-entity-map results breakdown
OptionalErrorSummary error message when the sync fails or completes with errors
Details of individual record errors
OptionalIncompleteObjects whose fetch stopped early, so their result set for this run is INCOMPLETE.
Not a failure — the watermark is held and the unfetched window retries next run — but the run cannot be reported as an unqualified success either. Without this, a nightly sync that abandons sixteen objects reads as a clean Success with a small TotalRecords, and the only evidence is a warning buried in the event stream.
New records created in MJ
Records deleted/soft-deleted in MJ
Records that encountered errors
Total records processed
Records that were skipped
Existing records updated in MJ
OptionalRunThe CompanyIntegrationRun ID created for this sync
OptionalSchemaOutcome of the post-sync custom-column promotion pass (gaps.md §2). Present only when a promotion callback is registered AND ran; undefined for a customs-free sync (the common case). Lets the resolver surface SchemaUpdatePending to the client.
Whether the overall sync completed without fatal errors
OptionalThrottledTrue if this map hit a rate-limit/throttle during fetch. Feeds the per-layer AIMD controller so a throttle (not just a per-request token-bucket backoff) also reduces in-flight concurrency. Transient signal — not persisted.
OptionalWatermarkWatermark value after this sync for incremental next-run
Aggregate result of a sync operation