Skip to content

Latest commit

 

History

History
276 lines (247 loc) · 8.65 KB

File metadata and controls

276 lines (247 loc) · 8.65 KB

Queri

Queri, or Queuemetrics Reporting Interface, sends requests to XMLRPC Client to return stats from Queuemetrics' reporting API platform given a valid set of client configurations.

Installation

Add this line to your application's Gemfile:

gem 'queri'

And then execute:

$ bundle

Or install it yourself as:

$ gem install queri

Usage

Configuring

Configurations for connecting to a Queuemetrics XMLRPC client are needed to send requests for analyses. They can be viewed with:

Queri::config

You can set these configurations with the following:

Queri::configure({username: "new_user", password: "new_password"})

or with a local YAML file:

Queri::configure_with("/path/to/a/config.yml")

Basic Usage

queues = ["1234"]
period_start = Time.now - 3600
period_end = Time.now
Queri::Stats::AgentsAndSessions::AgentAvailability.new( queues, period_start, period_end )
#=> report_object

These report objects respond to the method #response, which returns either an Array or a Hash, depending on whether the report is an agent-level or aggregate analysis. Keys for this response can be found by calling ::keys on the object class. ::key_translations for the object class returns a hash associating these keys with the raw data keys returned from the XMLRPC client.

Available Analyses

Currently returns analyses from two methods: QM.stats and QM.realtime.

  • Stats
    • AgentsAndSessions
      • AgentAvailability
      • AgentBillableTimeByHour
      • AgentOccupancyReport
      • AgentPayableTimeByHour
      • AgentPerformanceByAcdGroup
      • AgentSessionDetail
      • AgentSessionTimeByHour
      • AnsweredCallsByCustomGroup
      • AnsweredCallsByLocation
      • AnsweredCallsByServiceGroup
      • AnsweredCallsForSelectedQueues
      • SessionAndPauseDurations
    • AnsweredCalls
      • AgentsOnQueue
      • AllCalls
      • AnsweredCallsByDirection
      • AnsweredCallsByQueue
      • AnsweredCallsByStints
      • CallsFullyWithinTheGivenTimeInterval
      • DisconnectionCauses
      • DnisUsed
      • IvrSelection
      • MusicOnHoldByAgent
      • QueuePosition
      • ServiceLevelAgreement
      • Transfers
    • CallDistributionByDay
      • AnsweredCallDistributionPerDay
      • AnsweredCallWaitTimePerDay
      • InclusiveServiceLevelAgreementPerDay
      • QueueLengthPerDay
      • SalesPerDay
      • ScheduleAdherencePerDay
      • TrafficAnalysisByPeriodPerDay
      • UnansweredCallWaitTimePerDay
    • CallDistributionByDayOfWeek
      • AnsweredCallDistributionPerDayOfWeek
      • AnsweredCallWaitTimePerDayOfWeek
      • InclusiveServiceLevelAgreementPerDayOfWeek
      • QueueLengthPerDayOfWeek
      • SalesPerDayOfWeek
      • ScheduleAdherencePerDayOfWeek
      • TrafficAnalysisByPeriodPerDayOfWeek
      • UnansweredCallWaitTimePerDayOfWeek
    • CallDistributionByHour
      • AnsweredCallDistributionPerHour
      • AnsweredCallWaitTimePerHour
      • InclusiveServiceLevelAgreementPerHour
      • QueueLengthPerHour
      • SalesPerHour
      • ScheduleAdherencePerHour
      • TrafficAnalysisByPeriodPerHour
      • UnansweredCallWaitTimePerHour
    • CallOutcomes
      • BillableActivities
      • CallResultsByOutcomes
      • DetailedAgentReport
      • NonbillableActivities
      • Outcomes
    • DetailsOfAgentSessionsAndPauses
      • DetailOfAgentSessions
      • DetailOfAgentPauses
    • DetailsOfAnsweredCalls
      • QueueDetails
    • DetailsOfUnansweredCalls
      • DetailOfUnansweredCalls
    • Distributions
      • AcdAttemptsByQueue
      • AcdAttemptsByTerminal
      • InboundAcdCallAttempts
    • UnansweredCalls
      • AllCalls
      • AllCallsByStints
      • CallOverview
      • CallsFullyWithinTheGivenTimeInterval
      • DisconnectionCauses
      • DnisUsed
      • DnisUsedForAllCalls
      • EnterQueuePosition
      • EnterQueuePositionForAllCalls
      • InclusiveAnsweredServiceLevelAgreement
      • InclusiveServiceLevelAgreement
      • IvrSelection
      • IvrSelectionForAllCalls
      • UnansweredCallsByKeyPress
      • UnansweredCallsByQueue
      • UnansweredCallsByStints
      • UnansweredCallsDistributionByLength
      • UnansweredOutboundCallsByAgent
  • Realtime
    • Agents
    • Calls
    • Queues

