Microsoft Dynamics Integration Guide

    Microsoft Dynamics Integration Guide

    Audience

    This document is directed to customers and prospective customers interested in using Tenfold in a Microsoft Dynamics environment. Those who will perform the procedures described in this guide should have a basic level of familiarity with Microsoft Dynamics APIs, Microsoft Dynamics administration, general networking, and Tenfold.

    Goals

    The goal of this document is to provide knowledge, reference, and procedural information necessary to understand a proposed Microsoft Dynamics/Tenfold integration.

    This document is NOT intended as a specific system or network design document. If further clarification is needed, consult with a Tenfold representative.

    Terminology

    To ensure a common frame of reference, this guide uses the following terms in conjunction with this Microsoft Dynamics integration:

    • Application Programming Interface (API): A set of clearly defined methods of communication used by Tenfold for reading and writing data.
    • Click to Dial: A feature in the Tenfold UI which allows agents to click a phone number to dial a contact.
    • Tenfold Cloud: A set of Web Services that receives events from the telephony system and takes further action such as querying and saving to the CRM.
    • Tenfold User Interface (TUI): An agent facing user interface which agents will interact with for identifying callers, viewing recent activities, saving notes, dispositioning calls, etc.

    Customer responsibility

    You are responsible for supplying the physical and/or IP connection(s) to Microsoft Dynamics and LAN, and for obtaining and loading any licensing required by Microsoft Dynamics. You are also responsible for configuring Microsoft Dynamics to support the Tenfold integration.

    Dynamics requirements

    Version requirements

    Microsoft Dynamics 365 8.2.1.0176 or later

    Microsoft Dynamics USD 4.1 or later

    Connection requirements

    Accessible via TCP port 443 (https) to Tenfold Cloud

    Dedicated Service Account (i.e. API User)

    Permissions

    The tables shown below outline the out of the box entities and respective field permissions required for the core Tenfold integration. Read and/or write permissions for additional fields, both standard and custom, may be required for your Tenfold deployment.

    Legend:

    Table 1. Core Records Tab

    EntityPrivilegeAccess Level
    AccountCreateOrganization
    AccountReadOrganization
    AccountWriteOrganization
    AccountDeleteUser
    AccountAppendOrganization
    AccountAppend ToOrganization
    Action CardCreateUser
    Action CardReadUser
    Action Card User SettingsReadUser
    ActivityCreateOrganization
    ActivityReadOrganization
    ActivityWriteOrganization
    CategoryReadUser
    ConnectionReadUser
    Connection RoleReadOrganization
    ContactCreateOrganization
    ContactReadOrganization
    ContactWriteOrganization
    ContactDeleteUser
    ContactAppendOrganization
    ContactAppend ToOrganization
    Customer RelationshipReadUser
    Data ImportReadUser
    Data MapReadUser
    Duplicate Detection RuleReadUser
    Email SignatureReadUser
    Email TemplateReadUser
    FeedbackReadUser
    FollowReadUser
    Import Source FileReadUser
    LeadCreateOrganization
    LeadReadOrganization
    LeadWriteOrganization
    LeadDeleteUser
    LeadAppendOrganization
    LeadAppend ToOrganization
    Mail Merge TemplateReadUser
    NoteReadOrganization
    OpportunityCreateOrganization
    OpportunityReadOrganization
    OpportunityWriteOrganization
    OpportunityDeleteUser
    OpportunityAppendOrganization
    OpportunityAppend ToOrganization
    Opportunity RelationshipReadUser
    QueueReadUser
    ReportReadUser
    Saved ViewCreateUser
    Saved ViewReadUser
    Saved ViewWriteUser
    Saved ViewDeleteUser
    Saved ViewAppendUser
    Saved ViewAppend toUser
    Saved ViewShareUser
    SharePoint SiteReadOrganization
    Sync ErrorReadUser
    TraceReadOrganization
    User ChardReadUser
    User DashboardReadUser
    User Entity Instance DataReadUser
    User Entity UI SettingsCreateUser
    User Entity UI SettingsReadUser
    User Entity UI SettingsWriteUser
    User Entity UI SettingsDeleteUser
    User Entity UI SettingsShareUser



    Table 2. Sales Tab

    EntityPrivilegeAccess Level
    CompetitorReadOrganization
    ProductReadOrganization
    ProductAppendOrganization
    ProductAppend ToOrganization
    ProductAppend ToOrganization
    QuoteReadOrganization



    Table 3. Service Tab

    EntityPrivilegeAccess Level
    CaseWriteOrganization
    CaseReadOrganization
    CaseWriteOrganization
    CaseDeleteUser
    CaseAppendOrganization
    CaseAppend ToOrganization
    Knowledge ArticleReadBusiness Unit
    Knowledge Article ImageReadBusiness Unit
    Knowledge Article ViewsReadBusiness Unit
    Knowledge Interaction InsightReadBusiness Unit
    Knowledge Search InsightReadBusiness Unit



    Table 4. Business Management Tab

    EntityPrivilegeAccess Level
    Business UnitReadOrganization
    CurrencyReadOrganization
    OrganizationReadOrganization
    Security RoleReadOrganization
    TeamReadOrganization
    UserReadOrganization
    User SettingsCreateParent: Child Business Units



    Table 5. Service Management Tab

    EntityPrivilegeAccess Level
    EntitlementReadOrganization
    EntitlementWriteOrganization
    EntitlementAppendOrganization
    EntitlementAppend ToOrganization
    EntitlementAssignOrganization
    Entitlement TemplateReadOrganization
    Entitlement TemplateWriteOrganization
    Entitlement TemplateAppendOrganization
    Entitlement TemplateAppend ToOrganization
    Knowledge Article TemplateReadOrganization
    Knowledge Base RecordReadOrganization
    Knowledge Search ModelReadOrganization
    Routing Rule SetReadUser



    Table 6. Customization Tab

    EntityPrivilegeAccess Level
    App Config MasterReadOrganization
    Attribute MapReadOrganization
    CustomizationsReadOrganization
    EntityReadOrganization
    Entity KeyReadOrganization
    Entity MapReadOrganization
    FieldReadOrganization
    Hierarchy RuleReadOrganization
    Model-driven AppReadOrganization
    Option SetReadOrganization
    Plug-in AssemblyReadOrganization
    Plug-in Trace LogReadOrganization
    Plug-in TypeReadOrganization
    ProcessCreateUser
    ProcessReadOrganization
    ProcessWriteUser
    ProcessDeleteUser
    ProcessAppendUser
    ProcessAppend ToUser
    ProcessAssignUser
    ProcessShareUser
    Process ConfigurationReadOrganization
    Process SessionCreateUser
    Process SessionReadOrganization
    Process SessionWriteUser
    Process SessionDeleteUser
    Process SessionAppendUser
    Process SessionAppend ToUser
    Process SessionAssignUser
    Process SessionShareUser
    RelationshipReadOrganization
    Sdk MessageReadOrganization
    Sdk Message Processing StepReadOrganization
    Sdk Message Processing Step ImageReadOrganization
    SolutionReadOrganization
    System Application MetadataReadOrganization
    System ChartReadOrganization
    System FormReadOrganization
    System JobReadUser
    System JobWriteUser
    System JobAppendUser
    System JobAppend ToUser
    User Application MetadataCreateUser
    User Application MetadataReadUser
    User Application MetadataWriteUser
    User Application MetadataDeleteUser
    ViewReadOrganization
    Web ResourceReadOrganization
    Activate Real-time ProcessesN/AUser
    Execute Workflow JobN/AOrganization
    Run FlowsN/AOrganization



    Table 7. Custom Entities Tab

    EntityPrivilegeAccess Level
    Account Project Price ListCreateOrganization
    Account Project Price ListReadOrganization
    Account Project Price ListWriteOrganization
    Account Project Price ListDeleteOrganization
    Account Project Price ListAppendOrganization
    Account Project Price ListAppend ToOrganization
    Account Project Price ListAssignOrganization
    Account Project Price ListShareOrganization
    Channel Integration Framework v1.0 ProviderReadOrganization
    Channel Integration Framework v2.0 ProviderReadOrganization
    flowcardtypeReadOrganization
    icebreakersconfigReadOrganization
    KPI Event DefinitionReadUser
    Notification FieldReadOrganization
    Notification Field (Deprecated)ReadOrganization
    Notification TemplateReadOrganization
    Notification Template (Deprecated)ReadOrganization
    Post ConfigurationReadOrganization
    RecordingReadOrganization
    Scheduling ParameterReadOrganization
    Teams Dialer Admin settingsReadOrganization
    Template Tag (Deprecated)ReadOrganization
    TourReadOrganization
    App ProfileReadOrganization
    App ExtensionReadOrganization
    Work StreamReadOrganization
    Session TemplateReadOrganization
    Application App TemplateReadOrganization
    Productivity pane configurationReadOrganization
    Pane tab configurationReadOrganization
    Pane tool configurationReadOrganization
    Suggestion SettingReadOrganization
    Macro ConnectorReadOrganization
    Macro Action TemplateReadOrganization
    Macro Solution ConfigurationReadOrganization
    Smartassist configurationReadOrganization
    Adaptive Card ConfigurationReadOrganization



    Installation

    Required information

    Dynamics HostnameHostname of your Microsoft Dynamics Instance
    Dynamics Service Account UsernameThe username for the dedicated Tenfold service account (i.e. API User)
    Dynamics Service Account PasswordThe password for the dedicated Tenfold service account (i.e. API User)

    Installation procedure

    Establishing the initial connection from Tenfold to Microsoft Dynamics takes only a few minutes.

    1. Navigate to your Tenfold dashboard at https://dashboard.tenfold.com.
    2. Click Company Settings in the top navigation.
    3. In the sub-navigation, click CRM.
    4. Select Microsoft Dynamics as your CRM.
    5. Select the authentication method: OAuth or Credentials. To use credentials, input the following information into the form:
      • Hostname
      • Service Account Username
      • Service Account Password To use OAuth, input the following information into the form:
      • Hostname
      • Under Change Advanced Options
        • OAuth Client ID
        • OAuth Client Secret
        • OAuth Tenant ID
    6. Click Save. If the information provided is correct, Tenfold tests the connection and presents a success message.

    Embedding within Channel Integration Framework

    1. Install Channel Integration Framework from the Microsoft Appsource store.
    2. Ensure non-admins have read access to the msdyn_ciprovider entity.
    3. Open the Apps menu within the Dynamics instance, it can be opened by clicking on the drop down arrow in the top left corner of the screen.
    4. Select Channel Integration Framework
    5. Select +New.
    6. Apply the following within in the Channel Provider Configuration
      • Name: Tenfold Embedded UI
      • Label: Embedded UI
      • Channel URL: https://app.tenfold.com/dynamics.html?base=<your_dynamics_instance_URL> Example: https://app.tenfold.com/dynamics.html?base=https://mydynamics.dynamics.com
      • Enable Outbound Communication: Yes
      • Channel order: 0
      • API Version: 1.0
      • Trusted Domain: ""
      • Custom Parameters: width=283 rich_context=true NOTE: The Dynamics instance URL can be sourced from the Tenfold CRM configuration page h ere. The Custom Parameters section can have any desired width, however, smaller width parameters may skew different image assets or truncate parts of the Tenfold UI.
    7. Select which Unified Interface App the Embedded UI is to be added to.
    8. Select the Roles that are going to use/see the Tenfold Embedded UI.
    9. Click Save & Close on the bottom right corner.
    10. Lastly, if using Google Chrome, each user's browser will need to have the "SameSite by default cookies" setting disabled otherwise dependencies of the CIF framework may not load.
      1. In the Google Chrome browser navigate to chrome://flags via the address bar.
      2. Search for "SameSite by default cookies."
      3. Disable the "SameSite by default cookies" setting. The browser relaunches automatically.

    Permissions Troubleshooting

    The following steps will help you find any missing privileges.

    1. Open up the Developer Tools of the browser and inspect the element (Ctrl + Shift + C in Chrome) to see the backend privilege name.
    2. In most cases, requests with a status of 403 may mean that you need to configure additional permissions. To verify exactly which permission is required click on the request with status 403 and then the details of the particular request should be displayed.
    3. Then move to the right and look for the missing permission. Each missing permission is described according to the following scheme: prvActionPrivilegeName, where Action is what privilege is missing, e.g. Read/Write/Create, etc. For example, as you can see in the screenshot below, the prvReadmsdyn_panetabconfiguration privilege is missing so we must set Read permission to the msdyn_panetabconfiguration field.
    4. If you go further to the right, you will find the "LocalizedName" field, which indicates the name of the field for which we need to set the permission in our settings.


    If you need any assistance completing these steps or if you encounter any trouble, please reach out to our  

    Missing Something?

    Check out our Developer Center for more in-depth documentation. Please share your documentation feedback with us using the feedback button. We'd be happy to hear from you.