Translations for Product Updates
Automate translations when updating a product.
Automate the translation process for product updates by modifying the New Product Introduction value stream to trigger on product updates instead of product creation. This template helps you ensure that products are only translated once, preventing duplicate translation processes and improving efficiency.
Key features
Conditional processing
Ensures the translation process only runs for untranslated products using mixin-based tracking.
Update-based trigger
Responds to product update events instead of creation events, providing more flexibility.
Translation tracking
Uses custom mixins to track which products have been processed, preventing duplicate translations.
Efficient automation
Automatically skips already-translated products, reducing unnecessary processing.
This template modification of the New Product Introduction value stream includes the following configuration:
Trigger on
product.updatedevents instead ofproduct.createdeventsAdd a condition to check if a product has already been translated
Mark products as translated after the translation process completes
The process uses a custom mixin (TranslationValueStream) to track whether a product has been processed, ensuring the translation workflow only runs for products that need translation.
Prerequisites
Before setting up this process, ensure you have:
A new New product introduction value stream
Access to the Mixin Schema MD Module
Access to the scenario module "Update product with translation"
Value stream configuration
Modify the process trigger
Change the process trigger from Product Created to Product Updated. You can do the change directly in VSM, or later in Management Dashboard.
In VSM, change the trigger by editing it's configuration and choosing
product updatedfrom the events list. Save your changes.

In MD, go to Orchestration -> Value Streams and select your process. Change the
product.createdtoproduct.updatedevent for the trigger.

Create the custom mixin schema
The mixin is used to track whether a product has already gone through the translation process.
Add the pre-execution condition
To prevent the process from running on products that are already translated, add a condition to the value stream that checks for the existence and value of the isTranslated flag within the TranslationValueStream mixin.
The condition ensures the value stream only starts if:
The
TranslationValueStream.isTranslatedfield is missing (i.e., it's a new product or one never processed), ORThe
isTranslatedfield is present but set tofalse.
Condition to add:

Modify the scenario to mark products as translated
After the translation process is complete, the product must be marked as translated by adding the mixin.
Add a PATCH call
After the step that performs the actual translation (or as a final step in the scenario), add a new action. This action must be a PATCH API call to the Product endpoint, setting the TranslationValueStream mixin with isTranslated set to true.
PATCH Call Details:
Method - PATCH
Endpoint -
/products/{productId}(using context ID)Body - See the payload structure below
The scenario already includes one Make an API Call module, do not modify it.

It should be left as it is - clone the module and paste the clone at the end of the process.

Modify the module's body:
The TranslationValueStream link should point to the schema you created for your tenant. For example: https://res.cloudinary.com/saas-ag/raw/upload/schemata2/featuredemo/694172749688306411960eaf_v1.json.
The link pattern is https://res.cloudinary.com/saas-ag/raw/upload/schemata2/yourtenant/yourschemaid.json.
You can also copy the link from the GET response - open your schema in MD and check the response through inspect. Your schema URL is visible in metadata, you can copy it from there.

Verification and testing
After setting up the process, verify it works correctly with the following test cases:
New Product Creation
Value stream runs (triggered by Product Updated following creation); translation module executes; mixin is added.
isTranslated is missing → TRUE
Update Untranslated Product
Value stream runs; translation module executes; mixin is added/updated.
isTranslated is false → TRUE
Update Translated Product
Value stream does not run (stopped by pre-execution condition).
isTranslated is true → FALSE
Last updated
Was this helpful?






