> ## 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.

# Import role binds

> Review and import JSON or CSV rank mappings without guessing provider identities.

The bind importer helps migrate existing Roblox-to-Discord mappings into Rodyne. It is a review workflow, not a blind bulk write.

## What can be imported

An import row identifies the Roblox group, Roblox rank, Discord role, label, order, protection, and approval behavior. JSON and CSV are supported by the dashboard importer.

The import can target:

* The primary Roblox group for verification and rank requests.
* A secondary group for Discord role synchronization only.
* A managed Cnect resource or an explicitly entered external group.

## Safe import flow

<Steps>
  <Step title="Upload or paste the source">
    Use a file exported from the source system. Keep the original file until the Rodyne review and canary verification are complete.
  </Step>

  <Step title="Resolve group identity">
    Match each group to the correct managed Cnect resource or external numeric Group ID. Groups and experiences use separate namespaces.
  </Step>

  <Step title="Confirm rank identity">
    Map each row to the actual Roblox Rank ID returned by the provider. Do not convert an order number or display label into a guessed Rank ID.
  </Step>

  <Step title="Review conflicts">
    Resolve duplicate group/rank pairs, duplicate order positions, missing Discord roles, protected targets, and records that changed after preview.
  </Step>

  <Step title="Commit the reviewed import">
    The importer revalidates the preview and writes the accepted mappings together. Reuse the same retry action after a network error so idempotency can protect the import.
  </Step>
</Steps>

## After import

1. Refresh the Discord role catalog.
2. Search the ladder for every imported group and rank.
3. Confirm unique order values in the primary ladder.
4. Mark sensitive ranks protected.
5. Preview `/promote` and `/demote` adjacency.
6. Verify one controlled member in each group.
7. Submit one low-risk rank request in the primary group.

<Warning>
  Importing a mapping does not change any member. The first later verification can add or remove unprotected managed Discord roles, so test with a controlled account before inviting a full-server refresh.
</Warning>

## Guided walkthrough

<Frame caption="Imported binds become reviewable mapping records; they do not immediately change members.">
  <img src="https://mintcdn.com/rodyne/3VLEvtRzxXCeXuB_/assets/screenshots/automations-main.png?fit=max&auto=format&n=3VLEvtRzxXCeXuB_&q=85&s=5036ff524c683fd2571fa4995680a8b9" alt="Rodyne Automations mapping list used after a bind import" width="990" height="742" data-path="assets/screenshots/automations-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="Preserve the source">
    Keep the original export and record its system and export time.
  </Step>

  <Step title="Normalize identifiers">
    Resolve numeric group, rank, and Discord role IDs without guessing from labels.
  </Step>

  <Step title="Preview conflicts">
    Review duplicates, missing roles, protected targets, and unsupported rows.
  </Step>

  <Step title="Commit once">
    Submit the reviewed set with the same retry identity if the client disconnects.
  </Step>

  <Step title="Validate canaries">
    Test one controlled member for each group represented by the import.
  </Step>
</Steps>

## Acceptance checks

| Check         | Ready when                               | If it is not ready                       |
| ------------- | ---------------------------------------- | ---------------------------------------- |
| Groups        | Every group ID is explicitly resolved    | Map it to a managed or external resource |
| Ranks         | Every rank exists in current Roblox data | Remove or correct stale rows             |
| Discord roles | Roles exist and the bot can manage them  | Refresh catalog and hierarchy            |

## Failure recovery

Keep rejected rows separate from accepted ones and correct them in the source copy. A partially reviewed import should not be used as the baseline for later policy changes.

## Continue the workflow

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

  <Card title="Connect Roblox" href="/setup/roblox" icon="gamepad-2" />
</CardGroup>
