link

# CRM Configurations

# Overview

The CRM Configuration SOAP API enables the management of CRM integrations within the Akixi platform. This API provides a comprehensive set of operations for configuring and managing CRM connections at various scopes (TelSys, Partition, or Device level).

# Key Features

  • Template-Based Configuration: CRM configurations are based on predefined templates that ensure consistency and validate settings
  • Hierarchical Scoping: Configurations can be applied at different levels (TelSys, Partition, Device)
  • Dynamic Updates: Support for real-time updates of CRM configurations without service interruption
  • Secure Storage: Sensitive configuration data is stored securely and transmitted using encrypted channels
  • Flexible Integration: Support for multiple CRM types and custom configuration parameters

# Configuration Scope Levels

  1. TelSys Level: Apply configuration to an entire telephone system
  2. Partition Level: Configure CRM settings for a specific partition
  3. Device Level: Set configurations for individual devices

# Supported Operations

Operation Name Operation Description
CRMConfigurationAdd Add a new CRM Configuration entry.
CRMConfigurationChange Change an existing CRM Configuration.
CRMConfigurationDelete Delete a CRM Configuration.
CRMConfigurationInfo Get information about a CRM Configuration.
CRMConfigurationList Lists CRM Configurations accessible with your Akixi account based on the ids (TelSysID, PartIDInTelSys and DeviceNumber) specified in the URL.

# Operation Details

# CRMConfigurationAdd

CRM Configurations are added via CRMConfigurationAdd request. The main purpose of this request is to create a new CRM Configuration which is later used by a CRM client.

# CRMConfigurationAdd Request

The following request body shows an example of a CRMConfigurationAdd operation. This request includes all parameters supported by CRMConfigurationAdd operation invoked in order to create a new CRM Configuration.

<Request Operation="CRMConfigurationAdd">
    <InvokeID>11</InvokeID>
    <SessionID>5E4924352BA7E2038339957559C2DA75</SessionID>
    <OperationPayload>
        <Property Name="TelSysID">1</Property>
        <Property Name="PartIDInTelSys">1</Property>
        <Property Name="DeviceNumber">01234567101</Property>
        <Property Name="Description">CRM Configuration Description</Property>
        <Property Name="CRMType">CrmAddin.SugarCrm.SugarCrmAddin</Property>
        <Container Name="CRMConfiguration">
            <Property Name="JSONData">{"ClientId":"0987654321","SObjectNames":["Account","Contact","Lead"]}</Property>
        </Container>
        <Container Name="CRMConfigurationCommon">
            <Property Name="JSONData">{"Cached":"true","CacheFrequency":60,"CacheFrequencyUnit":"Minutes"}</Property>
        </Container>
    </OperationPayload>
</Request>

You can specify '-1' value for TelSysID to create a CRM Configuration for Telephone System scope. '-1' represents 'UnknownNoneOrAll' value.

You can specify '-1' value for PartIDInTelSys to create a CRM Configuration for Partition scope. '-1' represents 'UnknownNoneOrAll' value.

You can specify 'UnknownNoneOrAll' value for DeviceNumber to create a CRM Configuration for Device scope.

CRM Configuration is a String of JSON format. The property name must be 'JSONData' in the 'CRMConfiguration' container.

CRM Configuration Common is a String of JSON format. The property name must be 'JSONData' in the 'CRMConfigurationCommon' container.

CRMConfiguration is analyzed against the template for the provided CRM Type from DynamoDB to determine fields of a type 'password'. These fields should be provided in the request in an encrypted form using the encryption mechanism commonly used on the front end. They are decrypted by the back end and encrypted once again using another DB specific mechanism before being saved in the DB.

# CRMConfigurationAdd Response

If your operation was successful, you will receive a response similar to the following:

<Response Result="Success">
    <InvokeID>11</InvokeID>
</Response>

You will now be able to access the newly created CRM Configuration entry by invoking other CRMConfigurationXXX operations that will include its unique identifier (CRMConfigurationID). The CRM Configuration can also be viewed & modified under the Administration “CRM Configuration” area of the Akixi Service administration portal.

