Trendsic Platform Service

<back to all web services

KpiV2DetailRequest

Requires Authentication
The following routes are available for this service:
POST,OPTIONS/v1/dashboard/kpiv2/detail
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using CRM.AgencyPlatform.API.Internal;

namespace CRM.AgencyPlatform.API.Internal
{
    public partial class KpiV2DetailRequest
    {
        public virtual Guid BranchId { get; set; }
        public virtual Guid? StationId { get; set; }
        public virtual Guid? EmployeeId { get; set; }
        public virtual DateTime FromDate { get; set; }
        public virtual DateTime ToDate { get; set; }
    }

    public partial class KpiV2DetailResponse
    {
        public virtual ResponseStatus ResponseStatus { get; set; }
        public virtual SvcDetail Detail { get; set; }
    }

    public partial class SvcAverage
    {
        public virtual int Count { get; set; }
        public virtual double Served { get; set; }
        public virtual double? AvgServiceSec { get; set; }
        public virtual double? MedianServiceSec { get; set; }
        public virtual double? AvgWaitSec { get; set; }
        public virtual double? Utilization { get; set; }
        public virtual double IdleSec { get; set; }
        public virtual double PausedSec { get; set; }
        public virtual double NoShows { get; set; }
        public virtual double SignedSec { get; set; }
        public virtual decimal? FeesEarned { get; set; }
        public virtual decimal? FeesPerStaffedHour { get; set; }
        public virtual decimal? LaborCost { get; set; }
        public virtual decimal? Contribution { get; set; }
        public virtual decimal? LostNoShowFees { get; set; }
    }

    public partial class SvcClerkRow
    {
        public virtual Guid EmployeeId { get; set; }
        public virtual string Name { get; set; }
        public virtual List<SvcNamedTime> Windows { get; set; } = [];
        public virtual decimal? LoadedRate { get; set; }
        public virtual bool RateSet { get; set; }
        public virtual bool RateLocked { get; set; }
        public virtual SvcMetrics Metrics { get; set; }
    }

    public partial class SvcDetail
    {
        public virtual string Kind { get; set; }
        public virtual SvcWindowRow Window { get; set; }
        public virtual SvcClerkRow Clerk { get; set; }
        public virtual SvcMetrics BranchMetrics { get; set; }
        public virtual SvcAverage PerRowAverage { get; set; }
        public virtual List<SvcSession> Sessions { get; set; } = [];
        public virtual List<SvcServiceRow> Services { get; set; } = [];
        public virtual bool CanSeeStaff { get; set; }
        public virtual bool CanSeeFinancial { get; set; }
        public virtual bool CanSeePay { get; set; }
    }

    public partial class SvcFeeChange
    {
        public virtual Guid LocationId { get; set; }
        public virtual DateTime OnDate { get; set; }
        public virtual decimal FromFee { get; set; }
        public virtual decimal ToFee { get; set; }
    }

    public partial class SvcMetrics
    {
        public virtual int Checkins { get; set; }
        public virtual int Walkins { get; set; }
        public virtual int Appts { get; set; }
        public virtual int Served { get; set; }
        public virtual int NoShows { get; set; }
        public virtual int ApptNoShows { get; set; }
        public virtual int CancelledAtWindow { get; set; }
        public virtual int Abandoned { get; set; }
        public virtual int Called { get; set; }
        public virtual int CalledUp { get; set; }
        public virtual double? AbandonRate { get; set; }
        public virtual double? NoShowRate { get; set; }
        public virtual double? AvgServiceSec { get; set; }
        public virtual double? MedianServiceSec { get; set; }
        public virtual double? AvgWaitSec { get; set; }
        public virtual int MaxWaitSec { get; set; }
        public virtual double? AvgWalkUpSec { get; set; }
        public virtual double? ExpectedServiceSec { get; set; }
        public virtual long SignedSec { get; set; }
        public virtual long ServingSec { get; set; }
        public virtual long PausedSec { get; set; }
        public virtual long IdleSec { get; set; }
        public virtual long UnstaffedSec { get; set; }
        public virtual double? Utilization { get; set; }
        public virtual double? IdleShare { get; set; }
        public virtual double? PausedShare { get; set; }
        public virtual int Sessions { get; set; }
        public virtual int OpenDays { get; set; }
        public virtual decimal? FeesEarned { get; set; }
        public virtual decimal? AvgFee { get; set; }
        public virtual decimal? FeesPerStaffedHour { get; set; }
        public virtual decimal? ExpectedFeesPerStaffedHour { get; set; }
        public virtual decimal? LaborCost { get; set; }
        public virtual bool LaborPartial { get; set; }
        public virtual List<Guid> MissingCostEmployeeIds { get; set; } = [];
        public virtual List<SvcNamedTime> MissingCost { get; set; } = [];
        public virtual bool LaborLocked { get; set; }
        public virtual decimal? Contribution { get; set; }
        public virtual decimal? LostFees { get; set; }
        public virtual decimal? LostNoShowFees { get; set; }
        public virtual Dictionary<Guid, int> Mix { get; set; } = new();
        public virtual int[] HourlyServed { get; set; } = [];
        public virtual decimal[] HourlyFees { get; set; } = [];
        public virtual decimal[] HourlyCost { get; set; } = [];
        public virtual List<SvcTint> Tints { get; set; } = [];
    }

