We’re planning to integrate SailPoint IIQ with Dropbox for provisioning and deprovisioning. One of the requirements is that during deprovisioning, the Dropbox user account should be retained and downgraded to a regular (non-team) Dropbox account, rather than being permanently deleted.
As per Dropbox API, in order to retain the user account during deletion, the keep_account parameter must be passed as true during deletion. However, the official SailPoint Dropbox connector documentation does not clearly state whether this use case is supported.
I attempted to implement this by passing the keep_account attribute in the IIQ delete account request, but it does not behave as expected.
From the logs, IIQ does include the keep_account attribute in the provisioning plan and passes it into the connector during deprovisioning. However, when the request is actually prepared and sent to Dropbox, the attribute value is always set to false, even though true is explicitly provided in the provisioning plan.
Logs:
`2026-02-10T13:11:17,501Z DEBUG https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:2488 - Dumping Provisioning Plan details :
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ProvisioningPlan PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<ProvisioningPlan nativeIdentity="dc630b22-145c-41d2-9270-5e140ad66a65" targetIntegration="Dropbox" trackingId="8fefa4c252144d9b938f4ad6b23c6968"> <AccountRequest application="Dropbox" nativeIdentity="dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I" op="Delete"> <Attributes>
<Map>
<entry key="keep_account" value="true"/>
</Map>
</Attributes>
</AccountRequest>
</ProvisioningPlan>
2026-02-10T13:11:17,501Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:97 - Entering delete: Arguments => dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I, {keep_account=true}
2026-02-10T13:11:17,501Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:97 - Entering getRestService: Arguments => N/A
2026-02-10T13:11:17,501Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:97 - Entering getAccessToken: Arguments => N/A
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:108 - Exiting getAccessToken: Arguments => N/A, Returns => *****
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:97 - Entering createDropBoxHeaders: Arguments => *****
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:108 - Exiting createDropBoxHeaders: Arguments => *****, Returns => [Content-Type: application/json, Authorization: Bearer *****]
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:108 - Exiting getRestService: Arguments => N/A, Returns => openconnector.rest.RestApi@29919c8
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:97 - Entering generateRequestMap: Arguments => dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I, user, team_member_id
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:108 - Exiting generateRequestMap: Arguments => dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I, user, team_member_id, Returns => {user={.tag=team_member_id, team_member_id=dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I}}
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:97 - Entering prepareJsonRequest: Arguments => {user={.tag=team_member_id, team_member_id=dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I}, wipe_data=true, keep_account=false}
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:97 - Entering prepareJsonRequest: Arguments => {.tag=team_member_id, team_member_id=dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I}
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:108 - Exiting prepareJsonRequest: Arguments => {.tag=team_member_id, team_member_id=dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I}, Returns => {.tag=team_member_id, team_member_id=dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I}
2026-02-10T13:11:17,502Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:108 - Exiting prepareJsonRequest: Arguments => {user={.tag=team_member_id, team_member_id=dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I}, wipe_data=true, keep_account=false}, Returns => {wipe_data=true, keep_account=false, user={.tag=team_member_id, team_member_id=dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I}}
2026-02-10T13:11:19,071Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:97 - Entering release: Arguments => openconnector.rest.RestApi@29919c8
2026-02-10T13:11:19,072Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:108 - Exiting release: Arguments => openconnector.rest.RestApi@29919c8, Returns => N/A
2026-02-10T13:11:19,072Z TRACE https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:108 - Exiting delete: Arguments => dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I, {keep_account=true}, Returns => openconnector.Result@6346e52f
2026-02-10T13:11:19,072Z DEBUG https-jsse-nio-8443-exec-1 openconnector.connector.DropBoxConnector:2488 - Provisioning plan in return :
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ProvisioningPlan PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<ProvisioningPlan nativeIdentity="dc630b22-145c-41d2-9270-5e140ad66a65" targetIntegration="Dropbox" trackingId="8fefa4c252144d9b938f4ad6b23c6968">
<AccountRequest application="Dropbox" nativeIdentity="dbmid:AAAlyKGoBmqgyWUjMWF2xJ5FDUOGz8zQ09I" op="Delete">
<Attributes>
<Map>
<entry key="keep_account" value="true"/>
</Map>
</Attributes>
<ProvisioningResult status="committed"/>
</AccountRequest>
</ProvisioningPlan>`