Collections

A list of available Duda Webhook Events.

Collections

All webhooks related to collection events are listed below.

Collection Created

A notification is sent when a collection is created. A collection can be created inside the Duda editor or via the create collection API endpoint. Event type: COLLECTION_CREATED

{
  "data": {
    "name": "new_collection",
    "fields": [
      {
        "name": "new field",
        "type": "text"
      }
    ],
    "static_page_bindable": false,
    "external_details": {
      "enabled": false
    }
  },
  "source": null,
  "resource_data": {
    "site_name": "db30fe2f"
  },
  "event_timestamp": 1732221902551,
  "event_type": "COLLECTION_CREATED"
}
NameTypeDescription
data.namestringThe name of the collection
data.fieldsarrayList of collections fields and types
data.external_detailsobjectObject detailing whether the collection is internal or external

Collection Updated

A notification is sent when a collection is updated. An update can be triggered inside the Duda editor or via the update collection API endpoint. Event type: COLLECTION_UPDATED

{
  "data": {
    "name": "updated_collection",
    "fields": [
      {
        "name": "new field",
        "type": "text"
      }
    ],
    "static_page_bindable": false,
    "external_details": {
      "enabled": false
    }
  },
  "source": null,
  "resource_data": {
    "site_name": "db30fe2f"
  },
  "event_timestamp": 1732222655860,
  "event_type": "COLLECTION_UPDATED"
}
NameTypeDescription
data.namestringThe name of the collection
data.fieldsarrayList of collections fields and types
data.external_detailsobjectObject detailing whether the collection is internal or external

Collection Data Changed

A notification is sent when a collection's data is updated. A collection data update can be triggered inside the Duda editor or via the update collection row API endpoint. Event type: COLLECTION_DATA_CHANGED

📘

Granular Row Webhooks

When rows are added, updated, or deleted in user-defined collections, Duda emits the corresponding COLLECTION_ROW_ADDED, COLLECTION_ROW_UPDATED, or COLLECTION_ROW_DELETED event alongside COLLECTION_DATA_CHANGED. Operations that do not add, modify, or destroy rows (such as reordering rows or removing a field from all rows) emit only COLLECTION_DATA_CHANGED.

{
  "data": {
    "collection_name": "updated_collection"
  },
  "source": null,
  "resource_data": {
    "site_name": "db30fe2f"
  },
  "event_timestamp": 1732222971476,
  "event_type": "COLLECTION_DATA_CHANGED"
}
NameTypeDescription
data.collection_namestringThe name of the collection that had its data updated
resource_data.site_namestringThe name of the site that the collection had its data updated on
📘

Row Status

Where collection row payloads are returned or referenced in event data, each internal collection row carries a status property (ACTIVE, PREVIEW, or DRAFT).

Collection Deleted

A notification is sent when a collection is deleted. A collection deletion can be triggered inside the Duda editor or via the delete collection API endpoint. Event type: COLLECTION_DELETED


  "data": {
    "name": "updated_collection"
  },
  "source": null,
  "resource_data": {
    "site_name": "db30fe2f"
  },
  "event_timestamp": 1732223181957,
  "event_type": "COLLECTION_DELETED"
}
NameTypeDescription
data.collection_namestringThe name of the collection that was deleted
resource_data.site_namestringThe name of the site that the collection was deleted on

Collection Row Added

A notification is sent when one or more rows are added to a collection. Event type: COLLECTION_ROW_ADDED

📘

Note

Emitted only for user-defined collections (store/catalog and inner collections are excluded). A single event is emitted per API call or operation (such as a CSV import), containing all affected row IDs. This event is emitted alongside the generic COLLECTION_DATA_CHANGED event.