If the request was unsuccessful (i.e. the response’s Result attribute depicts the “Fail” value), then the response’s error code and the message description values should be parsed by the client application and then handled accordingly. Some common errors returned by this operation are provided in the table below:

Error Type Error Codes
General Error Codes 10103, 10107, 10108
Session Related Error Codes 10301, 10302
Authentication Related Error Codes 10305, 10307, 10313
Telephony Server Component Related Error Codes 11012, 11013
Partition Related Error Codes 11131
Device Related Error Codes 11161
Permissions Related Error Codes 10511, 10512, 10514, 10515, 10700, 10701, 10702
CRM Configuration Related Error Codes 31000, 31001, 31005, 31004, 31006, 31007

Please refer to the “Error Codes” chapter for further details on specific error codes and their meaning.

# CRMConfigurationChange

CRM Configurations can be modified via CRMConfigurationChange request. To modify parameters of an existing CRM Configuration, you must build a request that will include corresponding CRM Configuration’s unique identifier CRMConfigurationID, telephone system id TelSysID, partition id in a telephone system PartIDInTelSys, device number DeviceNumber, as well as the Properties to actually update.

# CRMConfigurationChange Request Parameters

Please note that certain CRM Configuration parameters are read-only after creation - therefore, you are not able to update them.

Read-only parameters used within the CRMConfigurationChange request can be found in the table below.

Parameter Name Description
CRMConfigurationID Unique ID for each CRM Configuration, generated by application when the entity is first created.
TelSysID The identifier of a telephony system this CRM Configuration is aimed to.
PartIDInTelSys The partition id in a telephone system this CRM Configuration is aimed to.
DeviceNumber Device number this CRM Configuration is aimed to.
CRMType The CRM Type this CRM Configuration is aimed to.

# CRMConfigurationChange Request

The following request body shows an example of a CRMConfigurationChange operation.

<Request Operation="CRMConfigurationChange">
    <InvokeID>11</InvokeID>
    <SessionID>5E4924352BA7E2038339957559C2DA75</SessionID>
    <OperationPayload>
        <Property Name="CRMConfigurationID">8b421354e7ea58f6:1007bf0b:197cf8dc588:-776e</Property>
        <Property Name="TelSysID">1</Property>
        <Property Name="PartIDInTelSys">1</Property>
        <Property Name="DeviceNumber">01234567101</Property>
        <Property Name="Description">CRM Configuration Description</Property>
        <Container Name="CRMConfiguration">
            <Property Name="JSONData">{"ClientId":"0987654321","SObjectNames":["Account","Contact","Lead"]}</Property>
        </Container>
        <Container Name="CRMConfigurationCommon">
            <Property Name="JSONData">{"Cached":"true","CacheFrequency":60,"CacheFrequencyUnit":"Minutes"}</Property>
        </Container>
    </OperationPayload>
</Request>

You can specify '-1' value for TelSysID to update a CRM Configuration for Telephone System scope. '-1' represents 'UnknownNoneOrAll' value.

You can specify '-1' value for PartIDInTelSys to update a CRM Configuration for Partition scope. '-1' represents 'UnknownNoneOrAll' value.

You can specify 'UnknownNoneOrAll' value for DeviceNumber to update a CRM Configuration for Device scope.

CRM Configuration is a String of JSON format. The property name must be 'JSONData' in the 'CRMConfiguration' container.

CRM Configuration Common is a String of JSON format. The property name must be 'JSONData' in the 'CRMConfigurationCommon' container.

CRMConfiguration is analyzed against the template for the provided CRM Type from DynamoDB to determine fields of a type 'password'. These fields should be provided in the request in an encrypted form using the encryption mechanism commonly used on the front end. They are decrypted by the back end and encrypted once again using another DB specific mechanism before being saved in the DB.

All CRMConfiguration fields except password fields should be provided in the request, even in case their values are not updated. Passwords should be provided only in case they are updated. If the password is not updated it should not be included into the json string value sent in CRMConfiguration field.

# CRMConfigurationChange Response

If your operation was successful, you will receive a response similar to the following:

