The Automation page turns manual sync into hands-off sync. It has two independent halves — Export (Directus → Localazy) and Import (Localazy → Directus).

Requirements #️⃣

Automated import needs the companion @localazy/directus-extension-localazy-automation bundle installed in your Directus instance. Without it, the page shows a warning and a link to the installation guide, and Localazy webhook events can’t be received.

The bundle is a non-sandboxed extension. To install it from the Marketplace, set MARKETPLACE_TRUST=all in your Directus configuration and restart. Manual (npm install) installs don’t need the flag. See Introduction & Installation.

When the bundle is present, the page shows its version and the settings below. Remember to click Save changes after editing.

Export (Directus → Localazy) #️⃣

Triggered by changes to translatable content inside Directus.

  • Enable automated export — when on, content saved in Directus is pushed to Localazy automatically (create and update events on translatable collections and translation strings).
  • Also deprecate Localazy source keys on Directus delete — a sub-behaviour of automated export. When on, deleting a translatable entry in Directus marks the matching Localazy source keys as deprecated rather than leaving them active. If export is off, deletes are never propagated regardless of this setting.

Import (Localazy → Directus) #️⃣

Triggered by Localazy’s project_published webhook.

  • Enable automated import — when on, Directus imports translations from Localazy every time the project_published event fires. Requires the automation bundle and a registered webhook (below).
  • Webhook user (Admin role required) — webhook-driven writes are attributed to this Directus user, so it must have an Admin role (full schema access). Only Admin-role users are listed. The bundle refuses to act on webhook events until this is set.
  • Languages to import on webhook event — leave empty to import all languages configured for the project (same as the Import button), or pick a subset. Codes that later disappear from the Localazy project are silently skipped.

Webhook registration #️⃣

Automated import relies on a webhook: Localazy calls your Directus site whenever translations are published.

  1. Make sure your Directus instance is reachable from the public internet. Local URLs need a tunnel such as ngrok.
  2. Confirm the webhook URL. It defaults to your current origin plus the bundle’s path (/localazy-automation/transfer/download). If Directus runs behind a reverse proxy or at a sub-path, edit it to match your public hostname.
  3. Confirm. The plugin registers the webhook on Localazy for this project. Any other webhooks you’ve configured remain untouched — the plugin only manages its own entry.

Use Set up webhook to register, Reconfigure to change the URL, or Remove webhook to stop Localazy posting events.