Product Document Updated

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

The product_document_updated webhook helps clients keep product documents synchronized with Skulytics.

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

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

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

Event Type

product_document_updated

When This Webhook Is Sent

The product_document_updated webhook is sent when product document data changes.

Changes may include:

  • A document is added.
  • A document is removed.
  • A document URL changes.
  • A document role changes.
  • A document priority changes.
  • The document order changes.
  • The number of product documents changes.
  • A document file changes.
  • A document content_length changes.
  • The document collection changes.

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

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

Supported Document Type

The webhook supports changes to:

  • product_documents

Event Sent

Example — Product Document Updated

{
  "type": "product_document_updated",
  "webhook_version": "3",
  "action_date": "06/20/2026 02:01:59",
  "payload": [
    {
      "product_id": 989,
      "sku": "GNE27JYMFS",
      "product_documents": [
        {
          "id": 105164843,
          "url": "https://assets.skulytics.io/assets/docs/GNE27JYMFS-105164843.pdf",
          "role": "Installation Instructions",
          "priority": 0,
          "content_length": "19.42 MB"
        },
        {
          "id": 105164844,
          "url": "https://assets.skulytics.io/assets/docs/GNE27JYMFS-105164844.pdf",
          "role": "Energy Guide",
          "priority": 0,
          "content_length": "111.92 KB"
        },
        {
          "id": 105164845,
          "url": "https://assets.skulytics.io/assets/docs/GNE27JYMFS-105164845.pdf",
          "role": "Quick Specs",
          "priority": 0,
          "content_length": "416.80 KB"
        },
        {
          "id": 105164846,
          "url": "https://assets.skulytics.io/assets/docs/GNE27JYMFS-105164846.pdf",
          "role": "Warranty",
          "priority": 0,
          "content_length": "64.27 KB"
        }
      ],
      "date_modified": "12/24/2025 10:46 AM"
    }
  ],
  "meta": {
    "changed_attributes": [
      "product_documents"
    ]
  }
}

Payload Behavior

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

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

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

For example:

  • If a product previously has 4 documents and 1 document is deleted, the webhook returns the remaining 3 current documents.
  • If a product has 4 documents and the URL of 1 document changes, the webhook returns all 4 current documents.
  • If a product has 4 documents and the role of 1 document changes, the webhook returns all 4 current documents.
  • If a new document is added to a product that previously had 4 documents, the webhook returns all 5 current documents.
  • Documents that did not change remain included in the payload.
  • Documents that were deleted are no longer included in the payload.

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

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

Empty Document Behavior

The product_documents field is returned as an array.

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

{
  "product_documents": []
}

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

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

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

Payload Details

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

Product Document Object Details

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

Product Document Details

NameTypeDefinition
product_documents[].idintegerUnique product document identifier.
product_documents[].urlstringURL of the product document.
product_documents[].rolestringDescribes the document's role or type, such as installation instructions, energy guide, quick specifications, or warranty information.
product_documents[].priorityintegerPriority or ordering position of the document. Lower values have a higher priority.
product_documents[].content_lengthstring | nullFile size of the product document, including its unit, when available.

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

Changes to product_documents may include:

  • A document is added.
  • A document is removed.
  • A document URL changes.
  • A document role changes.
  • A document priority changes.
  • The document order changes.
  • The number of documents changes.
  • A document file changes.
  • A document content_length changes.

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

product_documents

Changed Attributes

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

For the product_document_updated webhook, the supported value is:

ValueDefinition
product_documentsThe product document collection, URL, role, priority, order, quantity, file, or file size changed.

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

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

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

More detailed changed-attribute paths are not returned.

For example, the webhook does not return:

product_documents.url

product_documents.role

product_documents.priority

product_documents.content_length