wxcli 1.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wxcli/__init__.py +4 -0
- wxcli/_playbook/.claude/agents/migration-advisor.md +239 -0
- wxcli/_playbook/.claude/agents/wxc-calling-builder.md +946 -0
- wxcli/_playbook/.claude/rules/cleanup.md +29 -0
- wxcli/_playbook/.claude/rules/cucm-migration.md +58 -0
- wxcli/_playbook/.claude/rules/org-health.md +14 -0
- wxcli/_playbook/.claude/settings.json +8 -0
- wxcli/_playbook/.claude/skills/audit-compliance/SKILL.md +515 -0
- wxcli/_playbook/.claude/skills/call-control/SKILL.md +747 -0
- wxcli/_playbook/.claude/skills/configure-features/SKILL.md +623 -0
- wxcli/_playbook/.claude/skills/configure-routing/SKILL.md +627 -0
- wxcli/_playbook/.claude/skills/contact-center/SKILL.md +1181 -0
- wxcli/_playbook/.claude/skills/cucm-migrate/SKILL.md +820 -0
- wxcli/_playbook/.claude/skills/customer-assist/SKILL.md +443 -0
- wxcli/_playbook/.claude/skills/device-platform/SKILL.md +407 -0
- wxcli/_playbook/.claude/skills/manage-call-settings/SKILL.md +757 -0
- wxcli/_playbook/.claude/skills/manage-devices/SKILL.md +790 -0
- wxcli/_playbook/.claude/skills/manage-identity/SKILL.md +638 -0
- wxcli/_playbook/.claude/skills/manage-licensing/SKILL.md +528 -0
- wxcli/_playbook/.claude/skills/manage-meetings/SKILL.md +708 -0
- wxcli/_playbook/.claude/skills/messaging-bots/SKILL.md +365 -0
- wxcli/_playbook/.claude/skills/messaging-spaces/SKILL.md +520 -0
- wxcli/_playbook/.claude/skills/org-health/SKILL.md +159 -0
- wxcli/_playbook/.claude/skills/provision-calling/SKILL.md +421 -0
- wxcli/_playbook/.claude/skills/query-live/SKILL.md +183 -0
- wxcli/_playbook/.claude/skills/query-live/domains/call-flow-trace.md +223 -0
- wxcli/_playbook/.claude/skills/query-live/domains/call-history.md +44 -0
- wxcli/_playbook/.claude/skills/query-live/domains/features.md +169 -0
- wxcli/_playbook/.claude/skills/query-live/domains/numbers.md +93 -0
- wxcli/_playbook/.claude/skills/query-live/domains/people-and-settings.md +146 -0
- wxcli/_playbook/.claude/skills/query-live/domains/routing.md +124 -0
- wxcli/_playbook/.claude/skills/reporting/SKILL.md +501 -0
- wxcli/_playbook/.claude/skills/reporting/references/cdr-recipes.md +1628 -0
- wxcli/_playbook/.claude/skills/reporting-cc/SKILL.md +251 -0
- wxcli/_playbook/.claude/skills/reporting-meetings/SKILL.md +290 -0
- wxcli/_playbook/.claude/skills/teardown/SKILL.md +214 -0
- wxcli/_playbook/.claude/skills/video-mesh/SKILL.md +379 -0
- wxcli/_playbook/.claude/skills/wxc-calling-debug/SKILL.md +475 -0
- wxcli/_playbook/CLAUDE.md +373 -0
- wxcli/_playbook/docs/reference/CLAUDE.md +25 -0
- wxcli/_playbook/docs/reference/admin-apps-data.md +643 -0
- wxcli/_playbook/docs/reference/admin-audit-security.md +322 -0
- wxcli/_playbook/docs/reference/admin-hybrid.md +383 -0
- wxcli/_playbook/docs/reference/admin-identity-scim.md +1007 -0
- wxcli/_playbook/docs/reference/admin-licensing.md +414 -0
- wxcli/_playbook/docs/reference/admin-org-management.md +586 -0
- wxcli/_playbook/docs/reference/admin-partner.md +357 -0
- wxcli/_playbook/docs/reference/archive/wxc-sdk-patterns.md +1229 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-advanced.md +835 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-core.md +743 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-devices-workspaces.md +1305 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-features.md +849 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-locations.md +938 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-person.md +1255 -0
- wxcli/_playbook/docs/reference/archive/wxcadm-routing.md +1262 -0
- wxcli/_playbook/docs/reference/authentication.md +965 -0
- wxcli/_playbook/docs/reference/call-control.md +1205 -0
- wxcli/_playbook/docs/reference/call-features-additional.md +2541 -0
- wxcli/_playbook/docs/reference/call-features-major.md +1320 -0
- wxcli/_playbook/docs/reference/call-routing.md +2304 -0
- wxcli/_playbook/docs/reference/contact-center-analytics.md +1049 -0
- wxcli/_playbook/docs/reference/contact-center-core.md +1614 -0
- wxcli/_playbook/docs/reference/contact-center-journey.md +457 -0
- wxcli/_playbook/docs/reference/contact-center-routing.md +1138 -0
- wxcli/_playbook/docs/reference/devices-core.md +1869 -0
- wxcli/_playbook/docs/reference/devices-dect.md +1150 -0
- wxcli/_playbook/docs/reference/devices-platform.md +467 -0
- wxcli/_playbook/docs/reference/devices-workspaces.md +1426 -0
- wxcli/_playbook/docs/reference/emergency-services.md +1122 -0
- wxcli/_playbook/docs/reference/location-calling-core.md +2037 -0
- wxcli/_playbook/docs/reference/location-calling-media.md +1334 -0
- wxcli/_playbook/docs/reference/location-recording-advanced.md +1482 -0
- wxcli/_playbook/docs/reference/meetings-content.md +473 -0
- wxcli/_playbook/docs/reference/meetings-core.md +903 -0
- wxcli/_playbook/docs/reference/meetings-infrastructure.md +899 -0
- wxcli/_playbook/docs/reference/meetings-settings.md +850 -0
- wxcli/_playbook/docs/reference/messaging-bots.md +1091 -0
- wxcli/_playbook/docs/reference/messaging-spaces.md +695 -0
- wxcli/_playbook/docs/reference/person-call-settings-behavior.md +1639 -0
- wxcli/_playbook/docs/reference/person-call-settings-handling.md +1394 -0
- wxcli/_playbook/docs/reference/person-call-settings-media.md +1898 -0
- wxcli/_playbook/docs/reference/person-call-settings-permissions.md +1329 -0
- wxcli/_playbook/docs/reference/provisioning.md +1366 -0
- wxcli/_playbook/docs/reference/reporting-analytics.md +1318 -0
- wxcli/_playbook/docs/reference/self-service-call-settings.md +1020 -0
- wxcli/_playbook/docs/reference/virtual-lines.md +1132 -0
- wxcli/_playbook/docs/reference/webhooks-events.md +1444 -0
- wxcli/_playbook/docs/reference/wxcadm-xsi-realtime.md +953 -0
- wxcli/_version.py +24 -0
- wxcli/auth.py +137 -0
- wxcli/commands/__init__.py +0 -0
- wxcli/commands/_registry.py +181 -0
- wxcli/commands/activation_email.py +103 -0
- wxcli/commands/admin_recordings.py +585 -0
- wxcli/commands/analytics.py +105 -0
- wxcli/commands/announcement_playlists.py +219 -0
- wxcli/commands/announcements.py +519 -0
- wxcli/commands/archive_users.py +36 -0
- wxcli/commands/attachment_actions.py +60 -0
- wxcli/commands/audit_events.py +83 -0
- wxcli/commands/authorizations.py +113 -0
- wxcli/commands/auto_attendant.py +642 -0
- wxcli/commands/broadworks_billing_reports.py +126 -0
- wxcli/commands/broadworks_enterprises.py +160 -0
- wxcli/commands/broadworks_subscribers.py +319 -0
- wxcli/commands/broadworks_workspaces.py +108 -0
- wxcli/commands/call_controls.py +1304 -0
- wxcli/commands/call_park.py +494 -0
- wxcli/commands/call_pickup.py +229 -0
- wxcli/commands/call_queue.py +1878 -0
- wxcli/commands/call_recording.py +707 -0
- wxcli/commands/call_routing.py +1610 -0
- wxcli/commands/call_settings_for_me_phase_5.py +212 -0
- wxcli/commands/caller_reputation.py +169 -0
- wxcli/commands/calling_service.py +305 -0
- wxcli/commands/cc_address_book.py +770 -0
- wxcli/commands/cc_agent_greetings.py +242 -0
- wxcli/commands/cc_agent_summaries.py +39 -0
- wxcli/commands/cc_agent_wellbeing.py +216 -0
- wxcli/commands/cc_agents.py +425 -0
- wxcli/commands/cc_ai_assistant.py +55 -0
- wxcli/commands/cc_ai_feature.py +294 -0
- wxcli/commands/cc_audio_files.py +149 -0
- wxcli/commands/cc_auto_csat.py +311 -0
- wxcli/commands/cc_aux_code.py +458 -0
- wxcli/commands/cc_business_hour.py +353 -0
- wxcli/commands/cc_call_monitoring.py +228 -0
- wxcli/commands/cc_callbacks.py +194 -0
- wxcli/commands/cc_campaign.py +212 -0
- wxcli/commands/cc_captures.py +39 -0
- wxcli/commands/cc_contact_list.py +169 -0
- wxcli/commands/cc_contact_number.py +295 -0
- wxcli/commands/cc_data_sources.py +235 -0
- wxcli/commands/cc_desktop_layout.py +380 -0
- wxcli/commands/cc_desktop_profile.py +322 -0
- wxcli/commands/cc_dial_number.py +511 -0
- wxcli/commands/cc_dial_plan.py +347 -0
- wxcli/commands/cc_dnc.py +101 -0
- wxcli/commands/cc_entry_point.py +545 -0
- wxcli/commands/cc_ewt.py +51 -0
- wxcli/commands/cc_flow.py +477 -0
- wxcli/commands/cc_global_vars.py +430 -0
- wxcli/commands/cc_holiday_list.py +335 -0
- wxcli/commands/cc_journey.py +1261 -0
- wxcli/commands/cc_legacy_flows.py +49 -0
- wxcli/commands/cc_multimedia_profile.py +436 -0
- wxcli/commands/cc_notification.py +51 -0
- wxcli/commands/cc_outdial_ani.py +604 -0
- wxcli/commands/cc_overrides.py +341 -0
- wxcli/commands/cc_queue.py +1083 -0
- wxcli/commands/cc_queue_stats.py +55 -0
- wxcli/commands/cc_realtime.py +51 -0
- wxcli/commands/cc_resource_collection.py +312 -0
- wxcli/commands/cc_search.py +46 -0
- wxcli/commands/cc_site.py +400 -0
- wxcli/commands/cc_skill.py +350 -0
- wxcli/commands/cc_skill_profile.py +289 -0
- wxcli/commands/cc_subscriptions.py +426 -0
- wxcli/commands/cc_summaries.py +130 -0
- wxcli/commands/cc_tasks.py +844 -0
- wxcli/commands/cc_team.py +325 -0
- wxcli/commands/cc_user_profiles.py +349 -0
- wxcli/commands/cc_users.py +701 -0
- wxcli/commands/cc_work_types.py +363 -0
- wxcli/commands/cdr.py +89 -0
- wxcli/commands/classifications.py +38 -0
- wxcli/commands/cleanup.py +1427 -0
- wxcli/commands/client_settings.py +72 -0
- wxcli/commands/conference.py +328 -0
- wxcli/commands/configure.py +72 -0
- wxcli/commands/converged_recordings.py +347 -0
- wxcli/commands/converged_recordings_export.py +310 -0
- wxcli/commands/cq_playlists.py +42 -0
- wxcli/commands/cucm.py +2794 -0
- wxcli/commands/cucm_config.py +129 -0
- wxcli/commands/customer_assist.py +373 -0
- wxcli/commands/data_sources.py +227 -0
- wxcli/commands/dect_devices.py +787 -0
- wxcli/commands/device_configurations.py +77 -0
- wxcli/commands/device_dynamic_settings.py +320 -0
- wxcli/commands/device_settings.py +1489 -0
- wxcli/commands/devices.py +280 -0
- wxcli/commands/domains.py +142 -0
- wxcli/commands/ecm.py +178 -0
- wxcli/commands/emergency_services.py +827 -0
- wxcli/commands/events.py +83 -0
- wxcli/commands/external_voicemail.py +52 -0
- wxcli/commands/groups.py +206 -0
- wxcli/commands/guest_management.py +76 -0
- wxcli/commands/hds.py +340 -0
- wxcli/commands/hot_desk.py +67 -0
- wxcli/commands/hot_desking_members.py +118 -0
- wxcli/commands/hot_desking_portal.py +124 -0
- wxcli/commands/hunt_group.py +577 -0
- wxcli/commands/hybrid_clusters.py +71 -0
- wxcli/commands/hybrid_connectors.py +67 -0
- wxcli/commands/identity_org.py +159 -0
- wxcli/commands/init_playbook.py +155 -0
- wxcli/commands/licenses.py +106 -0
- wxcli/commands/live_monitoring.py +40 -0
- wxcli/commands/location_call_handling.py +577 -0
- wxcli/commands/location_schedules.py +341 -0
- wxcli/commands/location_settings.py +1297 -0
- wxcli/commands/location_voicemail.py +494 -0
- wxcli/commands/locations.py +336 -0
- wxcli/commands/meeting_captions.py +110 -0
- wxcli/commands/meeting_chats.py +63 -0
- wxcli/commands/meeting_invitees.py +234 -0
- wxcli/commands/meeting_messages.py +28 -0
- wxcli/commands/meeting_participants.py +278 -0
- wxcli/commands/meeting_polls.py +111 -0
- wxcli/commands/meeting_preferences.py +515 -0
- wxcli/commands/meeting_qa.py +78 -0
- wxcli/commands/meeting_qualities.py +43 -0
- wxcli/commands/meeting_reports.py +101 -0
- wxcli/commands/meeting_session_types.py +105 -0
- wxcli/commands/meeting_site.py +57 -0
- wxcli/commands/meeting_slido.py +44 -0
- wxcli/commands/meeting_summaries.py +92 -0
- wxcli/commands/meeting_tracking_codes.py +233 -0
- wxcli/commands/meeting_transcripts.py +230 -0
- wxcli/commands/meetings.py +1997 -0
- wxcli/commands/memberships.py +164 -0
- wxcli/commands/messages.py +213 -0
- wxcli/commands/mode_management.py +244 -0
- wxcli/commands/my_call_settings.py +3577 -0
- wxcli/commands/numbers.py +405 -0
- wxcli/commands/operating_modes.py +410 -0
- wxcli/commands/org_contacts.py +284 -0
- wxcli/commands/org_health_cli.py +55 -0
- wxcli/commands/org_settings.py +71 -0
- wxcli/commands/organizations.py +83 -0
- wxcli/commands/paging_group.py +257 -0
- wxcli/commands/partner_admins.py +141 -0
- wxcli/commands/partner_reports.py +188 -0
- wxcli/commands/partner_tags.py +216 -0
- wxcli/commands/people.py +279 -0
- wxcli/commands/person_call_settings.py +71 -0
- wxcli/commands/pstn.py +280 -0
- wxcli/commands/recording_report.py +154 -0
- wxcli/commands/report_templates.py +38 -0
- wxcli/commands/reports.py +144 -0
- wxcli/commands/resource_group_memberships.py +160 -0
- wxcli/commands/resource_groups.py +67 -0
- wxcli/commands/roles.py +63 -0
- wxcli/commands/room_tabs.py +160 -0
- wxcli/commands/rooms.py +225 -0
- wxcli/commands/scim_bulk.py +46 -0
- wxcli/commands/scim_groups.py +246 -0
- wxcli/commands/scim_schemas.py +82 -0
- wxcli/commands/scim_users.py +283 -0
- wxcli/commands/security_audit.py +54 -0
- wxcli/commands/service_apps.py +51 -0
- wxcli/commands/single_number_reach.py +209 -0
- wxcli/commands/team_memberships.py +155 -0
- wxcli/commands/teams.py +153 -0
- wxcli/commands/ucm_profile.py +42 -0
- wxcli/commands/update.py +219 -0
- wxcli/commands/user_settings.py +5116 -0
- wxcli/commands/video_mesh.py +1090 -0
- wxcli/commands/virtual_extensions.py +502 -0
- wxcli/commands/virtual_line_settings.py +2072 -0
- wxcli/commands/webhooks.py +176 -0
- wxcli/commands/wholesale_billing_reports.py +147 -0
- wxcli/commands/wholesale_provisioning.py +523 -0
- wxcli/commands/workspace_locations.py +339 -0
- wxcli/commands/workspace_metrics.py +103 -0
- wxcli/commands/workspace_personalization.py +70 -0
- wxcli/commands/workspace_settings.py +3347 -0
- wxcli/commands/workspaces.py +279 -0
- wxcli/commands/xapi.py +114 -0
- wxcli/config.py +139 -0
- wxcli/errors.py +77 -0
- wxcli/main.py +210 -0
- wxcli/migration/CLAUDE.md +106 -0
- wxcli/migration/__init__.py +1 -0
- wxcli/migration/advisory/CLAUDE.md +196 -0
- wxcli/migration/advisory/__init__.py +46 -0
- wxcli/migration/advisory/advisor.py +107 -0
- wxcli/migration/advisory/advisory_patterns.py +2552 -0
- wxcli/migration/advisory/recommendation_rules.py +835 -0
- wxcli/migration/cucm/CLAUDE.md +74 -0
- wxcli/migration/cucm/__init__.py +5 -0
- wxcli/migration/cucm/connection.py +265 -0
- wxcli/migration/cucm/discovery.py +225 -0
- wxcli/migration/cucm/extractors/__init__.py +1 -0
- wxcli/migration/cucm/extractors/announcements.py +92 -0
- wxcli/migration/cucm/extractors/base.py +90 -0
- wxcli/migration/cucm/extractors/device_profiles.py +98 -0
- wxcli/migration/cucm/extractors/devices.py +193 -0
- wxcli/migration/cucm/extractors/e911.py +103 -0
- wxcli/migration/cucm/extractors/features.py +309 -0
- wxcli/migration/cucm/extractors/helpers.py +73 -0
- wxcli/migration/cucm/extractors/informational.py +295 -0
- wxcli/migration/cucm/extractors/locations.py +221 -0
- wxcli/migration/cucm/extractors/moh.py +100 -0
- wxcli/migration/cucm/extractors/remote_destinations.py +96 -0
- wxcli/migration/cucm/extractors/routing.py +493 -0
- wxcli/migration/cucm/extractors/shared_lines.py +146 -0
- wxcli/migration/cucm/extractors/templates.py +229 -0
- wxcli/migration/cucm/extractors/tier4.py +173 -0
- wxcli/migration/cucm/extractors/users.py +240 -0
- wxcli/migration/cucm/extractors/voicemail.py +243 -0
- wxcli/migration/cucm/extractors/workspaces.py +88 -0
- wxcli/migration/cucm/unity_connection.py +304 -0
- wxcli/migration/execute/CLAUDE.md +372 -0
- wxcli/migration/execute/__init__.py +303 -0
- wxcli/migration/execute/batch.py +277 -0
- wxcli/migration/execute/dependency.py +483 -0
- wxcli/migration/execute/engine.py +964 -0
- wxcli/migration/execute/handlers.py +2232 -0
- wxcli/migration/execute/planner.py +1939 -0
- wxcli/migration/execute/runtime.py +571 -0
- wxcli/migration/export/CLAUDE.md +49 -0
- wxcli/migration/export/__init__.py +8 -0
- wxcli/migration/export/csv_export.py +126 -0
- wxcli/migration/export/deployment_plan.py +479 -0
- wxcli/migration/export/json_export.py +60 -0
- wxcli/migration/models.py +941 -0
- wxcli/migration/phone_models.py +50 -0
- wxcli/migration/preflight/CLAUDE.md +52 -0
- wxcli/migration/preflight/__init__.py +89 -0
- wxcli/migration/preflight/checks.py +911 -0
- wxcli/migration/preflight/runner.py +293 -0
- wxcli/migration/rate_limiter.py +144 -0
- wxcli/migration/report/CLAUDE.md +245 -0
- wxcli/migration/report/__init__.py +7 -0
- wxcli/migration/report/appendix.py +2437 -0
- wxcli/migration/report/assembler.py +183 -0
- wxcli/migration/report/charts.py +263 -0
- wxcli/migration/report/executive.py +776 -0
- wxcli/migration/report/explainer.py +704 -0
- wxcli/migration/report/helpers.py +74 -0
- wxcli/migration/report/ingest.py +152 -0
- wxcli/migration/report/notice_templates.py +192 -0
- wxcli/migration/report/score.py +375 -0
- wxcli/migration/report/styles.py +1052 -0
- wxcli/migration/report/user_diff.py +1052 -0
- wxcli/migration/report/user_notice.py +425 -0
- wxcli/migration/state.py +139 -0
- wxcli/migration/store.py +860 -0
- wxcli/migration/transform/CLAUDE.md +107 -0
- wxcli/migration/transform/__init__.py +12 -0
- wxcli/migration/transform/analysis_pipeline.py +453 -0
- wxcli/migration/transform/analyzers/__init__.py +142 -0
- wxcli/migration/transform/analyzers/css_permission.py +189 -0
- wxcli/migration/transform/analyzers/css_routing.py +335 -0
- wxcli/migration/transform/analyzers/device_compatibility.py +122 -0
- wxcli/migration/transform/analyzers/dn_ambiguity.py +131 -0
- wxcli/migration/transform/analyzers/duplicate_user.py +221 -0
- wxcli/migration/transform/analyzers/extension_conflict.py +173 -0
- wxcli/migration/transform/analyzers/feature_approximation.py +227 -0
- wxcli/migration/transform/analyzers/layout_overflow.py +174 -0
- wxcli/migration/transform/analyzers/location_ambiguity.py +184 -0
- wxcli/migration/transform/analyzers/missing_data.py +300 -0
- wxcli/migration/transform/analyzers/selective_call_handling.py +394 -0
- wxcli/migration/transform/analyzers/shared_line.py +170 -0
- wxcli/migration/transform/analyzers/voicemail_compatibility.py +267 -0
- wxcli/migration/transform/analyzers/workspace_license.py +212 -0
- wxcli/migration/transform/cross_reference.py +1136 -0
- wxcli/migration/transform/cucm_pattern.py +246 -0
- wxcli/migration/transform/decisions.py +301 -0
- wxcli/migration/transform/e164.py +145 -0
- wxcli/migration/transform/engine.py +256 -0
- wxcli/migration/transform/mappers/CLAUDE.md +123 -0
- wxcli/migration/transform/mappers/__init__.py +76 -0
- wxcli/migration/transform/mappers/announcement_mapper.py +122 -0
- wxcli/migration/transform/mappers/base.py +190 -0
- wxcli/migration/transform/mappers/button_template_mapper.py +186 -0
- wxcli/migration/transform/mappers/call_forwarding_mapper.py +228 -0
- wxcli/migration/transform/mappers/call_settings_mapper.py +144 -0
- wxcli/migration/transform/mappers/css_mapper.py +868 -0
- wxcli/migration/transform/mappers/dect_mapper.py +367 -0
- wxcli/migration/transform/mappers/device_layout_mapper.py +289 -0
- wxcli/migration/transform/mappers/device_mapper.py +227 -0
- wxcli/migration/transform/mappers/device_profile_mapper.py +190 -0
- wxcli/migration/transform/mappers/device_settings_mapper.py +464 -0
- wxcli/migration/transform/mappers/e911_mapper.py +129 -0
- wxcli/migration/transform/mappers/ecbn_mapper.py +263 -0
- wxcli/migration/transform/mappers/executive_assistant_mapper.py +156 -0
- wxcli/migration/transform/mappers/feature_mapper.py +1179 -0
- wxcli/migration/transform/mappers/line_mapper.py +310 -0
- wxcli/migration/transform/mappers/location_mapper.py +235 -0
- wxcli/migration/transform/mappers/moh_mapper.py +114 -0
- wxcli/migration/transform/mappers/monitoring_mapper.py +221 -0
- wxcli/migration/transform/mappers/receptionist_mapper.py +245 -0
- wxcli/migration/transform/mappers/routing_mapper.py +821 -0
- wxcli/migration/transform/mappers/snr_mapper.py +201 -0
- wxcli/migration/transform/mappers/softkey_mapper.py +205 -0
- wxcli/migration/transform/mappers/user_mapper.py +264 -0
- wxcli/migration/transform/mappers/voicemail_group_mapper.py +286 -0
- wxcli/migration/transform/mappers/voicemail_mapper.py +514 -0
- wxcli/migration/transform/mappers/workspace_mapper.py +464 -0
- wxcli/migration/transform/normalizers.py +2008 -0
- wxcli/migration/transform/pattern_converter.py +106 -0
- wxcli/migration/transform/pipeline.py +271 -0
- wxcli/migration/transform/rules.py +255 -0
- wxcli/org_health/CLAUDE.md +63 -0
- wxcli/org_health/__init__.py +7 -0
- wxcli/org_health/analyze.py +93 -0
- wxcli/org_health/checks.py +458 -0
- wxcli/org_health/collector.py +62 -0
- wxcli/org_health/models.py +78 -0
- wxcli/org_health/report.py +300 -0
- wxcli/output.py +101 -0
- wxcli-1.2.0.dist-info/METADATA +505 -0
- wxcli-1.2.0.dist-info/RECORD +413 -0
- wxcli-1.2.0.dist-info/WHEEL +5 -0
- wxcli-1.2.0.dist-info/entry_points.txt +2 -0
- wxcli-1.2.0.dist-info/licenses/LICENSE +191 -0
- wxcli-1.2.0.dist-info/scm_file_list.json +751 -0
- wxcli-1.2.0.dist-info/scm_version.json +8 -0
- wxcli-1.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,1614 @@
|
|
|
1
|
+
# Contact Center: Agents, Queues, Teams, and Configuration
|
|
2
|
+
|
|
3
|
+
Reference for Webex Contact Center agent management, queue routing, team assignment, skill-based routing, desktop configuration, and administrative entity management. Covers 21 CLI groups with 211 commands generated from the Contact Center OpenAPI spec.
|
|
4
|
+
|
|
5
|
+
## Sources
|
|
6
|
+
|
|
7
|
+
- OpenAPI spec: `specs/webex-contact-center.json`
|
|
8
|
+
- [Webex Contact Center API](https://developer.webex.com/docs/api/guides/wxcc-overview) -- Official API docs
|
|
9
|
+
- developer.webex.com Contact Center APIs
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## API Base and Authentication
|
|
14
|
+
|
|
15
|
+
- **Base URL:** `https://api.wxcc-{region}.cisco.com` (NOT `webexapis.com`)
|
|
16
|
+
- **Regions:** `us1` (default), `eu1`, `eu2`, `anz1` (confirmed); `ca1`, `jp1`, `sg1` (plausible but not independently confirmed from public Webex developer documentation — verify against your org's actual token cluster value before use)
|
|
17
|
+
- **Set region:** `wxcli set-cc-region us1`
|
|
18
|
+
- **Scopes:** `cjp:config_read` (read operations), `cjp:config_write` (write operations)
|
|
19
|
+
- **orgId:** Auto-injected from saved config into the `{orgid}` path parameter. Do not pass it manually.
|
|
20
|
+
|
|
21
|
+
Two path families exist:
|
|
22
|
+
|
|
23
|
+
| Family | Pattern | Used by |
|
|
24
|
+
|--------|---------|---------|
|
|
25
|
+
| **Config API** | `/organization/{orgid}/...` | Most admin entities (queues, teams, skills, sites, etc.) |
|
|
26
|
+
| **Runtime API** | `/v1/...` and `/v2/...` | Agent state, statistics, queue stats |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Table of Contents
|
|
31
|
+
|
|
32
|
+
1. [Agents (`cc-agents`)](#1-agents-cc-agents)
|
|
33
|
+
2. [Agent Greetings (`cc-agent-greetings`)](#2-agent-greetings-cc-agent-greetings)
|
|
34
|
+
3. [Agent Wellbeing (`cc-agent-wellbeing`)](#3-agent-wellbeing-cc-agent-wellbeing)
|
|
35
|
+
4. [Users (`cc-users`)](#4-users-cc-users)
|
|
36
|
+
5. [User Profiles (`cc-user-profiles`)](#5-user-profiles-cc-user-profiles)
|
|
37
|
+
6. [Queues (`cc-queue`)](#6-queues-cc-queue)
|
|
38
|
+
7. [Queue Statistics (`cc-queue-stats`)](#7-queue-statistics-cc-queue-stats)
|
|
39
|
+
8. [Entry Points (`cc-entry-point`)](#8-entry-points-cc-entry-point)
|
|
40
|
+
9. [Teams (`cc-team`)](#9-teams-cc-team)
|
|
41
|
+
10. [Skills (`cc-skill`)](#10-skills-cc-skill)
|
|
42
|
+
11. [Skill Profiles (`cc-skill-profile`)](#11-skill-profiles-cc-skill-profile)
|
|
43
|
+
12. [Multimedia Profiles (`cc-multimedia-profile`)](#12-multimedia-profiles-cc-multimedia-profile)
|
|
44
|
+
13. [Desktop Layouts (`cc-desktop-layout`)](#13-desktop-layouts-cc-desktop-layout)
|
|
45
|
+
14. [Desktop Profiles (`cc-desktop-profile`)](#14-desktop-profiles-cc-desktop-profile)
|
|
46
|
+
15. [Business Hours (`cc-business-hour`)](#15-business-hours-cc-business-hour)
|
|
47
|
+
16. [Holiday Lists (`cc-holiday-list`)](#16-holiday-lists-cc-holiday-list)
|
|
48
|
+
17. [Aux Codes (`cc-aux-code`)](#17-aux-codes-cc-aux-code)
|
|
49
|
+
18. [Work Types (`cc-work-types`)](#18-work-types-cc-work-types)
|
|
50
|
+
19. [Sites (`cc-site`)](#19-sites-cc-site)
|
|
51
|
+
20. [Global Variables (`cc-global-vars`)](#20-global-variables-cc-global-vars)
|
|
52
|
+
21. [Common Patterns](#21-common-patterns)
|
|
53
|
+
22. [Gotchas](#22-gotchas)
|
|
54
|
+
23. [See Also](#23-see-also)
|
|
55
|
+
|
|
56
|
+
> **Note:** Agent summaries (`cc-agent-summaries`) are documented in [contact-center-analytics.md](contact-center-analytics.md) alongside the related AI and generated summary features.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 1. Agents (`cc-agents`)
|
|
61
|
+
|
|
62
|
+
Runtime agent operations: login, logout, state changes, reload, buddy lists, activities, and statistics. These use the runtime path family (`/v1/agents/`, `/v2/agents/`), not the config API.
|
|
63
|
+
|
|
64
|
+
### Endpoints
|
|
65
|
+
|
|
66
|
+
| Method | Path | CLI Command | Description |
|
|
67
|
+
|--------|------|-------------|-------------|
|
|
68
|
+
| GET | `/v1/agents/activities` | `list` | Get Agent Activities |
|
|
69
|
+
| POST | `/v1/agents/buddyList` | `create-buddy-list` | Buddy Agents List |
|
|
70
|
+
| POST | `/v1/agents/login` | `create-login-agents-1` | Login (v1) |
|
|
71
|
+
| PUT | `/v1/agents/logout` | `update` | Logout |
|
|
72
|
+
| POST | `/v1/agents/reload` | `create` | Reload |
|
|
73
|
+
| PUT | `/v1/agents/session/state` | `update-state-session` | State Change |
|
|
74
|
+
| GET | `/v1/agents/statistics` | `list-statistics` | Get Agent Statistics |
|
|
75
|
+
| POST | `/v2/agents/login` | `create-login-agents` | Login (v2) |
|
|
76
|
+
| PUT | `/v2/agents/logout` | `update-logout` | Logout (v2) |
|
|
77
|
+
| POST | `/v2/agents/reload` | `create-reload` | Reload (v2) |
|
|
78
|
+
| PUT | `/v2/agents/session/state` | `update-state-session-1` | State Change (v2) |
|
|
79
|
+
|
|
80
|
+
### Key Parameters
|
|
81
|
+
|
|
82
|
+
- **Login:** Requires `teamId`, `channelName`, `agentDn` (dial number)
|
|
83
|
+
- **State Change:** Requires `state` (Available, Idle, etc.), `auxCodeId` (for idle codes)
|
|
84
|
+
- **Activities:** Supports `from`, `to` date filters, `agentId`, `state`
|
|
85
|
+
- **Statistics:** Supports `agentId`, `channelType`, `from`, `to`
|
|
86
|
+
|
|
87
|
+
### CLI Examples
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Log in an agent (v2)
|
|
91
|
+
wxcli cc-agents create-login-agents --json-body '{
|
|
92
|
+
"agentId": "...",
|
|
93
|
+
"teamId": "...",
|
|
94
|
+
"channelName": "telephony",
|
|
95
|
+
"agentDn": "1001"
|
|
96
|
+
}'
|
|
97
|
+
|
|
98
|
+
# Change agent state to Available
|
|
99
|
+
wxcli cc-agents update-state-session-1 --json-body '{
|
|
100
|
+
"agentId": "...",
|
|
101
|
+
"state": "Available"
|
|
102
|
+
}'
|
|
103
|
+
|
|
104
|
+
# Get agent activities for a date range
|
|
105
|
+
wxcli cc-agents list --from "2026-03-01T00:00:00Z" --to "2026-03-28T00:00:00Z"
|
|
106
|
+
|
|
107
|
+
# Get agent statistics
|
|
108
|
+
wxcli cc-agents list-statistics --agent-id "..."
|
|
109
|
+
|
|
110
|
+
# Log out agent (v2)
|
|
111
|
+
wxcli cc-agents update-logout --json-body '{"agentId": "..."}'
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Raw HTTP
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Login (v2)
|
|
118
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/v2/agents/login" \
|
|
119
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
120
|
+
-H "Content-Type: application/json" \
|
|
121
|
+
-d '{"agentId":"...","teamId":"...","channelName":"telephony","agentDn":"1001"}'
|
|
122
|
+
|
|
123
|
+
# State Change (v2)
|
|
124
|
+
curl -X PUT "https://api.wxcc-us1.cisco.com/v2/agents/session/state" \
|
|
125
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
126
|
+
-H "Content-Type: application/json" \
|
|
127
|
+
-d '{"agentId":"...","state":"Available"}'
|
|
128
|
+
|
|
129
|
+
# Get Activities
|
|
130
|
+
curl "https://api.wxcc-us1.cisco.com/v1/agents/activities?from=2026-03-01T00:00:00Z&to=2026-03-28T00:00:00Z" \
|
|
131
|
+
-H "Authorization: Bearer $TOKEN"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 2. Agent Greetings (`cc-agent-greetings`)
|
|
137
|
+
|
|
138
|
+
Manage agent personal greeting files. Supports three API versions (v1, v2, v3) with progressively enhanced features.
|
|
139
|
+
|
|
140
|
+
### Endpoints
|
|
141
|
+
|
|
142
|
+
| Method | Path | CLI Command | Description |
|
|
143
|
+
|--------|------|-------------|-------------|
|
|
144
|
+
| POST | `/organization/{orgid}/agent-personal-greeting` | `create-agent-personal-greeting` | Create (v1) |
|
|
145
|
+
| POST | `/organization/{orgid}/agent-personal-greeting/delete-reference` | `create-delete-reference` | Delete References |
|
|
146
|
+
| DELETE | `/organization/{orgid}/agent-personal-greeting/{id}` | `delete-agent-personal-greeting` | Delete (v1) |
|
|
147
|
+
| GET | `/organization/{orgid}/agent-personal-greeting/{id}` | `show-agent-personal-greeting` | Get by ID (v1) |
|
|
148
|
+
| PATCH | `/organization/{orgid}/agent-personal-greeting/{id}` | `update-agent-personal-greeting-organization-1` | Partial update (v1) |
|
|
149
|
+
| PUT | `/organization/{orgid}/agent-personal-greeting/{id}` | `update-agent-personal-greeting-organization` | Update (v1) |
|
|
150
|
+
| GET | `/organization/{orgid}/v2/agent-personal-greeting` | `list` | List all (v2) |
|
|
151
|
+
| POST | `/organization/{orgid}/v2/agent-personal-greeting` | `create` | Create (v2) |
|
|
152
|
+
| DELETE | `/organization/{orgid}/v2/agent-personal-greeting/{id}` | `delete` | Delete (v2) |
|
|
153
|
+
| GET | `/organization/{orgid}/v2/agent-personal-greeting/{id}` | `show` | Get by ID (v2) |
|
|
154
|
+
| PATCH | `/organization/{orgid}/v2/agent-personal-greeting/{id}` | `update-agent-personal-greeting-v2` | Partial update (v2) |
|
|
155
|
+
| PUT | `/organization/{orgid}/v2/agent-personal-greeting/{id}` | `update` | Update (v2) |
|
|
156
|
+
| GET | `/organization/{orgid}/v3/agent-personal-greeting` | `list-agent-personal-greeting` | List (v3) |
|
|
157
|
+
|
|
158
|
+
### CLI Examples
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# List all agent greetings (v2)
|
|
162
|
+
wxcli cc-agent-greetings list
|
|
163
|
+
|
|
164
|
+
# Get a specific greeting (v2)
|
|
165
|
+
wxcli cc-agent-greetings show --id "greeting-uuid"
|
|
166
|
+
|
|
167
|
+
# Create a greeting (v2)
|
|
168
|
+
wxcli cc-agent-greetings create --json-body '{
|
|
169
|
+
"name": "Welcome Greeting",
|
|
170
|
+
"type": "WELCOME",
|
|
171
|
+
"agentId": "..."
|
|
172
|
+
}'
|
|
173
|
+
|
|
174
|
+
# Delete a greeting (v2)
|
|
175
|
+
wxcli cc-agent-greetings delete --id "greeting-uuid"
|
|
176
|
+
|
|
177
|
+
# List greetings (v3 -- enhanced filtering)
|
|
178
|
+
wxcli cc-agent-greetings list-agent-personal-greeting
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Raw HTTP
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# List greetings (v2)
|
|
185
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/agent-personal-greeting" \
|
|
186
|
+
-H "Authorization: Bearer $TOKEN"
|
|
187
|
+
|
|
188
|
+
# Create greeting (v2)
|
|
189
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/agent-personal-greeting" \
|
|
190
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
191
|
+
-H "Content-Type: application/json" \
|
|
192
|
+
-d '{"name":"Welcome Greeting","type":"WELCOME","agentId":"..."}'
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 3. Agent Wellbeing (`cc-agent-wellbeing`)
|
|
198
|
+
|
|
199
|
+
> **Deprecation status unconfirmed.** Listed as deprecated April 2026 in internal tracking but this is not reflected in public documentation as of May 2026 — the feature appears active in the February 2025 Webex developer newsletter. Verify against the current API changelog before use. A consolidated `AI Feature` API (`wxcli cc-ai-feature`) exists as a potential successor.
|
|
200
|
+
|
|
201
|
+
Monitor and manage agent burnout detection. Mixes config paths (`/organization/{orgid}/agent-burnout/`) with runtime paths (`/v1/agentburnout/`).
|
|
202
|
+
|
|
203
|
+
### Endpoints
|
|
204
|
+
|
|
205
|
+
| Method | Path | CLI Command | Description |
|
|
206
|
+
|--------|------|-------------|-------------|
|
|
207
|
+
| GET | `/organization/{orgid}/agent-burnout/{id}` | `show` | Get Agent Burnout by ID |
|
|
208
|
+
| PUT | `/organization/{orgid}/agent-burnout/{id}` | `update` | Update Agent Burnout by ID |
|
|
209
|
+
| GET | `/organization/{orgid}/v2/agent-burnout` | `list` | List Agent Burnout (v2) |
|
|
210
|
+
| POST | `/v1/agentburnout/action` | `create-action` | Record realtime burnout events |
|
|
211
|
+
| POST | `/v1/agentburnout/subscribe` | `create` | Subscribe for realtime burnout events |
|
|
212
|
+
|
|
213
|
+
### CLI Examples
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# List agent burnout resources (v2)
|
|
217
|
+
wxcli cc-agent-wellbeing list
|
|
218
|
+
|
|
219
|
+
# Get burnout config for a specific agent
|
|
220
|
+
wxcli cc-agent-wellbeing show --id "burnout-uuid"
|
|
221
|
+
|
|
222
|
+
# Subscribe for realtime burnout events
|
|
223
|
+
wxcli cc-agent-wellbeing create --json-body '{
|
|
224
|
+
"agentId": "...",
|
|
225
|
+
"subscriptionType": "BURNOUT"
|
|
226
|
+
}'
|
|
227
|
+
|
|
228
|
+
# Record a burnout event action
|
|
229
|
+
wxcli cc-agent-wellbeing create-action --json-body '{
|
|
230
|
+
"agentId": "...",
|
|
231
|
+
"action": "BREAK_TAKEN"
|
|
232
|
+
}'
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Raw HTTP
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# List burnout resources (v2)
|
|
239
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/agent-burnout" \
|
|
240
|
+
-H "Authorization: Bearer $TOKEN"
|
|
241
|
+
|
|
242
|
+
# Subscribe for burnout events
|
|
243
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/v1/agentburnout/subscribe" \
|
|
244
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
245
|
+
-H "Content-Type: application/json" \
|
|
246
|
+
-d '{"agentId":"...","subscriptionType":"BURNOUT"}'
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 4. Users (`cc-users`)
|
|
252
|
+
|
|
253
|
+
Contact Center user management. CC users are Webex users with CC-specific configuration (team assignment, skill profiles, multimedia profiles, etc.).
|
|
254
|
+
|
|
255
|
+
### Endpoints
|
|
256
|
+
|
|
257
|
+
| Method | Path | CLI Command | Description |
|
|
258
|
+
|--------|------|-------------|-------------|
|
|
259
|
+
| GET | `/organization/{orgid}/user` | `list-user-organization` | List User(s) (v1) |
|
|
260
|
+
| PATCH | `/organization/{orgid}/user/bulk` | `update` | Bulk partial update Users |
|
|
261
|
+
| GET | `/organization/{orgid}/user/bulk-export` | `list-bulk-export` | Bulk export User(s) |
|
|
262
|
+
| GET | `/organization/{orgid}/user/by-ci-user-id/{id}` | `show-by-ci-user-id-organization` | Get User by CI User ID (v1) |
|
|
263
|
+
| POST | `/organization/{orgid}/user/fetch-by-skill-requirements` | `create` | Get agents matching skill requirements |
|
|
264
|
+
| POST | `/organization/{orgid}/user/fetch-user-details-by-ids` | `create-fetch-user-details-by-ids` | Get Users by provided IDs |
|
|
265
|
+
| GET | `/organization/{orgid}/user/with-user-profile` | `list-with-user-profile` | List Users with profile |
|
|
266
|
+
| GET | `/organization/{orgid}/user/with-user-profile/{id}` | `show` | Get User with profile by ID |
|
|
267
|
+
| GET | `/organization/{orgid}/user/{id}` | `show-user` | Get User by ID |
|
|
268
|
+
| PATCH | `/organization/{orgid}/user/{id}` | `update-user-organization-1` | Partially update User by ID |
|
|
269
|
+
| PUT | `/organization/{orgid}/user/{id}` | `update-user-organization` | Update User by ID |
|
|
270
|
+
| GET | `/organization/{orgid}/user/{id}/incoming-references` | `list` | List references for User |
|
|
271
|
+
| GET | `/organization/{orgid}/v2/user` | `list-user-v2` | List User(s) (v2) |
|
|
272
|
+
| GET | `/organization/{orgid}/v2/user/by-ci-user-id/{id}` | `show-by-ci-user-id-v2` | Get User by CI User ID (v2) |
|
|
273
|
+
| PATCH | `/organization/{orgid}/user/bulk/update-dynamic-skill/{skillId}` | `update-dynamic-skill` | Bulk assign/unassign dynamic skill |
|
|
274
|
+
| GET | `/organization/{orgid}/user/by-dynamic-skill-id/{skillId}` | `show-by-dynamic-skill-id` | List users with a specific dynamic skill |
|
|
275
|
+
| PATCH | `/organization/{orgid}/user/{id}/reskill` | `update-reskill` | Reassign skill profiles/dynamic skills to a user |
|
|
276
|
+
|
|
277
|
+
### Key Parameters
|
|
278
|
+
|
|
279
|
+
- **List (v2):** Supports `page`, `pageSize`, `filter` (FIQL syntax), `attributes` (select fields)
|
|
280
|
+
- **Bulk update:** Accepts array of user objects with partial fields
|
|
281
|
+
- **Fetch by skill:** POST body with `skillRequirements` array
|
|
282
|
+
- **CI User ID:** The Webex Common Identity user ID (different from CC user ID)
|
|
283
|
+
- **Bulk update dynamic skill:** Takes `skillId` as path parameter. PATCH body with `items` array, each containing `itemIdentifier`, `item` (user/skill mapping), and `requestAction` (SAVE or DELETE)
|
|
284
|
+
- **By dynamic skill ID:** Takes `skillId` as path parameter. Supports `search` (filter by firstName, lastName, email, value), `page`, `pageSize`
|
|
285
|
+
- **Reskill:** Takes user `id` as path parameter. PATCH body with `skillProfileId` to assign a new skill profile, and `dynamicSkills` with `add`/`remove` arrays for individual skill changes
|
|
286
|
+
|
|
287
|
+
### CLI Examples
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# List CC users (v2 -- enhanced filtering)
|
|
291
|
+
wxcli cc-users list-user-v2
|
|
292
|
+
|
|
293
|
+
# Get a user with their profile
|
|
294
|
+
wxcli cc-users show --id "user-uuid"
|
|
295
|
+
|
|
296
|
+
# Get a user by their Webex CI User ID
|
|
297
|
+
wxcli cc-users show-by-ci-user-id-v2 --id "ci-user-uuid"
|
|
298
|
+
|
|
299
|
+
# Bulk export all users
|
|
300
|
+
wxcli cc-users list-bulk-export
|
|
301
|
+
|
|
302
|
+
# Find agents matching skill requirements
|
|
303
|
+
wxcli cc-users create --json-body '{
|
|
304
|
+
"skillRequirements": [
|
|
305
|
+
{"skillId": "...", "operator": "GE", "value": 5}
|
|
306
|
+
]
|
|
307
|
+
}'
|
|
308
|
+
|
|
309
|
+
# Bulk partial update users
|
|
310
|
+
wxcli cc-users update --json-body '[
|
|
311
|
+
{"id": "user1-uuid", "teamId": "team-uuid"},
|
|
312
|
+
{"id": "user2-uuid", "teamId": "team-uuid"}
|
|
313
|
+
]'
|
|
314
|
+
|
|
315
|
+
# List users with a specific dynamic skill
|
|
316
|
+
wxcli cc-users show-by-dynamic-skill-id "skill-uuid"
|
|
317
|
+
|
|
318
|
+
# Bulk assign a dynamic skill to users
|
|
319
|
+
wxcli cc-users update-dynamic-skill "skill-uuid" --json-body '{
|
|
320
|
+
"items": [
|
|
321
|
+
{"itemIdentifier": 1, "item": {"id": "user1-uuid"}, "requestAction": "SAVE"},
|
|
322
|
+
{"itemIdentifier": 2, "item": {"id": "user2-uuid"}, "requestAction": "SAVE"}
|
|
323
|
+
]
|
|
324
|
+
}'
|
|
325
|
+
|
|
326
|
+
# Reskill an agent (change skill profile + add/remove dynamic skills)
|
|
327
|
+
wxcli cc-users update-reskill "user-uuid" --json-body '{
|
|
328
|
+
"skillProfileId": "new-profile-uuid",
|
|
329
|
+
"dynamicSkills": {
|
|
330
|
+
"add": ["skill-uuid-1"],
|
|
331
|
+
"remove": ["skill-uuid-2"]
|
|
332
|
+
}
|
|
333
|
+
}'
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Raw HTTP
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
# List users (v2)
|
|
340
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/user?page=0&pageSize=50" \
|
|
341
|
+
-H "Authorization: Bearer $TOKEN"
|
|
342
|
+
|
|
343
|
+
# Get user with profile
|
|
344
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/user/with-user-profile/$USER_ID" \
|
|
345
|
+
-H "Authorization: Bearer $TOKEN"
|
|
346
|
+
|
|
347
|
+
# Find agents by skill requirements
|
|
348
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/user/fetch-by-skill-requirements" \
|
|
349
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
350
|
+
-H "Content-Type: application/json" \
|
|
351
|
+
-d '{"skillRequirements":[{"skillId":"...","operator":"GE","value":5}]}'
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## 5. User Profiles (`cc-user-profiles`)
|
|
357
|
+
|
|
358
|
+
User profiles define what a CC agent can do: access to queues, features, and settings. Three API versions available (v1, v2, v3).
|
|
359
|
+
|
|
360
|
+
### Endpoints
|
|
361
|
+
|
|
362
|
+
| Method | Path | CLI Command | Description |
|
|
363
|
+
|--------|------|-------------|-------------|
|
|
364
|
+
| GET | `/organization/{orgid}/user-profile` | `list-user-profile-organization` | List (v1) |
|
|
365
|
+
| POST | `/organization/{orgid}/user-profile/bulk` | `create-bulk-user-profile-1` | Bulk save (v1) |
|
|
366
|
+
| GET | `/organization/{orgid}/user-profile/bulk-export` | `list-bulk-export-user-profile-1` | Bulk export (v1) |
|
|
367
|
+
| POST | `/organization/{orgid}/user-profile/purge-inactive-entities` | `create` | Purge inactive |
|
|
368
|
+
| GET | `/organization/{orgid}/user-profile/{id}` | `show` | Get by ID (v1) |
|
|
369
|
+
| DELETE | `/organization/{orgid}/user-profile/{id}` | `delete` | Delete (v1) |
|
|
370
|
+
| PUT | `/organization/{orgid}/user-profile/{id}` | `update` | Update (v1) |
|
|
371
|
+
| GET | `/organization/{orgid}/user-profile/{id}/incoming-references` | `list` | List references |
|
|
372
|
+
| GET | `/organization/{orgid}/v2/user-profile` | `list-user-profile-v2` | List (v2) |
|
|
373
|
+
| GET | `/organization/{orgid}/v3/user-profile` | `list-user-profile-v3` | List (v3) |
|
|
374
|
+
| POST | `/organization/{orgid}/v3/user-profile` | `create-user-profile` | Create (v3) |
|
|
375
|
+
| POST | `/organization/{orgid}/v3/user-profile/bulk` | `create-bulk-user-profile` | Bulk save (v3) |
|
|
376
|
+
| GET | `/organization/{orgid}/v3/user-profile/bulk-export` | `list-bulk-export-user-profile` | Bulk export (v3) |
|
|
377
|
+
| GET | `/organization/{orgid}/v3/user-profile/{id}` | `show-user-profile` | Get by ID (v3) |
|
|
378
|
+
| DELETE | `/organization/{orgid}/v3/user-profile/{id}` | `delete-user-profile` | Delete (v3) |
|
|
379
|
+
| PUT | `/organization/{orgid}/v3/user-profile/{id}` | `update-user-profile` | Update (v3) |
|
|
380
|
+
| GET | `/organization/{orgid}/v3/user-profile/{id}/acl` | `list-acl` | Get ACL (v3) |
|
|
381
|
+
|
|
382
|
+
### Key Parameters
|
|
383
|
+
|
|
384
|
+
- **Create (v3):** Requires `name`, optional `description`, `accessRights`, `queues`, `wrapUpCodes`
|
|
385
|
+
- **ACL (v3):** Returns access control list for the profile -- which queues and features the profile grants access to
|
|
386
|
+
- **Purge:** Removes all soft-deleted/deactivated user profiles permanently
|
|
387
|
+
|
|
388
|
+
### CLI Examples
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# List user profiles (v3)
|
|
392
|
+
wxcli cc-user-profiles list-user-profile-v3
|
|
393
|
+
|
|
394
|
+
# Get a user profile by ID (v3)
|
|
395
|
+
wxcli cc-user-profiles show-user-profile --id "profile-uuid"
|
|
396
|
+
|
|
397
|
+
# Create a user profile (v3)
|
|
398
|
+
wxcli cc-user-profiles create-user-profile --json-body '{
|
|
399
|
+
"name": "Standard Agent Profile",
|
|
400
|
+
"description": "Default profile for voice agents",
|
|
401
|
+
"accessRights": {"queues": ["queue-uuid-1", "queue-uuid-2"]}
|
|
402
|
+
}'
|
|
403
|
+
|
|
404
|
+
# Get profile ACL (v3)
|
|
405
|
+
wxcli cc-user-profiles list-acl --id "profile-uuid"
|
|
406
|
+
|
|
407
|
+
# Bulk export all profiles (v3)
|
|
408
|
+
wxcli cc-user-profiles list-bulk-export-user-profile
|
|
409
|
+
|
|
410
|
+
# Delete a user profile (v3)
|
|
411
|
+
wxcli cc-user-profiles delete-user-profile --id "profile-uuid"
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### Raw HTTP
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
# List profiles (v3)
|
|
418
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v3/user-profile" \
|
|
419
|
+
-H "Authorization: Bearer $TOKEN"
|
|
420
|
+
|
|
421
|
+
# Create profile (v3)
|
|
422
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v3/user-profile" \
|
|
423
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
424
|
+
-H "Content-Type: application/json" \
|
|
425
|
+
-d '{"name":"Standard Agent Profile","description":"Default profile for voice agents"}'
|
|
426
|
+
|
|
427
|
+
# Get ACL (v3)
|
|
428
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v3/user-profile/$PROFILE_ID/acl" \
|
|
429
|
+
-H "Authorization: Bearer $TOKEN"
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
## 6. Queues (`cc-queue`)
|
|
435
|
+
|
|
436
|
+
Contact Service Queues route incoming contacts to agents based on routing strategy (skill-based, agent-based, or team-based). This is the largest CC config entity with 30 commands.
|
|
437
|
+
|
|
438
|
+
### Endpoints
|
|
439
|
+
|
|
440
|
+
| Method | Path | CLI Command | Description |
|
|
441
|
+
|--------|------|-------------|-------------|
|
|
442
|
+
| GET | `/organization/{orgid}/contact-service-queue` | `list-contact-service-queue-organization` | List (v1) |
|
|
443
|
+
| POST | `/organization/{orgid}/contact-service-queue` | `create-contact-service-queue-organization` | Create (v1) |
|
|
444
|
+
| POST | `/organization/{orgid}/contact-service-queue/bulk` | `create` | Bulk save |
|
|
445
|
+
| PATCH | `/organization/{orgid}/contact-service-queue/bulk` | `update` | Bulk partial update |
|
|
446
|
+
| GET | `/organization/{orgid}/contact-service-queue/bulk-export` | `list` | Bulk export |
|
|
447
|
+
| GET | `/organization/{orgid}/contact-service-queue/by-skill-profile-id/{id}` | `show` | Get by skill profile ID |
|
|
448
|
+
| POST | `/organization/{orgid}/contact-service-queue/delete-reference` | `create-delete-reference` | Delete References |
|
|
449
|
+
| POST | `/organization/{orgid}/contact-service-queue/fetch-manually-assignable-queues` | `create-fetch-manually-assignable-queues` | Fetch assignable queues |
|
|
450
|
+
| POST | `/organization/{orgid}/contact-service-queue/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
451
|
+
| POST | `/organization/{orgid}/contact-service-queue/v2/bulk` | `create-bulk` | Bulk save (v2) |
|
|
452
|
+
| GET | `/organization/{orgid}/contact-service-queue/{id}` | `show-contact-service-queue-organization` | Get by ID |
|
|
453
|
+
| DELETE | `/organization/{orgid}/contact-service-queue/{id}` | `delete` | Delete |
|
|
454
|
+
| PUT | `/organization/{orgid}/contact-service-queue/{id}` | `update-contact-service-queue-organization` | Update |
|
|
455
|
+
| GET | `/organization/{orgid}/contact-service-queue/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
456
|
+
| GET | `/organization/{orgid}/v2/contact-service-queue` | `list-contact-service-queue-v2` | List (v2) |
|
|
457
|
+
| POST | `/organization/{orgid}/v2/contact-service-queue` | `create-contact-service-queue-v2` | Create (v2) |
|
|
458
|
+
| GET | `/organization/{orgid}/v2/contact-service-queue/by-user-id/{userid}/agent-based-queues` | `list-agent-based-queues` | Agent-based queues by user |
|
|
459
|
+
| GET | `/organization/{orgid}/v2/contact-service-queue/by-user-id/{userid}/skill-based-queues` | `list-skill-based-queues` | Skill-based queues by user |
|
|
460
|
+
| GET | `/organization/{orgid}/v2/contact-service-queue/by-user-id/{userid}/team-based-queues` | `list-team-based-queues` | Team-based queues by user |
|
|
461
|
+
| GET | `/organization/{orgid}/v2/contact-service-queue/{id}` | `show-contact-service-queue-v2` | Get by ID (v2) |
|
|
462
|
+
| PUT | `/organization/{orgid}/v2/contact-service-queue/{id}` | `update-contact-service-queue-v2` | Update (v2) |
|
|
463
|
+
| POST | `/organization/{orgid}/v2/contact-service-queue/{id}/reassign-agents` | `create-reassign-agents` | Reassign agents |
|
|
464
|
+
| GET | `/organization/{orgid}/v3/contact-service-queue` | `list-contact-service-queue-v3` | List (v3) |
|
|
465
|
+
| GET | `/organization/{orgid}/contact-service-queue/by-team-id/{id}/internal` | `list-internal-by-team-id` | Team CSQs by team ID (internal) |
|
|
466
|
+
| GET | `/organization/{orgid}/contact-service-queue/by-user-ci-id/{ciUserId}/internal` | `list-internal-by-user-ci-id` | Agent CSQs by CI user ID (internal) |
|
|
467
|
+
| POST | `/organization/{orgid}/contact-service-queue/fetch-by-dynamic-skills-and-skillProfile` | `create-fetch-by-dynamic-skills-and-skill-profile` | Skill-based CSQs by dynamic skills + profile |
|
|
468
|
+
| POST | `/organization/{orgid}/contact-service-queue/fetch-by-userId-skillProfileId` | `create-fetch-by-user-id-skill-profile-id` | Skill-based CSQs by user ID + skill profile ID |
|
|
469
|
+
| GET | `/organization/{orgid}/contact-service-queue/skill-based-queues/by-ci-user-id/{id}/internal` | `list-internal-by-ci-user-id` | Skill-based CSQs by CI user ID (internal) |
|
|
470
|
+
| POST | `/organization/{orgid}/v2/contact-service-queue/fetch-by-grouped-assistant-skill` | `create-fetch-by-grouped-assistant-skill` | Queue mapping summary by assistant skill (v2) |
|
|
471
|
+
|
|
472
|
+
### Key Parameters
|
|
473
|
+
|
|
474
|
+
- **Create:** Requires `name`, `channelType` (telephony, chat, email, social), `routingType` (SKILL_BASED, AGENT_BASED, TEAM_BASED)
|
|
475
|
+
- **Reassign agents:** POST with `agentIds` array and `action` (ADD or REMOVE) for agent-based queues
|
|
476
|
+
- **By user ID queries:** Return queues where a specific user is eligible to receive contacts
|
|
477
|
+
- **By skill profile ID:** Returns queues that use a specific skill profile for routing
|
|
478
|
+
- **By team ID (internal):** Returns team-based CSQs assigned to a specific team. Takes team ID as path parameter.
|
|
479
|
+
- **By CI user ID (internal):** Returns agent-based or skill-based CSQs for a Webex Common Identity user. Takes CI user ID as path parameter.
|
|
480
|
+
- **Fetch by dynamic skills + profile:** POST body with `skillProfileId`, `userId`, and `dynamicSkills` array (each with `skillId`, `textValue`, `booleanValue`, `proficiencyValue`, or `enumSkillValues`)
|
|
481
|
+
- **Fetch by grouped assistant skill:** POST body with `assistantSkillIds` array. Returns queue mapping summary (mapped queue count, last assigned time) grouped by assistant skill. Supports `page`/`pageSize` query params.
|
|
482
|
+
|
|
483
|
+
### CLI Examples
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
# List all queues (v3)
|
|
487
|
+
wxcli cc-queue list-contact-service-queue-v3
|
|
488
|
+
|
|
489
|
+
# List queues (v2)
|
|
490
|
+
wxcli cc-queue list-contact-service-queue-v2
|
|
491
|
+
|
|
492
|
+
# Create a queue (v2)
|
|
493
|
+
wxcli cc-queue create-contact-service-queue-v2 --json-body '{
|
|
494
|
+
"name": "Sales Queue",
|
|
495
|
+
"channelType": "telephony",
|
|
496
|
+
"routingType": "SKILL_BASED",
|
|
497
|
+
"skillProfileId": "...",
|
|
498
|
+
"distributionType": "LONGEST_AVAILABLE"
|
|
499
|
+
}'
|
|
500
|
+
|
|
501
|
+
# Get a specific queue (v2)
|
|
502
|
+
wxcli cc-queue show-contact-service-queue-v2 --id "queue-uuid"
|
|
503
|
+
|
|
504
|
+
# Get queues where an agent is eligible (agent-based)
|
|
505
|
+
wxcli cc-queue list-agent-based-queues --userid "user-uuid"
|
|
506
|
+
|
|
507
|
+
# Reassign agents to a queue
|
|
508
|
+
wxcli cc-queue create-reassign-agents --id "queue-uuid" --json-body '{
|
|
509
|
+
"agentIds": ["agent1-uuid", "agent2-uuid"],
|
|
510
|
+
"action": "ADD"
|
|
511
|
+
}'
|
|
512
|
+
|
|
513
|
+
# Bulk export all queues
|
|
514
|
+
wxcli cc-queue list
|
|
515
|
+
|
|
516
|
+
# Delete a queue
|
|
517
|
+
wxcli cc-queue delete --id "queue-uuid"
|
|
518
|
+
|
|
519
|
+
# List team-based queues for a team (internal)
|
|
520
|
+
wxcli cc-queue list-internal-by-team-id "team-uuid"
|
|
521
|
+
|
|
522
|
+
# List agent-based queues for a CI user (internal)
|
|
523
|
+
wxcli cc-queue list-internal-by-user-ci-id "ci-user-uuid"
|
|
524
|
+
|
|
525
|
+
# List skill-based queues for a CI user (internal)
|
|
526
|
+
wxcli cc-queue list-internal-by-ci-user-id "ci-user-uuid"
|
|
527
|
+
|
|
528
|
+
# Find skill-based queues matching dynamic skills + profile
|
|
529
|
+
wxcli cc-queue create-fetch-by-dynamic-skills-and-skill-profile --json-body '{
|
|
530
|
+
"skillProfileId": "profile-uuid",
|
|
531
|
+
"dynamicSkills": [
|
|
532
|
+
{"skillId": "skill-uuid", "proficiencyValue": 5}
|
|
533
|
+
]
|
|
534
|
+
}'
|
|
535
|
+
|
|
536
|
+
# Find skill-based queues by user + skill profile
|
|
537
|
+
wxcli cc-queue create-fetch-by-user-id-skill-profile-id \
|
|
538
|
+
--user-id "user-uuid" --skill-profile-id "profile-uuid"
|
|
539
|
+
|
|
540
|
+
# Get queue mapping summary grouped by assistant skill
|
|
541
|
+
wxcli cc-queue create-fetch-by-grouped-assistant-skill --json-body '{
|
|
542
|
+
"assistantSkillIds": ["skill-uuid-1", "skill-uuid-2"]
|
|
543
|
+
}'
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
### Raw HTTP
|
|
547
|
+
|
|
548
|
+
```bash
|
|
549
|
+
# List queues (v3)
|
|
550
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v3/contact-service-queue" \
|
|
551
|
+
-H "Authorization: Bearer $TOKEN"
|
|
552
|
+
|
|
553
|
+
# Create queue (v2)
|
|
554
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/contact-service-queue" \
|
|
555
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
556
|
+
-H "Content-Type: application/json" \
|
|
557
|
+
-d '{"name":"Sales Queue","channelType":"telephony","routingType":"SKILL_BASED"}'
|
|
558
|
+
|
|
559
|
+
# Reassign agents
|
|
560
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/contact-service-queue/$QUEUE_ID/reassign-agents" \
|
|
561
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
562
|
+
-H "Content-Type: application/json" \
|
|
563
|
+
-d '{"agentIds":["agent1-uuid","agent2-uuid"],"action":"ADD"}'
|
|
564
|
+
|
|
565
|
+
# List team-based queues by team ID (internal)
|
|
566
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/contact-service-queue/by-team-id/$TEAM_ID/internal" \
|
|
567
|
+
-H "Authorization: Bearer $TOKEN"
|
|
568
|
+
|
|
569
|
+
# Fetch skill-based queues by dynamic skills + profile
|
|
570
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/contact-service-queue/fetch-by-dynamic-skills-and-skillProfile" \
|
|
571
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
572
|
+
-H "Content-Type: application/json" \
|
|
573
|
+
-d '{"skillProfileId":"...","dynamicSkills":[{"skillId":"...","proficiencyValue":5}]}'
|
|
574
|
+
|
|
575
|
+
# Reskill an agent
|
|
576
|
+
curl -X PATCH "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/user/$USER_ID/reskill" \
|
|
577
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
578
|
+
-H "Content-Type: application/json" \
|
|
579
|
+
-d '{"skillProfileId":"new-profile-uuid","dynamicSkills":{"add":["skill-uuid-1"],"remove":["skill-uuid-2"]}}'
|
|
580
|
+
|
|
581
|
+
# List users by dynamic skill ID
|
|
582
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/user/by-dynamic-skill-id/$SKILL_ID?page=0&pageSize=50" \
|
|
583
|
+
-H "Authorization: Bearer $TOKEN"
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## 7. Queue Statistics (`cc-queue-stats`)
|
|
589
|
+
|
|
590
|
+
Runtime queue statistics. Uses the runtime path family (`/v1/queues/`), separate from the queue config group.
|
|
591
|
+
|
|
592
|
+
### Endpoints
|
|
593
|
+
|
|
594
|
+
| Method | Path | CLI Command | Description |
|
|
595
|
+
|--------|------|-------------|-------------|
|
|
596
|
+
| GET | `/v1/queues/statistics` | `list` | Get Queue Statistics |
|
|
597
|
+
|
|
598
|
+
### Key Parameters
|
|
599
|
+
|
|
600
|
+
- **queueId:** Filter by specific queue
|
|
601
|
+
- **from / to:** Date range for statistics
|
|
602
|
+
- **channelType:** Filter by channel (telephony, chat, email, social)
|
|
603
|
+
|
|
604
|
+
### CLI Examples
|
|
605
|
+
|
|
606
|
+
```bash
|
|
607
|
+
# Get queue statistics
|
|
608
|
+
wxcli cc-queue-stats list --from "2026-03-01T00:00:00Z" --to "2026-03-28T00:00:00Z"
|
|
609
|
+
|
|
610
|
+
# Get statistics for a specific queue
|
|
611
|
+
wxcli cc-queue-stats list --queue-id "queue-uuid"
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
### Raw HTTP
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
curl "https://api.wxcc-us1.cisco.com/v1/queues/statistics?from=2026-03-01T00:00:00Z&to=2026-03-28T00:00:00Z" \
|
|
618
|
+
-H "Authorization: Bearer $TOKEN"
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
## 8. Entry Points (`cc-entry-point`)
|
|
624
|
+
|
|
625
|
+
Entry points are the initial landing points for customer contacts. Each entry point is associated with a channel type and routes to a flow or queue.
|
|
626
|
+
|
|
627
|
+
### Endpoints
|
|
628
|
+
|
|
629
|
+
| Method | Path | CLI Command | Description |
|
|
630
|
+
|--------|------|-------------|-------------|
|
|
631
|
+
| GET | `/organization/{orgid}/entry-point` | `list-entry-point-organization` | List |
|
|
632
|
+
| POST | `/organization/{orgid}/entry-point` | `create-entry-point` | Create |
|
|
633
|
+
| POST | `/organization/{orgid}/entry-point/bulk` | `create` | Bulk save |
|
|
634
|
+
| GET | `/organization/{orgid}/entry-point/bulk-export` | `list` | Bulk export |
|
|
635
|
+
| POST | `/organization/{orgid}/entry-point/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
636
|
+
| GET | `/organization/{orgid}/entry-point/{id}` | `show` | Get by ID |
|
|
637
|
+
| DELETE | `/organization/{orgid}/entry-point/{id}` | `delete` | Delete |
|
|
638
|
+
| PUT | `/organization/{orgid}/entry-point/{id}` | `update` | Update |
|
|
639
|
+
| GET | `/organization/{orgid}/entry-point/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
640
|
+
| GET | `/organization/{orgid}/v2/entry-point` | `list-entry-point-v2` | List (v2) |
|
|
641
|
+
|
|
642
|
+
### Key Parameters
|
|
643
|
+
|
|
644
|
+
- **Create:** Requires `name`, `channelType` (telephony, chat, email, social), `serviceLevel` threshold
|
|
645
|
+
- **v2 list:** Enhanced filtering and pagination support
|
|
646
|
+
|
|
647
|
+
### CLI Examples
|
|
648
|
+
|
|
649
|
+
```bash
|
|
650
|
+
# List all entry points (v2)
|
|
651
|
+
wxcli cc-entry-point list-entry-point-v2
|
|
652
|
+
|
|
653
|
+
# Create a telephony entry point
|
|
654
|
+
wxcli cc-entry-point create-entry-point --json-body '{
|
|
655
|
+
"name": "Main IVR",
|
|
656
|
+
"channelType": "telephony",
|
|
657
|
+
"serviceLevel": 60
|
|
658
|
+
}'
|
|
659
|
+
|
|
660
|
+
# Get a specific entry point
|
|
661
|
+
wxcli cc-entry-point show --id "ep-uuid"
|
|
662
|
+
|
|
663
|
+
# Bulk export all entry points
|
|
664
|
+
wxcli cc-entry-point list
|
|
665
|
+
|
|
666
|
+
# Delete an entry point
|
|
667
|
+
wxcli cc-entry-point delete --id "ep-uuid"
|
|
668
|
+
|
|
669
|
+
# List references (what uses this entry point)
|
|
670
|
+
wxcli cc-entry-point list-incoming-references --id "ep-uuid"
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
### Raw HTTP
|
|
674
|
+
|
|
675
|
+
```bash
|
|
676
|
+
# List entry points (v2)
|
|
677
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/entry-point" \
|
|
678
|
+
-H "Authorization: Bearer $TOKEN"
|
|
679
|
+
|
|
680
|
+
# Create entry point
|
|
681
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/entry-point" \
|
|
682
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
683
|
+
-H "Content-Type: application/json" \
|
|
684
|
+
-d '{"name":"Main IVR","channelType":"telephony","serviceLevel":60}'
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
---
|
|
688
|
+
|
|
689
|
+
## 9. Teams (`cc-team`)
|
|
690
|
+
|
|
691
|
+
Teams group agents for routing and reporting. A team is assigned to a site, and agents are assigned to teams.
|
|
692
|
+
|
|
693
|
+
### Endpoints
|
|
694
|
+
|
|
695
|
+
| Method | Path | CLI Command | Description |
|
|
696
|
+
|--------|------|-------------|-------------|
|
|
697
|
+
| GET | `/organization/{orgid}/team` | `list` | List Team(s) |
|
|
698
|
+
| POST | `/organization/{orgid}/team` | `create` | Create |
|
|
699
|
+
| POST | `/organization/{orgid}/team/bulk` | `create-bulk` | Bulk save |
|
|
700
|
+
| GET | `/organization/{orgid}/team/bulk-export` | `list-bulk-export` | Bulk export |
|
|
701
|
+
| POST | `/organization/{orgid}/team/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
702
|
+
| GET | `/organization/{orgid}/team/{id}` | `show` | Get by ID |
|
|
703
|
+
| DELETE | `/organization/{orgid}/team/{id}` | `delete` | Delete |
|
|
704
|
+
| PUT | `/organization/{orgid}/team/{id}` | `update` | Update |
|
|
705
|
+
| GET | `/organization/{orgid}/team/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
706
|
+
| GET | `/organization/{orgid}/v2/team` | `list-team` | List (v2) |
|
|
707
|
+
|
|
708
|
+
### Key Parameters
|
|
709
|
+
|
|
710
|
+
- **Create:** Requires `name`, `siteId` (team must belong to a site)
|
|
711
|
+
- **Update:** Can reassign team to different site, rename, change capacity
|
|
712
|
+
- **References:** Shows which queues, routing strategies, and profiles reference this team
|
|
713
|
+
|
|
714
|
+
### CLI Examples
|
|
715
|
+
|
|
716
|
+
```bash
|
|
717
|
+
# List all teams (v2)
|
|
718
|
+
wxcli cc-team list-team
|
|
719
|
+
|
|
720
|
+
# Create a team
|
|
721
|
+
wxcli cc-team create --json-body '{
|
|
722
|
+
"name": "Sales Team",
|
|
723
|
+
"siteId": "site-uuid"
|
|
724
|
+
}'
|
|
725
|
+
|
|
726
|
+
# Get a specific team
|
|
727
|
+
wxcli cc-team show --id "team-uuid"
|
|
728
|
+
|
|
729
|
+
# Bulk save multiple teams
|
|
730
|
+
wxcli cc-team create-bulk --json-body '[
|
|
731
|
+
{"name": "Support Team A", "siteId": "site-uuid"},
|
|
732
|
+
{"name": "Support Team B", "siteId": "site-uuid"}
|
|
733
|
+
]'
|
|
734
|
+
|
|
735
|
+
# Delete a team
|
|
736
|
+
wxcli cc-team delete --id "team-uuid"
|
|
737
|
+
|
|
738
|
+
# See what references this team
|
|
739
|
+
wxcli cc-team list-incoming-references --id "team-uuid"
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
### Raw HTTP
|
|
743
|
+
|
|
744
|
+
```bash
|
|
745
|
+
# List teams (v2)
|
|
746
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/team" \
|
|
747
|
+
-H "Authorization: Bearer $TOKEN"
|
|
748
|
+
|
|
749
|
+
# Create team
|
|
750
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/team" \
|
|
751
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
752
|
+
-H "Content-Type: application/json" \
|
|
753
|
+
-d '{"name":"Sales Team","siteId":"site-uuid"}'
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
---
|
|
757
|
+
|
|
758
|
+
## 10. Skills (`cc-skill`)
|
|
759
|
+
|
|
760
|
+
Skills are attributes assigned to agents for skill-based routing. Each skill has a type (text, proficiency, boolean, enum) and agents receive skill values through their skill profile.
|
|
761
|
+
|
|
762
|
+
### Endpoints
|
|
763
|
+
|
|
764
|
+
| Method | Path | CLI Command | Description |
|
|
765
|
+
|--------|------|-------------|-------------|
|
|
766
|
+
| GET | `/organization/{orgid}/skill` | `list` | List Skill(s) |
|
|
767
|
+
| POST | `/organization/{orgid}/skill` | `create` | Create |
|
|
768
|
+
| POST | `/organization/{orgid}/skill/bulk` | `create-bulk` | Bulk save |
|
|
769
|
+
| GET | `/organization/{orgid}/skill/bulk-export` | `list-bulk-export` | Bulk export |
|
|
770
|
+
| POST | `/organization/{orgid}/skill/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
771
|
+
| GET | `/organization/{orgid}/skill/{id}` | `show` | Get by ID |
|
|
772
|
+
| DELETE | `/organization/{orgid}/skill/{id}` | `delete` | Delete |
|
|
773
|
+
| PUT | `/organization/{orgid}/skill/{id}` | `update` | Update |
|
|
774
|
+
| GET | `/organization/{orgid}/skill/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
775
|
+
| GET | `/organization/{orgid}/v2/skill` | `list-skill` | List (v2) |
|
|
776
|
+
| POST | `/organization/{orgid}/skill/populate-json-attr/{id}` | `create-populate-json-attr` | Populate JSON attributes for a skill |
|
|
777
|
+
|
|
778
|
+
### Key Parameters
|
|
779
|
+
|
|
780
|
+
- **Create:** Requires `name`, `serviceLevel`, `skillType` (TEXT, PROFICIENCY, BOOLEAN, ENUM)
|
|
781
|
+
- **Populate JSON attributes:** Takes skill ID as path parameter. Populates the `jsonAttr` field for the specified skill. Useful for initializing skill metadata after creation.
|
|
782
|
+
- **PROFICIENCY type:** Values 0-10, used for competency-based routing
|
|
783
|
+
- **BOOLEAN type:** True/false, used for capability flags (e.g., "speaks_spanish")
|
|
784
|
+
- **ENUM type:** Requires `enumValues` array defining the allowed values
|
|
785
|
+
- **TEXT type:** Free-form text value
|
|
786
|
+
|
|
787
|
+
### CLI Examples
|
|
788
|
+
|
|
789
|
+
```bash
|
|
790
|
+
# List all skills (v2)
|
|
791
|
+
wxcli cc-skill list-skill
|
|
792
|
+
|
|
793
|
+
# Create a proficiency skill
|
|
794
|
+
wxcli cc-skill create --json-body '{
|
|
795
|
+
"name": "Product Knowledge",
|
|
796
|
+
"skillType": "PROFICIENCY",
|
|
797
|
+
"serviceLevel": 60
|
|
798
|
+
}'
|
|
799
|
+
|
|
800
|
+
# Create a boolean skill
|
|
801
|
+
wxcli cc-skill create --json-body '{
|
|
802
|
+
"name": "Spanish Speaker",
|
|
803
|
+
"skillType": "BOOLEAN",
|
|
804
|
+
"serviceLevel": 60
|
|
805
|
+
}'
|
|
806
|
+
|
|
807
|
+
# Create an enum skill
|
|
808
|
+
wxcli cc-skill create --json-body '{
|
|
809
|
+
"name": "Region",
|
|
810
|
+
"skillType": "ENUM",
|
|
811
|
+
"serviceLevel": 60,
|
|
812
|
+
"enumValues": ["EAST", "WEST", "CENTRAL"]
|
|
813
|
+
}'
|
|
814
|
+
|
|
815
|
+
# Get a specific skill
|
|
816
|
+
wxcli cc-skill show --id "skill-uuid"
|
|
817
|
+
|
|
818
|
+
# Delete a skill
|
|
819
|
+
wxcli cc-skill delete --id "skill-uuid"
|
|
820
|
+
|
|
821
|
+
# Populate JSON attributes for a skill
|
|
822
|
+
wxcli cc-skill create-populate-json-attr "skill-uuid"
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
### Raw HTTP
|
|
826
|
+
|
|
827
|
+
```bash
|
|
828
|
+
# List skills (v2)
|
|
829
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/skill" \
|
|
830
|
+
-H "Authorization: Bearer $TOKEN"
|
|
831
|
+
|
|
832
|
+
# Create skill
|
|
833
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/skill" \
|
|
834
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
835
|
+
-H "Content-Type: application/json" \
|
|
836
|
+
-d '{"name":"Product Knowledge","skillType":"PROFICIENCY","serviceLevel":60}'
|
|
837
|
+
```
|
|
838
|
+
|
|
839
|
+
---
|
|
840
|
+
|
|
841
|
+
## 11. Skill Profiles (`cc-skill-profile`)
|
|
842
|
+
|
|
843
|
+
Skill profiles bundle skill-value pairs and are assigned to agents. When a queue uses skill-based routing, it matches agent skill profiles against the required skill criteria.
|
|
844
|
+
|
|
845
|
+
### Endpoints
|
|
846
|
+
|
|
847
|
+
| Method | Path | CLI Command | Description |
|
|
848
|
+
|--------|------|-------------|-------------|
|
|
849
|
+
| GET | `/organization/{orgid}/skill-profile` | `list-skill-profile-organization` | List |
|
|
850
|
+
| POST | `/organization/{orgid}/skill-profile` | `create-skill-profile` | Create |
|
|
851
|
+
| POST | `/organization/{orgid}/skill-profile/bulk` | `create` | Bulk save |
|
|
852
|
+
| GET | `/organization/{orgid}/skill-profile/bulk-export` | `list` | Bulk export |
|
|
853
|
+
| GET | `/organization/{orgid}/skill-profile/{id}` | `show` | Get by ID |
|
|
854
|
+
| DELETE | `/organization/{orgid}/skill-profile/{id}` | `delete` | Delete |
|
|
855
|
+
| PUT | `/organization/{orgid}/skill-profile/{id}` | `update` | Update |
|
|
856
|
+
| GET | `/organization/{orgid}/skill-profile/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
857
|
+
| GET | `/organization/{orgid}/v2/skill-profile` | `list-skill-profile-v2` | List (v2) |
|
|
858
|
+
|
|
859
|
+
### Key Parameters
|
|
860
|
+
|
|
861
|
+
- **Create:** Requires `name`, `skills` array with `{skillId, skillValue}` entries
|
|
862
|
+
- **Skill values:** Must match the skill's type (0-10 for proficiency, true/false for boolean, enum value for enum, text for text)
|
|
863
|
+
|
|
864
|
+
### CLI Examples
|
|
865
|
+
|
|
866
|
+
```bash
|
|
867
|
+
# List all skill profiles (v2)
|
|
868
|
+
wxcli cc-skill-profile list-skill-profile-v2
|
|
869
|
+
|
|
870
|
+
# Create a skill profile
|
|
871
|
+
wxcli cc-skill-profile create-skill-profile --json-body '{
|
|
872
|
+
"name": "Senior Sales Agent",
|
|
873
|
+
"skills": [
|
|
874
|
+
{"skillId": "product-knowledge-uuid", "skillValue": 8},
|
|
875
|
+
{"skillId": "spanish-speaker-uuid", "skillValue": true},
|
|
876
|
+
{"skillId": "region-uuid", "skillValue": "EAST"}
|
|
877
|
+
]
|
|
878
|
+
}'
|
|
879
|
+
|
|
880
|
+
# Get a specific skill profile
|
|
881
|
+
wxcli cc-skill-profile show --id "profile-uuid"
|
|
882
|
+
|
|
883
|
+
# Bulk export all skill profiles
|
|
884
|
+
wxcli cc-skill-profile list
|
|
885
|
+
|
|
886
|
+
# Delete a skill profile
|
|
887
|
+
wxcli cc-skill-profile delete --id "profile-uuid"
|
|
888
|
+
```
|
|
889
|
+
|
|
890
|
+
### Raw HTTP
|
|
891
|
+
|
|
892
|
+
```bash
|
|
893
|
+
# List skill profiles (v2)
|
|
894
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/skill-profile" \
|
|
895
|
+
-H "Authorization: Bearer $TOKEN"
|
|
896
|
+
|
|
897
|
+
# Create skill profile
|
|
898
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/skill-profile" \
|
|
899
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
900
|
+
-H "Content-Type: application/json" \
|
|
901
|
+
-d '{"name":"Senior Sales Agent","skills":[{"skillId":"...","skillValue":8}]}'
|
|
902
|
+
```
|
|
903
|
+
|
|
904
|
+
---
|
|
905
|
+
|
|
906
|
+
## 12. Multimedia Profiles (`cc-multimedia-profile`)
|
|
907
|
+
|
|
908
|
+
Multimedia profiles define channel capacity for agents: how many concurrent contacts of each type (voice, chat, email, social) an agent can handle simultaneously.
|
|
909
|
+
|
|
910
|
+
### Endpoints
|
|
911
|
+
|
|
912
|
+
| Method | Path | CLI Command | Description |
|
|
913
|
+
|--------|------|-------------|-------------|
|
|
914
|
+
| GET | `/organization/{orgid}/multimedia-profile` | `list-multimedia-profile-organization` | List |
|
|
915
|
+
| POST | `/organization/{orgid}/multimedia-profile` | `create-multimedia-profile` | Create |
|
|
916
|
+
| POST | `/organization/{orgid}/multimedia-profile/bulk` | `create` | Bulk save |
|
|
917
|
+
| GET | `/organization/{orgid}/multimedia-profile/bulk-export` | `list` | Bulk export |
|
|
918
|
+
| POST | `/organization/{orgid}/multimedia-profile/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
919
|
+
| GET | `/organization/{orgid}/multimedia-profile/{id}` | `show` | Get by ID |
|
|
920
|
+
| DELETE | `/organization/{orgid}/multimedia-profile/{id}` | `delete` | Delete |
|
|
921
|
+
| PUT | `/organization/{orgid}/multimedia-profile/{id}` | `update` | Update |
|
|
922
|
+
| GET | `/organization/{orgid}/multimedia-profile/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
923
|
+
| GET | `/organization/{orgid}/v2/multimedia-profile` | `list-multimedia-profile-v2` | List (v2) |
|
|
924
|
+
|
|
925
|
+
### Key Parameters
|
|
926
|
+
|
|
927
|
+
- **Create:** Requires `name`, channel capacities (`telephony`, `chat`, `email`, `social` counts)
|
|
928
|
+
- **Blended mode:** When set, agent can handle contacts across multiple channels simultaneously
|
|
929
|
+
|
|
930
|
+
### CLI Examples
|
|
931
|
+
|
|
932
|
+
```bash
|
|
933
|
+
# List multimedia profiles (v2)
|
|
934
|
+
wxcli cc-multimedia-profile list-multimedia-profile-v2
|
|
935
|
+
|
|
936
|
+
# Create a multimedia profile
|
|
937
|
+
wxcli cc-multimedia-profile create-multimedia-profile --json-body '{
|
|
938
|
+
"name": "Voice Only",
|
|
939
|
+
"telephony": 1,
|
|
940
|
+
"chat": 0,
|
|
941
|
+
"email": 0,
|
|
942
|
+
"social": 0
|
|
943
|
+
}'
|
|
944
|
+
|
|
945
|
+
# Create a blended profile (voice + chat)
|
|
946
|
+
wxcli cc-multimedia-profile create-multimedia-profile --json-body '{
|
|
947
|
+
"name": "Blended Agent",
|
|
948
|
+
"telephony": 1,
|
|
949
|
+
"chat": 3,
|
|
950
|
+
"email": 5,
|
|
951
|
+
"social": 2
|
|
952
|
+
}'
|
|
953
|
+
|
|
954
|
+
# Get a specific profile
|
|
955
|
+
wxcli cc-multimedia-profile show --id "mm-profile-uuid"
|
|
956
|
+
|
|
957
|
+
# Delete a profile
|
|
958
|
+
wxcli cc-multimedia-profile delete --id "mm-profile-uuid"
|
|
959
|
+
```
|
|
960
|
+
|
|
961
|
+
### Raw HTTP
|
|
962
|
+
|
|
963
|
+
```bash
|
|
964
|
+
# List multimedia profiles (v2)
|
|
965
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/multimedia-profile" \
|
|
966
|
+
-H "Authorization: Bearer $TOKEN"
|
|
967
|
+
|
|
968
|
+
# Create multimedia profile
|
|
969
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/multimedia-profile" \
|
|
970
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
971
|
+
-H "Content-Type: application/json" \
|
|
972
|
+
-d '{"name":"Voice Only","telephony":1,"chat":0,"email":0,"social":0}'
|
|
973
|
+
```
|
|
974
|
+
|
|
975
|
+
---
|
|
976
|
+
|
|
977
|
+
## 13. Desktop Layouts (`cc-desktop-layout`)
|
|
978
|
+
|
|
979
|
+
Desktop layouts define the Agent Desktop UI: widget placement, header, navigation, and custom components. Layouts are JSON objects that the desktop application renders.
|
|
980
|
+
|
|
981
|
+
### Endpoints
|
|
982
|
+
|
|
983
|
+
| Method | Path | CLI Command | Description |
|
|
984
|
+
|--------|------|-------------|-------------|
|
|
985
|
+
| POST | `/organization/{orgid}/desktop-layout` | `create-desktop-layout` | Create |
|
|
986
|
+
| POST | `/organization/{orgid}/desktop-layout/bulk` | `create` | Bulk save |
|
|
987
|
+
| GET | `/organization/{orgid}/desktop-layout/bulk-export` | `list-bulk-export` | Bulk export |
|
|
988
|
+
| POST | `/organization/{orgid}/desktop-layout/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
989
|
+
| GET | `/organization/{orgid}/desktop-layout/{id}` | `show` | Get by ID |
|
|
990
|
+
| DELETE | `/organization/{orgid}/desktop-layout/{id}` | `delete` | Delete |
|
|
991
|
+
| PUT | `/organization/{orgid}/desktop-layout/{id}` | `update` | Update |
|
|
992
|
+
| GET | `/organization/{orgid}/desktop-layout/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
993
|
+
| GET | `/organization/{orgid}/v2/desktop-layout` | `list` | List (v2) |
|
|
994
|
+
|
|
995
|
+
### Key Parameters
|
|
996
|
+
|
|
997
|
+
- **Create:** Requires `name`, `desktopLayoutJson` (the layout JSON structure as a string)
|
|
998
|
+
- **Layout JSON:** Defines widget areas, header, navigation panel, and auxiliary info panel
|
|
999
|
+
- **Update:** PUT replaces the entire layout -- GET first, modify, then PUT back
|
|
1000
|
+
|
|
1001
|
+
### CLI Examples
|
|
1002
|
+
|
|
1003
|
+
```bash
|
|
1004
|
+
# List desktop layouts (v2)
|
|
1005
|
+
wxcli cc-desktop-layout list
|
|
1006
|
+
|
|
1007
|
+
# Create a desktop layout
|
|
1008
|
+
wxcli cc-desktop-layout create-desktop-layout --json-body '{
|
|
1009
|
+
"name": "Custom Sales Layout",
|
|
1010
|
+
"desktopLayoutJson": "{\"header\":{},\"navigation\":{},\"panel\":{}}"
|
|
1011
|
+
}'
|
|
1012
|
+
|
|
1013
|
+
# Get a specific layout
|
|
1014
|
+
wxcli cc-desktop-layout show --id "layout-uuid"
|
|
1015
|
+
|
|
1016
|
+
# Bulk export all layouts
|
|
1017
|
+
wxcli cc-desktop-layout list-bulk-export
|
|
1018
|
+
|
|
1019
|
+
# Delete a layout
|
|
1020
|
+
wxcli cc-desktop-layout delete --id "layout-uuid"
|
|
1021
|
+
```
|
|
1022
|
+
|
|
1023
|
+
### Raw HTTP
|
|
1024
|
+
|
|
1025
|
+
```bash
|
|
1026
|
+
# List layouts (v2)
|
|
1027
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/desktop-layout" \
|
|
1028
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1029
|
+
|
|
1030
|
+
# Create layout
|
|
1031
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/desktop-layout" \
|
|
1032
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1033
|
+
-H "Content-Type: application/json" \
|
|
1034
|
+
-d '{"name":"Custom Sales Layout","desktopLayoutJson":"{}"}'
|
|
1035
|
+
```
|
|
1036
|
+
|
|
1037
|
+
---
|
|
1038
|
+
|
|
1039
|
+
## 14. Desktop Profiles (`cc-desktop-profile`)
|
|
1040
|
+
|
|
1041
|
+
Desktop profiles (API path: `agent-profile`) control agent desktop behavior: which layout to use, dial number settings, agent-available options, buddy team access, and feature toggles.
|
|
1042
|
+
|
|
1043
|
+
### Endpoints
|
|
1044
|
+
|
|
1045
|
+
| Method | Path | CLI Command | Description |
|
|
1046
|
+
|--------|------|-------------|-------------|
|
|
1047
|
+
| GET | `/organization/{orgid}/agent-profile` | `list` | List |
|
|
1048
|
+
| POST | `/organization/{orgid}/agent-profile` | `create-agent-profile` | Create |
|
|
1049
|
+
| POST | `/organization/{orgid}/agent-profile/bulk` | `create` | Bulk save |
|
|
1050
|
+
| GET | `/organization/{orgid}/agent-profile/bulk-export` | `list-bulk-export` | Bulk export |
|
|
1051
|
+
| POST | `/organization/{orgid}/agent-profile/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
1052
|
+
| GET | `/organization/{orgid}/agent-profile/{id}` | `show` | Get by ID |
|
|
1053
|
+
| DELETE | `/organization/{orgid}/agent-profile/{id}` | `delete` | Delete |
|
|
1054
|
+
| PUT | `/organization/{orgid}/agent-profile/{id}` | `update` | Update |
|
|
1055
|
+
| GET | `/organization/{orgid}/agent-profile/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
1056
|
+
| GET | `/organization/{orgid}/v2/agent-profile` | `list-agent-profile` | List (v2) |
|
|
1057
|
+
|
|
1058
|
+
### Key Parameters
|
|
1059
|
+
|
|
1060
|
+
- **Create:** Requires `name`, `desktopLayoutId`, optional `dialNumberSettings`, `agentAvailableOptions`
|
|
1061
|
+
- **Desktop layout link:** The profile references a desktop layout by ID
|
|
1062
|
+
- **Buddy teams:** Configure which teams an agent can see and consult/transfer to
|
|
1063
|
+
|
|
1064
|
+
### CLI Examples
|
|
1065
|
+
|
|
1066
|
+
```bash
|
|
1067
|
+
# List desktop profiles (v2)
|
|
1068
|
+
wxcli cc-desktop-profile list-agent-profile
|
|
1069
|
+
|
|
1070
|
+
# Create a desktop profile
|
|
1071
|
+
wxcli cc-desktop-profile create-agent-profile --json-body '{
|
|
1072
|
+
"name": "Sales Desktop Profile",
|
|
1073
|
+
"desktopLayoutId": "layout-uuid",
|
|
1074
|
+
"dialNumberSettings": {"agentDN": true, "otherDN": false}
|
|
1075
|
+
}'
|
|
1076
|
+
|
|
1077
|
+
# Get a specific profile
|
|
1078
|
+
wxcli cc-desktop-profile show --id "profile-uuid"
|
|
1079
|
+
|
|
1080
|
+
# Bulk export all profiles
|
|
1081
|
+
wxcli cc-desktop-profile list-bulk-export
|
|
1082
|
+
|
|
1083
|
+
# Delete a profile
|
|
1084
|
+
wxcli cc-desktop-profile delete --id "profile-uuid"
|
|
1085
|
+
```
|
|
1086
|
+
|
|
1087
|
+
### Raw HTTP
|
|
1088
|
+
|
|
1089
|
+
```bash
|
|
1090
|
+
# List desktop profiles (v2)
|
|
1091
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/agent-profile" \
|
|
1092
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1093
|
+
|
|
1094
|
+
# Create desktop profile
|
|
1095
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/agent-profile" \
|
|
1096
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1097
|
+
-H "Content-Type: application/json" \
|
|
1098
|
+
-d '{"name":"Sales Desktop Profile","desktopLayoutId":"layout-uuid"}'
|
|
1099
|
+
```
|
|
1100
|
+
|
|
1101
|
+
---
|
|
1102
|
+
|
|
1103
|
+
## 15. Business Hours (`cc-business-hour`)
|
|
1104
|
+
|
|
1105
|
+
Business hours define when the contact center is open. Entry points and routing strategies reference business hours to determine whether to apply business-hours or after-hours treatment.
|
|
1106
|
+
|
|
1107
|
+
### Endpoints
|
|
1108
|
+
|
|
1109
|
+
| Method | Path | CLI Command | Description |
|
|
1110
|
+
|--------|------|-------------|-------------|
|
|
1111
|
+
| GET | `/organization/{orgid}/business-hours` | `list` | List |
|
|
1112
|
+
| POST | `/organization/{orgid}/business-hours` | `create` | Create |
|
|
1113
|
+
| POST | `/organization/{orgid}/business-hours/bulk` | `create-bulk` | Bulk save |
|
|
1114
|
+
| GET | `/organization/{orgid}/business-hours/bulk-export` | `list-bulk-export` | Bulk export |
|
|
1115
|
+
| GET | `/organization/{orgid}/business-hours/{id}` | `show` | Get by ID |
|
|
1116
|
+
| DELETE | `/organization/{orgid}/business-hours/{id}` | `delete` | Delete |
|
|
1117
|
+
| PUT | `/organization/{orgid}/business-hours/{id}` | `update` | Update |
|
|
1118
|
+
| GET | `/organization/{orgid}/business-hours/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
1119
|
+
| GET | `/organization/{orgid}/v2/business-hours` | `list-business-hours` | List (v2) |
|
|
1120
|
+
|
|
1121
|
+
### Key Parameters
|
|
1122
|
+
|
|
1123
|
+
- **Create:** Requires `name`, `timezone`, `businessHours` (array of day/time entries)
|
|
1124
|
+
- **Business hours structure:** Each entry defines a day of week, start time, and end time
|
|
1125
|
+
- **Timezone:** Important for multi-region deployments; hours are evaluated in the configured timezone
|
|
1126
|
+
|
|
1127
|
+
### CLI Examples
|
|
1128
|
+
|
|
1129
|
+
```bash
|
|
1130
|
+
# List business hours (v2)
|
|
1131
|
+
wxcli cc-business-hour list-business-hours
|
|
1132
|
+
|
|
1133
|
+
# Create business hours
|
|
1134
|
+
wxcli cc-business-hour create --json-body '{
|
|
1135
|
+
"name": "US East Business Hours",
|
|
1136
|
+
"timezone": "America/New_York",
|
|
1137
|
+
"businessHours": [
|
|
1138
|
+
{"day": "MONDAY", "startTime": "08:00", "endTime": "17:00"},
|
|
1139
|
+
{"day": "TUESDAY", "startTime": "08:00", "endTime": "17:00"},
|
|
1140
|
+
{"day": "WEDNESDAY", "startTime": "08:00", "endTime": "17:00"},
|
|
1141
|
+
{"day": "THURSDAY", "startTime": "08:00", "endTime": "17:00"},
|
|
1142
|
+
{"day": "FRIDAY", "startTime": "08:00", "endTime": "17:00"}
|
|
1143
|
+
]
|
|
1144
|
+
}'
|
|
1145
|
+
|
|
1146
|
+
# Get specific business hours
|
|
1147
|
+
wxcli cc-business-hour show --id "bh-uuid"
|
|
1148
|
+
|
|
1149
|
+
# Delete business hours
|
|
1150
|
+
wxcli cc-business-hour delete --id "bh-uuid"
|
|
1151
|
+
```
|
|
1152
|
+
|
|
1153
|
+
### Raw HTTP
|
|
1154
|
+
|
|
1155
|
+
```bash
|
|
1156
|
+
# List business hours (v2)
|
|
1157
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/business-hours" \
|
|
1158
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1159
|
+
|
|
1160
|
+
# Create business hours
|
|
1161
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/business-hours" \
|
|
1162
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1163
|
+
-H "Content-Type: application/json" \
|
|
1164
|
+
-d '{"name":"US East Business Hours","timezone":"America/New_York","businessHours":[{"day":"MONDAY","startTime":"08:00","endTime":"17:00"}]}'
|
|
1165
|
+
```
|
|
1166
|
+
|
|
1167
|
+
---
|
|
1168
|
+
|
|
1169
|
+
## 16. Holiday Lists (`cc-holiday-list`)
|
|
1170
|
+
|
|
1171
|
+
Holiday lists define dates when the contact center applies holiday treatment instead of normal business hours routing.
|
|
1172
|
+
|
|
1173
|
+
### Endpoints
|
|
1174
|
+
|
|
1175
|
+
| Method | Path | CLI Command | Description |
|
|
1176
|
+
|--------|------|-------------|-------------|
|
|
1177
|
+
| GET | `/organization/{orgid}/holiday-list` | `list` | List |
|
|
1178
|
+
| POST | `/organization/{orgid}/holiday-list` | `create` | Create |
|
|
1179
|
+
| POST | `/organization/{orgid}/holiday-list/bulk` | `create-bulk` | Bulk save |
|
|
1180
|
+
| GET | `/organization/{orgid}/holiday-list/bulk-export` | `list-bulk-export` | Bulk export |
|
|
1181
|
+
| GET | `/organization/{orgid}/holiday-list/{id}` | `show` | Get by ID |
|
|
1182
|
+
| DELETE | `/organization/{orgid}/holiday-list/{id}` | `delete` | Delete |
|
|
1183
|
+
| PUT | `/organization/{orgid}/holiday-list/{id}` | `update` | Update |
|
|
1184
|
+
| GET | `/organization/{orgid}/holiday-list/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
1185
|
+
| GET | `/organization/{orgid}/v2/holiday-list` | `list-holiday-list` | List (v2) |
|
|
1186
|
+
|
|
1187
|
+
### Key Parameters
|
|
1188
|
+
|
|
1189
|
+
- **Create:** Requires `name`, `holidays` array with `{name, date}` entries
|
|
1190
|
+
- **Date format:** `YYYY-MM-DD`
|
|
1191
|
+
- **Recurring:** Some implementations support `recurring: true` for annual holidays
|
|
1192
|
+
|
|
1193
|
+
### CLI Examples
|
|
1194
|
+
|
|
1195
|
+
```bash
|
|
1196
|
+
# List holiday lists (v2)
|
|
1197
|
+
wxcli cc-holiday-list list-holiday-list
|
|
1198
|
+
|
|
1199
|
+
# Create a holiday list
|
|
1200
|
+
wxcli cc-holiday-list create --json-body '{
|
|
1201
|
+
"name": "US Federal Holidays 2026",
|
|
1202
|
+
"holidays": [
|
|
1203
|
+
{"name": "New Year", "date": "2026-01-01"},
|
|
1204
|
+
{"name": "MLK Day", "date": "2026-01-19"},
|
|
1205
|
+
{"name": "Presidents Day", "date": "2026-02-16"},
|
|
1206
|
+
{"name": "Memorial Day", "date": "2026-05-25"},
|
|
1207
|
+
{"name": "Independence Day", "date": "2026-07-04"},
|
|
1208
|
+
{"name": "Labor Day", "date": "2026-09-07"},
|
|
1209
|
+
{"name": "Thanksgiving", "date": "2026-11-26"},
|
|
1210
|
+
{"name": "Christmas", "date": "2026-12-25"}
|
|
1211
|
+
]
|
|
1212
|
+
}'
|
|
1213
|
+
|
|
1214
|
+
# Get a specific holiday list
|
|
1215
|
+
wxcli cc-holiday-list show --id "hl-uuid"
|
|
1216
|
+
|
|
1217
|
+
# Delete a holiday list
|
|
1218
|
+
wxcli cc-holiday-list delete --id "hl-uuid"
|
|
1219
|
+
```
|
|
1220
|
+
|
|
1221
|
+
### Raw HTTP
|
|
1222
|
+
|
|
1223
|
+
```bash
|
|
1224
|
+
# List holiday lists (v2)
|
|
1225
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/holiday-list" \
|
|
1226
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1227
|
+
|
|
1228
|
+
# Create holiday list
|
|
1229
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/holiday-list" \
|
|
1230
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1231
|
+
-H "Content-Type: application/json" \
|
|
1232
|
+
-d '{"name":"US Federal Holidays 2026","holidays":[{"name":"New Year","date":"2026-01-01"}]}'
|
|
1233
|
+
```
|
|
1234
|
+
|
|
1235
|
+
---
|
|
1236
|
+
|
|
1237
|
+
## 17. Aux Codes (`cc-aux-code`)
|
|
1238
|
+
|
|
1239
|
+
Auxiliary (idle/wrap-up) codes categorize agent non-available time. When an agent goes idle or enters wrap-up, they select an aux code to indicate why (e.g., break, lunch, training, after-call work).
|
|
1240
|
+
|
|
1241
|
+
### Endpoints
|
|
1242
|
+
|
|
1243
|
+
| Method | Path | CLI Command | Description |
|
|
1244
|
+
|--------|------|-------------|-------------|
|
|
1245
|
+
| GET | `/organization/{orgid}/auxiliary-code` | `list-auxiliary-code-organization` | List |
|
|
1246
|
+
| POST | `/organization/{orgid}/auxiliary-code` | `create` | Create |
|
|
1247
|
+
| POST | `/organization/{orgid}/auxiliary-code/bulk` | `create-bulk` | Bulk save |
|
|
1248
|
+
| PATCH | `/organization/{orgid}/auxiliary-code/bulk` | `update` | Bulk partial update |
|
|
1249
|
+
| GET | `/organization/{orgid}/auxiliary-code/bulk-export` | `list-bulk-export` | Bulk export |
|
|
1250
|
+
| POST | `/organization/{orgid}/auxiliary-code/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
1251
|
+
| GET | `/organization/{orgid}/auxiliary-code/{id}` | `show` | Get by ID |
|
|
1252
|
+
| DELETE | `/organization/{orgid}/auxiliary-code/{id}` | `delete` | Delete |
|
|
1253
|
+
| PUT | `/organization/{orgid}/auxiliary-code/{id}` | `update-auxiliary-code` | Update |
|
|
1254
|
+
| GET | `/organization/{orgid}/auxiliary-code/{id}/incoming-references` | `list` | List references |
|
|
1255
|
+
| GET | `/organization/{orgid}/v2/auxiliary-code` | `list-auxiliary-code-v2` | List (v2) |
|
|
1256
|
+
|
|
1257
|
+
### Key Parameters
|
|
1258
|
+
|
|
1259
|
+
- **Create:** Requires `name`, `defaultCode` (boolean), `isActive`, `codeType` (IDLE_CODE or WRAP_UP_CODE)
|
|
1260
|
+
- **Bulk partial update:** PATCH with array of partial updates -- only specified fields are changed
|
|
1261
|
+
- **Default code:** One idle code and one wrap-up code can be marked as default
|
|
1262
|
+
|
|
1263
|
+
### CLI Examples
|
|
1264
|
+
|
|
1265
|
+
```bash
|
|
1266
|
+
# List aux codes (v2)
|
|
1267
|
+
wxcli cc-aux-code list-auxiliary-code-v2
|
|
1268
|
+
|
|
1269
|
+
# Create an idle code
|
|
1270
|
+
wxcli cc-aux-code create --json-body '{
|
|
1271
|
+
"name": "Lunch Break",
|
|
1272
|
+
"codeType": "IDLE_CODE",
|
|
1273
|
+
"defaultCode": false,
|
|
1274
|
+
"isActive": true
|
|
1275
|
+
}'
|
|
1276
|
+
|
|
1277
|
+
# Create a wrap-up code
|
|
1278
|
+
wxcli cc-aux-code create --json-body '{
|
|
1279
|
+
"name": "Follow-up Required",
|
|
1280
|
+
"codeType": "WRAP_UP_CODE",
|
|
1281
|
+
"defaultCode": false,
|
|
1282
|
+
"isActive": true
|
|
1283
|
+
}'
|
|
1284
|
+
|
|
1285
|
+
# Bulk partial update
|
|
1286
|
+
wxcli cc-aux-code update --json-body '[
|
|
1287
|
+
{"id": "code1-uuid", "isActive": false},
|
|
1288
|
+
{"id": "code2-uuid", "name": "Extended Break"}
|
|
1289
|
+
]'
|
|
1290
|
+
|
|
1291
|
+
# Delete an aux code
|
|
1292
|
+
wxcli cc-aux-code delete --id "code-uuid"
|
|
1293
|
+
```
|
|
1294
|
+
|
|
1295
|
+
### Raw HTTP
|
|
1296
|
+
|
|
1297
|
+
```bash
|
|
1298
|
+
# List aux codes (v2)
|
|
1299
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/auxiliary-code" \
|
|
1300
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1301
|
+
|
|
1302
|
+
# Create idle code
|
|
1303
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/auxiliary-code" \
|
|
1304
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1305
|
+
-H "Content-Type: application/json" \
|
|
1306
|
+
-d '{"name":"Lunch Break","codeType":"IDLE_CODE","defaultCode":false,"isActive":true}'
|
|
1307
|
+
```
|
|
1308
|
+
|
|
1309
|
+
---
|
|
1310
|
+
|
|
1311
|
+
## 18. Work Types (`cc-work-types`)
|
|
1312
|
+
|
|
1313
|
+
Work types categorize agent activities for reporting. They are referenced in aux codes and wrap-up configurations.
|
|
1314
|
+
|
|
1315
|
+
### Endpoints
|
|
1316
|
+
|
|
1317
|
+
| Method | Path | CLI Command | Description |
|
|
1318
|
+
|--------|------|-------------|-------------|
|
|
1319
|
+
| POST | `/organization/{orgid}/work-type` | `create` | Create |
|
|
1320
|
+
| POST | `/organization/{orgid}/work-type/bulk` | `create-bulk` | Bulk save |
|
|
1321
|
+
| GET | `/organization/{orgid}/work-type/bulk-export` | `list` | Bulk export |
|
|
1322
|
+
| POST | `/organization/{orgid}/work-type/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
1323
|
+
| GET | `/organization/{orgid}/work-type/{id}` | `show` | Get by ID |
|
|
1324
|
+
| DELETE | `/organization/{orgid}/work-type/{id}` | `delete` | Delete |
|
|
1325
|
+
| PUT | `/organization/{orgid}/work-type/{id}` | `update` | Update |
|
|
1326
|
+
| GET | `/organization/{orgid}/work-type/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
1327
|
+
| GET | `/organization/{orgid}/v2/work-type` | `list-work-type` | List (v2) |
|
|
1328
|
+
|
|
1329
|
+
### CLI Examples
|
|
1330
|
+
|
|
1331
|
+
```bash
|
|
1332
|
+
# List work types (v2)
|
|
1333
|
+
wxcli cc-work-types list-work-type
|
|
1334
|
+
|
|
1335
|
+
# Create a work type
|
|
1336
|
+
wxcli cc-work-types create --json-body '{
|
|
1337
|
+
"name": "Outbound Campaign",
|
|
1338
|
+
"description": "Outbound dialing work"
|
|
1339
|
+
}'
|
|
1340
|
+
|
|
1341
|
+
# Get a specific work type
|
|
1342
|
+
wxcli cc-work-types show --id "wt-uuid"
|
|
1343
|
+
|
|
1344
|
+
# Delete a work type
|
|
1345
|
+
wxcli cc-work-types delete --id "wt-uuid"
|
|
1346
|
+
```
|
|
1347
|
+
|
|
1348
|
+
### Raw HTTP
|
|
1349
|
+
|
|
1350
|
+
```bash
|
|
1351
|
+
# List work types (v2)
|
|
1352
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/work-type" \
|
|
1353
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1354
|
+
|
|
1355
|
+
# Create work type
|
|
1356
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/work-type" \
|
|
1357
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1358
|
+
-H "Content-Type: application/json" \
|
|
1359
|
+
-d '{"name":"Outbound Campaign","description":"Outbound dialing work"}'
|
|
1360
|
+
```
|
|
1361
|
+
|
|
1362
|
+
---
|
|
1363
|
+
|
|
1364
|
+
## 19. Sites (`cc-site`)
|
|
1365
|
+
|
|
1366
|
+
Sites represent physical or logical locations in the contact center. Teams are assigned to sites, providing geographic grouping for agents and reporting.
|
|
1367
|
+
|
|
1368
|
+
### Endpoints
|
|
1369
|
+
|
|
1370
|
+
| Method | Path | CLI Command | Description |
|
|
1371
|
+
|--------|------|-------------|-------------|
|
|
1372
|
+
| GET | `/organization/{orgid}/site` | `list` | List Site(s) |
|
|
1373
|
+
| POST | `/organization/{orgid}/site` | `create` | Create |
|
|
1374
|
+
| POST | `/organization/{orgid}/site/bulk` | `create-bulk` | Bulk save |
|
|
1375
|
+
| GET | `/organization/{orgid}/site/bulk-export` | `list-bulk-export` | Bulk export |
|
|
1376
|
+
| POST | `/organization/{orgid}/site/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
1377
|
+
| GET | `/organization/{orgid}/site/{id}` | `show` | Get by ID |
|
|
1378
|
+
| DELETE | `/organization/{orgid}/site/{id}` | `delete` | Delete |
|
|
1379
|
+
| PUT | `/organization/{orgid}/site/{id}` | `update` | Update |
|
|
1380
|
+
| GET | `/organization/{orgid}/site/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
1381
|
+
| GET | `/organization/{orgid}/v2/site` | `list-site` | List (v2) |
|
|
1382
|
+
|
|
1383
|
+
### Key Parameters
|
|
1384
|
+
|
|
1385
|
+
- **Create:** Requires `name`
|
|
1386
|
+
- **Dependencies:** Teams reference sites via `siteId`. Delete all teams from a site before deleting the site.
|
|
1387
|
+
|
|
1388
|
+
### CLI Examples
|
|
1389
|
+
|
|
1390
|
+
```bash
|
|
1391
|
+
# List sites (v2)
|
|
1392
|
+
wxcli cc-site list-site
|
|
1393
|
+
|
|
1394
|
+
# Create a site
|
|
1395
|
+
wxcli cc-site create --json-body '{"name": "US East Coast"}'
|
|
1396
|
+
|
|
1397
|
+
# Get a specific site
|
|
1398
|
+
wxcli cc-site show --id "site-uuid"
|
|
1399
|
+
|
|
1400
|
+
# Check what references this site
|
|
1401
|
+
wxcli cc-site list-incoming-references --id "site-uuid"
|
|
1402
|
+
|
|
1403
|
+
# Delete a site (must have no team references)
|
|
1404
|
+
wxcli cc-site delete --id "site-uuid"
|
|
1405
|
+
```
|
|
1406
|
+
|
|
1407
|
+
### Raw HTTP
|
|
1408
|
+
|
|
1409
|
+
```bash
|
|
1410
|
+
# List sites (v2)
|
|
1411
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/site" \
|
|
1412
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1413
|
+
|
|
1414
|
+
# Create site
|
|
1415
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/site" \
|
|
1416
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1417
|
+
-H "Content-Type: application/json" \
|
|
1418
|
+
-d '{"name":"US East Coast"}'
|
|
1419
|
+
```
|
|
1420
|
+
|
|
1421
|
+
---
|
|
1422
|
+
|
|
1423
|
+
## 20. Global Variables (`cc-global-vars`)
|
|
1424
|
+
|
|
1425
|
+
Global variables (CAD variables -- Customer Activity Data) store key-value data that flows use for routing decisions, screen pops, and reporting. They are passed through the contact's lifecycle.
|
|
1426
|
+
|
|
1427
|
+
### Endpoints
|
|
1428
|
+
|
|
1429
|
+
| Method | Path | CLI Command | Description |
|
|
1430
|
+
|--------|------|-------------|-------------|
|
|
1431
|
+
| POST | `/organization/{orgid}/cad-variable` | `create` | Create |
|
|
1432
|
+
| POST | `/organization/{orgid}/cad-variable/bulk` | `create-bulk` | Bulk save |
|
|
1433
|
+
| GET | `/organization/{orgid}/cad-variable/bulk-export` | `list` | Bulk export |
|
|
1434
|
+
| POST | `/organization/{orgid}/cad-variable/purge-inactive-entities` | `create-purge-inactive-entities` | Purge inactive |
|
|
1435
|
+
| GET | `/organization/{orgid}/cad-variable/reportable-count` | `list-reportable-count` | Get reportable count |
|
|
1436
|
+
| GET | `/organization/{orgid}/cad-variable/{id}` | `show` | Get by ID |
|
|
1437
|
+
| DELETE | `/organization/{orgid}/cad-variable/{id}` | `delete` | Delete |
|
|
1438
|
+
| PUT | `/organization/{orgid}/cad-variable/{id}` | `update` | Update |
|
|
1439
|
+
| GET | `/organization/{orgid}/cad-variable/{id}/incoming-references` | `list-incoming-references` | List references |
|
|
1440
|
+
| GET | `/organization/{orgid}/v2/cad-variable` | `list-cad-variable` | List (v2) |
|
|
1441
|
+
|
|
1442
|
+
### Key Parameters
|
|
1443
|
+
|
|
1444
|
+
- **Create:** Requires `name`, `type` (STRING, INTEGER, BOOLEAN, DECIMAL, DATE, DATETIME), optional `defaultValue`
|
|
1445
|
+
- **Reportable:** Variables marked as reportable appear in CC analytics. There is a maximum reportable count -- check with `list-reportable-count`.
|
|
1446
|
+
- **Agent viewable/editable:** Controls whether agents see and can modify the variable on the desktop
|
|
1447
|
+
|
|
1448
|
+
### CLI Examples
|
|
1449
|
+
|
|
1450
|
+
```bash
|
|
1451
|
+
# List global variables (v2)
|
|
1452
|
+
wxcli cc-global-vars list-cad-variable
|
|
1453
|
+
|
|
1454
|
+
# Check how many reportable variables remain
|
|
1455
|
+
wxcli cc-global-vars list-reportable-count
|
|
1456
|
+
|
|
1457
|
+
# Create a global variable
|
|
1458
|
+
wxcli cc-global-vars create --json-body '{
|
|
1459
|
+
"name": "CustomerTier",
|
|
1460
|
+
"type": "STRING",
|
|
1461
|
+
"defaultValue": "Standard",
|
|
1462
|
+
"reportable": true,
|
|
1463
|
+
"agentViewable": true,
|
|
1464
|
+
"agentEditable": false
|
|
1465
|
+
}'
|
|
1466
|
+
|
|
1467
|
+
# Get a specific variable
|
|
1468
|
+
wxcli cc-global-vars show --id "var-uuid"
|
|
1469
|
+
|
|
1470
|
+
# Delete a variable
|
|
1471
|
+
wxcli cc-global-vars delete --id "var-uuid"
|
|
1472
|
+
```
|
|
1473
|
+
|
|
1474
|
+
### Raw HTTP
|
|
1475
|
+
|
|
1476
|
+
```bash
|
|
1477
|
+
# List global variables (v2)
|
|
1478
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/v2/cad-variable" \
|
|
1479
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1480
|
+
|
|
1481
|
+
# Get reportable count
|
|
1482
|
+
curl "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/cad-variable/reportable-count" \
|
|
1483
|
+
-H "Authorization: Bearer $TOKEN"
|
|
1484
|
+
|
|
1485
|
+
# Create variable
|
|
1486
|
+
curl -X POST "https://api.wxcc-us1.cisco.com/organization/$ORG_ID/cad-variable" \
|
|
1487
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
1488
|
+
-H "Content-Type: application/json" \
|
|
1489
|
+
-d '{"name":"CustomerTier","type":"STRING","defaultValue":"Standard","reportable":true}'
|
|
1490
|
+
```
|
|
1491
|
+
|
|
1492
|
+
---
|
|
1493
|
+
|
|
1494
|
+
## 21. Common Patterns
|
|
1495
|
+
|
|
1496
|
+
Most CC config entities follow a standard CRUD pattern with these operations:
|
|
1497
|
+
|
|
1498
|
+
| Operation | Method | Path Pattern | CLI Pattern | Description |
|
|
1499
|
+
|-----------|--------|-------------|-------------|-------------|
|
|
1500
|
+
| **List (v1)** | GET | `/organization/{orgid}/{resource}` | `list` or `list-{resource}-organization` | Basic list |
|
|
1501
|
+
| **List (v2)** | GET | `/organization/{orgid}/v2/{resource}` | `list-{resource}` or `list-{resource}-v2` | Enhanced filtering, pagination |
|
|
1502
|
+
| **Create** | POST | `/organization/{orgid}/{resource}` | `create` or `create-{resource}` | Create single entity |
|
|
1503
|
+
| **Bulk save** | POST | `/organization/{orgid}/{resource}/bulk` | `create-bulk` or `create` | Create/update multiple entities |
|
|
1504
|
+
| **Bulk export** | GET | `/organization/{orgid}/{resource}/bulk-export` | `list` or `list-bulk-export` | Export all entities (CSV-compatible) |
|
|
1505
|
+
| **Purge inactive** | POST | `/organization/{orgid}/{resource}/purge-inactive-entities` | `create-purge-inactive-entities` | Permanently remove deactivated entities |
|
|
1506
|
+
| **Get by ID** | GET | `/organization/{orgid}/{resource}/{id}` | `show` | Get single entity |
|
|
1507
|
+
| **Update** | PUT | `/organization/{orgid}/{resource}/{id}` | `update` | Full replace |
|
|
1508
|
+
| **Delete** | DELETE | `/organization/{orgid}/{resource}/{id}` | `delete` | Remove entity |
|
|
1509
|
+
| **List references** | GET | `/organization/{orgid}/{resource}/{id}/incoming-references` | `list-incoming-references` | Show what references this entity |
|
|
1510
|
+
|
|
1511
|
+
### Pattern Notes
|
|
1512
|
+
|
|
1513
|
+
1. **v1 vs v2 vs v3 endpoints:** v2/v3 endpoints generally support better pagination (`page`, `pageSize`), FIQL-style filtering, and field selection (`attributes` parameter). Prefer v2/v3 when available.
|
|
1514
|
+
|
|
1515
|
+
2. **Bulk save vs create:** Bulk save (`/bulk`) accepts an array and can create or update multiple entities in one call. Single create returns the created entity.
|
|
1516
|
+
|
|
1517
|
+
3. **Purge inactive:** Soft-deleted entities remain in the system until purged. The purge endpoint permanently removes them. This is irreversible.
|
|
1518
|
+
|
|
1519
|
+
4. **Incoming references:** Before deleting an entity, check incoming references to see what depends on it. Deleting an entity that is referenced by another entity may fail or cause cascading issues.
|
|
1520
|
+
|
|
1521
|
+
5. **PUT is full replace:** All update endpoints use PUT (full replacement). Always GET the entity first, modify the fields you need, and PUT the full object back. The only exceptions are the bulk PATCH endpoints on `auxiliary-code` and `user`.
|
|
1522
|
+
|
|
1523
|
+
6. **orgId auto-injection:** The `{orgid}` path parameter is automatically injected from your saved config. You never need to pass it manually in CLI commands.
|
|
1524
|
+
|
|
1525
|
+
### Entity Dependency Order
|
|
1526
|
+
|
|
1527
|
+
When building a CC deployment from scratch, create entities in this order:
|
|
1528
|
+
|
|
1529
|
+
```
|
|
1530
|
+
1. Sites
|
|
1531
|
+
2. Business Hours + Holiday Lists
|
|
1532
|
+
3. Skills
|
|
1533
|
+
4. Skill Profiles (references Skills)
|
|
1534
|
+
5. Multimedia Profiles
|
|
1535
|
+
6. Aux Codes (Idle + Wrap-Up)
|
|
1536
|
+
7. Work Types
|
|
1537
|
+
8. Global Variables
|
|
1538
|
+
9. Desktop Layouts
|
|
1539
|
+
10. Desktop Profiles (references Desktop Layouts)
|
|
1540
|
+
11. Teams (references Sites)
|
|
1541
|
+
12. User Profiles (references Queues, Wrap-Up Codes)
|
|
1542
|
+
13. Queues (references Skill Profiles, Teams)
|
|
1543
|
+
14. Entry Points (references Queues)
|
|
1544
|
+
15. Users (references Teams, Skill Profiles, Multimedia Profiles, User Profiles)
|
|
1545
|
+
```
|
|
1546
|
+
|
|
1547
|
+
For teardown, reverse this order.
|
|
1548
|
+
|
|
1549
|
+
---
|
|
1550
|
+
|
|
1551
|
+
## 22. Gotchas
|
|
1552
|
+
|
|
1553
|
+
1. **Different base URL.** The CC API uses `api.wxcc-{region}.cisco.com`, not `webexapis.com`. Set the region with `wxcli set-cc-region <region>` (defaults to `us1`). Using the wrong base URL produces connection errors.
|
|
1554
|
+
|
|
1555
|
+
2. **CC-specific OAuth scopes.** CC endpoints require `cjp:config_read` and `cjp:config_write` scopes, not `spark-admin:*` scopes. A standard Webex admin token without CC scopes gets 403 errors. The CLI detects this and prints a scope tip. Note: `cjp:config` (bare, no suffix) also appears in some webhook and subscription API scope requirements — it may be a distinct scope or a legacy alias. Include it when building CC webhook integrations to avoid unexpected 403s.
|
|
1556
|
+
|
|
1557
|
+
3. **orgId is auto-injected.** The `{orgid}` path parameter is resolved from your saved config or authenticated user's org. Do not pass it as a CLI flag -- it will be injected automatically.
|
|
1558
|
+
|
|
1559
|
+
4. **Multiple API versions.** Many resources have v1, v2, and v3 endpoint variants. The v2/v3 endpoints typically add better filtering, pagination, and additional fields. The v1 endpoints remain for backward compatibility. When in doubt, use the v2/v3 variant.
|
|
1560
|
+
|
|
1561
|
+
5. **Bulk operations accept arrays.** Bulk save and bulk partial update endpoints accept JSON arrays of objects. Bulk export returns all entities, sometimes in a CSV-compatible format.
|
|
1562
|
+
|
|
1563
|
+
6. **Purge is permanent.** The "purge inactive entities" operation permanently removes all soft-deleted/deactivated resources of that type. There is no undo. Use bulk export first to back up entities before purging.
|
|
1564
|
+
|
|
1565
|
+
7. **Agent APIs use runtime paths.** The `cc-agents` group uses `/v1/agents/` and `/v2/agents/` (runtime API), not `/organization/{orgid}/` (config API). These are session-level operations (login, logout, state change) rather than configuration operations.
|
|
1566
|
+
|
|
1567
|
+
8. **Agent Wellbeing mixes path families.** The `cc-agent-wellbeing` group has config endpoints at `/organization/{orgid}/agent-burnout/` and runtime endpoints at `/v1/agentburnout/`. The config endpoints manage burnout detection settings; the runtime endpoints handle real-time event subscriptions and actions.
|
|
1568
|
+
|
|
1569
|
+
9. **Queue stats are a separate group.** Queue statistics use `cc-queue-stats` (path `/v1/queues/statistics`), which is a separate CLI group from queue configuration (`cc-queue`). Statistics are read-only runtime data.
|
|
1570
|
+
|
|
1571
|
+
10. **Desktop Profile API path is "agent-profile".** The `cc-desktop-profile` CLI group maps to the API path `/organization/{orgid}/agent-profile`, not `/organization/{orgid}/desktop-profile`. This naming mismatch is in the API itself.
|
|
1572
|
+
|
|
1573
|
+
11. **Global Variables API path is "cad-variable".** The `cc-global-vars` CLI group maps to `/organization/{orgid}/cad-variable`. CAD stands for Customer Activity Data, the legacy term for these variables. The CLI uses the friendlier name `cc-global-vars`.
|
|
1574
|
+
|
|
1575
|
+
12. **Incoming references before delete.** Always check `list-incoming-references` before deleting a config entity. Deleting an entity that is referenced by queues, teams, or routing strategies can produce 409 Conflict errors or leave orphaned references.
|
|
1576
|
+
|
|
1577
|
+
13. **Skill value types must match.** When creating skill profiles, the `skillValue` must match the skill's `skillType`: integer 0-10 for PROFICIENCY, boolean for BOOLEAN, string for ENUM (must be a defined enum value), or string for TEXT.
|
|
1578
|
+
|
|
1579
|
+
14. **Sites must exist before teams.** A team requires a `siteId`. Create sites first, then teams. Similarly, skill profiles require skills, and queues can require skill profiles.
|
|
1580
|
+
|
|
1581
|
+
15. **Agent summaries use POST for search.** Both `cc-agent-summaries` endpoints use POST (not GET) because they accept complex filter criteria in the request body. This is a search pattern, not a create pattern, despite the CLI command name `create`.
|
|
1582
|
+
|
|
1583
|
+
16. **Auto CSAT has two path families.** The deprecated paths use `/auto-csat/{autoCsatId}/...` and are documented in [contact-center-analytics.md](contact-center-analytics.md). The new non-deprecated paths use `/ai-feature/auto-csat/...` and are available via `wxcli cc-ai-feature` (8 commands). Use the `ai-feature` paths for new integrations.
|
|
1584
|
+
|
|
1585
|
+
17. **Internal queue endpoints.** The `by-team-id/.../internal` and `by-user-ci-id/.../internal` queue endpoints are marked as internal-use. They work with CI (Common Identity) user IDs, not CC user IDs. Use the v2 `by-user-id` endpoints for standard integrations.
|
|
1586
|
+
|
|
1587
|
+
18. **Reskill uses PATCH, not PUT.** The `/user/{id}/reskill` endpoint uses PATCH (partial update) to modify a user's skill profile and dynamic skills. The `dynamicSkills` field accepts `add` and `remove` arrays for incremental changes rather than full replacement.
|
|
1588
|
+
|
|
1589
|
+
19. **CC org ID must be bare UUID.** The CC config API path parameter `{orgid}` requires the raw UUID (e.g., `b8410147-6104-42e8-9b93-639730d983ff`), not the base64-encoded Spark ID returned by `/people/me`. The CLI uses `get_cc_org_id()` in `config.py` to decode automatically. If calling the API directly, decode the base64 orgId to extract the UUID after the last `/` in the URN.
|
|
1590
|
+
|
|
1591
|
+
20. **CC v2 list endpoints return `"data"`, not `"items"`.** The v2 endpoints (e.g., `GET /organization/{orgid}/v2/cad-variable`) wrap results in `{"meta": {...}, "data": [...]}`. The v1 bulk-export endpoints use `{"items": [...]}`. The CLI handles both automatically.
|
|
1592
|
+
|
|
1593
|
+
21. **Global Variable `variableType` requires title case.** The API rejects `"STRING"` — use `"String"`, `"Integer"`, `"Boolean"`, `"Decimal"`, `"DateTime"`. The OpenAPI spec lists both forms but only title case works at runtime.
|
|
1594
|
+
|
|
1595
|
+
22. **`desktopLabel` required when `agentViewable` is true.** Creating or updating a Global Variable with `agentViewable: true` fails unless `desktopLabel` is also provided. This dependency is not documented in the API spec's required fields list.
|
|
1596
|
+
|
|
1597
|
+
23. **Personal access tokens lack CC scopes.** PATs from developer.webex.com do NOT carry `cjp:config_read` or `cjp:config_write`, even for full admins on CC-provisioned orgs. Two options for CC config operations: (a) **OAuth integration** — select CC scopes explicitly and complete the OAuth authorization flow; adding scopes to an existing integration does not update previously issued tokens, you must re-authorize; (b) **Service App with CJP scopes** — recommended for production automation and server-to-server use; no interactive login required after the org admin authorizes the app, making it suitable for CI/CD pipelines and backend services. Note: all CC integration scopes work with Service Apps except `spark:applications_token` and `spark:kms`.
|
|
1598
|
+
|
|
1599
|
+
24. **Global Variable names are immutable.** The CC API returns 400 `"name: should not be modified"` if you attempt to change the `name` field via PUT update. To rename a variable, delete and recreate it. Note that any flows referencing the old variable ID will need to be updated.
|
|
1600
|
+
|
|
1601
|
+
25. **Flow Designer HTTP Connector handles auth and base URL automatically.** The CC HTTP Connector (created in Control Hub → Contact Center → Integrations → Connectors) stores the regional base URL and auth tokens for you. In the Flow Designer HTTP Request node, provide only the **request path**, not the full URL — e.g., `/organization/{orgid}/cad-variable` for Global Variables or `/search` for the Search API. Toggle "Use Authenticated Endpoint" and select the connector; no manual token management is needed in flows. When creating the connector, choose the access level: Read-Only (GET) or Read-Write (POST/PUT/DELETE).
|
|
1602
|
+
|
|
1603
|
+
26. **Derive the CC regional base URL from the access token.** The Webex access token has three underscore-separated parts: `token.split('_')` → `[accessToken, ciCluster, orgId]`. The middle segment (`ciCluster`) maps directly to the regional base URL: `https://api.wxcc-{ciCluster}.cisco.com`. Available regions: `us1`, `eu1`, `eu2`, `anz1` (confirmed); `ca1`, `jp1`, `sg1` (plausible but not independently confirmed from public documentation — verify against your org's token cluster value). This is useful for production apps that need to determine the correct CC API endpoint dynamically without hardcoding a region.
|
|
1604
|
+
|
|
1605
|
+
---
|
|
1606
|
+
|
|
1607
|
+
## 23. See Also
|
|
1608
|
+
|
|
1609
|
+
- [Contact Center: Routing](contact-center-routing.md) -- Dial plans, campaigns, flows, audio files, contact lists, dial numbers
|
|
1610
|
+
- [Contact Center: Analytics](contact-center-analytics.md) -- AI, monitoring, subscriptions, tasks, search
|
|
1611
|
+
- [Contact Center: Journey](contact-center-journey.md) -- JDS: workspaces, persons, identity, profile views, events
|
|
1612
|
+
- [Authentication](authentication.md) -- CC-specific OAuth scopes, region configuration, and token setup
|
|
1613
|
+
- [Contact Center Skill](../../.claude/skills/contact-center/SKILL.md) -- Guided workflow for provisioning agents, queues, teams, flows, campaigns via wxcli
|
|
1614
|
+
- `CLAUDE.md` (project root) -- CC region setup, CLI integration notes
|