Smart Action Definitions
Define filter-based actions that reviewers can apply to certifications results with a matching attribute or status.
Reviewers can view and apply custom actions from the Review interface by clicking Smart Action > Prepared Actions.
Add smart action definition
Create a smart action definition, globally or for a single Workflow.
POST /api/preview/awf/smart_action_definitions HTTP/1.1
Host:
Bearer: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 1500
{
"name": "text",
"description": "text",
"workflow_id": "text",
"filter": "text",
"mutable_fields": {
"decision": "RESULT_DECISION_UNKNOWN",
"notes": "text",
"updated_at": "2025-07-12T00:20:00.141Z",
"updated_by": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"notification_infos": {
"values": [
{
"notification_type": "WEBHOOK",
"webhook_type": "GENERIC",
"status": "UNKNOWN",
"error_message": "text",
"updated_at": "2025-07-12T00:20:00.141Z",
"snow_info": {
"ticket_number": "text",
"sys_id": "text"
},
"webhook_info": {
"info": "text"
}
}
]
},
"notification_status": "UNKNOWN",
"reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"signed_off_state": "UNKNOWN",
"signed_off_at": "2025-07-12T00:20:00.141Z",
"signed_off_by": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"action_log": {
"entries": [
{
"action": "UNKNOWN",
"user": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"time": "2025-07-12T00:20:00.141Z",
"note": "text",
"reviewer_detail": {
"old_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"new_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
]
},
"decision_detail": {
"decision": "RESULT_DECISION_UNKNOWN",
"note": "text"
}
}
]
},
"reviewer_assignment": {
"users_manager": true,
"resource_managers": true,
"reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"fallback_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
]
},
"automation_run_ids": [
"text"
]
},
"mutable_filter": "text",
"apply_to_all_rows": true
}
{
"id": "text"
}
A certification result includes all source and destination node properties discovered or added by Veza. You can specify a SCIM filter to select the results to affect, for example:
Example request:
curl -X POST "https://{{veza_url}}/api/preview/awf/smart_action_definitions" \
-H 'authorization: Bearer {{access_token}}' \
-d '{
"apply_to_all_rows": "false",
"description": "Reject users where the user `is active` value is not `true`",
"filter": "source.is_active ne \"true\"",
"mutable_fields": {
"decision": "RESULT_DECISION_REJECTED"
},
"mutable_filter": "",
"name": "Reject inactive users",
"workflow_id": ""
}'
The filter can apply to any source or destination node property.
When apply_to_all_rows
is true
and no other filter criteria is specified, the action will run on all certification results.
Mutable fields and mutable filters
Mutable fields contain result attributes that are not sourced from Authorization Graph data. Use mutable_fields
to apply changes to a result, and mutable_filter
to filter results based on decision or sign-off state:
{
"apply_to_all_rows": "false",
"description": "Sign off on all rejected rows",
"filter": "",
"mutable_fields": {
"signed_off_state": "SIGNED_OFF"
},
"mutable_filter": "decision eq \"RESULT_DECISION_REJECTED\"",
"name": "Sign off rejected rows",
"workflow_id": ""
}
decision
One of: "RESULT_DECISION_UNKNOWN" "RESULT_DECISION_NONE" "RESULT_DECISION_ACCEPTED" "RESULT_DECISION_REJECTED" "RESULT_DECISION_FIXED"
notes
string
signed_off_state
One of: "UNKNOWN" "NOT_SIGNED_OFF" "SIGNED_OFF"
Remove a smart action definition
Delete a prepared action by definition id
.
DELETE /api/preview/awf/smart_action_definitions/{id} HTTP/1.1
Host:
Bearer: YOUR_API_KEY
Accept: */*
{}
List smart action definitions
Returns an array of smart action definitions. By default, this endpoint lists all definitions. If a workflow_id
is specified, only definitions for that workflow are included in the response.
If no value is passed for workflow_id, all smart actions will be returned. If workflow_id is not "", smart actions with a matching workflow_id or with an empty workflow_id will be returned.
GET /api/preview/awf/smart_action_definitions HTTP/1.1
Host:
Bearer: YOUR_API_KEY
Accept: */*
{
"values": [
{
"id": "text",
"description": "text",
"name": "text",
"workflow_id": "text",
"filter": "text",
"mutable_fields": {
"decision": "RESULT_DECISION_UNKNOWN",
"notes": "text",
"updated_at": "2025-07-12T00:20:00.141Z",
"updated_by": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"notification_infos": {
"values": [
{
"notification_type": "WEBHOOK",
"webhook_type": "GENERIC",
"status": "UNKNOWN",
"error_message": "text",
"updated_at": "2025-07-12T00:20:00.141Z",
"snow_info": {
"ticket_number": "text",
"sys_id": "text"
},
"webhook_info": {
"info": "text"
}
}
]
},
"notification_status": "UNKNOWN",
"reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"signed_off_state": "UNKNOWN",
"signed_off_at": "2025-07-12T00:20:00.141Z",
"signed_off_by": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"action_log": {
"entries": [
{
"action": "UNKNOWN",
"user": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"time": "2025-07-12T00:20:00.141Z",
"note": "text",
"reviewer_detail": {
"old_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"new_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
]
},
"decision_detail": {
"decision": "RESULT_DECISION_UNKNOWN",
"note": "text"
}
}
]
},
"reviewer_assignment": {
"users_manager": true,
"resource_managers": true,
"reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"fallback_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
]
},
"automation_run_ids": [
"text"
]
},
"mutable_filter": "text",
"apply_to_all_rows": true
}
]
}
Update a smart action definition
Alter a smart action definition by specifying the id
and an array of values
to change.
PUT /api/preview/awf/smart_action_definitions HTTP/1.1
Host:
Bearer: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 1522
{
"value": {
"id": "text",
"description": "text",
"name": "text",
"workflow_id": "text",
"filter": "text",
"mutable_fields": {
"decision": "RESULT_DECISION_UNKNOWN",
"notes": "text",
"updated_at": "2025-07-12T00:20:00.141Z",
"updated_by": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"notification_infos": {
"values": [
{
"notification_type": "WEBHOOK",
"webhook_type": "GENERIC",
"status": "UNKNOWN",
"error_message": "text",
"updated_at": "2025-07-12T00:20:00.141Z",
"snow_info": {
"ticket_number": "text",
"sys_id": "text"
},
"webhook_info": {
"info": "text"
}
}
]
},
"notification_status": "UNKNOWN",
"reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"signed_off_state": "UNKNOWN",
"signed_off_at": "2025-07-12T00:20:00.141Z",
"signed_off_by": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"action_log": {
"entries": [
{
"action": "UNKNOWN",
"user": {
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
},
"time": "2025-07-12T00:20:00.141Z",
"note": "text",
"reviewer_detail": {
"old_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"new_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
]
},
"decision_detail": {
"decision": "RESULT_DECISION_UNKNOWN",
"note": "text"
}
}
]
},
"reviewer_assignment": {
"users_manager": true,
"resource_managers": true,
"reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
],
"fallback_reviewers": [
{
"user_type": "text",
"id": "text",
"email": "text",
"name": "text"
}
]
},
"automation_run_ids": [
"text"
]
},
"mutable_filter": "text",
"apply_to_all_rows": true
}
}
{}
Last updated
Was this helpful?