2 min read

What are the system collection triggers for Hook extensions?

To use system collections, remove the directus prefix from the name, followed by the required action/filter such as .update. See a full list of triggers here.

Hook extensions function on a trigger such as an action or filter when an item is created, updated or deleted. Normally you would use something like item.create as the trigger, however, this does not include system collections. This article will show you how to use system collections in a hook extension.

To use system collections, you'll need to remove the directus_ prefix from the name, followed by the required action/filter such as .update.

Here is an example of hook extension that runs whenever the settings change:

export default defineHook(({ action }) => {

  action('settings.update', async ({ collection, payload }) => {

  });
});

System collections triggers

Here is a list of system collection triggers:

directus_access
  access.create
  access.read
  access.update
  access.delete
  
directus_activity
  activity.create
  activity.read
  activity.update
  activity.delete
  
directus_collections
  collections.create
  <does not emit read>
  collections.update
  collections.delete

directus_dashboards
  dashboards.create
  dashboards.read
  dashboards.update
  dashboards.delete

directus_fields
  fields.create
  <does not emit read>
  fields.update
  fields.delete

directus_files
  files.upload
  files.update
  files.delete
  Note: not triggered by file upload. Only metadata

directus_flows
  flows.create
  flows.read
  flows.update
  flows.delete

directus_folders
  folders.create
  folders.read
  folders.update
  folders.delete

directus_notifications
  notifications.create
  notifications.read
  notifications.update
  notifications.delete

directus_operations
  operations.create
  operations.read
  operations.update
  operations.delete

directus_panels
  panels.create
  panels.read
  panels.update
  panels.delete

directus_permissions
  permissions.create
  permissions.read
  permissions.update
  permissions.delete

directus_policies
  policies.create
  policies.read
  policies.update
  policies.delete

directus_presets
  presets.create
  presets.read
  presets.update
  presets.delete

directus_relations
  relations.create
  relations.read
  relations.update
  <does not emit delete>

directus_revisions
  revisions.create
  revisions.read
  revisions.update
  revisions.delete

directus_roles
  roles.create
  roles.read
  roles.update
  roles.delete

directus_settings
  <singleton collection, no create>
  settings.read
  settings.update
  settings.delete

directus_shares
  shares.create
  shares.read
  shares.update
  shares.delete

directus_translations
  translations.create
  translations.read
  translations.update
  translations.delete

directus_users
  users.create
  users.read
  users.update
  users.delete

directus_versions
  versions.create
  versions.read
  versions.update
  versions.delete

directus_webhooks
  webhooks.create
  webhooks.read
  webhooks.update
  webhooks.delete

Documentation for Hook Extensions

Hooks | Directus Docs
Explore our resources and powerful data engine to build your projects confidently.
Send me a coffee

By continuing to use our website, you consent to use essential cookies. We also use optional tracking cookies which help us gather statistics to improve our services. Do you consent to these cookies?

I Consent Do not track