> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rodyne.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Review rank requests

> Request, approve, execute, and verify Roblox rank changes.

Rank requests turn a proposed member change into a permission-checked, approval-aware, provider-verified workflow.

## Create a request

From **Community Management → Members** or **Rank requests**:

1. Select the exact member.
2. Confirm the expected current mapped role.
3. Choose the target mapping.
4. Enter a clear reason.
5. Optionally link the request to an event or case.
6. Submit once and keep the record open while Rodyne confirms its state.

`/rank set`, `/promote`, and `/demote` create the same audited type of work from Discord.

## Approval rules

* The target rank controls the required approval count.
* The requester cannot approve their own request.
* Approvers must still have access when the queued work executes.
* Protected targets cannot be requested.
* A stale expected role stops the request rather than overwriting a newer change.

## State flow

```text theme={null}
Waiting for approval
        ↓
      Queued
        ↓
      Running
        ↓
Roblox updated → Discord sync pending
        ↓
Completed / Partially completed / Needs attention / Expired
```

Some workflows can move directly from running to a terminal state. Always read the target outcomes rather than inferring success from the last visible label.

## Batch requests

The member table can submit up to 100 selected rows with one reason. The API validates the entire batch together for tenant scope, current roles, protected targets, permissions, and duplicate retry keys. Approval counts remain per member and target rank.

## Partial and uncertain outcomes

If Roblox confirms but Discord synchronization fails, the record may be partially completed. Do not repeat the Roblox change manually. Repair the unconfirmed Discord step after checking live state.

If a network request times out after a provider may have applied it, Rodyne can mark the outcome uncertain. Read the provider state before any retry.

<Card title="Understand every job state" icon="activity" href="/reference/outcomes-and-jobs">
  Use the outcome reference before retrying or repairing provider work.
</Card>

## Guided walkthrough

<Frame caption="Rank requests expose policy, approvals, and provider execution as one reviewable chain.">
  <img src="https://mintcdn.com/rodyne/3VLEvtRzxXCeXuB_/assets/screenshots/rank-requests-main.png?fit=max&auto=format&n=3VLEvtRzxXCeXuB_&q=85&s=32cb6d031f5249d52d3ab17285e0528e" alt="Rodyne rank request queue with approval and execution status" width="990" height="742" data-path="assets/screenshots/rank-requests-main.png" />
</Frame>

The screenshot above is from the live Rodyne product. Use it to orient yourself, but rely on the current record state and live provider checks when operating the workspace.

## Operating procedure

<Steps>
  <Step title="Confirm current state">
    Read the member's live mapped rank immediately before creating the request.
  </Step>

  <Step title="Choose the exact target">
    Verify mapping, protection, adjacency, and required approvals.
  </Step>

  <Step title="Write a durable reason">
    Describe the operational basis and attach the relevant event or case.
  </Step>

  <Step title="Collect independent approval">
    Use distinct currently authorized approvers; the requester cannot approve.
  </Step>

  <Step title="Verify both providers">
    Confirm Roblox read-back and any required Discord role synchronization.
  </Step>
</Steps>

## Acceptance checks

| Check         | Ready when                              | If it is not ready                           |
| ------------- | --------------------------------------- | -------------------------------------------- |
| Expected rank | Current rank still matches the request  | Create fresh work after reviewing the change |
| Approvals     | Required distinct approvers are present | Wait or route to eligible approvers          |
| Targets       | All required providers are confirmed    | Repair only the unconfirmed target           |

## Failure recovery

A partial result is not a reason to repeat the whole request. Preserve the confirmed Roblox result, diagnose the Discord target separately, and use the narrow repair action.

## Continue the workflow

<CardGroup cols={2}>
  <Card title="Configure roles and ranks" href="/guides/roles-and-ranks" icon="layers" />

  <Card title="Read job outcomes" href="/reference/outcomes-and-jobs" icon="activity" />
</CardGroup>