{
  "event_type": "COLLECTION_ROW_ADDED",
  "data": {
    "collection_name": "faqs",
    "collection_id": "abc123",
    "row_ids": [
      "9d885461-f992-49da-b271-680a4ad69cf7"
    ],
    "row_count": 1
  },
  "source": null,
  "resource_data": {
    "site_name": "<site_alias>",
    "site_display_name": "<display_name>",
    "default_domain": "<default_duda_domain>",
    "domain": "<custom_domain>"
  },
  "event_timestamp": 1790148602165
}
NameTypeDescription
data.collection_namestringThe name of the collection.
data.collection_idstringThe collection's site-scoped ID. Unlike collection_name, it survives a collection rename. Key off this ID for a stable reference.
data.row_idsarrayAn array of string IDs naming every row touched by the change. Bounded by the collection's row limit (siteCollection.internal.maxRows, 500 by default).
data.row_countintegerThe length of row_ids.
resource_data.site_namestringThe unique site name / alias.
resource_data.site_display_namestringThe display name of the site.
resource_data.default_domainstringThe default Duda domain of the site.
resource_data.domainstringThe custom domain assigned to the site.

Collection Row Updated

A notification is sent when one or more rows in a collection are updated. Event type: COLLECTION_ROW_UPDATED

📘

Note

Covers both editing a row and clearing an individual cell (because the row survives, clearing a cell is reported as an update, not a deletion). Emitted only for user-defined collections (store/catalog and inner collections are excluded). A single event is emitted per API call, containing all affected row IDs. This event is emitted alongside the generic COLLECTION_DATA_CHANGED event.

{
  "event_type": "COLLECTION_ROW_UPDATED",
  "data": {
    "collection_name": "faqs",
    "collection_id": "abc123",
    "row_ids": [
      "9d885461-f992-49da-b271-680a4ad69cf7"
    ],
    "row_count": 1
  },
  "source": null,
  "resource_data": {
    "site_name": "<site_alias>",
    "site_display_name": "<display_name>",
    "default_domain": "<default_duda_domain>",
    "domain": "<custom_domain>"
  },
  "event_timestamp": 1790148602165
}
NameTypeDescription
data.collection_namestringThe name of the collection.
data.collection_idstringThe collection's site-scoped ID. Unlike collection_name, it survives a collection rename. Key off this ID for a stable reference.
data.row_idsarrayAn array of string IDs naming every row touched by the change. Bounded by the collection's row limit (siteCollection.internal.maxRows, 500 by default).
data.row_countintegerThe length of row_ids.
resource_data.site_namestringThe unique site name / alias.
resource_data.site_display_namestringThe display name of the site.
resource_data.default_domainstringThe default Duda domain of the site.
resource_data.domainstringThe custom domain assigned to the site.

Collection Row Deleted

A notification is sent when one or more rows are deleted from a collection. Event type: COLLECTION_ROW_DELETED

📘

Note

Carries row IDs only. A deleted row cannot be read back through the API, so consumers should reconcile these IDs against rows they already track. Emitted only for user-defined collections (store/catalog and inner collections are excluded). A single event is emitted per API call, containing all affected row IDs. This event is emitted alongside the generic COLLECTION_DATA_CHANGED event.

{
  "event_type": "COLLECTION_ROW_DELETED",
  "data": {
    "collection_name": "faqs",
    "collection_id": "abc123",
    "row_ids": [
      "9d885461-f992-49da-b271-680a4ad69cf7"
    ],
    "row_count": 1
  },
  "source": null,
  "resource_data": {
    "site_name": "<site_alias>",
    "site_display_name": "<display_name>",
    "default_domain": "<default_duda_domain>",
    "domain": "<custom_domain>"
  },
  "event_timestamp": 1790148602165
}
NameTypeDescription
data.collection_namestringThe name of the collection.
data.collection_idstringThe collection's site-scoped ID. Unlike collection_name, it survives a collection rename. Key off this ID for a stable reference.
data.row_idsarrayAn array of string IDs naming every row touched by the change. Bounded by the collection's row limit (siteCollection.internal.maxRows, 500 by default).
data.row_countintegerThe length of row_ids.
resource_data.site_namestringThe unique site name / alias.
resource_data.site_display_namestringThe display name of the site.
resource_data.default_domainstringThe default Duda domain of the site.
resource_data.domainstringThe custom domain assigned to the site.

Did this page help you?