A client has a situation where they are deduping Customer Contacts in their Salesforce Org and are currently providing AuthHandler to provision those Users in Salesforce. However, they are not deduplicating the associated Users in their SSO system.
Once the deduplication is complete ( or in progress ) then those Contacts will not exist and their related Users will be deactivated.
Two (simplified for clarity) sample entries in ThirdPartyAccountLink in the current state
First Entry
RemoteIdentifier: EXTID1
UserId: USRID1
Provider: PROV1
Second Entry
RemoteIdentifier: EXTID2
UserId: USRID2
Provider: PROV1
My thoughts are that, in order to satisfy this, we can request access from Salesforce Support to gain the ability to clear the ThirdPartyAccountLink Sobject (for that Identity provider) using the API. Then we would route the new SSO connections through to the 'winningest' Contact/User using the createUser() flow so that they don't create duplicates once again. I'm hoping this will create a new entry in the ThirdPartyAccountLink Sobject for each User in external system, but they would be linked to the same Contact/User in Salesforce.
Two (simplified for clarity) sample entries in ThirdPartyAccountLink in the future state
First Entry
RemoteIdentifier: EXTID1
UserId: USRID1
Provider: PROV1
Second Entry
RemoteIdentifier: EXTID2
UserId: USRID1
Provider: PROV1
Ideally, this would enable these two external users to come in as the same Contact/User in the Salesforce Community.
Is this feasible? Are there any considerations around unique entries or unique compound keys here? I cannot find anything saying this is impossible but would love some more context, I'm having trouble finding documentation on this.
Hi Alec,
Yes, that's true. However, for each losing user, you can read their TPALs into a temp variable, delete them from the losing user, then create them on the winning user.