<Response Result="Success">
    <InvokeID>11</InvokeID>
</Response>

If the request was unsuccessful (i.e. the response’s Result attribute depicts the “Fail” value), then the response’s error code and the message description values should be parsed by the client application and then handled accordingly. Some common errors returned by this operation are provided in the table below:

Error Type Error Codes
General Error Codes 10103, 10107, 10108
Session Related Error Codes 10301, 10302
Authentication Related Error Codes 10305, 10307, 10313
Telephony Server Component Related Error Codes 11012, 11013
Partition Related Error Codes 11131
Device Related Error Codes 11161
Permissions Related Error Codes 10511, 10512, 10514, 10515, 10700, 10701, 10702
CRM Configuration Related Error Codes 31001, 31002, 31003, 31006, 31007

Please refer to the “Error Codes” chapter for further details on specific error codes and their meaning.

# CRMConfigurationDelete

CRM Configurations can be deleted via CRMConfigurationDelete request. All parameters (TelSysID, PartIDInTelSys, DeviceNumber, and CRMConfigurationID) must be provided to identify the configuration to delete.

# CRMConfigurationDelete Request Parameters

Parameter Name Type Required Description
TelSysID String Yes The identifier of a telephony system
PartIDInTelSys String No The partition id in a telephone system
DeviceNumber String No Device number
CRMConfigurationID String Yes Unique identifier of the CRM Configuration to delete

# CRMConfigurationDelete Request

The following request body shows an example of a CRMConfigurationDelete operation:


<Request Operation="CRMConfigurationDelete">
  <InvokeID>12</InvokeID>
  <SessionID>5E4924352BA7E2038339957559C2DA75</SessionID>
  <OperationPayload>
    <Property Name="TelSysID">1</Property>
    <Property Name="PartIDInTelSys">1</Property>
    <Property Name="DeviceNumber">01234567101</Property>
    <Property Name="CRMConfigurationID">8b421354e7ea58f6:1007bf0b:197cf8dc588:-776e</Property>
  </OperationPayload>
</Request>

# CRMConfigurationDelete Response

If your operation was successful, you will receive a response similar to the following:


<Response Result="Success">
  <InvokeID>12</InvokeID>
</Response>

If the request was unsuccessful, some common errors returned by this operation are provided in the table below:

Error Type Error Codes
General Error Codes 10103, 10107, 10108
Session Related Error Codes 10301, 10302
Authentication Related Error Codes 10305, 10307, 10313
Telephony Server Component Related Error Codes 11012, 11013
Partition Related Error Codes 11131
Device Related Error Codes 11161
Permissions Related Error Codes 10511, 10512, 10514, 10515, 10700, 10701, 10702
CRM Configuration Related Error Codes 31001, 31002, 31003, 31006, 31007

Please refer to the “Error Codes” chapter for further details on specific error codes and their meaning.

# CRMConfigurationInfo

Retrieve detailed information about a specific CRM Configuration via CRMConfigurationInfo request. All parameters (TelSysID, PartIDInTelSys, DeviceNumber, and CRMConfigurationID) must be provided to identify the configuration to retrieve.

# CRMConfigurationInfo Request Parameters

Parameter Name Type Required Description
TelSysID String Yes The identifier of a telephony system
PartIDInTelSys String No The partition id in a telephone system
DeviceNumber String No Device number
CRMConfigurationID String Yes Unique identifier of the CRM Configuration to retrieve

# CRMConfigurationInfo Request


<Request Operation="CRMConfigurationInfo">
  <InvokeID>13</InvokeID>
  <SessionID>5E4924352BA7E2038339957559C2DA75</SessionID>
  <OperationPayload>
    <Property Name="TelSysID">1</Property>
    <Property Name="PartIDInTelSys">1</Property>
    <Property Name="DeviceNumber">01234567101</Property>
    <Property Name="CRMConfigurationID">8b421354e7ea58f6:1007bf0b:197cf8dc588:-776e</Property>
  </OperationPayload>
</Request>

# CRMConfigurationInfo Response


