naftiko: 1.0.0-alpha2 info: label: Webex Contact Center — Tasks description: 'Webex Contact Center — Tasks. 22 operations. Lead operation: Accept Preview Task. Self-contained Naftiko capability covering one Webex business surface.' tags: - Webex - Tasks 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-tasks baseUri: '' description: Webex Contact Center — Tasks business capability. Self-contained, no shared references. resources: - name: v1-dialer-campaign-campaignId-preview-task-taskId-accept path: /v1/dialer/campaign/{campaignId}/preview-task/{taskId}/accept operations: - name: acceptpreviewcampaigntaskroute method: POST description: Accept Preview Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: campaignId in: path type: string description: The unique ID represents the campaign that the user is currently working on. required: true - name: v1-dialer-campaign-campaignId-preview-task-taskId-remove path: /v1/dialer/campaign/{campaignId}/preview-task/{taskId}/remove operations: - name: removepreviewcampaigntaskroute method: POST description: Remove Preview Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: campaignId in: path type: string description: The unique ID represents the campaign that the user is currently working on. required: true - name: v1-dialer-campaign-campaignId-preview-task-taskId-skip path: /v1/dialer/campaign/{campaignId}/preview-task/{taskId}/skip operations: - name: skippreviewcampaigntaskroute method: POST description: Skip Preview Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: campaignId in: path type: string description: The unique ID represents the campaign that the user is currently working on. required: true - name: v1-tasks path: /v1/tasks operations: - name: createtaskroute method: POST description: Create Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: searchtasks method: GET description: Get Tasks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channelTypes in: query type: array description: Task channel type(s) permitted in response. Separate values with commas. Use lowercase. By default, there is no channelType filtering. - name: from in: query type: integer description: Filters tasks created after the given epoch timestamp (in milliseconds). required: true - name: to in: query type: integer description: Filters tasks created before the given epoch timestamp (in milliseconds); queries up to the present if timestamp is not specified. - name: pageSize in: query type: integer description: Maximum page size in the response. Maximum allowed value is 1000. Defaults to 100 items per page. - name: orgId in: query type: string description: Organization ID to use for this operation. If unspecified, inferred from token. Token must have permission to interact with this organization. - name: TrackingId in: header type: string description: Tracking ID to use for this operation, for traceability, debugging, and error reporting purposes. - name: v1-tasks-taskId path: /v1/tasks/{taskId} operations: - name: patchtaskroute method: PATCH description: Update Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-accept path: /v1/tasks/{taskId}/accept operations: - name: accepttaskroute method: POST description: Accept Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: v1-tasks-taskId-assign path: /v1/tasks/{taskId}/assign operations: - name: assignroute method: POST description: Assign Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user want to assign. required: true - name: v1-tasks-taskId-conference-exit path: /v1/tasks/{taskId}/conference/exit operations: - name: exitconferenceroute method: POST description: Exit Conference Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The taskId represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: v1-tasks-taskId-consult path: /v1/tasks/{taskId}/consult operations: - name: consultroute method: POST description: Consult Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-consult-accept path: /v1/tasks/{taskId}/consult/accept operations: - name: acceptconsultroute method: POST description: Consult Accept Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: v1-tasks-taskId-consult-conference path: /v1/tasks/{taskId}/consult/conference operations: - name: consultconferenceroute method: POST description: Consult Conference Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-consult-end path: /v1/tasks/{taskId}/consult/end operations: - name: endconsultroute method: POST description: Consult End Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-consult-transfer path: /v1/tasks/{taskId}/consult/transfer operations: - name: consulttransferroute method: POST description: Consult Transfer Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-end path: /v1/tasks/{taskId}/end operations: - name: endtaskroute method: POST description: End Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: v1-tasks-taskId-hold path: /v1/tasks/{taskId}/hold operations: - name: agentholdroute method: POST description: Hold Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-record-pause path: /v1/tasks/{taskId}/record/pause operations: - name: pauserecordingroute method: POST description: Pause Recording Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: v1-tasks-taskId-record-resume path: /v1/tasks/{taskId}/record/resume operations: - name: resumerecordingroute method: POST description: Resume Recording Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-tasks-taskId-reject path: /v1/tasks/{taskId}/reject operations: - name: rejecttaskroute method: POST description: Reject Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-transfer path: /v1/tasks/{taskId}/transfer operations: - name: transfertaskroute method: POST description: Transfer Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-unhold path: /v1/tasks/{taskId}/unhold operations: - name: agentunholdroute method: POST description: Resume Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tasks-taskId-wrapup path: /v1/tasks/{taskId}/wrapup operations: - name: agentwrapuproute method: POST description: Wrap Up Task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: The unique ID represents the task that the user is currently working on. It will be generated automatically during the creation of a new task. required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.WEBEX_API_KEY}}' exposes: - type: rest namespace: contact-center-tasks-rest port: 8080 description: REST adapter for Webex Contact Center — Tasks. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/dialer/campaign/{campaignid}/preview-task/{taskid}/accept name: v1-dialer-campaign-campaignid-preview-task-taskid-accept description: REST surface for v1-dialer-campaign-campaignId-preview-task-taskId-accept. operations: - method: POST name: acceptpreviewcampaigntaskroute description: Accept Preview Task call: contact-center-tasks.acceptpreviewcampaigntaskroute with: taskId: rest.taskId campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/v1/dialer/campaign/{campaignid}/preview-task/{taskid}/remove name: v1-dialer-campaign-campaignid-preview-task-taskid-remove description: REST surface for v1-dialer-campaign-campaignId-preview-task-taskId-remove. operations: - method: POST name: removepreviewcampaigntaskroute description: Remove Preview Task call: contact-center-tasks.removepreviewcampaigntaskroute with: taskId: rest.taskId campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/v1/dialer/campaign/{campaignid}/preview-task/{taskid}/skip name: v1-dialer-campaign-campaignid-preview-task-taskid-skip description: REST surface for v1-dialer-campaign-campaignId-preview-task-taskId-skip. operations: - method: POST name: skippreviewcampaigntaskroute description: Skip Preview Task call: contact-center-tasks.skippreviewcampaigntaskroute with: taskId: rest.taskId campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/v1/tasks name: v1-tasks description: REST surface for v1-tasks. operations: - method: POST name: createtaskroute description: Create Task call: contact-center-tasks.createtaskroute with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: searchtasks description: Get Tasks call: contact-center-tasks.searchtasks with: channelTypes: rest.channelTypes from: rest.from to: rest.to pageSize: rest.pageSize orgId: rest.orgId TrackingId: rest.TrackingId outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid} name: v1-tasks-taskid description: REST surface for v1-tasks-taskId. operations: - method: PATCH name: patchtaskroute description: Update Task call: contact-center-tasks.patchtaskroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/accept name: v1-tasks-taskid-accept description: REST surface for v1-tasks-taskId-accept. operations: - method: POST name: accepttaskroute description: Accept Task call: contact-center-tasks.accepttaskroute with: taskId: rest.taskId outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/assign name: v1-tasks-taskid-assign description: REST surface for v1-tasks-taskId-assign. operations: - method: POST name: assignroute description: Assign Task call: contact-center-tasks.assignroute with: taskId: rest.taskId outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/conference/exit name: v1-tasks-taskid-conference-exit description: REST surface for v1-tasks-taskId-conference-exit. operations: - method: POST name: exitconferenceroute description: Exit Conference Task call: contact-center-tasks.exitconferenceroute with: taskId: rest.taskId outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/consult name: v1-tasks-taskid-consult description: REST surface for v1-tasks-taskId-consult. operations: - method: POST name: consultroute description: Consult Task call: contact-center-tasks.consultroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/consult/accept name: v1-tasks-taskid-consult-accept description: REST surface for v1-tasks-taskId-consult-accept. operations: - method: POST name: acceptconsultroute description: Consult Accept Task call: contact-center-tasks.acceptconsultroute with: taskId: rest.taskId outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/consult/conference name: v1-tasks-taskid-consult-conference description: REST surface for v1-tasks-taskId-consult-conference. operations: - method: POST name: consultconferenceroute description: Consult Conference Task call: contact-center-tasks.consultconferenceroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/consult/end name: v1-tasks-taskid-consult-end description: REST surface for v1-tasks-taskId-consult-end. operations: - method: POST name: endconsultroute description: Consult End Task call: contact-center-tasks.endconsultroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/consult/transfer name: v1-tasks-taskid-consult-transfer description: REST surface for v1-tasks-taskId-consult-transfer. operations: - method: POST name: consulttransferroute description: Consult Transfer Task call: contact-center-tasks.consulttransferroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/end name: v1-tasks-taskid-end description: REST surface for v1-tasks-taskId-end. operations: - method: POST name: endtaskroute description: End Task call: contact-center-tasks.endtaskroute with: taskId: rest.taskId outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/hold name: v1-tasks-taskid-hold description: REST surface for v1-tasks-taskId-hold. operations: - method: POST name: agentholdroute description: Hold Task call: contact-center-tasks.agentholdroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/record/pause name: v1-tasks-taskid-record-pause description: REST surface for v1-tasks-taskId-record-pause. operations: - method: POST name: pauserecordingroute description: Pause Recording Task call: contact-center-tasks.pauserecordingroute with: taskId: rest.taskId outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/record/resume name: v1-tasks-taskid-record-resume description: REST surface for v1-tasks-taskId-record-resume. operations: - method: POST name: resumerecordingroute description: Resume Recording Task call: contact-center-tasks.resumerecordingroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/reject name: v1-tasks-taskid-reject description: REST surface for v1-tasks-taskId-reject. operations: - method: POST name: rejecttaskroute description: Reject Task call: contact-center-tasks.rejecttaskroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/transfer name: v1-tasks-taskid-transfer description: REST surface for v1-tasks-taskId-transfer. operations: - method: POST name: transfertaskroute description: Transfer Task call: contact-center-tasks.transfertaskroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/unhold name: v1-tasks-taskid-unhold description: REST surface for v1-tasks-taskId-unhold. operations: - method: POST name: agentunholdroute description: Resume Task call: contact-center-tasks.agentunholdroute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tasks/{taskid}/wrapup name: v1-tasks-taskid-wrapup description: REST surface for v1-tasks-taskId-wrapup. operations: - method: POST name: agentwrapuproute description: Wrap Up Task call: contact-center-tasks.agentwrapuproute with: taskId: rest.taskId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: contact-center-tasks-mcp port: 9090 transport: http description: MCP adapter for Webex Contact Center — Tasks. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: accept-preview-task description: Accept Preview Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.acceptpreviewcampaigntaskroute with: taskId: tools.taskId campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: remove-preview-task description: Remove Preview Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.removepreviewcampaigntaskroute with: taskId: tools.taskId campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: skip-preview-task description: Skip Preview Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.skippreviewcampaigntaskroute with: taskId: tools.taskId campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: create-task description: Create Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.createtaskroute with: body: tools.body outputParameters: - type: object mapping: $. - name: get-tasks description: Get Tasks hints: readOnly: true destructive: false idempotent: true call: contact-center-tasks.searchtasks with: channelTypes: tools.channelTypes from: tools.from to: tools.to pageSize: tools.pageSize orgId: tools.orgId TrackingId: tools.TrackingId outputParameters: - type: object mapping: $. - name: update-task description: Update Task hints: readOnly: false destructive: false idempotent: true call: contact-center-tasks.patchtaskroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: accept-task description: Accept Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.accepttaskroute with: taskId: tools.taskId outputParameters: - type: object mapping: $. - name: assign-task description: Assign Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.assignroute with: taskId: tools.taskId outputParameters: - type: object mapping: $. - name: exit-conference-task description: Exit Conference Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.exitconferenceroute with: taskId: tools.taskId outputParameters: - type: object mapping: $. - name: consult-task description: Consult Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.consultroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: consult-accept-task description: Consult Accept Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.acceptconsultroute with: taskId: tools.taskId outputParameters: - type: object mapping: $. - name: consult-conference-task description: Consult Conference Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.consultconferenceroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: consult-end-task description: Consult End Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.endconsultroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: consult-transfer-task description: Consult Transfer Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.consulttransferroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: end-task description: End Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.endtaskroute with: taskId: tools.taskId outputParameters: - type: object mapping: $. - name: hold-task description: Hold Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.agentholdroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: pause-recording-task description: Pause Recording Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.pauserecordingroute with: taskId: tools.taskId outputParameters: - type: object mapping: $. - name: resume-recording-task description: Resume Recording Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.resumerecordingroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: reject-task description: Reject Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.rejecttaskroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: transfer-task description: Transfer Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.transfertaskroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: resume-task description: Resume Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.agentunholdroute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $. - name: wrap-up-task description: Wrap Up Task hints: readOnly: false destructive: false idempotent: false call: contact-center-tasks.agentwrapuproute with: taskId: tools.taskId body: tools.body outputParameters: - type: object mapping: $.