# Actions and approvals (https://docs.getaviato.com/guides/actions)



## What an action does [#what-an-action-does]

An action is a named operation defined by your development team: for example, tagging an account or generating a document. It can apply to one record, a selection of records, or the collection as a whole.

Select an action, fill in its form, and review the target before running it. An action may return a message, a file, a redirect, or updated records.

## Approval requests [#approval-requests]

An approval rule can hold an action for review. A pending request records the action, selected target, form values, and requester. Reviewers inspect the request and approve or reject it according to the rule.

Requests, their history, and CSV exports are visible only to the requester and roles currently allowed to review them. This includes targets, form values, review comments, and execution results.

Approval is not a permanent grant of access. Before execution, Aviato refreshes the requester's membership and role definitions. Removing access can prevent a previously approved action from running.

## Understand the status [#understand-the-status]

| Status             | Meaning                                                    |
| ------------------ | ---------------------------------------------------------- |
| Pending            | Waiting for a reviewer.                                    |
| Approved           | Accepted for execution by the agent.                       |
| Executing          | Claimed by an agent; the result has not arrived yet.       |
| Executed           | The agent reported success.                                |
| Failed             | The request could not complete successfully.               |
| Rejected / expired | It will not execute from this request.                     |
| Uncertain          | The action may have run, but its outcome is not confirmed. |

## An uncertain result needs investigation [#an-uncertain-result-needs-investigation]

Do not immediately submit the same action again. Check the target system and audit activity first, especially for payments, emails, or other external side effects. A stalled execution becomes uncertain after 15 minutes; a late result can still resolve it.

The agent persists completed results and retries reporting them without repeating the action. A crash between an external side effect and its completion record still requires reconciliation.

Developers: make external side effects idempotent where possible and use the [SDK integration guides](/integrations/typescript).
