Introduction

SpiceCSM comes with two types of integration capabilities to allow SpiceCSM to interact with third party applications. Please refer to the Spice Help Desk user manual on implementation.

Web Call Integrations

SpiceCSM comes bundled with the ability to make web calls to allow for the exchange of data between SpiceCSM and third party applications without direct contact between the applications. This structure allows SpiceCSM to integrate with third party applications that are hosted/installed remotely. In addition this structure provides a secure method of integration as SpiceCSM has no direct contact with the external application.

SpiceCSM uses HTTP POST submissions to send data to third party applications and receives data from third party applications in a predefined format (currently XML). Because of this structure the only requirements of the receiving web call are that it be able to accept HTTP POST variables and output the predefined format (XML). Any language that can meet these two requirements may be used.

Two POST variables are always passed no matter the call. This variables are intended to be used for passing authentication credentials.

intUser

intPass

 

Account Search/Load

SpiceCSM uses two web calls to retrieve external data for account records, the search and load options. For both options SpiceCSM sends search parameters via the web as HTTP POST variables and expects to receive a predefined (XML) structure. The call is made to a specified URL that receives the variables, queries the appropriate data source, and returns the results.

While there are a number of HTTP POST variables that will be passed, the author of the receiving call may choose to limit which variables are used in the search query. In addition the author has full control over the type and amount of data that is returned.

Following are the variables that can be passed. Only variables that contain data will be sent.

Variable Name

Type

Description

Userkey

String

This refers to the account name.

FirstName

String

 

LastName

String

 

AddressOne

String

 

AddressTwo

String

 

City

String

 

Region

String

 

PostalCode

String

 

Country

String

 

PrimaryPhone

String

 

SecondayPhone

String

 

PrimaryEmail

String

 

SecondaryEmail

String

 

Fax

String

 

Modile

String

 

Password

String

 

Status

String

 

AccountID

String

This refers to an external ID not a SpiceCSM account ID.

CustFields

String

Comma Delimited list containing pairs of the form "ID\value" for custom data fields.

 

The return data must be presented in the following structure (XML) in order to be properly validated and parsed.

<?xml version="1.0" ?> <users>

              <user status="Active" userkey=”jdoe" name="John%20Doe" email="johnd%40xyz%2Enet" phone="%28555%29%20555%2D5555" />

              <user status="Active" userkey=”jdoe2" name="John%20Doe" email="johgnd%40xyz%2Enet" phone="%28555%29%20555%2D5555" />               <user … /> </users>

The search can return multiple records by adding <user /> child elements to the <users /> parent element. Should no matching records be found the parent element must be returned with no child elements.

 

When making a web call to load an account only one (currently) variable is passed.

Userkey

String

Refers to the account name.

 

The return data must be presented in the following XML structure in order to be properly validated and parsed.

<?xml version="1.0" encoding="UTF-8"?> <userdata>

<user userkey="johnd" password="" status="Active" account="" />

<contacts>

    <contact firstname="John" lastname="Doe" aone="123%20Fake%20St%2E" atwo="" city="Anywhere" region="ZZ" pc="123456" country="" pphone="%28555%29%20555%2D5555" sphone="%28555%29%20555%2D5555" pemail="johnd%40xyz%2Enet" semail="" mobile="" fax="" />

</contacts>

<fielddata>

    <field id="1" value="Anything" />

</fielddata>

</userdata>

Multiple <contact /> child elements may exist for the <contacts /> parent element. Multiple <field /> elements may exist for the <fielddata /> parent element.

Account Update

The receiving web call will receive an HTTP Post containing a single variable labeled userXML.

This variable holds an XML string that can then be parsed to perform various tasks. The XML structure is identical to the account load structure, please refer to section Account Search/Load for further details.

Case Update

The receiving web call will receive an HTTP Post containing two variables labeled Userkey and caseXML.

The Userkey variable holds the account name while the caseXML variable holds an XML string that can then be parsed to perform various tasks.

The caseXML structure is:

<?xml version="1.0" ?>

<tickets>

    <ticket cid=”6344” //the SpiceCSM parent case ID

    id="7906"  //the SpiceCSM response ID

    tier="1" //the tier that the case is at

    date="1/27/06 1:27:51 PM" //date and time stamp of response creation

    status="In Progress" //current case status

    sid="2" //case status numeric ID

    issue="Browsing" //current case issue

    agent="Doe, John" //agent that entered the response

    aname="" //agent assigned to the case

    journal="13:28:41 - adding a second ticket for case dump testing " //journal entry text for the response

    email="" //e-mail text of the response

    article="" //knowledge base article text of the response

    treepath="" //process flow text of the response

    events="" //scheduled events for the case

/> </tickets>

API

SpiceCSM has at it's core a full low level API. This API is built using JSON RPC and allows for the direct manipulation of data in SpiceCSM.

This API can be used in many ways. Some examples of API usage would be creating a custom support portal, creating a real-time bidirectional integration with third party applications, or creating a custom plugin/module for SpiceCSM.

Telephony Screen Pop/Integration

SpiceCSM comes with the ability to integrate with third party telephony solutions. It is required that the telephony solution have the ability to 'push' a web page with the call.

This integration will 'pop' a browser window/tab and display the greeting script to the agent. At the same time, the appropriate brand will be automatically selected in SpiceCSM In addition, optional variables can be passed for further integration options.

The URL that is used is /spiceinstall/integrations/telephony/telephonypop.php .

Al variables are passed as GET parameters.

Required Variables

There are two variables that are required for this integration to work:

company - This is the ID of the company the call is for.

brand - This is the ID of the brand the call is for.

Optional Variables

These variables are optional passed and can change the actions of the integration:

callid - The unique ID of the call from the telephony system. This ID is recorded with the case/response for data mapping.

ani - The caller ID of the caller. If this variable is passed SpiceCSM will search the database to try and match the number with an account. If an account can be matched, the system will automatically load the account.

caseid - A case ID entered by the caller (via IVR). If this variable is passed SpiceCSM will search for a match and if found automatically load the account/case.