Required Arguments

Required arguments differ for the report classes.

Any subclass of Queri::Stats requires timestamps for period start and end, and will correct cases in which beginning times are greater than ending times.

Any subclass of Queri::Realtime will accept timestamps for period, but they will be ignored in the returned response, as the QM.realtime method does not accept a period restriction.

Returned Values

Returned values vary between agent-level and aggregate reports. Agent-level reports return an Array of Hashes, each Hash corresponding to an agent's metrics for the requested analysis. Composite agent-level reports return a Hash associating agent usernames with an Array of Hashes (each record for the requested analysis). Aggregate reports return a single Hash; the composite metrics for the requested analysis. Composite aggregate reports return an Array of Hashes, each Hash corresponding to various criteria for the composite metrics of the request analysis.

  • Agent-level reports
    • Stats
      • AgentsAndSessions
        • AgentAvailability
        • AgentBillableTimeByHour
        • AgentOccupancyReport
        • AgentSessionTimeByHour
        • AgentPayableTimeByHour
        • AgentPerformanceByAcdGroup
        • AnsweredCallsByCustomGroup
        • AnsweredCallsByLocation
        • AnsweredCallsByServiceGroup
        • AnsweredCallsForSelectedQueues
        • SessionAndPauseDurations
      • AnsweredCalls
        • AgentsOnQueue
        • MusicOnHoldByAgent
      • DetailsOfAnsweredCalls
        • QueueDetails
      • DetailsOfUnansweredCalls
        • DetailOfUnansweredCalls
      • UnansweredCalls
        • UnansweredOutboundCallsByAgent
        • UnansweredCallsByKeyPress
    • Realtime
      • Agents
      • Calls
      • Queues
  • Composite agent-level reports
    • Stats
      • DetailsOfAgentSessionsAndPauses
        • DetailOfAgentSessions
        • DetailOfAgentPauses
  • Aggregate reports
    • Stats
      • AgentsAndSessions
        • AgentSessionDetail
      • AnsweredCalls
        • AllCalls
        • CallsFullyWithinTheGivenTimeInterval
      • CallOutcomes
        • Outcomes
      • Distributions
        • InboundAcdCallAttempts
      • UnansweredCalls
        • AllCalls
        • CallsFullyWithinTheGivenTimeInterval
  • Composite aggregate reports
    • Stats
      • AnsweredCalls
        • AnsweredCallsByDirection
        • AnsweredCallsByQueue
        • AnsweredCallsByStints
        • DisconnectionCauses
        • DnisUsed
        • IvrSelection
        • QueuePosition
        • ServiceLevelAgreement
        • Transfers
      • CallDistributionByDay
        • AnsweredCallDistributionPerDay
        • AnsweredCallWaitTimePerDay
        • InclusiveServiceLevelAgreementPerDay
        • QueueLengthPerDay
        • SalesPerDay
        • ScheduleAdherencePerDay
        • TrafficAnalysisByPeriodPerDay
        • UnansweredCallWaitTimePerDay
      • CallDistributionByDayOfWeek
        • AnsweredCallDistributionPerDayOfWeek
        • AnsweredCallWaitTimePerDayOfWeek
        • InclusiveServiceLevelAgreementPerDayOfWeek
        • QueueLengthPerDayOfWeek
        • SalesPerDayOfWeek
        • ScheduleAdherencePerDayOfWeek
        • TrafficAnalysisByPeriodPerDayOfWeek
        • UnansweredCallWaitTimePerDayOfWeek
      • CallDistributionByHour
        • AnsweredCallDistributionPerHour
        • AnsweredCallWaitTimePerHour
        • InclusiveServiceLevelAgreementPerHour
        • QueueLengthPerHour
        • SalesPerHour
        • ScheduleAdherencePerHour
        • TrafficAnalysisByPeriodPerHour
        • UnansweredCallWaitTimePerHour
      • CallOutcomes
        • BillableActivities
        • CallResultsByOutcomes
        • DetailedAgentReport
        • NonbillableActivities
      • Distributions
        • AcdAttemptsByQueue
        • AcdAttemptsByTerminal
      • UnansweredCalls
        • AllCallsByStints
        • CallOverview
        • DisconnectionCauses
        • DnisUsed
        • DnisUsedForAllCalls
        • EnterQueuePosition
        • EnterQueuePositionForAllCalls
        • InclusiveAnsweredServiceLevelAgreement
        • InclusiveServiceLevelAgreement
        • IvrSelection
        • IvrSelectionForAllCalls
        • UnansweredCallsByQueue
        • UnansweredCallsByStints
        • UnansweredCallsDistributionByLength

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request