    public partial class SvcNamedTime
    {
        public virtual Guid Id { get; set; }
        public virtual string Name { get; set; }
        public virtual long SignedSec { get; set; }
        public virtual int Served { get; set; }
    }

    public partial class SvcServiceRow
    {
        public virtual Guid LineId { get; set; }
        public virtual string Name { get; set; }
        public virtual int Completed { get; set; }
        public virtual double? AvgServiceSec { get; set; }
        public virtual double? BranchAvgServiceSec { get; set; }
        public virtual decimal? FeesEarned { get; set; }
        public virtual decimal? FeeCurrent { get; set; }
        public virtual decimal? FeeMin { get; set; }
        public virtual decimal? FeeMax { get; set; }
        public virtual decimal? FeePerMinute { get; set; }
        public virtual decimal? BranchFeePerMinute { get; set; }
        public virtual List<SvcFeeChange> FeeChanges { get; set; } = [];
    }

    public partial class SvcSession
    {
        public virtual Guid SessionId { get; set; }
        public virtual Guid StationId { get; set; }
        public virtual string StationName { get; set; }
        public virtual Guid EmployeeId { get; set; }
        public virtual string EmployeeName { get; set; }
        public virtual DateTime LocalIn { get; set; }
        public virtual DateTime LocalOut { get; set; }
        public virtual bool IsOpen { get; set; }
        public virtual string EndReason { get; set; }
        public virtual long PausedSec { get; set; }
    }

    public partial class SvcTint
    {
        public virtual string Field { get; set; }
        public virtual string Tone { get; set; }
        public virtual string Reason { get; set; }
        public virtual double? Value { get; set; }
        public virtual double? Reference { get; set; }
        public virtual double? BranchValue { get; set; }
    }

    public partial class SvcWindowRow
    {
        public virtual Guid StationId { get; set; }
        public virtual string Name { get; set; }
        public virtual List<SvcNamedTime> Clerks { get; set; } = [];
        public virtual bool NeverStaffed { get; set; }
        public virtual DateTime? LastStaffedUtc { get; set; }
        public virtual string LastStaffedBy { get; set; }
        public virtual SvcMetrics Metrics { get; set; }
    }

}

C# KpiV2DetailRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/dashboard/kpiv2/detail HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<KpiV2DetailRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <BranchId>00000000-0000-0000-0000-000000000000</BranchId>
  <EmployeeId>00000000-0000-0000-0000-000000000000</EmployeeId>
  <FromDate>0001-01-01T00:00:00</FromDate>
  <StationId>00000000-0000-0000-0000-000000000000</StationId>
  <ToDate>0001-01-01T00:00:00</ToDate>
