ConnectPoint: how we integrated Microsoft CRM Online, Office 365 and IBM Connections
At e-office we use Microsoft CRM Online, Office 365 and IBM Connections to do our daily work for our customers.
These platforms together are the heart of what we call our digital workspace.
The paradigm we are using to characterize systems is Yellow and Blue. Blue systems provide structured data and processes, Yellow systems support collaboration and innovation. You need both to create a balanced and flexible organization, where the customer is really in the center of our business process.
We have called the entire system ConnectPoint and today we have realized the following integration points.
- Create communities for new accounts
- Create sub communities for opportunities and projects for this account
- Provided a SharePoint library widget that displays documents belonging to this account, opportunity or project
- Integrated search; all connections content is put into SharePoint, to make it available to the SharePoint Online search engine
SharePoint, CRM and of course Azure are in the cloud, IBM Connections is running on prem..
So this is also an example of hybird cloud integration.
Create communities for new accounts
Here we leverage the existing integration of CRM and SharePoint. When a new document location is created for an account in Microsoft CRM, we also create a community in IBM Connections.
The technology used is a so-called plugin, this plugin is executed in the Microsoft CRM platform and uses the REST endpoints of IBM Connections to create a community.
Figure 1 Snippet from ActivityStream
To be prepared for sharing content in this community with people outside our organization, we create private communities and populate the Access Control List (4) with e-office users that are already associated this account in Microsoft CRM.
We have added a SharePoint document list widget to this community (2).
Finally we change the community logo (1) and add bookmarks to CRM and SharePoint (3).
The movie below demonstrates the user experience for this functionality, watch the numbers at the end of the clip.
- C# plugin to respond the new document location “event”
ATOM post to Connections Endpoints:
These actions are also visible in the activity stream, see figure 1, above.
Create sub communities for opportunities and projects for this account
Similar to Accounts , we can create sub communities for opportunities (CRM), projects (PSA) and cases (CRM).
This way all activity for one account is collected in a community and all its sub communities.
Proposals are stored in SharePoint online and directly accessible from the corresponding community.
For project documents the same principal applies.
Provided a SharePoint library widget that displays documents belonging to this account, opportunity or project
The SharePoint library widget is nothing more than an i-frame that points to a tailor-made (in this case made by the Microsoft CRM people) SharePoint Document list.
Using the i-frame technology, we rely on the browser to authenticate us to Office365.
Figure 2. Screenshot of the SharePoint Documents widget.
Below an excerpt from the widget.xml. There is a JSP (SPurl.jsp) that knows how to find the right URL from the list of important bookmarks in the given community.
<iw:iwidget name="iframewidget" xmlns:iw="http://www.ibm.com/xmlns/prod/iWidget"
iScope="HelloWorldWidgetClass" supportedModes="view fullpage" mode="view" lang="en">
<iw:resource uri="jquery-1.4.2.min.js" />
<![CDATA[ <img style="visibility:hidden" id='check_pic' src="https://TENANT.sharepoint.com/sites/crm/crmgrid/images/ico_16_delete.gif" onabort="alert('interrupted')" onload="check_success('loading iframe...')" onerror="check_error('Please login to <a href=https://TENANT.sharepoint.com/ target=_blank >SharePoint</a> and refresh this IBM connections page (F5)')"/>
<div id="hfi" name="hfi"></div>
Integrated search; all connections content is put into SharePoint to make it available to the SharePoint Online search engine
The separation of content in different systems provides a challenge for search. That is why we decided to have one place to search across all data.
We have chosen to use the SharePoint online search engine to index and search all.
We could use the open search support that both IBM and Microsoft offer, but we wanted the search results to be displayed as one.
So we decided to leverage the seedlist spi and put all data in a single SharePoint list.
To achieve this, we created a Provider Hosted SharePoint application in C# and deployed this application in an Azure Website.
Each Connections application has a different way of populating the seedlist, this meant we had to a lot of learning as you go with parsing the atom feeds.
Now that we have the items in SharePoint, clicking on a search result, will open the SharePoint item instead of the Connections page.
Fortunately SharePoint search supports Result Types and Display Templates. This way we can change the default behavior.
Finally we mapped the connections tags to managed metadata properties in SharePoint, this way we can use the refiner functionality of SharePoint search.
The clip below will highlight some of these SharePoint search features.