Product Spec Updated

This webhook event is used to notify clients when product specification information changes in Skulytics.

The product_spec_updated webhook helps clients keep product specifications synchronized with Skulytics.

When product specification data changes, Skulytics sends this webhook with the complete latest Product Specifications payload for the affected product.

The webhook does not return only the specification that changed. Instead, it returns the complete current product_specs collection after the change has been applied.

Clients can use meta.changed_attributes to identify that the product_specs collection changed.

Event Type

product_spec_updated

When This Webhook Is Sent

The product_spec_updated webhook is sent when product specification data changes.

Changes may include:

  • A specification is added.
  • A specification is removed.
  • A specification section changes.
  • A specification name changes.
  • A specification value changes.
  • The number of product specifications changes.
  • The specification collection changes.

The webhook is not sent when the latest specification data is identical to the existing specification data.

The detailed trigger behavior for PIM and scraping processes is handled separately from this webhook specification.

Supported Specification Type

The webhook supports changes to:

product_specs

Event Sent

Example — Product Spec Updated

{
  "type": "product_spec_updated",
  "webhook_version": "3",
  "action_date": "06/20/2026 02:01:59",
  "payload": [
    {
      "product_id": 989,
      "sku": "GNE27JYMFS",
      "product_specs": [
        {
          "section": "Warranty",
          "spec": "Parts",
          "value": "1 Year"
        },
        {
          "section": "Warranty",
          "spec": "Labor",
          "value": "1 Year"
        },
        {
          "section": "WEIGHTS & DIMENSIONS",
          "spec": "Overall Depth",
          "value": "35.875 in"
        },
        {
          "section": "WEIGHTS & DIMENSIONS",
          "spec": "Overall Width",
          "value": "35.75 in"
        },
        {
          "section": "WEIGHTS & DIMENSIONS",
          "spec": "Overall Height",
          "value": "69.875 in"
        },
        {
          "section": "Other",
          "spec": "Back Air Clearances",
          "value": "2 in"
        },
        {
          "section": "Other",
          "spec": "Top Air Clearances",
          "value": "1 in"
        },
        {
          "section": "Other",
          "spec": "Side Air Clearances",
          "value": "0.125 in"
        },
        {
          "section": "Dimensions & Weight",
          "spec": "Width",
          "value": "35.75 in."
        },
        {
          "section": "Dimensions & Weight",
          "spec": "Height",
          "value": "69.88 in."
        },
        {
          "section": "Dimensions & Weight",
          "spec": "Length",
          "value": "35.88 in."
        },
        {
          "section": "Dimensions & Weight",
          "spec": "Weight",
          "value": "308 lbs."
        },
        {
          "section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
          "spec": "Number of Boxes",
          "value": "1"
        },
        {
          "section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
          "spec": "Shipping Width",
          "value": "40.75 in."
        },
        {
          "section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
          "spec": "Shipping Height",
          "value": "74.88 in."
        },
        {
          "section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
          "spec": "Shipping Length",
          "value": "40.88 in."
        },
        {
          "section": "Number of Boxes, Shipping Dimensions, & Shipping Weight",
          "spec": "Shipping Weight",
          "value": "348 lbs."
        },
        {
          "section": "Cubic Feet Measurement & Dimensional Weight",
          "spec": "Cubic Feet Measurement",
          "value": "51.86 ft³"
        },
        {
          "section": "FEATURES",
          "spec": "Temperature Management Features",
          "value": "Turbo Cool setting"
        },
        {
          "section": "CAPACITY",
          "spec": "Fresh Food Capacity",
          "value": "18.82 cu ft"
        },
        {
          "section": "FEATURES",
          "spec": "Icemaker",
          "value": "Factory-Installed"
        },
        {
          "section": "APPEARANCE",
          "spec": "Case Color",
          "value": "Gray"
        },
        {
          "section": "POWER / RATINGS",
          "spec": "Energy Consumption (kWh/year)",
          "value": "633"
        },
        {
          "section": "WARRANTY",
          "spec": "Labor Warranty",
          "value": "Limited 1-year entire appliance"
        },
        {
          "section": "CAPACITY",
          "spec": "Total Capacity (cubic feet)",
          "value": "27.00 cu ft"
        },
        {
          "section": "FEATURES",
          "spec": "Exterior Style",
          "value": "Free-Standing"
        }
      ],
      "date_modified": "6/16/2026 6:04 AM"
    }
  ],
  "meta": {
    "changed_attributes": [
      "product_specs"
    ]
  }
}

