How to connect CiviCRM with SharePoint or Office 365

This "how-to-connect" documentation will explain the initial configuration of an example connection from CiviCRM to a SharePoint Online List in Office 365. We will be synchronizing data stored in CiviCRM.


This guide presupposes that you have installed the Layer2 Cloud Connector and that you are familiar with its basic functionality. The Layer2 Cloud Connector User Documentation will provide you with all necessary information.



1. Configuring CiviCRM

To connect to your CiviCRM you must log in as a developer. Go to Contacts to get the contact id from the user.


CiviCRM Contact ID


Go to the API explorer.


CiviCRM API Explorer


You must create an API key for the user you are giving access to. This user must also be a CRM user. In our case, we are using DRUPAL. The user is a registered user in Drupal AND in CiviCRM.


CiviCRM Create API Key


Select the Entity Contact and set the Action Create. Select the Contact ID parameter and set the id you copied from the user.

The API key must be generated. You can use some tool to generate it or create you own.


Generating API Key


Copy the value and past it into the field for the parameter API key.

Click on EXECUTE to write the data into the database.


Setting API Key


If you have access to your database, you can check the written value in the table civicrm_contact:


Check API Key


To send a request, we need the website key. This value is inside the file <your_drupal_installation_path>\sites\default\civicrm.settings.php:


CiviCRM website key



2. Configuring the Layer2 Cloud Connector

2.1. Creating a new connection

Create a new connection by using the Create New Connection option in the Actions pane (right-hand side). The new connection will appear at the bottom of the Connection Manager List (left-hand side). Click on your newly created connection to open the connection configuration settings.


Choose a meaningful name for your connection and replace the current "New Connection" Connection Title with it.


Connections to CiviCRM only support uni-directional read-only connections. Choose Left to Right as connection direction.


Step 1 CiviCRM connection setup



2.2. Configuring the Data Entity 1 (CiviCRM as Data Source)

We will now set up our Data Entities. Go to the data entity “Data Entity 1” to open the configuration settings.


Choose a Data Entity Title. It is recommended to give your entities meaningful names to maintain an overview when you decide to set up multiple connections.


Select the Data Provider for JSON from the data provider list. You can search for JSON by typing into the selection box.


Step 2 CiviCRM integration source setup


For the Connection String, we need the information mentioned in step 1. You can copy the below connection string and adjust it to match your gathered information. Use the Verify Connection String option to evaluate if the provided connection string is valid.


Step 2.5 CiviCRM integration connection string setup


Connection String:






  • "URI=http://localhost/drupal/sites/all/modules/civicrm/extern/rest.php?entity=yourentity&action=get&api_key=yourap;" this property defines the user account that will be used.


The json parameter must contain {"sequential":1} and its value must be 64 encoded.

To get different data, see the API explorer inside CiviCRM.


The Select statement:




The Select Statement text box is used to define specific data queries. We will be gathering all contacts. You can copy the below select statement and adjust it to match your needs. Save your changes by using the right-hand pane option Save Changes.


To check if all necessary columns are received, you can use the Preview Data option on the right-hand pane which will provide you with a pop-up window showing your sample data from your CiviCRM entity. 


Preview data of CiviCRM integration


2.3. Configuring Data Entity 2 (SharePoint List as Target)

We are going to send the data to a custom SharePoint Online list. It's required that you set up this list prior to the next steps. Your list should contain matching columns according to your source entity.


Use the left-hand pane to switch to the data entity "Data Entity 2". We will be using the Layer2 SharePoint Provider for this setup. 


For more information about the SharePoint provider visit:


You can copy the below Connection String which contains the minimum of required properties to connect to your custom SharePoint Online list.




  • "URL=https://your_custom_sharepoint_url/AllItems.aspx;" this property defines the URL of your custom list that will be addressed.
  • "Authentication=Microsoft_Modern;" this property will determine the authentication method used. Microsoft_Modern is the default authentication method to access Microsoft Office 365 / SharePoint Online and should work in most cases, even if the SharePoint site is connected to an ADFS. This authentication does not need any further connection string settings, other than the URL of the connected system.


Step 3 CiviCRM integration target setup


Enter the password that belongs to the user account used in the connection string into the Password field. Save your changes by using the right-hand pane option Save Changes.

In the next step, we will configure our mapping settings. Click on the Mappings option on the left-hand pane. If your fields from SharePoint are named identical to the fields from your source system, the Enable Auto Mapping option will match those columns. Disabling this option allows you to match your columns as needed. We enabled auto-mapping in our setup. Save your changes by using the right-hand pane option Save Changes.


Step 4 CiviCRM integration mapping


2.4. Running your connection

To run your connection switch back to the main connection configuration node and use the Run Now Button located on the bottom of the setup page. The Run Synchronization Toolbox will also display the synchronization process. 


Step 5 CiviCRM data integration start


Below is a data preview of the information we have accessed in our source entity:


Finished CiviCRM integration


This will be the result in our SharePoint Online list after our initial successfull synchronization.


CiviCRM integration ready

3. Hints and known issues


3.1. Connection direction

As far as tested, this connection only supports uni-directional read-only synchronizations. 

3.2. Data model

To see all the tables and views you can access with the CiviCRM provider, use these queries in the Select Statement:



SELECT * FROM sys_tables


SELECT * FROM sys_views



If there are more tables or views available, you can load them with the option "load more" in the popup window.

3.3. Batch operations

If you try to make multiple operations at the same time, you can get an error that batch operations not allowed. Set the parameter Other=’BatchSize=1’ in your connection string to avoid this error. 





Search for more data integration & synchronization solutions

Icon of Contact us - Chat - Layer2 leading solutions


Contact us directly to discuss your specific requirements, help you with purchasing, or with any other questions.


Icon for Layer2 Solutions Finder- Layer2 leading solutions

About the Layer2 Cloud Connector

Get more information about the Layer2 Cloud Connector on the product page.



Icon for Layer2 Solutions Finder- Layer2 leading solutions


Get a free trial of the Layer2 Cloud Connector after a short registration.