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

Create a coaching plan.

Request

Path
parentstringrequired

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

Bodyapplication/jsonrequired

The coaching plan to be created.

namestring(Resource name for the coaching plan Format: customers/{customer_id}/profiles/{profile_id}/coachingPlans/{coaching_plan_id})
startTimestring(date-time)

Timestamp for when the coaching plan starts.

endTimestring(date-time)

Timestamp for when the coaching plan ends.

focusBehaviorsArray of strings

Taxonomies of behaviors for the agent to focus on. Deprecated.

focusCriteriaArray of objects(coachingCoachingPlanFocusCriteriaInfo)

The criteria for the agent to focus on.

commentstring(General comment field for the coaching plan (goals and feedback))
managerCommentSubmitTimestring(date-time)

Timestamp of the comment.

agentUserNamestring(Resource name for the agent the coaching plan is for. Format: customers/{customer_id}/users/{user_id})required
creatorUserNamestring(Resource name for the user that created the coaching plan. Format: customers/{customer_id}/users/{user_id})
isActivebooleanrequired

Whether the coaching plan is active.

createTimestring(date-time)required

When the coaching plan is created.

updateTimestring(date-time)required

When the coaching plan is last updated.

displayNamestring(Display name of this coaching plan)
usecaseNamestring(Resource name of the usecase this coaching plan belongs to. Format: customers/{customer_id}/profiles/{profile_id}/usecases/{usecase_id})
curl -i -X POST \
  'https://{api-domain}.cresta.com/v1/{parent=customers/*/profiles/*}/coachingPlans' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string",
    "startTime": "2019-08-24T14:15:22Z",
    "endTime": "2019-08-24T14:15:22Z",
    "focusBehaviors": [
      "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
        }
      }
    ],
    "comment": "string",
    "managerCommentSubmitTime": "2019-08-24T14:15:22Z",
    "agentUserName": "string",
    "creatorUserName": "string",
    "isActive": true,
    "createTime": "2019-08-24T14:15:22Z",
    "updateTime": "2019-08-24T14:15:22Z",
    "displayName": "string",
    "usecaseName": "string"
  }'

Responses

A successful response.

Bodyapplication/json
coachingPlanobject(A coaching plan Next ID: 16)
Response
application/json
{ "coachingPlan": { "name": "string", "startTime": "2019-08-24T14:15:22Z", "endTime": "2019-08-24T14:15:22Z", "focusBehaviors": [], "focusCriteria": [], "comment": "string", "managerCommentSubmitTime": "2019-08-24T14:15:22Z", "agentUserName": "string", "creatorUserName": "string", "isActive": true, "createTime": "2019-08-24T14:15:22Z", "updateTime": "2019-08-24T14:15:22Z", "displayName": "string", "usecaseName": "string", "coachingSessions": [] } }

Creates the coaching plans if they don't exist or updates the coaching plans if they already exist.

Request

Path
parentstringrequired

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

Bodyapplication/jsonrequired
coachingPlansArray of objects(A coaching plan Next ID: 16)required

The coaching plan to be created.

coachingPlans[].​namestring(Resource name for the coaching plan Format: customers/{customer_id}/profiles/{profile_id}/coachingPlans/{coaching_plan_id})
coachingPlans[].​startTimestring(date-time)

Timestamp for when the coaching plan starts.

coachingPlans[].​endTimestring(date-time)

Timestamp for when the coaching plan ends.

coachingPlans[].​focusBehaviorsArray of strings

Taxonomies of behaviors for the agent to focus on. Deprecated.

coachingPlans[].​focusCriteriaArray of objects(coachingCoachingPlanFocusCriteriaInfo)

The criteria for the agent to focus on.

coachingPlans[].​commentstring(General comment field for the coaching plan (goals and feedback))
coachingPlans[].​managerCommentSubmitTimestring(date-time)

Timestamp of the comment.

coachingPlans[].​agentUserNamestring(Resource name for the agent the coaching plan is for. Format: customers/{customer_id}/users/{user_id})required
coachingPlans[].​creatorUserNamestring(Resource name for the user that created the coaching plan. Format: customers/{customer_id}/users/{user_id})
coachingPlans[].​isActivebooleanrequired

Whether the coaching plan is active.

coachingPlans[].​createTimestring(date-time)required

When the coaching plan is created.

coachingPlans[].​updateTimestring(date-time)required

When the coaching plan is last updated.

coachingPlans[].​displayNamestring(Display name of this coaching plan)
coachingPlans[].​usecaseNamestring(Resource name of the usecase this coaching plan belongs to. Format: customers/{customer_id}/profiles/{profile_id}/usecases/{usecase_id})
curl -i -X POST \
  'https://{api-domain}.cresta.com/v1/{parent=customers/*/profiles/*}/coachingPlans:batchUpsert' \
  -H 'Content-Type: application/json' \
  -d '{
    "coachingPlans": [
      {
        "name": "string",
        "startTime": "2019-08-24T14:15:22Z",
        "endTime": "2019-08-24T14:15:22Z",
        "focusBehaviors": [
          "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
            }
          }
        ],
        "comment": "string",
        "managerCommentSubmitTime": "2019-08-24T14:15:22Z",
        "agentUserName": "string",
        "creatorUserName": "string",
        "isActive": true,
        "createTime": "2019-08-24T14:15:22Z",
        "updateTime": "2019-08-24T14:15:22Z",
        "displayName": "string",
        "usecaseName": "string"
      }
    ]
  }'

Responses

A successful response.

Bodyapplication/json
object(Response for BatchUpsertCoachingPlans)
Response
application/json
{}

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" }