Skip to main content
To enable change detection, two things are required:
  1. Your workflow must be scheduled (hourly, daily, etc.) or set to real-time mode. Configure scheduling in the UI or via SDK/API.
  2. Your workflow must subscribe to the data change event. Without this subscription, change diffs will not be delivered.
Make sure both conditions are met for change tracking to function.

Workflow Modes

ModeHow It WorksAvailability
ScheduledCompares data between runs (hourly, daily, weekly)All users
Real-timeContinuously monitors for changesEnterprise only
Both modes use the same change detection algorithm described below.

Algorithm Overview

The change detection process follows a three-phase matching algorithm:
  1. Exact Matches: Objects that are completely identical (with whitespace normalization)
  2. Partial Matches: Objects that are similar enough to be considered the same but with changes
  3. Leftovers: Remaining objects classified as either new or removed

Matching Methods

Key Field Matching (Optional)

When key fields are configured in your schema, objects are matched based on these fields. ALL key fields must match for objects to be considered the same:
// Previous run
{
  "id": "12345",
  "title": "Product A",
  "price": "$100"
}

// Current run
{
  "id": "12345",           // Key field matches
  "title": "Product A Pro", // Changed
  "price": "$150"          // Changed
}
Result: changed - ID matches, so same object with updates Key Field Behavior:
  • Key fields defined with isKey: true in your data schema
  • Common key fields: id, url, link, sku
  • If ANY key field changes, objects treated as removed + added (not changed)

Traditional Field Matching (Default)

When no key fields are configured, objects are matched if they share >50% of their fields:
// Previous run
{
  "name": "John Doe",
  "age": "25",
  "city": "New York"
}

// Current run
{
  "name": "John Doe",     // Same
  "age": "26",           // Changed
  "city": "New York"     // Same
}
Field Match Calculation: 2 out of 3 fields match = 66.7% > 50% Result: changed - Field match ratio exceeds threshold Notes:
  • Only string fields considered in ratio calculation
  • Empty fields and non-string values excluded

Change Types

TypeDescription
ChangedObject matched but some fields differ
AddedObject exists in current run but no match in previous run
RemovedObject existed in previous run but no match in current run

How Changes Appear

In the UI

View detected changes directly in your workflow’s run history:
  1. Open your workflow
  2. Click the History tab on the right-hand side
  3. Find a run with data changes
  4. Click on the Diff component to view changes
The diff view displays:
  • Change type indicators (added, removed, changed)
  • Visual diff highlighting for modified fields
  • Timestamps for when changes were detected
Data Diff View See Data Delivery for notification channels, APIs, and payload formats.

Method Comparison

MethodWhen UsedLogicBest For
Key Field MatchingSet isKeyField: true in schemaALL key fields must match exactlyReliable matching even with major content changes
Traditional Matching (Default)No key fields configured>50% of fields must matchSimple setup, works without configuration

Setup Data Change

Fields

Select which fields from your schema to monitor. Only changes to selected fields will trigger notifications. By default, Kadoa monitor all fields.

Change Types

Choose which types of changes to track:
TypeDescription
ChangedExisting record was modified
AddedNew record appeared
RemovedRecord no longer exists

Conditions

Add conditions to filter notifications based on field values. Combine multiple conditions using logical operators. Logical Operators:
  • Any (OR): Notify if any condition matches
  • All (AND): Notify only if all conditions match
Available Operators:
OperatorDescriptionExample
containsField value contains texttitle contains “sale”
does not containField value excludes texttitle does not contain “expired”
equalsExact matchstatus equals “active”
does not equalDoes not matchstatus does not equal “draft”
greater thanNumeric comparisonprice greater than 100
less thanNumeric comparisonstock less than 10
beforeDate is before valuepublished before 2025-01-01
afterDate is after valuepublished after 2025-01-01
in the lastDate within N dayspublished in the last 7 days
is emptyField has no valuedescription is empty
is not emptyField has a valueprice is not empty

Date Filtering

Use before, after, or in the last operators to filter changes by date. Useful for monitoring news feeds or content where you only care about recent updates.
Your data must include a date field for date filtering to work.
Supported Date Formats:
  • ISO: 2025-01-15 (recommended)
  • US/EU: 01/15/2025, 15/01/2025
  • Month names: Jan 15, 2025
  • Timestamps: 2025-01-15T10:30:00Z

Retrieve Historical Changes

View change history for your monitoring workflows.
  1. Open your workflow
  2. Click the History tab
  3. Select a run to view its changes Change History