Skip to main content
Version: 2026.2

Installation

info

Datahub Webhooks is an enterprise bundle. It requires a Pimcore enterprise subscription.

Prerequisites

The bundle requires Pimcore 2026.1 or later and PHP 8.4 or 8.5.

The bundle declares Datahub, the Studio Backend bundle and the Studio UI bundle as Composer dependencies. Composer pulls them in automatically, and the bundle registers Datahub, the Application Logger bundle, the Static Resolver bundle and the Enterprise Subscription Tools bundle as dependent bundles, so they are loaded without manual bundle ordering.

Loading Datahub this way does not install it. Datahub's own installer creates the plugin_datahub_config permission and the Datahub permission category that Webhooks depends on, so Datahub must be installed on its own, see step 3 below.

Bundle Installation

  1. Install the package:
composer require pimcore/data-hub-webhooks --with-all-dependencies
  1. Enable the bundle in config/bundles.php:
use Pimcore\Bundle\DataHubWebhooksBundle\PimcoreDataHubWebhooksBundle;
// ...

return [
// ...
PimcoreDataHubWebhooksBundle::class => ['all' => true],
// ...
];
  1. Install Datahub, if it is not installed yet. Enabling it as a dependent bundle only loads it, it does not create the plugin_datahub_config permission and the Datahub permission category that Webhooks depends on:
bin/console pimcore:bundle:install PimcoreDataHubBundle
  1. Install the bundle:
bin/console pimcore:bundle:install PimcoreDataHubWebhooksBundle

The installer installs the Application Logger bundle if it is not installed yet, and creates the plugin_datahub_adapter_webhooks user permission described below.

User Permissions

Access to the Webhooks adapter is checked on three levels:

  • Gate permission plugin_datahub_config ("Datahub Configuration"). Required to open the Datahub configuration panel at all. It comes from Datahub and is shared with every adapter. An admin user also has access.
  • Adapter permission plugin_datahub_adapter_webhooks ("Datahub Adapter - Webhooks"). Created by the installer in the Datahub permission category. It controls whether a user may use the Webhooks adapter. Grant it to every user or role that works with webhook configurations.
  • Per-configuration permissions read, update and delete. Granted per user and role in the Permissions tab of a webhook configuration.

Message Queue

Webhook requests are not sent inside the request that triggered the event. Each event dispatches a message, and a Symfony Messenger worker sends the HTTP requests to the subscribers.

Messages use the pimcore_datahub_webhooks transport, so run a worker for it. Without a worker, no subscriber ever receives a request.

bin/console messenger:consume pimcore_datahub_webhooks

See the Symfony Messenger documentation for running workers in production.

Delivery is attempted once. The queue entry is removed as soon as its message has been processed, whether the subscribers answered or not, so a subscriber that was down does not receive the request later. Watch the Logs tab for failures.

The Pimcore maintenance job also dispatches pending queue entries, which picks up work left behind when no worker was running at the time of the event.

These optional settings tune the queue processing:

pimcore_data_hub_webhooks:
messenger_queue_processing:
worker_count: 3
worker_item_count: 400
worker_count_lifetime: 3600
SettingDefaultDescription
worker_count3Maximum number of parallel worker messages for queue processing.
worker_item_count400Number of items processed per worker message.
worker_count_lifetime3600Lifetime in seconds of the tmp store entry holding the current worker count. After it expires, the value is cleared.

Extending the Selectable Element Types

The Events & Schema tab offers a fixed list of Document and Asset types. Override the list to add custom types, for example Headless Documents.

pimcore_data_hub_webhooks:
schema:
definitions:
documents: ['Page', 'Snippet', 'Email', 'Folder', 'Hardlink', 'Link', 'Newsletter', 'PrintContainer', 'PrintPage', 'MyCustomType']
assets: ['Image', 'Audio', 'Archive', 'Folder', 'Document', 'Text', 'Unknown', 'Video']
warning

The configuration replaces the default list rather than adding to it. Repeat every type you want to keep.

See Events and Schema for the defaults.

Next Steps

Follow Getting Started to build a first webhook configuration.