<Response Result="Success">
  <InvokeID>14</InvokeID>
  <Success>
    <Property Name="CRMConfigurationID">db7e33a7d8b7b1ea:-22ff4bbb:197ea30cca8:-7fa3</Property>
    <Property Name="Description">CRM Configuration Test</Property>
    <Property Name="CRMType">CrmAddin.Salesforce.SalesforceAddin</Property>
    <Property Name="CMEnvironmentID">d6d6c5a5f0f90d60:-15617a00:169f533f6d5:5613</Property>
    <Property Name="TelSysID">2</Property>
    <Property Name="PartIDInTelSys">1</Property>
    <Property Name="DeviceNumber">UnknownNoneOrAll</Property>
    <Container Name="CRMConfiguration">
      <Property Name="SupportEncryptedFields">true</Property>
      <Property Name="Endpoint">https://hogsnose-dev-ed.my.salesforce.com/services/oauth2/
      </Property>
      <Property Name="ClientId">
        3MVG9WtWSKUDG.x41FVg82vFODI5SiqPK9DyMBYBaRsTvaVHeFfGHBFztVtiZpLnp7hl2K04iXA==
      </Property>
      <Property Name="SObjectsRequireRefresh">true</Property>
      <Property Name="ExcludeConvertedLeads">true</Property>
      <Property Name="SObjectNames">Account,Contact,Lead</Property>
    </Container>
    <Container Name="CRMConfigurationCommon">
      <Property Name="CacheFrequency">60</Property>
      <Property Name="CacheFrequencyUnit">Minutes</Property>
      <Property Name="Cached">false</Property>
      <Property Name="AutoPopOption">Never</Property>
      <Property Name="CreateActivityOnCallEnd">false</Property>
      <Property Name="EnableActivitiesOnInternalNumbers">false</Property>
      <Property Name="RelatedDataEnabled">true</Property>
      <Property Name="ShowActivityOnCall">false</Property>
    </Container>
  </Success>
</Response>

Note: Password fields in the CRMConfiguration JSON data are returned in encrypted form.

If the request was unsuccessful, some common errors returned by this operation are provided in the table below:

Error Type Error Codes
General Error Codes 10103, 10107, 10108
Session Related Error Codes 10301, 10302
Authentication Related Error Codes 10305, 10307, 10313
Telephony Server Component Related Error Codes 11012, 11013
Partition Related Error Codes 11131
Device Related Error Codes 11161
Permissions Related Error Codes 10511, 10512, 10514, 10515, 10700, 10701, 10702
CRM Configuration Related Error Codes 31001, 31002, 31003, 31006, 31007

Please refer to the “Error Codes” chapter for further details on specific error codes and their meaning.

# CRMConfigurationList

Lists CRM Configurations accessible with your Akixi account based on the ids (TelSysID, PartIDInTelSys and DeviceNumber) specified in the URL. The operation supports filtering by telephony system, partition, and device, with optional capabilities for field selection, searching, sorting, and pagination.

# CRMConfigurationList Request Parameters

Parameter Name Type Required Description
TelSysID String No The identifier of a telephony system to filter configurations. Use '-1' for configurations at Telephone System scope
PartIDInTelSys String No The partition id in a telephone system to filter configurations. Use '-1' for configurations at Partition scope
DeviceNumber String No Device number to filter configurations. Use 'UnknownNoneOrAll' for configurations at Device scope
CRMConfigurationFields String No Comma-separated list of fields to include in the response. Available fields: CRMConfiguration, CRMConfigurationCommon, CMEnvironmentID
CrmType String No Filter configurations by CRM type
SearchQuery String No Text to search across configuration descriptions and CRM types
Sort String No Sort field and direction in format "field:ASC" or "field:DESC". Supported sort fields match available CRMConfigurationFields
Offset Integer No Number of configurations to skip (zero-based). Used with Limit for pagination. Default is 0
Limit Integer No Maximum number of configurations to return. Used with Offset for pagination. Default is 1000

# CRMConfigurationList Request Examples

Here are some example requests showing different filtering and query options:

  1. Basic request with field selection and sorting:

