workflows.fit
Back to n8n workflows
n8n templateFreeBy Roger

Translate WordPress posts and ACF fields using DeepL and OpenAI

Who it is for This workflow is designed for developers, content managers, and website administrators managing multilingual WordPress sites. It is highly beneficial for websites built with complex Advanced Custom Field...

DevelopmentCore NodesUtilityWebhookHttp RequestFunctionOpen Ai
Loading interactive preview...

Template notes

Who it is for

This workflow is designed for developers, content managers, and website administrators managing multilingual WordPress sites. It is highly beneficial for websites built with complex Advanced Custom Fields (ACF) or custom Gutenberg layouts that standard translation plugins often struggle to process efficiently.

How it works

When a post is created or updated, WordPress triggers a webhook to start the workflow. The workflow fetches the raw post JSON directly from the WordPress REST API. An OpenAI node analyzes a text snippet to detect the exact source language, ensuring it only routes and translates into missing target languages to prevent duplication. A code node then recursively extracts text from both standard fields and specific ACF fields into a single array. These strings are translated in bulk via DeepL, maintaining HTML formatting. Finally, the workflow rebuilds the original JSON structure with the translated text and pushes it back to WordPress as a newly linked translation draft.

Requirements

- WordPress Application Password (for HTTP Basic Auth) - OpenAI API Key - DeepL API Key - A WordPress plugin capable of firing webhooks on post updates (e.g., WP Webhooks)

How to set up

1. Configure the Webhook node and point your WordPress webhook plugin to the provided test/production URL. 2. Add your HTTP Basic Auth credentials (WP Admin Username and App Password) to the WordPress request nodes. 3. Add your OpenAI API key and DeepL API key to their respective nodes. 4. Update the base URL in the HTTP nodes to point to your actual WordPress domain.