The Microsoft Dynamics Integration makes it easy to kick off, track, and report on your Projects, all from a Microsoft Dynamics Opportunity.
The integration is a registered Microsoft Entra Application, which doesn't require the installation of a package on your Dynamics instance, instead uses Microsoft's API to build the extension in the selected instance.
Prerequisites
- A Loopio instance
- A MS Dynamics instance with the "Dynamics 365 Sales" app
- A MS System Administrator that can grant the app the necessary permissions and has a SysAdmin role into the MS Dynamics instance where the integration will be installed.
Note: This SysAdmin should also have Admin access to the Loopio instance to establish the connection
Installation Steps
- Log in to the Loopio instance with a user who has the permission General Admin: Manage Integrations
- Click Admin
- Select the Integrations tab
- In the Dynamics panel, click Connect. You will be redirected to Microsoft's login page.
Note: if the SysAdmin user is already logged in (or has an active session) on Microsoft, this screen may not appear.
- Login into Microsoft with a SysAdmin user - list of available Ms Dynamics instances will show up (according to the access of the user) - do not yet click connect
- Open a separate tab with the Dynamics Power Platform Admin Center
- Create a new application user on the desired MS Dynamics instance (see section "Create Application user") after the notes:
- On the "App" section, search by the app Id
69587321-8777-45d4-8f60-f5295724fe13
- Assign it the desired Business unit
- Assign the System Administrator security role
- On the "App" section, search by the app Id
- In your original tab from step 5, select the MS Dynamics instance where the integration will be installed
- Click Connect
- Select the name of the Opportunity form where the Loopio Create Project form should appear
- Click Submit
- Enter the same Loopio credentials from Step 1
- You will be redirected to Loopio's Admin > Integrations page
Important: When connected, the MS Dynamics integration panel should show a Disconnect button. If the button is greyed out and shows the word Connecting, some processes may still be running in MS Dynamics.
Even when the installation is successfully completed (you see the "Disconnect" button in the Loopio Admin > Integrations page), it may take around 10 minutes before the form to create Projects is visible in MS Dynamics. This is due to the way MS Dynamics handles the generation of new objects on the Opportunity.
Removing the Security Role "System Administrator" from the Application User
Warning: Perform this step only after the "Disconnect" button appears on the Admin > Integrations page in Loopio.
After installation, the System Administrator security role can be removed from the application user that was created in step 7 of the Installation Steps above, and replaced with a custom security role.
- Create a new security role in the instance where the integration was installed with the permissions indicated below
- Select the application user, remove the System Administrator role and assign the security role created in the previous step
Adding Permissions for Creating Projects in Loopio
For any user who needs to be able to create Projects in Loopio, the following permission is necessary:
- Read permissions to the custom table Loopio MSD Accounts
We recommend creating a custom security role and assigning it to users who will be creating Projects in Loopio.
Necessary Permissions for the Application
Security Role Permissions for the Application User
The following describes the required security role permissions for the Application User (# MS Dynamics-Loopio Integration) created in step 7 of the Installation Steps above:
<RolePrivilege name="prvAppendloopio_project" level="Global" />
<RolePrivilege name="prvAppendToEntity" level="Global" />
<RolePrivilege name="prvAppendToloopio_project" level="Global" />
<RolePrivilege name="prvAppendToOpportunity" level="Global" />
<RolePrivilege name="prvAssignloopio_project" level="Global" />
<RolePrivilege name="prvCreateAttribute" level="Global" />
<RolePrivilege name="prvCreateCustomControlDefaultConfig" level="Global" />
<RolePrivilege name="prvCreateEntity" level="Global" />
<RolePrivilege name="prvCreateloopio_project" level="Global" />
<RolePrivilege name="prvCreatePublisher" level="Global" />
<RolePrivilege name="prvCreateQuery" level="Global" />
<RolePrivilege name="prvCreateRelationship" level="Global" />
<RolePrivilege name="prvCreateSharePointData" level="Global" />
<RolePrivilege name="prvCreateSolution" level="Global" />
<RolePrivilege name="prvCreateSystemForm" level="Global" />
<RolePrivilege name="prvCreateWebResource" level="Global" />
<RolePrivilege name="prvDeleteAttribute" level="Global" />
<RolePrivilege name="prvDeleteloopio_project" level="Global" />
<RolePrivilege name="prvReadAsyncOperation" level="Global" />
<RolePrivilege name="prvReadAttribute" level="Global" />
<RolePrivilege name="prvReadAttributeMap" level="Global" />
<RolePrivilege name="prvReadComplexControl" level="Global" />
<RolePrivilege name="prvReadCustomization" level="Global" />
<RolePrivilege name="prvReadEntity" level="Global" />
<RolePrivilege name="prvReadEntityMap" level="Global" />
<RolePrivilege name="prvReadHierarchyRule" level="Global" />
<RolePrivilege name="prvReadloopio_project" level="Global" />
<RolePrivilege name="prvReadOpportunity" level="Global" />
<RolePrivilege name="prvReadPluginAssembly" level="Global" />
<RolePrivilege name="prvReadPluginType" level="Global" />
<RolePrivilege name="prvReadPublisher" level="Global" />
<RolePrivilege name="prvReadQuery" level="Global" />
<RolePrivilege name="prvReadRelationship" level="Global" />
<RolePrivilege name="prvReadSavedQueryVisualizations" level="Global" />
<RolePrivilege name="prvReadSdkMessage" level="Global" />
<RolePrivilege name="prvReadSdkMessageProcessingStep" level="Global" />
<RolePrivilege name="prvReadSdkMessageProcessingStepImage" level="Global" />
<RolePrivilege name="prvReadSharePointData" level="Global" />
<RolePrivilege name="prvReadSharePointDocument" level="Global" />
<RolePrivilege name="prvReadSolution" level="Global" />
<RolePrivilege name="prvReadSystemForm" level="Global" />
<RolePrivilege name="prvReadUser" level="Global" />
<RolePrivilege name="prvReadWebResource" level="Global" />
<RolePrivilege name="prvWriteAttribute" level="Global" />
<RolePrivilege name="prvWriteCustomization" level="Global" />
<RolePrivilege name="prvWriteEntity" level="Global" />
<RolePrivilege name="prvWriteloopio_project" level="Global" />
<RolePrivilege name="prvWriteOpportunity" level="Global" />
<RolePrivilege name="prvWriteQuery" level="Global" />
<RolePrivilege name="prvWriteRelationship" level="Global" />
<RolePrivilege name="prvWriteSharePointData" level="Global" />
<RolePrivilege name="prvWriteSystemForm" level="Global" />
<RolePrivilege name="prvWriteWebResource" level="Global" />