Dropbox connector not able to Delete and keep account

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>`

Try running the same request from postman or dropbox api explorer, if that works, then you can work your way back to figure out.

Hi Kshitiz, What version of IIQ are you running?

we are on 8.5 version

From postman it works fine. But through IIQ connector using provisioningplan, the attribute value is always passed as false.

Hi Kshitiz, I was looking more into the connector and it looks like the keep_account is being set based off the wipe_data flag. Instead of setting keep_account to true, can you instead set wipe_data to true and see if that accomplishes what you are trying to achieve

@kpudasaini keep_account is not mentioned in the Dropbox connector so i am doubtful if it will work with OOTB dropbox connector. If you want to achieve this, then probably you can have Before Provisioning rule to make direct REST API call to delete with keep_account and not use the connector, to delete it.

Note: Found a fix? Help the community by marking the comment as solution. Feel free to react(:heart:, :+1:, etc.) with an emoji to show your appreciation or message me directly if your problem requires a deeper dive.

I tried that but at the end no matter what the connector is passing keep_account and wipe_data as false.