> Tool Name: airdroid_business_group_move
> Risk Level: Write
> Execution Mode: Synchronous
> Category: Group Management
Quick Start
Summary: Move one to 50 groups beneath a destination group, or use 0 as the destination to move groups to the top level.
You need: GroupIds, TargetGroupId, and ReplacePolicyConfig.
Success criteria: StatusCode == 200, ErrorMessage is empty, and every requested ID appears in SuccessIds. A 200 response with a non-empty ErrorMessage can be a partial success; inspect both SuccessIds and FailedIds.
Next step: Correct the reason in each FailedIds item and submit only those failed group IDs again.
Minimal request example:
{
"GroupIds": [24693, 24718],
"TargetGroupId": 24580,
"ReplacePolicyConfig": true
}
Minimal response example:
{
"SuccessIds": [24693, 24718],
"FailedIds": [],
"Hint": "",
"Retryable": false,
"OriginalStatusCode": 200,
"StatusCode": 200,
"ErrorMessage": ""
}
Recipes
Recipe 1: Move groups to a parent
When to use: The groups should become children of one existing parent group.
{
"GroupIds": [24693, 24718],
"TargetGroupId": 24580,
"ReplacePolicyConfig": true
}
Recipe 2: Move groups to the top level
When to use: The selected groups should have no parent group.
{
"GroupIds": [24693, 24718],
"TargetGroupId": 0,
"ReplacePolicyConfig": false
}
Recipe 3: Retry only partial failures
When to use: A prior response includes a non-empty FailedIds array.
{
"GroupIds": [24718],
"TargetGroupId": 24580,
"ReplacePolicyConfig": true
}
Use the id values from FailedIds after correcting their ErrorMessage cause. Do not resend groups already listed in SuccessIds.
1. Overview
1.1 Description
Moves existing groups under TargetGroupId. The action completes synchronously and can report successful and failed group moves in the same response.
1.2 When to Use
- Reorganize an existing group hierarchy.
- Move groups to the top level by setting TargetGroupId to 0.
- Decide whether moved groups adopt the destination group Policy/Kiosk configuration.
1.3 Execution Mode and Response
This is a synchronous write. SuccessIds lists completed moves. FailedIds lists group-level failures, so StatusCode == 200 alone does not establish a complete move.
1.4 Prerequisites
| Condition | Description |
|---|---|
| Valid group IDs | Obtain IDs from Batch Resolve Group IDs by Name, Resolve Group ID by Name, or List Groups. |
| Valid destination | Use an existing positive group ID, or 0 for the top level. |
| Permission | The credential must be allowed to modify groups. |
1.5 Prerequisite Tools
| Tool | Purpose |
|---|---|
| Batch Resolve Group IDs by Name | Resolve several group names before moving them. |
| Resolve Group ID by Name | Resolve one source or destination group name. |
| List Groups | Inspect group IDs and the current hierarchy. |
1.6 Similar Tools
Use List Groups when you only need to inspect the hierarchy. Use this action only when changing the parent relationship.
2. Inputs
2.1 Parameter List
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| GroupIds | number-array | Yes | - | One to 50 positive group IDs to move. |
| TargetGroupId | number | Yes | - | New parent group ID; 0 means top level. |
| ReplacePolicyConfig | bool | Yes | true | Whether moved groups adopt the destination Policy/Kiosk configuration. |
2.2 Parameter Details
`GroupIds`
- Must be a non-empty array of at most 50 positive whole-number group IDs.
- Obtain IDs from Batch Resolve Group IDs by Name, Resolve Group ID by Name, or List Groups.
- Do not include TargetGroupId in this array.
`TargetGroupId`
- Must be a non-negative integer.
- 0 moves the groups to the top level; a positive value identifies the destination parent group.
- Obtain a positive destination ID from Batch Resolve Group IDs by Name, Resolve Group ID by Name, or List Groups.
`ReplacePolicyConfig`
- true (default) applies the destination group's Policy/Kiosk configuration to moved groups.
- false keeps the moved groups' current Policy/Kiosk configuration.
2.3 Parameter Combination Logic
- GroupIds and TargetGroupId cannot overlap.
- If every selected group is already under the destination, the action returns StatusCode -1 and no move is submitted.
- A destination group cannot contain a sibling with the same name as a moved group; correct the hierarchy conflict before retrying.
3. Outputs
3.1 Response Examples
Complete success:
{
"SuccessIds": [24693, 24718],
"FailedIds": [],
"Hint": "",
"Retryable": false,
"OriginalStatusCode": 200,
"StatusCode": 200,
"ErrorMessage": ""
}
Partial success:
{
"SuccessIds": [24693],
"FailedIds": [
{
"id": 24718,
"ErrorMessage": "Move failed for this group."
}
],
"Hint": "Server-side operation failed; retry later. If it persists, provide ErrorMessage and OriginalStatusCode to support@airdroid.com.",
"Retryable": false,
"OriginalStatusCode": 200,
"StatusCode": 200,
"ErrorMessage": "Partial success: 1 moved, 1 failed. ID 24718: Move failed for this group."
}
3.2 Field Descriptions
| Field | Type | Description |
|---|---|---|
| SuccessIds | number-array | Group IDs moved successfully. |
| FailedIds | object-array | Per-group failures. Each item has id and ErrorMessage. |
| Hint | string | Recommended next action after a failure; empty on complete success. |
| Retryable | bool | Whether retrying the same request may help. |
| OriginalStatusCode | number | Upstream HTTP status; 0 means no upstream response. |
| StatusCode | number | 200 completed; -1 local validation; 500 system or network failure. |
| ErrorMessage | string | Empty only when all requested groups moved. A non-empty value at 200 reports a partial failure. |
3.3 Status Values
FailedIds[].id is the group that was not moved. FailedIds[].ErrorMessage is the caller-visible reason for that group.
4. Examples
4.1 Move groups with destination configuration
{
"GroupIds": [24693, 24718],
"TargetGroupId": 24580,
"ReplacePolicyConfig": true
}
4.2 Keep current Policy/Kiosk configuration
{
"GroupIds": [24693],
"TargetGroupId": 0,
"ReplacePolicyConfig": false
}
4.3 Invalid destination overlap
{
"GroupIds": [24580, 24693],
"TargetGroupId": 24580,
"ReplacePolicyConfig": true
}
This returns StatusCode -1 because TargetGroupId cannot appear in GroupIds.
5. Error Handling
5.1 StatusCode Semantics
| StatusCode | Meaning | Action |
|---|---|---|
| -1 | Local validation failed. | Correct the IDs or configuration and resubmit. |
| 200 | The upstream response was processed. | Success requires an empty ErrorMessage and no FailedIds. |
| 500 | HTTP, network, or tool failure. | Use Retryable and Hint; verify the hierarchy before retrying a write. |
5.2 Common Errors
| Error condition | Resolution |
|---|---|
| More than 50 groups | Split GroupIds into requests of 50 or fewer. |
| Invalid or default group | Resolve IDs with List Groups or a group-ID resolver and choose non-default groups where required. |
| Group already at destination | Skip the group or choose a different TargetGroupId. |
| Destination sibling name conflict | Rename the conflict or choose another destination. |
5.3 Partial Failure Handling
Read SuccessIds and FailedIds together. After correcting the reported group-specific issue, retry only the IDs in FailedIds.
6. Best Practices
6.1 Limit the batch
Keep each request to the necessary groups and no more than 50 IDs.
6.2 Review Policy/Kiosk impact
Choose ReplacePolicyConfig deliberately because it controls whether moved groups adopt the destination group's Policy/Kiosk configuration.
6.3 Idempotency
This action is conditionally idempotent. Repeat it only when the current group hierarchy does not already match the requested result. If all selected groups are already under the target parent, the runtime returns StatusCode -1 and no move is submitted.
7. Related Tools
| Tool | Role |
|---|---|
| Batch Resolve Group IDs by Name | Obtain multiple group IDs. |
| Resolve Group ID by Name | Obtain one group ID. |
| List Groups | Inspect group IDs and hierarchy. |
8. Tool Chains
8.1 Resolve, move, and recover
Batch Resolve Group IDs by Name -> Move Groups to a Group -> retry FailedIds only
- Resolve source and destination group IDs.
- Move the selected source IDs.
- If FailedIds is non-empty, correct the recorded issue and submit only those IDs again.
Leave a Reply.