Coaching

Our Coaching Service API provides a comprehensive set of endpoints to create, read, update, delete, acknowledge, list, export, and manage all coaching-related entities—such as comments, plans, sessions, scorecards, and targets—covering everything from scorecard backfills to retrieving evaluation periods and agent quotas.

Languages
Servers
https://{api-domain}.cresta.com/

CoachingService

Operations

Get a list of coaching plans and its sub-resources like coaching session

Request

Path
parentstringrequired

Resource name of the parent. Format: customers/{customer_id}/profiles/{profile_id}

Bodyapplication/jsonrequired
pageSizeinteger(int32)

Page size for the response.

pageTokenstring

The next page token for paging.

agentUserNamestring(Resource name of the agent to get the coaching plans for. Format: customers/{customer_id}/users/{user_id})
agentUserNamesArray of strings(Resource names of the agents to get the coaching plans for. Format: customers/{customer_id}/users/{user_id})
isActiveboolean(Indication if we filter on active coaching plans only)
usecaseNamesArray of strings(Usecase resource names to filter the coaching plans Made optional for backwards compatibilty, is actually required. Will work with only a single usecase, field is made repeated for future proofness. Format: customers/{customer_id}/profiles/{profile_id}/usecases/{usecase_id})
focusCriteriaArray of objects(coachingCoachingPlanFocusCriteriaInfo)

The focus criteria filter. If set, only return the coaching plans with the specified focus criteria.

includeCoachingSessionsboolean(Indicate if the response should include coaching sessions)
sessionTimeRangeobject(Define a time window. [start_timestamp, end_timestamp))
excludeCoachingPlanCommentboolean(If include coaching plan comment)
excludeCoachingSessionsNoteAndCommentboolean(If include coaching session note)
groupNamesArray of strings(Group resource names of the agents to export the scorecards of Format: customers/{customer_id}/groups/{group_id})
includeIndirectGroupMembersboolean(If include indirect group members)
curl -i -X POST \
  'https://{api-domain}.cresta.com/v1/{parent=customers/*/profiles/*}/coachingPlans:list' \
  -H 'Content-Type: application/json' \
  -d '{
    "pageSize": 0,
    "pageToken": "string",
    "agentUserName": "string",
    "agentUserNames": [
      "string"
    ],
    "isActive": true,
    "usecaseNames": [
      "string"
    ],
    "focusCriteria": [
      {
        "scorecardTemplateName": "string",
        "criterionId": "string",
        "criterionDisplayName": "string",
        "target": {
          "name": "string",
          "scorecardTemplateName": "string",
          "criterionOrChapterId": "string",
          "target": 0.1,
          "usecaseName": "string",
          "coachingPlanName": "string",
          "createTime": "2019-08-24T14:15:22Z",
          "updateTime": "2019-08-24T14:15:22Z",
          "qaScore": 0.1
        }
      }
    ],
    "includeCoachingSessions": true,
    "sessionTimeRange": {
      "startTimestamp": "2019-08-24T14:15:22Z",
      "endTimestamp": "2019-08-24T14:15:22Z"
    },
    "excludeCoachingPlanComment": true,
    "excludeCoachingSessionsNoteAndComment": true,
    "groupNames": [
      "string"
    ],
    "includeIndirectGroupMembers": true
  }'

Responses

A successful response.

Bodyapplication/json
coachingPlansArray of objects(A coaching plan Next ID: 16)read-only

The requested coaching plan resources.

nextPageTokenstringread-only

A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

Response
application/json
{ "coachingPlans": [ {} ], "nextPageToken": "string" }

List the coaching progresses for the given time range and agents

Request

Path
parentstringrequired

Resource name of the parent. Format: customers/{customer_id}/profiles/{profile_id}

