Bulk user profile properties update flow question (PnP APIs)

%3CLINGO-SUB%20id%3D%22lingo-sub-44992%22%20slang%3D%22en-US%22%3EBulk%20user%20profile%20properties%20update%20flow%20question%20(PnP%20APIs)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-44992%22%20slang%3D%22en-US%22%3E%3CP%3EWe%20are%20working%20on%20implementing%26nbsp%3Bsynchronization%20of%20custom%20user%20details%20from%20LOB%20to%20AAD%20and%20SPO%20and%20were%20thinking%20of%20using%20the%20new%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FSharePoint%2FPnP-Guidance%2Fblob%2Fmaster%2Farticles%2FBulk-user-profile-update-api-for-sharepoint-online.md%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3EAPIs%3C%2FA%3E.%26nbsp%3BI'd%20like%20to%20know%2C%20what%20is%20the%20connection%20between%20the%26nbsp%3BCustom%20Synchronization%20tool%20and%20AAD%20in%20the%20diagram%20below%3F%20Is%26nbsp%3Bthere%20synchronization%20of%20properties%20from%20the%20tool%20to%20AAD%3F%20Or%26nbsp%3Bthe%20tool%26nbsp%3Bonly%20copies%20data%20to%20the%20SPO%20Directory%20Store%3F%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-left%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F10655i65DEC6FD14F92240%2Fimage-size%2Fmedium%3Fv%3D1.0%26amp%3Bpx%3D400%22%20alt%3D%22capture20170209110548918.png%22%20title%3D%22capture20170209110548918.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-44992%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EPnP%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-45884%22%20slang%3D%22en-US%22%3ERe%3A%20Bulk%20user%20profile%20properties%20update%20flow%20question%20(PnP%20APIs)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-45884%22%20slang%3D%22en-US%22%3EI%20guess%20it%20just%20means%20that%20you%20could%20write%20your%20own%20code%20in%20that%20tool%2C%20to%20read%20data%20from%20Azure%20AD%2C%20add%20that%20info%20to%20the%20sync%20file%2C%20and%20then%2C%20the%20API%20will%20update%20SPO%20with%20info%20from%20your%20LOB%20and%20Azure%20AD.%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-45876%22%20slang%3D%22en-US%22%3ERe%3A%20Bulk%20user%20profile%20properties%20update%20flow%20question%20(PnP%20APIs)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-45876%22%20slang%3D%22en-US%22%3E%3CP%3EI%20actually%20tested%20the%20tool%20and%20found%20the%20same%20-%26nbsp%3Bthe%20properties%20in%20AAD%26nbsp%3Bare%20not%20updated%2C%26nbsp%3Bupdates%20are%26nbsp%3Bdone%20only%20in%20SPO.%26nbsp%3BSo%20the%20connection%20on%20the%20flowchart%20is%20a%20bit%20misterious.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-45760%22%20slang%3D%22en-US%22%3ERe%3A%20Bulk%20user%20profile%20properties%20update%20flow%20question%20(PnP%20APIs)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-45760%22%20slang%3D%22en-US%22%3EAgreed.%20Only%20to%20note%20that%20if%20we%20take%20a%20look%20to%20the%20source%20code%20here%3A%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FSharePoint%2FPnP%2Ftree%2Fmaster%2FSamples%2FUserProfile.BatchUpdate.API%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2FSharePoint%2FPnP%2Ftree%2Fmaster%2FSamples%2FUserProfile.BatchUpdate.API%3C%2FA%3E%3CBR%20%2F%3EThe%20tool%20is%20not%20getting%20info%20from%20Azure%20AD%2C%20only%20from%20a%20text%20file.%20So%2C%20regarding%20Elena's%20question%3A%20%22whether%20we%20need%20to%20update%20properties%20in%20AAD%20ourselves%26nbsp%3Bor%20the%20sync%20tool%20does%20it%20already%22%2C%20I%20think%20the%20answer%20is%20that%20they%20need%20to%20take%20care%20theirselves.%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-45756%22%20slang%3D%22en-US%22%3ERe%3A%20Bulk%20user%20profile%20properties%20update%20flow%20question%20(PnP%20APIs)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-45756%22%20slang%3D%22en-US%22%3E%3CP%3EI%20think%20that%20arrow%20represents%20synchronization%20of%20properties%20that%20are%20in%20Azure%20AD%20but%20not%20synchronized%20to%20SharePoint%20via%20the%20default%20route%20(Bullet%20%232%3A%20AAD%20-%26gt%3B%20User%20Profile).%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3ENot%20all%20properties%20(in%20fact%20only%20a%20few%20of%20them)%20in%20AAD%20are%20synched%20to%20SharePoint%20User%20Profile.%20The%20Custom%20Synchronization%20Tool%20in%20this%20case%20reads%20from%20both%20Azure%20AD%20and%20custom%20LOB%20system(s)%20to%20combine%20user%20information%20and%20synchronize%20it%20to%20SharePoint%20User%20Profiles.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-45021%22%20slang%3D%22en-US%22%3ERe%3A%20Bulk%20user%20profile%20properties%20update%20flow%20question%20(PnP%20APIs)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-45021%22%20slang%3D%22en-US%22%3E%3CP%3EThanks%20for%20replying.%20The%20main%20reason%20I'm%20asking%20is%20that%20I%20need%20to%20determine%2C%20in%20cases%20where%20there's%20no%26nbsp%3BAD%20onprem%2C%20whether%20we%20need%20to%20update%20properties%20in%20AAD%20ourselves%26nbsp%3Bor%20the%20sync%20tool%20does%20it%20already.%20It%20would%20make%20sense%20for%20the%20sync%20tool%20to%20do%20it%20in%20case%20of%20the%20system%20attributes%20that%20are%26nbsp%3Bsynced%20OOB%20from%20AAD%20to%20SPO.%20Maybe%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F5720%22%20target%3D%22_blank%22%3E%40Vesa%20Juvonen%3C%2FA%3E%26nbsp%3Bknows%20the%20answer.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-45004%22%20slang%3D%22en-US%22%3ERe%3A%20Bulk%20user%20profile%20properties%20update%20flow%20question%20(PnP%20APIs)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-45004%22%20slang%3D%22en-US%22%3ENot%20100%25%20sure%2C%20but%20I'd%20say%20the%20tool%20copies%20data%20from%20the%20LOB%20system%2C%20to%20SharePoint%20Online%20User%20Profile.%20That%20arrow%2C%20just%20means%20the%20OOB%20Sync%20between%20AD%20and%20Azure%20AD.%20I%20can%20be%20wrong%20though.%3C%2FLINGO-BODY%3E
Highlighted
Occasional Contributor