<Request Operation="CRMConfigurationList">
  <InvokeID>14</InvokeID>
  <SessionID>5E4924352BA7E2038339957559C2DA75</SessionID>
  <OperationPayload>
    <Property Name="TelSysID">1</Property>
    <Property Name="PartIDInTelSys">1</Property>
    <Property Name="DeviceNumber">01234567101</Property>
    <Property Name="CRMConfigurationFields">CRMConfigurationID,Description,CRMType</Property>
    <Property Name="Sort">Description:ASC</Property>
  </OperationPayload>
</Request>
  1. Request with CRM type filtering and pagination:

<Request Operation="CRMConfigurationList">
  <InvokeID>15</InvokeID>
  <SessionID>5E4924352BA7E2038339957559C2DA75</SessionID>
  <Offset>0</Offset>
  <Limit>10</Limit>
  <OperationPayload>
    <Property Name="TelSysID">-1</Property>
    <Property Name="PartIDInTelSys">-1</Property>
    <Property Name="DeviceNumber">UnknownNoneOrAll</Property>
    <Property Name="CrmType">CrmAddin.SugarCrm.SugarCrmAddin</Property>
    <Property Name="SearchQuery">demo</Property>
  </OperationPayload>
</Request>

Note:

  • Use TelSysID='-1' to list CRM Configurations for all Telephone System scope
  • Use PartIDInTelSys='-1' to list CRM Configurations for all Partition scope
  • Use DeviceNumber='UnknownNoneOrAll' to list CRM Configurations for all Device scope

# CRMConfigurationList Response

A successful response will contain a list of CRM configurations matching the filter criteria:


<Response Result="Success">
  <InvokeID>14</InvokeID>
  <Success>
    <Property Name="Offset">0</Property>
    <Property Name="Total">6</Property>
    <Container>
      <Property Name="CRMConfigurationID">054b5e06055eae21:-34894830:197ac9265bf:-7ffe</Property>
      <Property Name="Description">CRM Configuration 10</Property>
      <Property Name="CRMType">CrmAddin.SugarCrm.SugarCrmAddin</Property>
      <Property Name="TelSysDescription">1 - tel sys</Property>
      <Property Name="PartitionDescription">[None Or All Partitions]</Property>
      <Property Name="DeviceDescription">None Or All Devices</Property>
    </Container>
    <Container>
      <Property Name="CRMConfigurationID">054b5e06055eae21:-34894830:197ac9265bf:-7fff</Property>
      <Property Name="Description">CRM Configuration 10</Property>
      <Property Name="CRMType">CrmAddin.SugarCrm.SugarCrmAddin</Property>
      <Property Name="TelSysDescription">1 - tel sys</Property>
      <Property Name="PartitionDescription">1 Partition</Property>
      <Property Name="DeviceDescription">None Or All Devices</Property>
    </Container>
    <!-- Additional CRM Configuration containers may be included here -->
  </Success>
</Response>

The response includes:

  • A list of CRM configurations matching the query parameters
  • Pagination information (Total count and Offset) as top-level properties
  • Basic configuration details including:
    • CRMConfigurationID: Unique identifier for the configuration
    • Description: User-provided description
    • CRMType: Type of CRM integration
    • TelSysDescription: Description of the telephone system
    • PartitionDescription: Description of the partition, or "[None Or All Partitions]" if at system level
    • DeviceDescription: Description of the device, or "None Or All Devices" if at partition/system level

If the request was unsuccessful, some common errors returned by this operation are provided in the table below:

Error Type Error Codes
General Error Codes 10103, 10107, 10108
Session Related Error Codes 10301, 10302
Authentication Related Error Codes 10305, 10307, 10313
Telephony Server Component Related Error Codes 11012, 11013
Partition Related Error Codes 11131
Device Related Error Codes 11161
Permissions Related Error Codes 10511, 10512, 10514, 10515, 10700, 10701, 10702
CRM Configuration Related Error Codes 31001, 31002, 31003, 31006, 31007

Please refer to the “Error Codes” chapter for further details on specific error codes and their meaning.