Payload Behavior

When the webhook is sent, the payload contains the complete latest Product Specifications data for the affected product.

The webhook does not return only the specification that was added, removed, or updated.

The product_specs array always represents the latest current state of the product's specification collection at the time the webhook is generated.

For example:

  • If a product previously has 20 specifications and 1 specification is deleted, the webhook returns the remaining 19 current specifications.
  • If a product has 20 specifications and the value of 1 specification changes, the webhook returns all 20 current specifications.
  • If a product has 20 specifications and the section of 1 specification changes, the webhook returns all 20 current specifications.
  • If a product has 20 specifications and the specification name of 1 record changes, the webhook returns all 20 current specifications.
  • If a new specification is added to a product that previously had 20 specifications, the webhook returns all 21 current specifications.
  • Specifications that did not change remain included in the payload.
  • Specifications that were deleted are no longer included in the payload.

Clients should use the returned product_specs array as the complete latest specification state for the product rather than treating the payload as a list of individual specification changes.

The meta.changed_attributes field indicates that the product_specs collection changed, but it does not identify the specific specification record or specification field that changed.

Empty Specification Behavior

The product_specs field is returned as an array.

When no product specifications are available, the field returns an empty array:

{
  "product_specs": []
}

For example, if the last remaining specification is removed, the latest payload includes:

{
  "product_id": 989,
  "sku": "GNE27JYMFS",
  "product_specs": [],
  "date_modified": "06/20/2026 02:01 PM"
}

Removing the last specification is considered a product specification update and can trigger the webhook.

Payload Details

NameTypeDefinition
typestringSpecifies the webhook event type. For this event, the value is product_spec_updated.
webhook_versionstringSpecifies the webhook version. For Public API v3 webhook events, the value is 3.
action_datestringThe date and time when the specification update event was generated, formatted as MM/DD/YYYY HH:MM:SS.
payloadarrayAn array containing the complete latest Product Specifications data for the affected product.
metaobjectChange-tracking information for the webhook event.
meta.changed_attributesarrayIdentifies which supported specification collection changed. For this webhook, the value is product_specs.

Product Specification Object Details

NameTypeDefinition
product_idintegerUnique Skulytics product identifier.
skustringNormalized product identifier used by Skulytics.
product_specsarrayComplete latest collection of current product specification records.
date_modifiedstringDate and time when the product specification data was last modified.

Product Specification Details

NameTypeDefinition
product_specs[].sectionstringThe section or category used to group the specification, such as FEATURES, CAPACITY, Warranty, or WEIGHTS & DIMENSIONS.
product_specs[].specstringThe name of the product specification, such as Overall Width, Weight, or Total Capacity (cubic feet).
product_specs[].valuestring | nullThe current value of the specification, including units when applicable.

The complete latest product_specs array is included whenever the webhook is sent.

Changes to product_specs may include:

  • A specification is added.
  • A specification is removed.
  • A specification section changes.
  • A specification name changes.
  • A specification value changes.
  • The number of specifications changes.
  • The specification collection changes.

When any of these changes occur, meta.changed_attributes includes:

product_specs

Changed Attributes

The meta.changed_attributes field identifies which supported specification collection changed.

For the product_spec_updated webhook, the supported value is:

ValueDefinition
product_specsThe product specification collection, section, specification name, value, or quantity changed.

The changed-attribute path stops at the specification collection level.

Regardless of which specification record or field changes, meta.changed_attributes contains only:

{
  "meta": {
    "changed_attributes": [
      "product_specs"
    ]
  }
}

More detailed changed-attribute paths are not returned.

For example, the webhook does not return:

product_specs.section
product_specs.spec
product_specs.value