# `Ash.Actions.BulkManualActionHelpers`
[🔗](https://github.com/ash-project/ash/blob/v3.27.8/lib/ash/actions/bulk_manual_action_helpers.ex#L5)

  Helper functions used for handling manual actions when used in bulk operations.

# `build_bulk_result`

```elixir
@spec build_bulk_result(
  processed_results :: [Ash.Resource.Record.t() | {:error, term()}],
  any_success? :: boolean(),
  notifications :: [Ash.Notifier.Notification.t()],
  opts :: Keyword.t()
) :: Ash.BulkResult.t()
```

Builds a BulkResult from processed results.

Takes a list of records and `{:error, error}` tuples (output from `process_results`),
along with success tracking and notifications, and builds the final BulkResult.

# `process_bulk_results`

Processes the results of a manual action's bulk function.

Returns tagged tuples `{:ok, result, changeset}` or `{:error, error, changeset}`
that can be processed by `process_results` to run after_transaction hooks.

# `process_non_bulk_result`

Used when a manual action does not export a bulk version of the action.

Returns a tagged tuple `{:ok, result, changeset}` or `{:error, error, changeset}`
that can be processed by `process_results` to run after_transaction hooks.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