</KpiV2DetailRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<KpiV2DetailResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <Detail>
    <BranchMetrics>
      <AbandonRate>0</AbandonRate>
      <Abandoned>0</Abandoned>
      <ApptNoShows>0</ApptNoShows>
      <Appts>0</Appts>
      <AvgFee>0</AvgFee>
      <AvgServiceSec>0</AvgServiceSec>
      <AvgWaitSec>0</AvgWaitSec>
      <AvgWalkUpSec>0</AvgWalkUpSec>
      <Called>0</Called>
      <CalledUp>0</CalledUp>
      <CancelledAtWindow>0</CancelledAtWindow>
      <Checkins>0</Checkins>
      <Contribution>0</Contribution>
      <ExpectedFeesPerStaffedHour>0</ExpectedFeesPerStaffedHour>
      <ExpectedServiceSec>0</ExpectedServiceSec>
      <FeesEarned>0</FeesEarned>
      <FeesPerStaffedHour>0</FeesPerStaffedHour>
      <HourlyCost xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:decimal>0</d4p1:decimal>
      </HourlyCost>
      <HourlyFees xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:decimal>0</d4p1:decimal>
      </HourlyFees>
      <HourlyServed xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:int>0</d4p1:int>
      </HourlyServed>
      <IdleSec>0</IdleSec>
      <IdleShare>0</IdleShare>
      <LaborCost>0</LaborCost>
      <LaborLocked>false</LaborLocked>
      <LaborPartial>false</LaborPartial>
      <LostFees>0</LostFees>
      <LostNoShowFees>0</LostNoShowFees>
      <MaxWaitSec>0</MaxWaitSec>
      <MedianServiceSec>0</MedianServiceSec>
      <MissingCost>
        <SvcNamedTime>
          <Id>00000000-0000-0000-0000-000000000000</Id>
          <Name>String</Name>
          <Served>0</Served>
          <SignedSec>0</SignedSec>
        </SvcNamedTime>
      </MissingCost>
      <MissingCostEmployeeIds xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:guid>00000000-0000-0000-0000-000000000000</d4p1:guid>
      </MissingCostEmployeeIds>
      <Mix xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfguidint>
          <d4p1:Key>00000000-0000-0000-0000-000000000000</d4p1:Key>
          <d4p1:Value>0</d4p1:Value>
        </d4p1:KeyValueOfguidint>
      </Mix>
      <NoShowRate>0</NoShowRate>
      <NoShows>0</NoShows>
      <OpenDays>0</OpenDays>
      <PausedSec>0</PausedSec>
      <PausedShare>0</PausedShare>
      <Served>0</Served>
      <ServingSec>0</ServingSec>
      <Sessions>0</Sessions>
      <SignedSec>0</SignedSec>
      <Tints>
        <SvcTint>
          <BranchValue>0</BranchValue>
          <Field>String</Field>
          <Reason>String</Reason>
          <Reference>0</Reference>
          <Tone>String</Tone>
          <Value>0</Value>
        </SvcTint>
      </Tints>
      <UnstaffedSec>0</UnstaffedSec>
      <Utilization>0</Utilization>
      <Walkins>0</Walkins>
    </BranchMetrics>
    <CanSeeFinancial>false</CanSeeFinancial>
    <CanSeePay>false</CanSeePay>
    <CanSeeStaff>false</CanSeeStaff>
    <Clerk>
      <EmployeeId>00000000-0000-0000-0000-000000000000</EmployeeId>
      <LoadedRate>0</LoadedRate>
      <Metrics>
        <AbandonRate>0</AbandonRate>
        <Abandoned>0</Abandoned>
        <ApptNoShows>0</ApptNoShows>
        <Appts>0</Appts>
        <AvgFee>0</AvgFee>
        <AvgServiceSec>0</AvgServiceSec>
        <AvgWaitSec>0</AvgWaitSec>
        <AvgWalkUpSec>0</AvgWalkUpSec>
        <Called>0</Called>
        <CalledUp>0</CalledUp>
        <CancelledAtWindow>0</CancelledAtWindow>
        <Checkins>0</Checkins>
        <Contribution>0</Contribution>
        <ExpectedFeesPerStaffedHour>0</ExpectedFeesPerStaffedHour>
        <ExpectedServiceSec>0</ExpectedServiceSec>
        <FeesEarned>0</FeesEarned>
        <FeesPerStaffedHour>0</FeesPerStaffedHour>
        <HourlyCost xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:decimal>0</d5p1:decimal>
        </HourlyCost>
        <HourlyFees xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:decimal>0</d5p1:decimal>
        </HourlyFees>
        <HourlyServed xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </HourlyServed>
        <IdleSec>0</IdleSec>
        <IdleShare>0</IdleShare>
        <LaborCost>0</LaborCost>
        <LaborLocked>false</LaborLocked>
        <LaborPartial>false</LaborPartial>
        <LostFees>0</LostFees>
        <LostNoShowFees>0</LostNoShowFees>
        <MaxWaitSec>0</MaxWaitSec>
        <MedianServiceSec>0</MedianServiceSec>
        <MissingCost>
          <SvcNamedTime>
            <Id>00000000-0000-0000-0000-000000000000</Id>
            <Name>String</Name>
            <Served>0</Served>
            <SignedSec>0</SignedSec>
          </SvcNamedTime>
        </MissingCost>
        <MissingCostEmployeeIds xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:guid>00000000-0000-0000-0000-000000000000</d5p1:guid>
        </MissingCostEmployeeIds>
        <Mix xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfguidint>
            <d5p1:Key>00000000-0000-0000-0000-000000000000</d5p1:Key>
            <d5p1:Value>0</d5p1:Value>
          </d5p1:KeyValueOfguidint>
        </Mix>
        <NoShowRate>0</NoShowRate>
        <NoShows>0</NoShows>
        <OpenDays>0</OpenDays>
        <PausedSec>0</PausedSec>
        <PausedShare>0</PausedShare>
        <Served>0</Served>
        <ServingSec>0</ServingSec>
        <Sessions>0</Sessions>
        <SignedSec>0</SignedSec>
        <Tints>
          <SvcTint>
            <BranchValue>0</BranchValue>
            <Field>String</Field>
            <Reason>String</Reason>
            <Reference>0</Reference>
            <Tone>String</Tone>
            <Value>0</Value>
          </SvcTint>
        </Tints>
        <UnstaffedSec>0</UnstaffedSec>
        <Utilization>0</Utilization>
        <Walkins>0</Walkins>
      </Metrics>
      <Name>String</Name>
      <RateLocked>false</RateLocked>
      <RateSet>false</RateSet>
      <Windows>
        <SvcNamedTime>
          <Id>00000000-0000-0000-0000-000000000000</Id>
          <Name>String</Name>
          <Served>0</Served>
          <SignedSec>0</SignedSec>
        </SvcNamedTime>
      </Windows>
    </Clerk>
    <Kind>String</Kind>
    <PerRowAverage>
      <AvgServiceSec>0</AvgServiceSec>
      <AvgWaitSec>0</AvgWaitSec>
      <Contribution>0</Contribution>
      <Count>0</Count>
      <FeesEarned>0</FeesEarned>
      <FeesPerStaffedHour>0</FeesPerStaffedHour>
      <IdleSec>0</IdleSec>
      <LaborCost>0</LaborCost>
      <LostNoShowFees>0</LostNoShowFees>
      <MedianServiceSec>0</MedianServiceSec>
      <NoShows>0</NoShows>
      <PausedSec>0</PausedSec>
      <Served>0</Served>
      <SignedSec>0</SignedSec>
      <Utilization>0</Utilization>
    </PerRowAverage>
    <Services>
      <SvcServiceRow>
        <AvgServiceSec>0</AvgServiceSec>
        <BranchAvgServiceSec>0</BranchAvgServiceSec>
        <BranchFeePerMinute>0</BranchFeePerMinute>
        <Completed>0</Completed>
        <FeeChanges>
          <SvcFeeChange>
            <FromFee>0</FromFee>
            <LocationId>00000000-0000-0000-0000-000000000000</LocationId>
            <OnDate>0001-01-01T00:00:00</OnDate>
            <ToFee>0</ToFee>
          </SvcFeeChange>
        </FeeChanges>
        <FeeCurrent>0</FeeCurrent>
        <FeeMax>0</FeeMax>
        <FeeMin>0</FeeMin>
        <FeePerMinute>0</FeePerMinute>
        <FeesEarned>0</FeesEarned>
        <LineId>00000000-0000-0000-0000-000000000000</LineId>
        <Name>String</Name>
      </SvcServiceRow>
    </Services>
    <Sessions>
      <SvcSession>
        <EmployeeId>00000000-0000-0000-0000-000000000000</EmployeeId>
        <EmployeeName>String</EmployeeName>
        <EndReason>String</EndReason>
        <IsOpen>false</IsOpen>
        <LocalIn>0001-01-01T00:00:00</LocalIn>
        <LocalOut>0001-01-01T00:00:00</LocalOut>
        <PausedSec>0</PausedSec>
        <SessionId>00000000-0000-0000-0000-000000000000</SessionId>
        <StationId>00000000-0000-0000-0000-000000000000</StationId>
        <StationName>String</StationName>
      </SvcSession>
    </Sessions>
    <Window>
      <Clerks>
        <SvcNamedTime>
          <Id>00000000-0000-0000-0000-000000000000</Id>
          <Name>String</Name>
          <Served>0</Served>
          <SignedSec>0</SignedSec>
        </SvcNamedTime>
      </Clerks>
      <LastStaffedBy>String</LastStaffedBy>
      <LastStaffedUtc>0001-01-01T00:00:00</LastStaffedUtc>
      <Metrics>
        <AbandonRate>0</AbandonRate>
        <Abandoned>0</Abandoned>
        <ApptNoShows>0</ApptNoShows>
        <Appts>0</Appts>
        <AvgFee>0</AvgFee>
        <AvgServiceSec>0</AvgServiceSec>
        <AvgWaitSec>0</AvgWaitSec>
        <AvgWalkUpSec>0</AvgWalkUpSec>
        <Called>0</Called>
        <CalledUp>0</CalledUp>
        <CancelledAtWindow>0</CancelledAtWindow>
        <Checkins>0</Checkins>
        <Contribution>0</Contribution>
        <ExpectedFeesPerStaffedHour>0</ExpectedFeesPerStaffedHour>
        <ExpectedServiceSec>0</ExpectedServiceSec>
        <FeesEarned>0</FeesEarned>
        <FeesPerStaffedHour>0</FeesPerStaffedHour>
        <HourlyCost xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:decimal>0</d5p1:decimal>
        </HourlyCost>
        <HourlyFees xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:decimal>0</d5p1:decimal>
        </HourlyFees>
        <HourlyServed xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </HourlyServed>
        <IdleSec>0</IdleSec>
        <IdleShare>0</IdleShare>
        <LaborCost>0</LaborCost>
        <LaborLocked>false</LaborLocked>
        <LaborPartial>false</LaborPartial>
        <LostFees>0</LostFees>
        <LostNoShowFees>0</LostNoShowFees>
        <MaxWaitSec>0</MaxWaitSec>
        <MedianServiceSec>0</MedianServiceSec>
        <MissingCost>
          <SvcNamedTime>
            <Id>00000000-0000-0000-0000-000000000000</Id>
            <Name>String</Name>
            <Served>0</Served>
            <SignedSec>0</SignedSec>
          </SvcNamedTime>
        </MissingCost>
        <MissingCostEmployeeIds xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:guid>00000000-0000-0000-0000-000000000000</d5p1:guid>
        </MissingCostEmployeeIds>
        <Mix xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfguidint>
            <d5p1:Key>00000000-0000-0000-0000-000000000000</d5p1:Key>
            <d5p1:Value>0</d5p1:Value>
          </d5p1:KeyValueOfguidint>
        </Mix>
        <NoShowRate>0</NoShowRate>
        <NoShows>0</NoShows>
        <OpenDays>0</OpenDays>
        <PausedSec>0</PausedSec>
        <PausedShare>0</PausedShare>
        <Served>0</Served>
        <ServingSec>0</ServingSec>
        <Sessions>0</Sessions>
        <SignedSec>0</SignedSec>
        <Tints>
          <SvcTint>
            <BranchValue>0</BranchValue>
            <Field>String</Field>
            <Reason>String</Reason>
            <Reference>0</Reference>
            <Tone>String</Tone>
            <Value>0</Value>
          </SvcTint>
        </Tints>
        <UnstaffedSec>0</UnstaffedSec>
        <Utilization>0</Utilization>
        <Walkins>0</Walkins>
      </Metrics>
      <Name>String</Name>
      <NeverStaffed>false</NeverStaffed>
      <StationId>00000000-0000-0000-0000-000000000000</StationId>
    </Window>
  </Detail>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
</KpiV2DetailResponse>