Asset Approval Workflow with External Agency and Version Control
A marketing team collaborates with an external agency to produce product images. The agency uploads images to a dedicated folder in AEM Assets. The internal team must review and approve each image before it can be used on the website. The agency often uploads revised versions of images, and the team needs to ensure that only the latest approved version is used. Currently, there is no formal workflow; approvals happen via email, and sometimes outdated images are published. The team wants to automate the approval process, track which version was approved, and prevent unapproved images from being published. The agency should be able to upload but not publish. The internal reviewers should receive notifications when new assets are uploaded. The solution should integrate with existing AEM workflows and not require custom code if possible.
1. Design a workflow and permissions setup to ensure only approved versions of images are published, and the agency can upload but not publish.
Read the worked answer
Create a custom workflow model that triggers on asset upload to the agency folder. The workflow should assign a review task to a group of internal reviewers. Use the 'DAM Update Asset' workflow as a base or create a new one. Set up a workflow step that sends an email notification to reviewers. After approval, the workflow should set a metadata property (e.g., 'approvalStatus=approved') and optionally move the asset to a 'published' folder or trigger replication. To prevent unapproved assets from being published, restrict publish permissions on the agency folder to only the internal publisher group. The agency group should have read/write/create permissions on the folder but not replicate. Use ACLs to deny replication for the agency group. For version control, enable versioning on the folder and ensure the workflow checks the latest version. Reviewers can use the timeline to see versions. The workflow can be configured to only approve the latest version by checking if the current version is the latest before setting approval. Use the 'Version Purge' settings to keep versions. This uses out-of-the-box workflow steps and permissions, minimal custom code.
2. How would you ensure that when the agency uploads a revised version, the approval process is re-triggered and the previous approval is invalidated?
Read the worked answer
Configure the workflow to trigger on any modification to the asset, not just initial upload. In the workflow, add a step that resets the 'approvalStatus' metadata to 'pending' whenever a new version is created. This can be done with a workflow process step that sets the property. Alternatively, use a launcher that triggers on version creation. The workflow should then assign a new review task. To invalidate previous approval, ensure that the publish process checks the 'approvalStatus' and only publishes if it's 'approved' and the version matches the latest. You can also use the 'Version' node to store which version was approved, and on publish, compare the current version with the approved version. If they differ, block publish. This can be enforced with a custom replication preprocessor, but if custom code is to be avoided, use a workflow that on new version, removes the approved status and sets to pending. Then the publish action is only available after approval. Since the agency cannot publish, they can't bypass. The internal publisher will only publish after approval, and the workflow ensures status is current.