SlideShare a Scribd company logo
1 of 27
Custom CRM / SharePoint
integration
From zero to hero in 60 minutes
About me
Martijn Eikelenboom
Office 365 / Dynamics 365 (CRM) consultant
Delta-N
www.oak3.org
@meikelenboom
Dutch Dynamics 365 / CRM Meetup http://bit.ly/dutch365meetup (next in
September)
Why this session
Custom SharePoint (online) integration with Dynamics 365 / CRM
Out of the box (where possible)
SharePoint better practices
‘Easy’ to build
Low cost
Default CRM integration
SharePoint
One Library for all accounts
Folder based
Folder names contain ‘Guids’
Sample:
/sites/d365/account/Contoso_475B158C541CE51180D33863BB347BA8
Default integrations
Groups
All or nothing
Not documents only
Architecture
We’re going to build
SharePointMicrosoft Flow Azure Function CRM
In this order
SharePoint Microsoft FlowAzure FunctionCRMSharePoint
SharePoint
Remote provisioning (CSOM)
SPMeta2 (http://bit.ly/spmeta2)
Alternative: PnP (http://bit.ly/sp_pnp)
SPMeta2
Code based SharePoint artefact provisioning
Uses C# POCO objects to define artefacts
public static ListDefinition GeneralDocuments = new ListDefinition
{
Title = "General",
Description = "Library to store general documents",
TemplateType = BuiltInListTemplateTypeId.DocumentLibrary,
CustomUrl = "General"
};
Demo – provisioning code
We’re going to build
SharePointMicrosoft Flow Azure Function CRMCRM
CRM
Create SharePoint site
Create document locations
Demo – CRM code
We’re going to build
SharePointMicrosoft Flow Azure Function CRMAzure Function
Azure function
Serverless
Triggers
Scalable
Pay-as-you-go
Azure Function deployment
Manually (Azure Portal Editor)
Azure Function Tools for VS2017 (preview V15.3) http://bit.ly/azurefunctiontools
Web project with custom start action (VS2015 & 2017)
http://bit.ly/azurefunctioncustom
Continous deployment from source control
http://bit.ly/azurefunctioncd
Demo – Function code & deployment
We’re going to build
SharePointMicrosoft Flow Azure Function CRMMicrosoft Flow
Microsoft Flow
Connect CRM & Azure Function
Alternative to custom plugin code or workflow activity
Demo – Microsoft Flow
Done!
SharePointMicrosoft Flow Azure Function CRM
Demo – End to end
Takeaways
Unable to programmatically create site collection in CRM
Subsites vs Site Collections
Autonumber for entities
Throttling
Bulk import / migration
Workflow / plugin manual retry option
Where to go from here
Use this concept as a starting point
Authentication
Queues
Resilience
Content types
Document sets
Permissions
SharePoint updates
Thanks for attending
Custom CRM / SharePoint integration

More Related Content

Similar to Custom CRM / SharePoint integration

2014-03-20 - Baltimore SharePoint Users Group - Getting Started with Office 365
2014-03-20 - Baltimore SharePoint Users Group - Getting Started with Office 3652014-03-20 - Baltimore SharePoint Users Group - Getting Started with Office 365
2014-03-20 - Baltimore SharePoint Users Group - Getting Started with Office 365Dan Usher
 
Using Nintex Workflow Cloud with Salesforce for customer surveys
Using Nintex Workflow Cloud with Salesforce for customer surveysUsing Nintex Workflow Cloud with Salesforce for customer surveys
Using Nintex Workflow Cloud with Salesforce for customer surveysDocFluix, LLC
 
Spsct15 power shell_csom - amit vasu
Spsct15 power shell_csom - amit vasuSpsct15 power shell_csom - amit vasu
Spsct15 power shell_csom - amit vasuamitvasu
 
2014 05-19 - getting started with office 365.release
2014 05-19 - getting started with office 365.release2014 05-19 - getting started with office 365.release
2014 05-19 - getting started with office 365.releaseDan Usher
 
Spsdc 2014 o365_power_shell_csom_amitv
Spsdc 2014 o365_power_shell_csom_amitvSpsdc 2014 o365_power_shell_csom_amitv
Spsdc 2014 o365_power_shell_csom_amitvamitvasu
 
Collab365 - [FRENCH] Nouvelles options pour SharePoint 2016 et Office 365 c’e...
Collab365 - [FRENCH] Nouvelles options pour SharePoint 2016 et Office 365 c’e...Collab365 - [FRENCH] Nouvelles options pour SharePoint 2016 et Office 365 c’e...
Collab365 - [FRENCH] Nouvelles options pour SharePoint 2016 et Office 365 c’e...Patrick Guimonet
 
Back Office Productivity with SharePoint
Back Office Productivity with SharePointBack Office Productivity with SharePoint
Back Office Productivity with SharePointGareth Fisher
 
How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...
How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...
How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...atwork
 
2018 11-29 - Future Of SharePoint - Create IT Services & Roadmap
2018 11-29 - Future Of SharePoint - Create IT Services & Roadmap2018 11-29 - Future Of SharePoint - Create IT Services & Roadmap
2018 11-29 - Future Of SharePoint - Create IT Services & RoadmapCreate IT
 
Dynamics 365 saturday 2018 - data migration story
Dynamics 365 saturday   2018 - data migration storyDynamics 365 saturday   2018 - data migration story
Dynamics 365 saturday 2018 - data migration storyAndre Margono
 
Microsoft Cloud Updates - October 2017
Microsoft Cloud Updates - October 2017Microsoft Cloud Updates - October 2017
Microsoft Cloud Updates - October 2017Robert Crane
 
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365Patrick Guimonet
 
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVPConnecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVPAyman El-Hattab
 
Microsoft Convergence DayOne: Leveraging SharePoint within Your Dynamics GP W...
Microsoft Convergence DayOne: Leveraging SharePoint within Your Dynamics GP W...Microsoft Convergence DayOne: Leveraging SharePoint within Your Dynamics GP W...
Microsoft Convergence DayOne: Leveraging SharePoint within Your Dynamics GP W...Marie-Michelle Strah, PhD
 
2014-005-17 SPS Baltimore - Getting Started with Office 365
2014-005-17 SPS Baltimore - Getting Started with Office 3652014-005-17 SPS Baltimore - Getting Started with Office 365
2014-005-17 SPS Baltimore - Getting Started with Office 365Dan Usher
 
Spsnyc 2014 o365 power shell csom
Spsnyc 2014   o365 power shell csomSpsnyc 2014   o365 power shell csom
Spsnyc 2014 o365 power shell csomamitvasu
 
Bots and Office 365 better together
Bots and Office 365 better togetherBots and Office 365 better together
Bots and Office 365 better togetherHarsh Mishra
 
Building Solutions With Business Connectivity Services
Building Solutions With Business Connectivity ServicesBuilding Solutions With Business Connectivity Services
Building Solutions With Business Connectivity ServicesChakkaradeep Chandran
 

Similar to Custom CRM / SharePoint integration (20)

2014-03-20 - Baltimore SharePoint Users Group - Getting Started with Office 365
2014-03-20 - Baltimore SharePoint Users Group - Getting Started with Office 3652014-03-20 - Baltimore SharePoint Users Group - Getting Started with Office 365
2014-03-20 - Baltimore SharePoint Users Group - Getting Started with Office 365
 
Using Nintex Workflow Cloud with Salesforce for customer surveys
Using Nintex Workflow Cloud with Salesforce for customer surveysUsing Nintex Workflow Cloud with Salesforce for customer surveys
Using Nintex Workflow Cloud with Salesforce for customer surveys
 
Spsct15 power shell_csom - amit vasu
Spsct15 power shell_csom - amit vasuSpsct15 power shell_csom - amit vasu
Spsct15 power shell_csom - amit vasu
 
2014 05-19 - getting started with office 365.release
2014 05-19 - getting started with office 365.release2014 05-19 - getting started with office 365.release
2014 05-19 - getting started with office 365.release
 
Spsdc 2014 o365_power_shell_csom_amitv
Spsdc 2014 o365_power_shell_csom_amitvSpsdc 2014 o365_power_shell_csom_amitv
Spsdc 2014 o365_power_shell_csom_amitv
 
Collab365 - [FRENCH] Nouvelles options pour SharePoint 2016 et Office 365 c’e...
Collab365 - [FRENCH] Nouvelles options pour SharePoint 2016 et Office 365 c’e...Collab365 - [FRENCH] Nouvelles options pour SharePoint 2016 et Office 365 c’e...
Collab365 - [FRENCH] Nouvelles options pour SharePoint 2016 et Office 365 c’e...
 
Back Office Productivity with SharePoint
Back Office Productivity with SharePointBack Office Productivity with SharePoint
Back Office Productivity with SharePoint
 
How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...
How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...
How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...
 
2018 11-29 - Future Of SharePoint - Create IT Services & Roadmap
2018 11-29 - Future Of SharePoint - Create IT Services & Roadmap2018 11-29 - Future Of SharePoint - Create IT Services & Roadmap
2018 11-29 - Future Of SharePoint - Create IT Services & Roadmap
 
PSC & OOMXL
PSC & OOMXLPSC & OOMXL
PSC & OOMXL
 
Dynamics 365 saturday 2018 - data migration story
Dynamics 365 saturday   2018 - data migration storyDynamics 365 saturday   2018 - data migration story
Dynamics 365 saturday 2018 - data migration story
 
Microsoft Cloud Updates - October 2017
Microsoft Cloud Updates - October 2017Microsoft Cloud Updates - October 2017
Microsoft Cloud Updates - October 2017
 
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
 
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVPConnecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
 
Microsoft SharePoint
Microsoft SharePointMicrosoft SharePoint
Microsoft SharePoint
 
Microsoft Convergence DayOne: Leveraging SharePoint within Your Dynamics GP W...
Microsoft Convergence DayOne: Leveraging SharePoint within Your Dynamics GP W...Microsoft Convergence DayOne: Leveraging SharePoint within Your Dynamics GP W...
Microsoft Convergence DayOne: Leveraging SharePoint within Your Dynamics GP W...
 
2014-005-17 SPS Baltimore - Getting Started with Office 365
2014-005-17 SPS Baltimore - Getting Started with Office 3652014-005-17 SPS Baltimore - Getting Started with Office 365
2014-005-17 SPS Baltimore - Getting Started with Office 365
 
Spsnyc 2014 o365 power shell csom
Spsnyc 2014   o365 power shell csomSpsnyc 2014   o365 power shell csom
Spsnyc 2014 o365 power shell csom
 
Bots and Office 365 better together
Bots and Office 365 better togetherBots and Office 365 better together
Bots and Office 365 better together
 
Building Solutions With Business Connectivity Services
Building Solutions With Business Connectivity ServicesBuilding Solutions With Business Connectivity Services
Building Solutions With Business Connectivity Services
 

Recently uploaded

Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Recently uploaded (20)

Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

Custom CRM / SharePoint integration

Editor's Notes

  1. Use this concept as a starting point This concept is a good starting point, but there are a few things to consider before going into production Authentication Considered it a bit too much to include modern type authentication scenario’s Complex Focusing on citizen developer Queues Queues might be a good option to prevent throttling limitations or timeout issues. The drawback is that your workflow status will almost always be succeeded, even if the deployment of the model fails. Resilience SPMeta2 supports updates to the model without affecting the content. Add a check if the web exists on SPO and if the libraries exist in CRM and you can redeploy to model without any issues. E.g. when it fails, or when you want to update the model (Adding a new library) Check if CRM site & document location exists, if so skip the creation of it Content types Consider deploying content types to your site collection, and have a default custom content type per Library. This enables you to customize SharePoint search where: You can filter based on the Web title Filter based on the content type, which is similar to the Library Users don’t have to do anything extra when uploading files You can also consider adding metadata fields to your model and content type. Document sets Gives you an option to help structure. Document Sets are folders with the added option to add metadata to the document set that will be inherited by al the files in the document set Document set can be deployed form CRM and metadata can be set as well. E.g. a customer site, with a project library and a document set per project. You can set metadata on the document set from CRM and make sure every document inherits from this document set metadata. SharePoint updates SharePoint is receiving a lot of updates at the moment. Although remote provisioning is the recommended approach, I’ve have run into issues where Microsoft breaks the deployment. So be aware to this changing platform and keep up to date with changes. Permissions Remote setting and updating permissions in SharePoint is fully supported. On site, web, library, folder and item level. You can use this model to set permissions as well, however it will increase the complexity greatly