naftiko: 1.0.0-alpha2 info: label: Webex Contact Center — Users description: 'Webex Contact Center — Users. 16 operations. Lead operation: List User(s). Self-contained Naftiko capability covering one Webex business surface.' tags: - Webex - Users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: WEBEX_API_KEY: WEBEX_API_KEY capability: consumes: - type: http namespace: contact-center-users baseUri: '' description: Webex Contact Center — Users business capability. Self-contained, no shared references. resources: - name: organization-orgid-user path: /organization/{orgid}/user operations: - name: getallconfig16 method: GET description: List User(s) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: filter in: query type: string description: 'Specify a filter based on which the results will be fetched. Supported filterable fields: id. ' - name: attributes in: query type: string description: Specify the attributes to be returned. By default, all attributes are returned along with the specified columns. All attributes are supported. - name: page in: query type: integer description: Defines the number of displayed page. The page number starts from 0. - name: pageSize in: query type: integer description: Defines the number of items to be displayed on a page. If the number specified is more than allowed max page size, the API will automatically adjust the page si - name: singleObjectResponse in: query type: boolean description: Specifiy whether to include array fields in the response, This query param should use only if the response contain single record, if we are using for multiple o - name: organization-orgid-user-bulk path: /organization/{orgid}/user/bulk operations: - name: patchallconfig method: PATCH description: Bulk partial update Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: organization-orgid-user-bulk-update-dynamic-skill-skillId path: /organization/{orgid}/user/bulk/update-dynamic-skill/{skillId} operations: - name: patchdynamicskills method: PATCH description: Bulk update User dynamic skills outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: skillId in: path type: string description: The unique identifier of the skill. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: organization-orgid-user-by-ci-user-id-id path: /organization/{orgid}/user/by-ci-user-id/{id} operations: - name: getuserbyciuserid method: GET description: Get specific User by CI User ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: id in: path type: string description: CI ID of the User. required: true - name: includeUserProfile in: query type: boolean description: Specifiy whether to include user profile data - name: organization-orgid-user-by-dynamic-skill-id-skillId path: /organization/{orgid}/user/by-dynamic-skill-id/{skillId} operations: - name: getusersbydynamicskillid method: GET description: Get users by dynamic skill ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: skillId in: path type: string description: The dynamic skill ID to fetch users for required: true - name: search in: query type: string description: Filter data based on the search keyword.Supported search columns(firstName, lastName, email, value) - name: page in: query type: integer description: Defines the number of displayed page. The page number starts from 0. - name: pageSize in: query type: integer description: Defines the number of items to be displayed on a page. If the number specified is more than allowed max page size, the API will automatically adjust the page si - name: organization-orgid-user-fetch-by-skill-requirements path: /organization/{orgid}/user/fetch-by-skill-requirements operations: - name: getusersbyskillrequirements method: POST description: Get the agents matching skill requirements criteria outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: search in: query type: string description: Filter data based on the search keyword.Supported search columns(firstName, lastName, email) - name: page in: query type: integer description: Defines the number of displayed page. The page number starts from 0. - name: pageSize in: query type: integer description: Defines the number of items to be displayed on a page. If the number specified is more than allowed max page size, the API will automatically adjust the page si - name: body in: body type: object description: Request body (JSON). required: true - name: organization-orgid-user-fetch-user-details-by-ids path: /organization/{orgid}/user/fetch-user-details-by-ids operations: - name: getuserdatabyids method: POST description: Fetch User details by IDs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: page in: query type: integer description: Defines the number of displayed page. The page number starts from 0. - name: pageSize in: query type: integer description: Defines the number of items to be displayed on a page. If the number specified is more than allowed max page size, the API will automatically adjust the page si - name: body in: body type: object description: Request body (JSON). required: true - name: organization-orgid-user-with-user-profile path: /organization/{orgid}/user/with-user-profile operations: - name: getalluserswithuserprofile method: GET description: List Users along with profile outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: organization-orgid-user-with-user-profile-id path: /organization/{orgid}/user/with-user-profile/{id} operations: - name: getuserwithuserprofile method: GET description: Get specific User along with profile by ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: id in: path type: string description: Resource ID of the User. required: true - name: organization-orgid-user-id path: /organization/{orgid}/user/{id} operations: - name: getconfig2 method: GET description: Get specific User by ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: id in: path type: string description: Resource ID of the User. required: true - name: includeCount in: query type: boolean description: If set to true, the API response will include the count of each type of Contact Service Queues that the user is assigned to - name: includeUserProfileType in: query type: boolean description: If set to true, the API response will include the user profile - name: includeSkillProfileAudit in: query type: boolean description: If set to true gives skill profile modification info. - name: includeReskillAuditInfo in: query type: boolean description: If set to true gives skill profile and dynamic skill modification info. - name: includeSkillDetails in: query type: boolean description: If set to true,the response includes skill information for each dynamic skill assignment - name: updateconfig2 method: PUT description: Update specific User by ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: id in: path type: string description: Resource ID of the User. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: patchconfig method: PATCH description: Partially update User by ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: id in: path type: string description: Resource ID of the User. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: organization-orgid-user-id-incoming-references path: /organization/{orgid}/user/{id}/incoming-references operations: - name: getincomingreferences1 method: GET description: List references for a specific User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: id in: path type: string description: ID of this contact center resource. required: true - name: type in: query type: string description: Entity type of the other entity that has a reference to this specific entity. - name: page in: query type: integer description: Defines the number of displayed page. The page number starts from 0. - name: pageSize in: query type: integer description: Defines the number of items to be displayed on a page. If the number specified is more than allowed max page size, the API will automatically adjust the page si - name: organization-orgid-user-id-reskill path: /organization/{orgid}/user/{id}/reskill operations: - name: reskillagent method: PATCH description: Reskill Agents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: id in: path type: string description: Resource ID of the User. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: organization-orgid-v2-user path: /organization/{orgid}/v2/user operations: - name: getallconfigwithpagedmetadata1 method: GET description: List User(s) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: filter in: query type: string description: 'Specify a filter based on which the results will be fetched. All the fields are supported except: organizationId, xspVersion, createdTime, lastUpdatedTime ' - name: attributes in: query type: string description: Specify the attributes to be returned. By default, all attributes are returned along with the specified columns. All attributes are supported. - name: search in: query type: string description: Filter data based on the search keyword.Supported search columns(firstName, lastName, email) - name: page in: query type: integer description: Defines the number of displayed page. The page number starts from 0. - name: pageSize in: query type: integer description: Defines the number of items to be displayed on a page. If the number specified is more than allowed max page size, the API will automatically adjust the page si - name: supervisorManagedAgentsOnly in: query type: boolean description: If set to true, the API will return contact center enabled users based on the invoking supervisor user's user profile access rights to sites and teams. - name: singleObjectResponse in: query type: boolean description: Specifiy whether to include array fields in the response, This query param should use only if the response contain single record, if we are using for multiple o - name: buddyTeamAgentsOnly in: query type: boolean description: If set to true, returns only users who are part of buddy teams without PBAC check. - name: userInQueue in: query type: string description: Can be either assigned or unassigned. If passed, returns the users who are assigned or not assigned to an agent based queue managed by the supervisor. - name: queueId in: query type: string description: Contact Service Queue Id for which the list of assigned/unassigned agents needs to be fetched. - name: includeAIMappingCount in: query type: boolean description: If set to true, the API response will include the count of each AI features mapped to the entity. - name: includeDynamicSkillsLimitReached in: query type: boolean description: If true, includes whether each user has reached the dynamic skills assignment limit. - name: organization-orgid-v2-user-by-ci-user-id-id path: /organization/{orgid}/v2/user/by-ci-user-id/{id} operations: - name: getuserbyciuseridwithuserprofilegranularaccess method: GET description: Get specific User by CI User ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: orgid in: path type: string description: Organization ID to be used for this operation. The specified security token must have permission to interact with the organization. required: true - name: id in: path type: string description: CI ID of the User. required: true - name: includeUserProfile in: query type: boolean description: Specifiy whether to include user profile data - name: includeNames in: query type: boolean description: Specifiy whether to include resource collection names authentication: type: bearer token: '{{env.WEBEX_API_KEY}}' exposes: - type: rest namespace: contact-center-users-rest port: 8080 description: REST adapter for Webex Contact Center — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/organization/{orgid}/user name: organization-orgid-user description: REST surface for organization-orgid-user. operations: - method: GET name: getallconfig16 description: List User(s) call: contact-center-users.getallconfig16 with: orgid: rest.orgid filter: rest.filter attributes: rest.attributes page: rest.page pageSize: rest.pageSize singleObjectResponse: rest.singleObjectResponse outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/bulk name: organization-orgid-user-bulk description: REST surface for organization-orgid-user-bulk. operations: - method: PATCH name: patchallconfig description: Bulk partial update Users call: contact-center-users.patchallconfig with: orgid: rest.orgid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/bulk/update-dynamic-skill/{skillid} name: organization-orgid-user-bulk-update-dynamic-skill-skillid description: REST surface for organization-orgid-user-bulk-update-dynamic-skill-skillId. operations: - method: PATCH name: patchdynamicskills description: Bulk update User dynamic skills call: contact-center-users.patchdynamicskills with: orgid: rest.orgid skillId: rest.skillId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/by-ci-user-id/{id} name: organization-orgid-user-by-ci-user-id-id description: REST surface for organization-orgid-user-by-ci-user-id-id. operations: - method: GET name: getuserbyciuserid description: Get specific User by CI User ID call: contact-center-users.getuserbyciuserid with: orgid: rest.orgid id: rest.id includeUserProfile: rest.includeUserProfile outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/by-dynamic-skill-id/{skillid} name: organization-orgid-user-by-dynamic-skill-id-skillid description: REST surface for organization-orgid-user-by-dynamic-skill-id-skillId. operations: - method: GET name: getusersbydynamicskillid description: Get users by dynamic skill ID call: contact-center-users.getusersbydynamicskillid with: orgid: rest.orgid skillId: rest.skillId search: rest.search page: rest.page pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/fetch-by-skill-requirements name: organization-orgid-user-fetch-by-skill-requirements description: REST surface for organization-orgid-user-fetch-by-skill-requirements. operations: - method: POST name: getusersbyskillrequirements description: Get the agents matching skill requirements criteria call: contact-center-users.getusersbyskillrequirements with: orgid: rest.orgid search: rest.search page: rest.page pageSize: rest.pageSize body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/fetch-user-details-by-ids name: organization-orgid-user-fetch-user-details-by-ids description: REST surface for organization-orgid-user-fetch-user-details-by-ids. operations: - method: POST name: getuserdatabyids description: Fetch User details by IDs call: contact-center-users.getuserdatabyids with: orgid: rest.orgid page: rest.page pageSize: rest.pageSize body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/with-user-profile name: organization-orgid-user-with-user-profile description: REST surface for organization-orgid-user-with-user-profile. operations: - method: GET name: getalluserswithuserprofile description: List Users along with profile call: contact-center-users.getalluserswithuserprofile with: orgid: rest.orgid outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/with-user-profile/{id} name: organization-orgid-user-with-user-profile-id description: REST surface for organization-orgid-user-with-user-profile-id. operations: - method: GET name: getuserwithuserprofile description: Get specific User along with profile by ID call: contact-center-users.getuserwithuserprofile with: orgid: rest.orgid id: rest.id outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/{id} name: organization-orgid-user-id description: REST surface for organization-orgid-user-id. operations: - method: GET name: getconfig2 description: Get specific User by ID call: contact-center-users.getconfig2 with: orgid: rest.orgid id: rest.id includeCount: rest.includeCount includeUserProfileType: rest.includeUserProfileType includeSkillProfileAudit: rest.includeSkillProfileAudit includeReskillAuditInfo: rest.includeReskillAuditInfo includeSkillDetails: rest.includeSkillDetails outputParameters: - type: object mapping: $. - method: PUT name: updateconfig2 description: Update specific User by ID call: contact-center-users.updateconfig2 with: orgid: rest.orgid id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: patchconfig description: Partially update User by ID call: contact-center-users.patchconfig with: orgid: rest.orgid id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/{id}/incoming-references name: organization-orgid-user-id-incoming-references description: REST surface for organization-orgid-user-id-incoming-references. operations: - method: GET name: getincomingreferences1 description: List references for a specific User call: contact-center-users.getincomingreferences1 with: orgid: rest.orgid id: rest.id type: rest.type page: rest.page pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/user/{id}/reskill name: organization-orgid-user-id-reskill description: REST surface for organization-orgid-user-id-reskill. operations: - method: PATCH name: reskillagent description: Reskill Agents call: contact-center-users.reskillagent with: orgid: rest.orgid id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/v2/user name: organization-orgid-v2-user description: REST surface for organization-orgid-v2-user. operations: - method: GET name: getallconfigwithpagedmetadata1 description: List User(s) call: contact-center-users.getallconfigwithpagedmetadata1 with: orgid: rest.orgid filter: rest.filter attributes: rest.attributes search: rest.search page: rest.page pageSize: rest.pageSize supervisorManagedAgentsOnly: rest.supervisorManagedAgentsOnly singleObjectResponse: rest.singleObjectResponse buddyTeamAgentsOnly: rest.buddyTeamAgentsOnly userInQueue: rest.userInQueue queueId: rest.queueId includeAIMappingCount: rest.includeAIMappingCount includeDynamicSkillsLimitReached: rest.includeDynamicSkillsLimitReached outputParameters: - type: object mapping: $. - path: /v1/organization/{orgid}/v2/user/by-ci-user-id/{id} name: organization-orgid-v2-user-by-ci-user-id-id description: REST surface for organization-orgid-v2-user-by-ci-user-id-id. operations: - method: GET name: getuserbyciuseridwithuserprofilegranularaccess description: Get specific User by CI User ID call: contact-center-users.getuserbyciuseridwithuserprofilegranularaccess with: orgid: rest.orgid id: rest.id includeUserProfile: rest.includeUserProfile includeNames: rest.includeNames outputParameters: - type: object mapping: $. - type: mcp namespace: contact-center-users-mcp port: 9090 transport: http description: MCP adapter for Webex Contact Center — Users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-user-s description: List User(s) hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getallconfig16 with: orgid: tools.orgid filter: tools.filter attributes: tools.attributes page: tools.page pageSize: tools.pageSize singleObjectResponse: tools.singleObjectResponse outputParameters: - type: object mapping: $. - name: bulk-partial-update-users description: Bulk partial update Users hints: readOnly: false destructive: false idempotent: true call: contact-center-users.patchallconfig with: orgid: tools.orgid body: tools.body outputParameters: - type: object mapping: $. - name: bulk-update-user-dynamic-skills description: Bulk update User dynamic skills hints: readOnly: false destructive: false idempotent: true call: contact-center-users.patchdynamicskills with: orgid: tools.orgid skillId: tools.skillId body: tools.body outputParameters: - type: object mapping: $. - name: get-specific-user-ci-user description: Get specific User by CI User ID hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getuserbyciuserid with: orgid: tools.orgid id: tools.id includeUserProfile: tools.includeUserProfile outputParameters: - type: object mapping: $. - name: get-users-dynamic-skill-id description: Get users by dynamic skill ID hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getusersbydynamicskillid with: orgid: tools.orgid skillId: tools.skillId search: tools.search page: tools.page pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: get-agents-matching-skill-requirements description: Get the agents matching skill requirements criteria hints: readOnly: true destructive: false idempotent: false call: contact-center-users.getusersbyskillrequirements with: orgid: tools.orgid search: tools.search page: tools.page pageSize: tools.pageSize body: tools.body outputParameters: - type: object mapping: $. - name: fetch-user-details-ids description: Fetch User details by IDs hints: readOnly: true destructive: false idempotent: false call: contact-center-users.getuserdatabyids with: orgid: tools.orgid page: tools.page pageSize: tools.pageSize body: tools.body outputParameters: - type: object mapping: $. - name: list-users-along-profile description: List Users along with profile hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getalluserswithuserprofile with: orgid: tools.orgid outputParameters: - type: object mapping: $. - name: get-specific-user-along-profile description: Get specific User along with profile by ID hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getuserwithuserprofile with: orgid: tools.orgid id: tools.id outputParameters: - type: object mapping: $. - name: get-specific-user-id description: Get specific User by ID hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getconfig2 with: orgid: tools.orgid id: tools.id includeCount: tools.includeCount includeUserProfileType: tools.includeUserProfileType includeSkillProfileAudit: tools.includeSkillProfileAudit includeReskillAuditInfo: tools.includeReskillAuditInfo includeSkillDetails: tools.includeSkillDetails outputParameters: - type: object mapping: $. - name: update-specific-user-id description: Update specific User by ID hints: readOnly: false destructive: false idempotent: true call: contact-center-users.updateconfig2 with: orgid: tools.orgid id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: partially-update-user-id description: Partially update User by ID hints: readOnly: false destructive: false idempotent: true call: contact-center-users.patchconfig with: orgid: tools.orgid id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: list-references-specific-user description: List references for a specific User hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getincomingreferences1 with: orgid: tools.orgid id: tools.id type: tools.type page: tools.page pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: reskill-agents description: Reskill Agents hints: readOnly: false destructive: false idempotent: true call: contact-center-users.reskillagent with: orgid: tools.orgid id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: list-user-s-2 description: List User(s) hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getallconfigwithpagedmetadata1 with: orgid: tools.orgid filter: tools.filter attributes: tools.attributes search: tools.search page: tools.page pageSize: tools.pageSize supervisorManagedAgentsOnly: tools.supervisorManagedAgentsOnly singleObjectResponse: tools.singleObjectResponse buddyTeamAgentsOnly: tools.buddyTeamAgentsOnly userInQueue: tools.userInQueue queueId: tools.queueId includeAIMappingCount: tools.includeAIMappingCount includeDynamicSkillsLimitReached: tools.includeDynamicSkillsLimitReached outputParameters: - type: object mapping: $. - name: get-specific-user-ci-user-2 description: Get specific User by CI User ID hints: readOnly: true destructive: false idempotent: true call: contact-center-users.getuserbyciuseridwithuserprofilegranularaccess with: orgid: tools.orgid id: tools.id includeUserProfile: tools.includeUserProfile includeNames: tools.includeNames outputParameters: - type: object mapping: $.