# Workflow Actions

Workflow action events represent the execution of individual actions within a triggered workflow task. Each action corresponds to a configured step in a policy workflow—such as synchronizing identities, managing group memberships, or sending notifications.

These APIs correspond to the **Workflow Actions** tab on the [Activity Log](/4yItIzMvkpAvMVFAamTf/features/lifecycle-management/getting-started/activity-log.md) page in the Veza UI.

**Workflow Action APIs** help you:

* Drill into specific action executions within a workflow task
* Identify which action step failed when a workflow errors
* Track how many integration jobs each action dispatched
* Export action event history for auditing

## Endpoints

| Method | Endpoint                                      | Description                                               |
| ------ | --------------------------------------------- | --------------------------------------------------------- |
| GET    | [List Action Events](#list-action-events)     | Retrieve a paginated list of action events                |
| GET    | [Get Action Event](#get-action-event)         | Retrieve a single action event by task ID and action name |
| POST   | [Export Action Events](#export-action-events) | Export action events to a downloadable file               |

## Key Concepts

### Action Types

The `action_type` field indicates what operation was performed:

| Value                  | Description                                                |
| ---------------------- | ---------------------------------------------------------- |
| `NONE`                 | No action type specified                                   |
| `SYNC_IDENTITIES`      | Synchronize identity attributes to a target system         |
| `MANAGE_RELATIONSHIPS` | Add or remove identity from groups, roles, or entitlements |
| `CREATE_EMAIL`         | Create an email address for the identity                   |
| `DEPROVISION_IDENTITY` | Deprovision (disable) an identity                          |
| `ACCESS_PLAN`          | Action controlled via an Access Plan                       |
| `WRITE_BACK_EMAIL`     | Write back an email address to an HRIS system              |
| `PAUSE`                | Pause workflow execution for a configured duration         |
| `SEND_NOTIFICATION`    | Send a notification                                        |
| `CUSTOM_ACTION`        | Execute a custom action (e.g., write ServiceNow table)     |
| `CREATE_ENTITLEMENT`   | Create a role or group in the target system                |
| `CREATE_ACCESS_REVIEW` | Create an access review campaign                           |
| `RESET_PASSWORD`       | Reset the identity's password                              |
| `DELETE_IDENTITY`      | Permanently delete an identity                             |
| `SEND_REST_PAYLOAD`    | Send a formatted REST API payload                          |

### Action States

Action events use the same state model as workflow tasks (`INITIAL`, `RUNNING`, `COMPLETED`, `ERRORED`, `SKIPPED`, etc.). See [Triggered Workflows](/4yItIzMvkpAvMVFAamTf/developers/api/lifecycle-management/activitylog/triggeredworkflows.md#task-states) for the full state reference.

## List Action Events

### Endpoint

```sh
GET /api/private/lifecycle_management/action_events
```

### Description

Retrieve a paginated list of action events across all policies and workflows. Supports SCIM-style filtering, ordering, and pagination.

### Filterable Fields

| Field              | Operators      | Description                         |
| ------------------ | -------------- | ----------------------------------- |
| `state`            | eq             | Current execution state             |
| `policy_task`      | eq             | Parent workflow task ID             |
| `action_name`      | eq, co         | Action name (case-insensitive)      |
| `action_type`      | eq             | Type of action executed             |
| `policy_id`        | eq             | Policy ID                           |
| `workflow_name`    | eq, co         | Workflow name                       |
| `identity_id`      | eq, co, sw, ew | Identity ID                         |
| `identity_name`    | eq, co, sw, ew | Identity name (case-insensitive)    |
| `started_at`       | gt, ge, lt, le | Action start time                   |
| `completed_at`     | gt, ge, lt, le | Action completion time              |
| `any_changes`      | eq             | Whether the action made any changes |
| `extraction_event` | eq             | Extraction event ID                 |
| `jobs_started`     | eq             | Number of jobs dispatched           |

### API Reference

{% openapi src="/files/Aco9gj4MY2XoNiD4zIjr" path="/api/private/lifecycle\_management/action\_events" method="get" %}
[openapi.yaml](https://1967633068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZDkWMxox3pekd0NsZJ%2Fuploads%2Fgit-blob-f5344805587160cf141bde637e04e03e2aa86778%2Fopenapi.yaml?alt=media)
{% endopenapi %}

### Request Example

```bash
curl -X GET "https://your-tenant.vezacloud.com/api/private/lifecycle_management/action_events?filter=state%20eq%20%22ERRORED%22&page_size=50" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

## Get Action Event

### Endpoint

```sh
GET /api/private/lifecycle_management/action_events/{workflow_task}/{action_name}
```

### Description

Retrieve a single action event by specifying the parent workflow task ID and the action name. The `workflow_task` path parameter corresponds to the `policy_task` field in the response (a historical naming convention).

### API Reference

{% openapi src="/files/Aco9gj4MY2XoNiD4zIjr" path="/api/private/lifecycle\_management/action\_events/{workflow\_task}/{action\_name}" method="get" %}
[openapi.yaml](https://1967633068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZDkWMxox3pekd0NsZJ%2Fuploads%2Fgit-blob-f5344805587160cf141bde637e04e03e2aa86778%2Fopenapi.yaml?alt=media)
{% endopenapi %}

### Request Example

```bash
curl -X GET "https://your-tenant.vezacloud.com/api/private/lifecycle_management/action_events/task-abc-123/Sync%20AD%20Attributes" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

## Export Action Events

### Endpoint

```sh
POST /api/private/lifecycle_management/action_events:export
```

### Description

Export action events matching a filter to a downloadable CSV file. The request body wraps the same filter and ordering parameters used by the List endpoint.

### API Reference

{% openapi src="/files/Aco9gj4MY2XoNiD4zIjr" path="/api/private/lifecycle\_management/action\_events:export" method="post" %}
[openapi.yaml](https://1967633068-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZDkWMxox3pekd0NsZJ%2Fuploads%2Fgit-blob-f5344805587160cf141bde637e04e03e2aa86778%2Fopenapi.yaml?alt=media)
{% endopenapi %}

### Request Example

```bash
curl -X POST "https://your-tenant.vezacloud.com/api/private/lifecycle_management/action_events:export" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "body": {
      "filter": "action_type eq \"MANAGE_RELATIONSHIPS\"",
      "order_by": "started_at desc"
    },
    "format": "CSV"
  }'
```

## Authentication

All Workflow Action API requests require authentication. See [API Authentication](/4yItIzMvkpAvMVFAamTf/developers/api/authentication.md) for details.

## Related Documentation

* [Activity Log](/4yItIzMvkpAvMVFAamTf/features/lifecycle-management/getting-started/activity-log.md)
* [Conditions and Actions](/4yItIzMvkpAvMVFAamTf/features/lifecycle-management/policies-workflows/actions.md)
* [Triggered Workflows](/4yItIzMvkpAvMVFAamTf/developers/api/lifecycle-management/activitylog/triggeredworkflows.md)
* [Integration Jobs](/4yItIzMvkpAvMVFAamTf/developers/api/lifecycle-management/activitylog/integrationjobs.md)
* [Events](/4yItIzMvkpAvMVFAamTf/developers/api/lifecycle-management/activitylog/events.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/lifecycle-management/activitylog/workflowactions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
