Summary
This workflow identifies all PSA configurations tied to offboarded clients, lists them for review, and sets them to inactive. It streamlines client offboarding by ensuring configuration data is properly deactivated, reducing clutter and preventing billing or management errors. The workflow supports manual, scheduled, and event-driven execution and includes safeguards such as dry runs and approval steps.
Usage
Prerequisites
Before using this workflow, ensure the following requirements are met:
- PSA Integration: Configure your PSA system integration (ConnectWise Manage, Autotask, HaloPSA, etc.) with permissions to read and update configurations.
- Offboarding Criteria: Define what qualifies a client as offboarded (status, tag, contract end date, etc.).
- Audit Policy: Decide whether to log deactivation details or require approvals before changes.
Configuration Steps
- Import the workflow into your Rewst environment.
- Configure the PSA integration credentials and base URL.
- Define offboarding filters (status, tags, or contract conditions).
- Configure any optional safeguards (approval step, dry-run, or partial scope).
- Test against a single offboarded client before enabling broad execution.
Workflow Inputs
The workflow accepts the following input parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
client_id | String | Conditional | PSA client/company ID to process (required if client_name not provided) |
client_name | String | Conditional | PSA client/company name to process (required if client_id not provided) |
offboarded_statuses | Array | No | Client statuses treated as offboarded |
dry_run | Boolean | No | Preview changes without applying them. Default: false |
require_approval | Boolean | No | Require approval before deactivation. Default: false |
include_archived | Boolean | No | Include archived configs in the listing. Default: false |
reason | String | No | Reason for deactivation (stored in logs/audit) |
Execution
Manual Trigger
- Navigate to the workflow in the Rewst platform.
- Click "Run Workflow".
- Provide
client_idorclient_name. - Review the configuration list and execute.
Scheduled Execution
Schedule the workflow to run after offboarding windows (e.g., nightly or weekly) to deactivate configs for recently offboarded clients.
Event-Driven Trigger
Trigger the workflow when a client status changes to an offboarded state in the PSA.
API Trigger
Call the workflow via the Rewst API for integration with external offboarding systems.
Post-Execution Steps
After successful completion:
- Review the list of deactivated configurations.
- Confirm configs are inactive in the PSA.
- Verify no active billing or alerts are tied to the deactivated configs.
Returned Data
The workflow returns the following data upon completion:
{
"success": true,
"client_id": "12345",
"client_name": "Example Client",
"timestamp": "2026-01-22T10:30:00Z",
"statistics": {
"configs_found": 18,
"configs_deactivated": 18,
"configs_skipped": 0,
"errors": 0
},
"configs": [
{
"config_id": "9876",
"config_name": "Firewall - HQ",
"status": "inactive",
"previous_status": "active"
}
],
"warnings": [],
"errors": []
}
Return Data Fields
| Field | Type | Description |
|---|---|---|
success | Boolean | Indicates whether the workflow completed successfully |
client_id | String | PSA client/company ID processed |
client_name | String | PSA client/company name processed |
timestamp | String | ISO 8601 timestamp of the operation |
statistics | Object | Summary of the deactivation operation |
statistics.configs_found | Integer | Number of configurations found |
statistics.configs_deactivated | Integer | Number of configurations set to inactive |
statistics.configs_skipped | Integer | Number of configurations skipped |
statistics.errors | Integer | Number of configurations that failed to update |
configs | Array | List of configurations processed with status details |
warnings | Array | Non-critical warnings or notices |
errors | Array | Any errors encountered during execution |
Error Handling
If the workflow encounters errors, the response will include detailed error information:
{
"success": false,
"errors": [
{
"code": "ConfigUpdateFailed",
"message": "Unable to deactivate configuration",
"timestamp": "2026-01-22T10:30:15Z",
"config_id": "9876"
}
]
}
Common error codes:
ClientNotFound: The specified client could not be foundConfigNotFound: No configurations were found for the clientConfigUpdateFailed: Unable to update configuration statusPermissionDenied: Insufficient PSA API permissionsPSAConnectionError: Unable to reach PSA API
Changelog
2026-01-22
- Initial version of the document