# Task setup and workflow failures

Source: https://neondeerdata.com/docs/api/automations/

Repeat Workflow automations task setup and review or acknowledge workflow failures.

The APIs on this page require alpha access for your organization. App availability and API access are separate. [Check access and permissions](https://neondeerdata.com/docs/api/permissions/).

## Get Workflow automations task setup

```http
GET /v1/scheduled-runs/workflow-automations/task-setup

```

Gets whether Workflow automations in Attio is set up for tasks, and its latest task setup run: its state, when it started and ended, and how many tasks it went through. Only ids, times and states come back: never a task, a record, a workflow's name or a person's name.

Requires `scheduled_runs:config:read`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `get_workflow_automations_task_setup`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

No request parameters are needed.

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field             | Type                                                                        | Required in object | Notes          |
| -------------------------- | --------------------------------------------------------------------------- | ------------------ | -------------- |
| `data`                     | object                                                                      | Yes                |                |
| `data.object`              | `"task_setup"`                                                              | Yes                |                |
| `data.registered`          | boolean                                                                     | Yes                |                |
| `data.run`                 | object or null                                                              | Yes                |                |
| `data.run.id`              | string                                                                      | Yes                | Alternative 1. |
| `data.run.state`           | `"running"`, `"waiting"`, `"complete"`, `"failed"`, `"canceled"`            | Yes                | Alternative 1. |
| `data.run.trigger`         | `"first_setup"`, `"customer_rerun"`, `"admin_resume"`, `"admin_start_over"` | Yes                | Alternative 1. |
| `data.run.started_at`      | string                                                                      | Yes                | Alternative 1. |
| `data.run.finished_at`     | string or null                                                              | Yes                | Alternative 1. |
| `data.run.tasks_processed` | integer                                                                     | Yes                | Alternative 1. |
| `data.run.tasks_captured`  | integer                                                                     | Yes                | Alternative 1. |
| `data.run.skipped`         | integer                                                                     | Yes                | Alternative 1. |
| `data.run.failed_tasks`    | integer                                                                     | Yes                | Alternative 1. |
| `data.run.problem`         | string or null                                                              | Yes                | Alternative 1. |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter.                                                                                  |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Run Workflow automations task setup again

```http
POST /v1/scheduled-runs/workflow-automations/task-setup/runs

```

Runs task setup again from the start: Workflow automations in Attio goes through the workspace's tasks again so workflows see each one as it is now. Refused while a run is still going. Send a new request_key for each new run; a repeat with the same key answers the same run.

Requires `scheduled_runs:config:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `start_workflow_automations_task_setup`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name          | Send in                   | Required | Type or allowed values | Notes |
| ------------- | ------------------------- | -------- | ---------------------- | ----- |
| `request_key` | Header: `Idempotency-Key` | Yes      | string                 |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `202`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field             | Type                                                                        | Required in object | Notes |
| -------------------------- | --------------------------------------------------------------------------- | ------------------ | ----- |
| `data`                     | object                                                                      | Yes                |       |
| `data.object`              | `"task_setup_run"`                                                          | Yes                |       |
| `data.run`                 | object                                                                      | Yes                |       |
| `data.run.id`              | string                                                                      | Yes                |       |
| `data.run.state`           | `"running"`, `"waiting"`, `"complete"`, `"failed"`, `"canceled"`            | Yes                |       |
| `data.run.trigger`         | `"first_setup"`, `"customer_rerun"`, `"admin_resume"`, `"admin_start_over"` | Yes                |       |
| `data.run.started_at`      | string                                                                      | Yes                |       |
| `data.run.finished_at`     | string or null                                                              | Yes                |       |
| `data.run.tasks_processed` | integer                                                                     | Yes                |       |
| `data.run.tasks_captured`  | integer                                                                     | Yes                |       |
| `data.run.skipped`         | integer                                                                     | Yes                |       |
| `data.run.failed_tasks`    | integer                                                                     | Yes                |       |
| `data.run.problem`         | string or null                                                              | Yes                |       |

Accepted work can continue after the request returns. Follow its returned status or operation until it finishes; accepting work does not mean every item succeeded. See [operation status](https://neondeerdata.com/docs/api/operations/).

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request.                                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## List Workflow automations failures

```http
GET /v1/scheduled-runs/workflow-automations/failures

```

Lists failed runs of Workflow automations' steps and triggers over the days Activity shows in Neon Deer, latest first, one page at a time. Send unresolved=true for only the failures nobody has resolved yet. Only ids, times and states come back: never a task, a record, a workflow's name or a person's name.

Requires `scheduled_runs:config:read`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `list_workflow_automations_failures`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name         | Send in | Required | Type or allowed values | Notes                                  |
| ------------ | ------- | -------- | ---------------------- | -------------------------------------- |
| `unresolved` | query   | No       | boolean                | Use true or false in the query string. |
| `cursor`     | query   | No       | string                 |                                        |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field           | Type                   | Required in object | Notes |
| ------------------------ | ---------------------- | ------------------ | ----- |
| `data`                   | array of object        | Yes                |       |
| `data[].object`          | `"automation_failure"` | Yes                |       |
| `data[].id`              | string                 | Yes                |       |
| `data[].step_id`         | string                 | Yes                |       |
| `data[].workflow_id`     | string or null         | Yes                |       |
| `data[].occurred_at`     | string                 | Yes                |       |
| `data[].error_class`     | string or null         | Yes                |       |
| `data[].resolved`        | boolean                | Yes                |       |
| `data[].resolved_at`     | string or null         | Yes                |       |
| `pagination`             | object                 | Yes                |       |
| `pagination.next_cursor` | string or null         | Yes                |       |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request, invalid_cursor.                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Resolve Workflow automations failures

```http
POST /v1/scheduled-runs/workflow-automations/failures/resolve

```

Marks failed runs resolved, so they stop needing attention in Neon Deer. Select the runs to change. A run that is already resolved, or not a failure in this organization, is left as it is; changed says how many moved. Reopen them to undo it.

Requires `scheduled_runs:config:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `update_workflow_automations_failures_resolved`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name          | Send in                   | Required | Type or allowed values | Notes |
| ------------- | ------------------------- | -------- | ---------------------- | ----- |
| `run_ids`     | JSON body                 | Yes      | array of string (uuid) |       |
| `request_key` | Header: `Idempotency-Key` | Yes      | string                 |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field | Type                           | Required in object | Notes |
| -------------- | ------------------------------ | ------------------ | ----- |
| `data`         | object                         | Yes                |       |
| `data.object`  | `"automation_failures_change"` | Yes                |       |
| `data.changed` | integer                        | Yes                |       |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request.                                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Reopen Workflow automations failures

```http
POST /v1/scheduled-runs/workflow-automations/failures/reopen

```

Marks resolved failures open again, so they need attention in Neon Deer. Select the runs to change. A run that is still open, or not a failure in this organization, is left as it is; changed says how many moved.

Requires `scheduled_runs:config:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `update_workflow_automations_failures_open`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name          | Send in                   | Required | Type or allowed values | Notes |
| ------------- | ------------------------- | -------- | ---------------------- | ----- |
| `run_ids`     | JSON body                 | Yes      | array of string (uuid) |       |
| `request_key` | Header: `Idempotency-Key` | Yes      | string                 |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field | Type                           | Required in object | Notes |
| -------------- | ------------------------------ | ------------------ | ----- |
| `data`         | object                         | Yes                |       |
| `data.object`  | `"automation_failures_change"` | Yes                |       |
| `data.changed` | integer                        | Yes                |       |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request.                                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

The [public OpenAPI document](https://neondeerdata.com/docs/api/meta/openapi/) lists generally available API families. Alpha operations may not appear in that document; their request and response fields are listed on this page. Use the [API Playground](https://neondeerdata.com/docs/api/testing/) to inspect a real response with your connection's access.