We are working on implementing synchronization of custom user details from LOB to AAD and SPO and were thinking of using the new APIs. I'd like to know, what is the connection between the Custom Synchronization tool and AAD in the diagram below? Is there synchronization of properties from the tool to AAD? Or the tool only copies data to the SPO Directory Store?

capture20170209110548918.png

6 Replies
Highlighted
Not 100% sure, but I'd say the tool copies data from the LOB system, to SharePoint Online User Profile. That arrow, just means the OOB Sync between AD and Azure AD. I can be wrong though.
Highlighted

Thanks for replying. The main reason I'm asking is that I need to determine, in cases where there's no AD onprem, whether we need to update properties in AAD ourselves or the sync tool does it already. It would make sense for the sync tool to do it in case of the system attributes that are synced OOB from AAD to SPO. Maybe @Vesa Juvonen knows the answer.

Highlighted

I think that arrow represents synchronization of properties that are in Azure AD but not synchronized to SharePoint via the default route (Bullet #2: AAD -> User Profile).

 

Not all properties (in fact only a few of them) in AAD are synched to SharePoint User Profile. The Custom Synchronization Tool in this case reads from both Azure AD and custom LOB system(s) to combine user information and synchronize it to SharePoint User Profiles.

Highlighted
Agreed. Only to note that if we take a look to the source code here: https://github.com/SharePoint/PnP/tree/master/Samples/UserProfile.BatchUpdate.API
The tool is not getting info from Azure AD, only from a text file. So, regarding Elena's question: "whether we need to update properties in AAD ourselves or the sync tool does it already", I think the answer is that they need to take care theirselves.
Highlighted

I actually tested the tool and found the same - the properties in AAD are not updated, updates are done only in SPO. So the connection on the flowchart is a bit misterious.

 

Highlighted
I guess it just means that you could write your own code in that tool, to read data from Azure AD, add that info to the sync file, and then, the API will update SPO with info from your LOB and Azure AD.