API Overview

inContact WFO APIs have a restricted command set available and can be used by third-party applications that can communicate over HTTP.

Command Message Structure

Messages are sent using standard HTTP request types (such as GET, POST, PUT, and so forth). The command's URI corresponds to its name. Parameters for requests are sent either in the URI itself or in the body in JSON format.

Many API commands require an agent identifier. To provide flexibility, the system can use a number of different fields for this purpose.

Valid values for AgentIdentifier are:

  • Agent ID
  • CrmUsername
  • Phone
  • SystemUsername
  • Username

Possible Returns

API commands can generate the following returns:

  • 200 OK – Request was completed, information was returned, or element matching specified parameters was found.
  • 404 Not Found – Requested item (agent, device) could not be located due to missing body parameter(s), does not currently exist in the API tracker(s), or nothing was found that matched the criteria provided.
  • 500 Internal Server Error – Can be caused by service misconfiguration or other problems with the server outside the scope of the inContact WFO API services.

Example

The following series of commands starts a new recording, updates the recording with 1234567890 for the User2 field of the recording record, starts and stops a blackout, and ends the call recording for an agent with Agent ID 1. The agent is using phone extension 4678.

Call Start

POST

http://[RecordingApiServerAddress]/api/Record/StartForAgent

{"AgentIdentifier":"Id", "Value":"1"}

or

{"AgentIdentifier":"Phone", "Value":"4678"}

Call Update

POST

http://[RecordingApiServerAddress]/api/Record/UpdateForAgent

{"AgentIdentifier":"Phone", "Value":"4678", "CallMetadata":{"user2":"1234567890"}}

Blackout Start

POST

http://[RecordingApiServerAddress]/api/Blackout/StartForAgent

{"AgentIdentifier":"Id", "Value":"1"}

Blackout Stop

POST

http://[RecordingApiServerAddress]/api/Blackout/StopForAgent

{"AgentIdentifier":"Id", "Value":"1"}

Call Stop

POST

http://[RecordingApiServerAddress]/api/Record/StopForAgent

{"AgentIdentifier":"Id", "Value":"1"}

or

{"AgentIdentifier":"Phone", "Value":"4678"}

Related References