Post processing settings can be accessed from the Settings > DAM > Automations > Post processing (tab) menu.
Remember that post-processes marked with a * require Visual AI credits.
When a post process automation task is activated, it will run automatically on each upload. If not activated, the task can be manually triggered for certain uploads via the Upload API using the postprocess parameter (e.g., postprocess=remove-background
).
Once a post process is selected, the user is requested to set the following parameters:
When setting up a post-process, trigger rules can be specified. These rules specify conditions that must be met to activate the related task. If left empty, the task will be run on each upload.
Trigger rules are evaluated to determine whether the task is run manually or automatically.
The following variables may be used to construct rules:
As mentioned, the synchronous tasks provide a mechanism to validate uploads using validation rules. Possible actions when conditions have been met are:
Refuse - The upload is rejected.
Notice - A notice is issued, added to the file information and returned in the API response.
Setting up many synchronous tasks might significantly slow down the upload process.
Please note that when marked "Unavailable", a post-process will not run and first it needs to be activated. That happens with a request to our Support Team, and in the meantime, triggering will be prevented regardless of the configuration of the post-process.
When the activation is provided and your account has enough Visual AI credits to run it, the post-process will be applied to all uploads, if the "Run on every upload" option is set to "Enabled".
Refer to the Upload post-processes on the Automation page for a list of available post-processes.
DAM Workflows Management
The Workflows setting can be managed under the menu.
The Workflows feature allows you to automate complex asset management processes. It integrates internal components (such as approval flows and metadata) with external systems (like webhooks or APIs) to streamline asset validation for internal or external use.
To enable Approvals:
Go to the Workflows section.
Toggle the Enable Approvals option.
This setting ensures that assets go through an approval process before moving forward in the workflow.
There are three ways to request an ad hoc approval, all of which lead to the new Approvals tab in the Asset Details Management modal (see below):
Via the asset context menu: Select More actions
> Manage approval
Via the asset thumbnail: Hover over the Approval status and click Manage approval
Via the Library sidebar (info panel): Hover over the Approval status to check the approval status (approved, pending, or rejected)
In the Approvals tab, initiate an approval request as follows:
Click the Request Approval button to open the Request Approval modal.
Complete the request by:
Selecting Approvers: Choose one or more approvers. Users without asset access are muted and cannot be selected. At least one approver is required to enable the Send request button.
Adding an Optional Message: Provide additional context for the approvers.
Setting a Due Date: UTC is automatically detected based on your system settings.
Once the Send Request button is clicked, all approvers receive an alert.
All approvers must approve the request (by the due date if set). Otherwise, it’s rejected.
Once an approval request is active, it can be modified by the original requester or anyone with the necessary permissions (if they’re not listed as an approver).
To make changes:
Navigate from the Summary View to the Detailed View by clicking Manage Approval.
In the Detailed View, you can:
Cancel: Cancels the request, sending notifications to all approvers (and optionally, to the requester).
Edit: Modify approvers, messages, or due dates. At least one approver must remain, and the due date must be in the future.
Only Approvers, selected as such as part of the request, can vote and thus influence the outcome of an approval request.
An approver can have the following statuses, depending on their voting:
Pending
- hasn’t voted yet
Didn't respond
- didn't vote by the due date
Approved
Rejected
Approvers may add an optional message when voting to provide more context or instructions
Approvers see a similar Summary view as the requester but with:
The View and Approve link, leading to the Approver’s Detailed View (where they can vote and leave comments).
No option to create a new request.
Approvers see options to Approve or Reject the request, with an optional comment field to clarify their decision.
Regular users can view approval details but cannot take action or add comments.
The approval status is displayed in the following locations: 1. Asset thumbnails - top right of the thumbnail (only the status; not clickable)
2. Library sidebar - as the last field in the non-editable section of the General tab; when hovering over it, the complete summary tile is displayed; clicking on the CTA takes the user to the Summary view in the Approvals tab
Approval history - Clicking on this Approvals tab shows the summary tile(s) of the approval request.
Parameter | Description |
---|---|
Property | Asset type | Description | Example |
---|---|---|---|
Process | Validation rule | Example |
---|---|---|
Mode
Sets if the post processing is SYNC (synchronous, -during the upload- preventing the asset to actually be stored while it's analysed) or ASYNC (asynchronous, meaning that the analysis job will be queued, allowing for the asset to immediately be available in the library)
Run on every upload
When enabled, the post process will apply to every upload. When disabled, it allows you to prepare, test parameters, and temporarily put on hold the post-process while not losing the configuration.
Trigger rules
Defines conditions under which the post processing will be triggered. If "no trigger rules" is selected, the post processing will trigger with every upload.
Validation rules
(optional)
Some post-process running in sync mode allow to determine attributes for a file that can be used to decide whether or not to take a predetermined validation action at upload (eg. Notice or Refuse the upload)
Image/Video width (px)
images / videos
Horizontal image dimensions / frame size (in pixels).
Image width (px) is smaller than 500
Image/Video height (px)
images / videos
Vertical image dimensions / frame size (in pixels).
Video height (px) is larger or equal than 200
Image format
images
The file type of the image.
Image format contains PNG, JPEG
File size (B)
images / videos
The size of the asset in bytes.
File size (B) is larger than 5000000
Video bitrate (bps)
videos
The video bitrate in bits per second.
Video bitrate (bps) is smaller than 1500000
Video duration (s)
videos
The video duration in seconds.
Video duration (s) is larger than 60
Upload folder path
images / videos
The location in which the asset is getting uploaded.
Upload folder path starts with '/users'
Count faces
Number of faces
Number of faces is smaller than 1 => Refuse
Not Safe For Work
NSFW
Drawing
Hentai
Neutral
Porn
NSFW is larger than 0.70 => Refuse
Recognize number plate
Number of characters in number plate
Number plate content
Number plate content does not start with 'C' => Notice
Recognize text (OCR)
Text contains
Text contains 'Copyright' => Refuse
Validate image properties
Image/Video width (px)
Image/Video height (px)
Image format
File size (B)
Upload folder path
Image width (px) is smaller than 500 => Notice
Validate video properties
Image/Video width (px)
Image/Video height (px)
File size (B)
Video bitrate (bps)
Video duration (s)
Upload folder path
Video bitrate (bps) is smaller than 800000 => Refuse
Webhooks allow you to call a third-party web service upon specific triggers and send all asset data in the JSON body.
The Webhooks can be accessed from the Settings > DAM > Automations > Webhooks menu.
You can add up to 5, individually configured and activated, webhooks.
To set up the webhook, the following information must be provided:
Hostname - The domain name of the third-party API that will be contacted.
Path - The specific path with the Hostname forms the complete target URL (Webhook URL) to which the data will be sent.
A consumer cannot always verify that the webhook it receives is coming from the expected source. Due to this, there are two authentication methods supported:
Basic authentication - The simplest way to verify a webhook. It makes use of a username
and a password
that are used for authentication when sending the data to the Webhook URL.
OAuth2 authentication - A more secure and complex authentication method that allows users to grant limited access to their resources without exposing their credentials. This type of authentication can be used in two ways:
By specifying the Authentication endpoint
, username
and password
to retrieve a temporary token, which is then used in the webhook.
By directly entering the Static bearer token
to use every time without generating a temporary one before the request.
You can specify up to 10 additional headers to be sent to the endpoint with the payload. Those headers will have the classic form name
:value
:
The triggers determine the events that need to happen to execute the webhook. The following ones are available:
On upload - After a successful asset upload.
On move - When the asset location is changed.
On rename - When the asset is renamed.
On delete - When the asset is deleted.
On change meta - When some specific (or any) metadata field is modified to a value (or any).
On change info - When some asset's information (e.g. title, description, etc.) is changed.
On change tag - When the asset's tags are edited.
On change label - When the asset's labels are modified.
There is fine-grained control over which specific asset details are sent as part of the request JSON body to the selected API endpoint. This ensures that only the necessary information to handle the event effectively is communicated. Those details are divided into several categories depending on the asset type:
* those global metadata packages to send along will include everything that is recorded for the asset in each of the 3 categories.
eg. for system metadata, it includes the file hash, labels, etc.
Note that for embedded metadata, it can be very voluminous, please only add if really necessary.
Post processing, Webhooks & Workflows
Automations allow automated actions (background removal, AI-tagging, detecting brand logos, etc.) to be applied to uploaded assets during or after the upload process or by sending the uploaded asset's metadata to an external API endpoint.
The Automation settings are accessible from Settings > DAM > Automations
Automate and enhance asset management with custom tasks triggered on asset upload. Upload post processes are actions that are triggered for a given asset upon its upload into DAM. Post-processing involves running various algorithms and ML models on an asset (e.g., detecting if it contains inappropriate content, counting the number of faces in an image, determining the dominant colours, removing the image background, and many others).
Post-process tasks are automated actions that can be performed in two modes:
Synchronous - The results are evaluated before accepting the upload and returned in the response. The use of this mode is generally preferred in user-generated content (UGC) scenarios where user-uploaded images and videos must be moderated automatically based on several pre-defined criteria.
Asynchronous - The results are evaluated in the background (in a non-blocking manner) after the file has been uploaded. In some cases, depending on the specified post-process type, the result will be appended to the asset's information, tags or metadata.
The following table is a summary of all available post-processing actions:
Process | API name | Supported modes | Description |
---|---|---|---|
Post processes marked with a * require Visual AI credits in order to be executed.
Additional details are available on the tasks' respective pages in the Scaleflex Visual AI section.
Trigger API calls on events, automate workflows and collaborate effortlessly.
Webhooks are a powerful feature in modern web development and API integrations. They allow applications to communicate and exchange data in real-time.
They enable users to trigger API calls to third-party endpoints upon specific events and send relevant asset information.
The concept behind webhooks is based on the "push" model of communication, where data is actively sent to a predefined endpoint, as opposed to the usual "pull" model, where applications need to actively request data from a server.
In the context of DAM, webhooks allow users to integrate external systems, automate workflows, and stay informed about changes and, more generally, actions performed on their assets. When a relevant event takes place, such as a new file upload, file renaming, or file movement, the webhook is triggered, and a POST request is sent to a third-party endpoint, providing details about the affected asset.
This mechanism allows seamless connections with other applications, which enhances collaboration capabilities.
Using webhooks simplifies the delivery of personalized notifications or alerts to assigned recipients whenever essential actions are executed on critical assets. This facilitates prompt responses and efficient communication.
They can also be integrated with project management tools to automatically create tasks, assign responsibilities and track progress whenever assets are uploaded to or moved within the DAM.
Webhook parameter | Description |
---|---|
File (All assets) | Video | Image | Additional |
---|---|---|---|
Process | API name | Supported modes | Description |
---|---|---|---|
Webhook url
Target webhook url to POST event to
Hostname
The domain address of the third party service where to post data
Path
The domain path to post data to
Basic Authentication
Requires a Username and a password
oAuth2 Authentication
Requires an authentication endpoint (with https://), a username and a password
Name
Width
Width
All system metadata*
Size
Height
Height
All custom metadata*
Path
Length (in seconds)
All embedded metadata*
MIME type
Bitrate
CDN link
HLS/DASH playlist URL
File UUID
Calculate blurhash*
blurhash
async
Generates a blurhash (compact representation that can be used as a placeholder) of the image. The result is added to the asset's information.
Count faces*
face-count
sync / async
Returns the number of face(s) detected in the image. Can be used for classification or to ensure the presence / absence of face(s) upon upload.
Extract brand logo *
brand-detect
sync / async
Detects the presence of logos from a database containing thousand of popular brands. The list of recognized brands is included in the file information.
Extract dominant colors*
dominant-color
sync / async
Analyzes the image and returns a palette consisting of the most prominent colors in the image.
Index for face clustering *
face-clustering
async
Adds the image to an index for face clustering.
Index for image similarity search
image-similarities
async
Adds the image to an index for similarity search.
Not Safe For Work*
nsfw
sync / async
Detects adult or explicit content within the image.
Plate number blurring *
plate-blurring
async
Finds and automatically blurs vehicle license plate numbers in the image.
Recognize number plate *
plate-recognition
sync / async
Detects and recognizes car license plates in the image. The result is included in the asset information.
Recognize text (OCR) *
ocr
sync / async
Extracts any text readable in the image.
Remove artifacts (Quality improvement) *
remove-artifacts
async
Removes any JPEG artifacts and improves the quality of the image.
Remove background *
remove-background
sync / async
Removes the background of the image. Useful for products, portraits, etc.
Scene classification *
scene-classification
sync / async
Detects scene categories, attributes and type of environment in the image.
Sport classification *
sport-classification
async
Detect if the provided image depicts a sport activity and add its name to metadata.
Tag with AI *
autotag
async
Performs automatic tag generation for the image.
Validate image properties*
image-properties
sync
Validates if the image meets any number of predefined criteria.
Compress video *
compress
async
Changes the video bitrate and resolution.
Convert video *
convert
async
Converts the video file to another format.
Transcode video *
transcode
sync
Converts the video into adaptive streaming formats (HLS/DASH).
Trim video *
trim
async
Trims the video file based on provided time intervals.
Validate video properties*
video-properties
sync
Validates if the video meets any number of predefined criteria.