Bodyapplication/jsonrequired
agentUserNamesArray of strings(The agent user resource names to get the coaching overviews for. Format: customers/{customer_id}/users/{user_id})
pageTokenstring(Page token)
pageSizeinteger(int32)(Page size)
includeInactiveUsersboolean(If the result should include deactivated users)
groupNamesArray of strings(Group resource names to get the coaching overviews for. Format: customers/{customer_id}/groups/{group_id})
usecaseNamesArray of strings(Usecase resource names to filter the scorecards, conversations, and coaching plans for coaching progresses. Format: customers/{customer_id}/profiles/{profile_id}/usecases/{usecase_id})required
includeDevUsersboolean(If the result should include dev users)
orderBystring(coachingRetrieveCoachingProgressesRequestOrderBy)

Enum that denotes the ordering of the coaching progresses.

  • ORDER_BY_UNSPECIFIED: Unspecified order. The default order is by the agent name.
  • ORDER_BY_PROGRESS: order by the progress made
  • ORDER_BY_GAP: order by the gap to targets
Default "ORDER_BY_UNSPECIFIED"
Enum"ORDER_BY_UNSPECIFIED""ORDER_BY_PROGRESS""ORDER_BY_GAP"
orderDirectionstring(coachingRetrieveCoachingProgressesRequestOrderDirection)

Enum that denotes the ordering direction of the coaching progresses.

  • ORDER_DIRECTION_UNSPECIFIED: Unspecified order direction.
  • ORDER_DIRECTION_ASC: Ascending order.
  • ORDER_DIRECTION_DESC: Descending order.
Default "ORDER_DIRECTION_UNSPECIFIED"
Enum"ORDER_DIRECTION_UNSPECIFIED""ORDER_DIRECTION_ASC""ORDER_DIRECTION_DESC"
scorecardTemplateNamesArray of strings(Scorecard template names to filter on. Only the stats for the scorecards that are tied to the scorecard templates will be returned. You need to specify the revision id as *. Format: customers/{customer_id}/profiles/{profile_id}/scorecardTemplates/{scorecard_template_id}@*)
includeIndirectGroupMembersboolean(If include indirect group members when the group filter is applied)
curl -i -X POST \
  'https://{api-domain}.cresta.com/v1/{parent=customers/*/profiles/*}/coachingProgresses:retrieve' \
  -H 'Content-Type: application/json' \
  -d '{
    "agentUserNames": [
      "string"
    ],
    "pageToken": "string",
    "pageSize": 0,
    "includeInactiveUsers": true,
    "groupNames": [
      "string"
    ],
    "usecaseNames": [
      "string"
    ],
    "includeDevUsers": true,
    "orderBy": "ORDER_BY_UNSPECIFIED",
    "orderDirection": "ORDER_DIRECTION_UNSPECIFIED",
    "scorecardTemplateNames": [
      "string"
    ],
    "includeIndirectGroupMembers": true
  }'

Responses

A successful response.

Bodyapplication/json
agentCoachingProgressesArray of objects(agents' progresses)
Response
application/json
{ "agentCoachingProgresses": [ {} ] }

Get a list of coaching sessions.

Request

Path
parentstringrequired

Resource name of the parent. Format: customers/{customer_id}/profiles/{profile_id}

Query
pageSizeinteger(int32)

Page size for the response.

pageTokenstring

The next page token for paging.

agentUserNamestring

Resource name of the agent to get the coaching sessions for. Format: customers/{customer_id}/users/{user_id}.

coachingPlanNamestring

Coaching plan you want to retrieve the sessions for Format: customers/{customer_id}/profiles/{profile_id}/coachingPlans/{coaching_plan_id}.

usecaseNamesArray of strings

Usecase resource names to filter the coaching sessions Made optional for backwards compatibilty, is actually required. Will work with only a single usecase, field is made repeated for future proofness. Format: customers/{customer_id}/profiles/{profile_id}/usecases/{usecase_id}.

curl -i -X GET \
  'https://{api-domain}.cresta.com/v1/{parent=customers/*/profiles/*}/coachingSessions'

Responses

A successful response.

Bodyapplication/json
coachingSessionsArray of objects(A coaching session. Next ID: 16)read-only

The requested coaching sessions resources.

nextPageTokenstringread-only

A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

Response
application/json
{ "coachingSessions": [ {} ], "nextPageToken": "string" }