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.
Files changed (413) hide show
  1. wxcli/__init__.py +4 -0
  2. wxcli/_playbook/.claude/agents/migration-advisor.md +239 -0
  3. wxcli/_playbook/.claude/agents/wxc-calling-builder.md +946 -0
  4. wxcli/_playbook/.claude/rules/cleanup.md +29 -0
  5. wxcli/_playbook/.claude/rules/cucm-migration.md +58 -0
  6. wxcli/_playbook/.claude/rules/org-health.md +14 -0
  7. wxcli/_playbook/.claude/settings.json +8 -0
  8. wxcli/_playbook/.claude/skills/audit-compliance/SKILL.md +515 -0
  9. wxcli/_playbook/.claude/skills/call-control/SKILL.md +747 -0
  10. wxcli/_playbook/.claude/skills/configure-features/SKILL.md +623 -0
  11. wxcli/_playbook/.claude/skills/configure-routing/SKILL.md +627 -0
  12. wxcli/_playbook/.claude/skills/contact-center/SKILL.md +1181 -0
  13. wxcli/_playbook/.claude/skills/cucm-migrate/SKILL.md +820 -0
  14. wxcli/_playbook/.claude/skills/customer-assist/SKILL.md +443 -0
  15. wxcli/_playbook/.claude/skills/device-platform/SKILL.md +407 -0
  16. wxcli/_playbook/.claude/skills/manage-call-settings/SKILL.md +757 -0
  17. wxcli/_playbook/.claude/skills/manage-devices/SKILL.md +790 -0
  18. wxcli/_playbook/.claude/skills/manage-identity/SKILL.md +638 -0
  19. wxcli/_playbook/.claude/skills/manage-licensing/SKILL.md +528 -0
  20. wxcli/_playbook/.claude/skills/manage-meetings/SKILL.md +708 -0
  21. wxcli/_playbook/.claude/skills/messaging-bots/SKILL.md +365 -0
  22. wxcli/_playbook/.claude/skills/messaging-spaces/SKILL.md +520 -0
  23. wxcli/_playbook/.claude/skills/org-health/SKILL.md +159 -0
  24. wxcli/_playbook/.claude/skills/provision-calling/SKILL.md +421 -0
  25. wxcli/_playbook/.claude/skills/query-live/SKILL.md +183 -0
  26. wxcli/_playbook/.claude/skills/query-live/domains/call-flow-trace.md +223 -0
  27. wxcli/_playbook/.claude/skills/query-live/domains/call-history.md +44 -0
  28. wxcli/_playbook/.claude/skills/query-live/domains/features.md +169 -0
  29. wxcli/_playbook/.claude/skills/query-live/domains/numbers.md +93 -0
  30. wxcli/_playbook/.claude/skills/query-live/domains/people-and-settings.md +146 -0
  31. wxcli/_playbook/.claude/skills/query-live/domains/routing.md +124 -0
  32. wxcli/_playbook/.claude/skills/reporting/SKILL.md +501 -0
  33. wxcli/_playbook/.claude/skills/reporting/references/cdr-recipes.md +1628 -0
  34. wxcli/_playbook/.claude/skills/reporting-cc/SKILL.md +251 -0
  35. wxcli/_playbook/.claude/skills/reporting-meetings/SKILL.md +290 -0
  36. wxcli/_playbook/.claude/skills/teardown/SKILL.md +214 -0
  37. wxcli/_playbook/.claude/skills/video-mesh/SKILL.md +379 -0
  38. wxcli/_playbook/.claude/skills/wxc-calling-debug/SKILL.md +475 -0
  39. wxcli/_playbook/CLAUDE.md +373 -0
  40. wxcli/_playbook/docs/reference/CLAUDE.md +25 -0
  41. wxcli/_playbook/docs/reference/admin-apps-data.md +643 -0
  42. wxcli/_playbook/docs/reference/admin-audit-security.md +322 -0
  43. wxcli/_playbook/docs/reference/admin-hybrid.md +383 -0
  44. wxcli/_playbook/docs/reference/admin-identity-scim.md +1007 -0
  45. wxcli/_playbook/docs/reference/admin-licensing.md +414 -0
  46. wxcli/_playbook/docs/reference/admin-org-management.md +586 -0
  47. wxcli/_playbook/docs/reference/admin-partner.md +357 -0
  48. wxcli/_playbook/docs/reference/archive/wxc-sdk-patterns.md +1229 -0
  49. wxcli/_playbook/docs/reference/archive/wxcadm-advanced.md +835 -0
  50. wxcli/_playbook/docs/reference/archive/wxcadm-core.md +743 -0
  51. wxcli/_playbook/docs/reference/archive/wxcadm-devices-workspaces.md +1305 -0
  52. wxcli/_playbook/docs/reference/archive/wxcadm-features.md +849 -0
  53. wxcli/_playbook/docs/reference/archive/wxcadm-locations.md +938 -0
  54. wxcli/_playbook/docs/reference/archive/wxcadm-person.md +1255 -0
  55. wxcli/_playbook/docs/reference/archive/wxcadm-routing.md +1262 -0
  56. wxcli/_playbook/docs/reference/authentication.md +965 -0
  57. wxcli/_playbook/docs/reference/call-control.md +1205 -0
  58. wxcli/_playbook/docs/reference/call-features-additional.md +2541 -0
  59. wxcli/_playbook/docs/reference/call-features-major.md +1320 -0
  60. wxcli/_playbook/docs/reference/call-routing.md +2304 -0
  61. wxcli/_playbook/docs/reference/contact-center-analytics.md +1049 -0
  62. wxcli/_playbook/docs/reference/contact-center-core.md +1614 -0
  63. wxcli/_playbook/docs/reference/contact-center-journey.md +457 -0
  64. wxcli/_playbook/docs/reference/contact-center-routing.md +1138 -0
  65. wxcli/_playbook/docs/reference/devices-core.md +1869 -0
  66. wxcli/_playbook/docs/reference/devices-dect.md +1150 -0
  67. wxcli/_playbook/docs/reference/devices-platform.md +467 -0
  68. wxcli/_playbook/docs/reference/devices-workspaces.md +1426 -0
  69. wxcli/_playbook/docs/reference/emergency-services.md +1122 -0
  70. wxcli/_playbook/docs/reference/location-calling-core.md +2037 -0
  71. wxcli/_playbook/docs/reference/location-calling-media.md +1334 -0
  72. wxcli/_playbook/docs/reference/location-recording-advanced.md +1482 -0
  73. wxcli/_playbook/docs/reference/meetings-content.md +473 -0
  74. wxcli/_playbook/docs/reference/meetings-core.md +903 -0
  75. wxcli/_playbook/docs/reference/meetings-infrastructure.md +899 -0
  76. wxcli/_playbook/docs/reference/meetings-settings.md +850 -0
  77. wxcli/_playbook/docs/reference/messaging-bots.md +1091 -0
  78. wxcli/_playbook/docs/reference/messaging-spaces.md +695 -0
  79. wxcli/_playbook/docs/reference/person-call-settings-behavior.md +1639 -0
  80. wxcli/_playbook/docs/reference/person-call-settings-handling.md +1394 -0
  81. wxcli/_playbook/docs/reference/person-call-settings-media.md +1898 -0
  82. wxcli/_playbook/docs/reference/person-call-settings-permissions.md +1329 -0
  83. wxcli/_playbook/docs/reference/provisioning.md +1366 -0
  84. wxcli/_playbook/docs/reference/reporting-analytics.md +1318 -0
  85. wxcli/_playbook/docs/reference/self-service-call-settings.md +1020 -0
  86. wxcli/_playbook/docs/reference/virtual-lines.md +1132 -0
  87. wxcli/_playbook/docs/reference/webhooks-events.md +1444 -0
  88. wxcli/_playbook/docs/reference/wxcadm-xsi-realtime.md +953 -0
  89. wxcli/_version.py +24 -0
  90. wxcli/auth.py +137 -0
  91. wxcli/commands/__init__.py +0 -0
  92. wxcli/commands/_registry.py +181 -0
  93. wxcli/commands/activation_email.py +103 -0
  94. wxcli/commands/admin_recordings.py +585 -0
  95. wxcli/commands/analytics.py +105 -0
  96. wxcli/commands/announcement_playlists.py +219 -0
  97. wxcli/commands/announcements.py +519 -0
  98. wxcli/commands/archive_users.py +36 -0
  99. wxcli/commands/attachment_actions.py +60 -0
  100. wxcli/commands/audit_events.py +83 -0
  101. wxcli/commands/authorizations.py +113 -0
  102. wxcli/commands/auto_attendant.py +642 -0
  103. wxcli/commands/broadworks_billing_reports.py +126 -0
  104. wxcli/commands/broadworks_enterprises.py +160 -0
  105. wxcli/commands/broadworks_subscribers.py +319 -0
  106. wxcli/commands/broadworks_workspaces.py +108 -0
  107. wxcli/commands/call_controls.py +1304 -0
  108. wxcli/commands/call_park.py +494 -0
  109. wxcli/commands/call_pickup.py +229 -0
  110. wxcli/commands/call_queue.py +1878 -0
  111. wxcli/commands/call_recording.py +707 -0
  112. wxcli/commands/call_routing.py +1610 -0
  113. wxcli/commands/call_settings_for_me_phase_5.py +212 -0
  114. wxcli/commands/caller_reputation.py +169 -0
  115. wxcli/commands/calling_service.py +305 -0
  116. wxcli/commands/cc_address_book.py +770 -0
  117. wxcli/commands/cc_agent_greetings.py +242 -0
  118. wxcli/commands/cc_agent_summaries.py +39 -0
  119. wxcli/commands/cc_agent_wellbeing.py +216 -0
  120. wxcli/commands/cc_agents.py +425 -0
  121. wxcli/commands/cc_ai_assistant.py +55 -0
  122. wxcli/commands/cc_ai_feature.py +294 -0
  123. wxcli/commands/cc_audio_files.py +149 -0
  124. wxcli/commands/cc_auto_csat.py +311 -0
  125. wxcli/commands/cc_aux_code.py +458 -0
  126. wxcli/commands/cc_business_hour.py +353 -0
  127. wxcli/commands/cc_call_monitoring.py +228 -0
  128. wxcli/commands/cc_callbacks.py +194 -0
  129. wxcli/commands/cc_campaign.py +212 -0
  130. wxcli/commands/cc_captures.py +39 -0
  131. wxcli/commands/cc_contact_list.py +169 -0
  132. wxcli/commands/cc_contact_number.py +295 -0
  133. wxcli/commands/cc_data_sources.py +235 -0
  134. wxcli/commands/cc_desktop_layout.py +380 -0
  135. wxcli/commands/cc_desktop_profile.py +322 -0
  136. wxcli/commands/cc_dial_number.py +511 -0
  137. wxcli/commands/cc_dial_plan.py +347 -0
  138. wxcli/commands/cc_dnc.py +101 -0
  139. wxcli/commands/cc_entry_point.py +545 -0
  140. wxcli/commands/cc_ewt.py +51 -0
  141. wxcli/commands/cc_flow.py +477 -0
  142. wxcli/commands/cc_global_vars.py +430 -0
  143. wxcli/commands/cc_holiday_list.py +335 -0
  144. wxcli/commands/cc_journey.py +1261 -0
  145. wxcli/commands/cc_legacy_flows.py +49 -0
  146. wxcli/commands/cc_multimedia_profile.py +436 -0
  147. wxcli/commands/cc_notification.py +51 -0
  148. wxcli/commands/cc_outdial_ani.py +604 -0
  149. wxcli/commands/cc_overrides.py +341 -0
  150. wxcli/commands/cc_queue.py +1083 -0
  151. wxcli/commands/cc_queue_stats.py +55 -0
  152. wxcli/commands/cc_realtime.py +51 -0
  153. wxcli/commands/cc_resource_collection.py +312 -0
  154. wxcli/commands/cc_search.py +46 -0
  155. wxcli/commands/cc_site.py +400 -0
  156. wxcli/commands/cc_skill.py +350 -0
  157. wxcli/commands/cc_skill_profile.py +289 -0
  158. wxcli/commands/cc_subscriptions.py +426 -0
  159. wxcli/commands/cc_summaries.py +130 -0
  160. wxcli/commands/cc_tasks.py +844 -0
  161. wxcli/commands/cc_team.py +325 -0
  162. wxcli/commands/cc_user_profiles.py +349 -0
  163. wxcli/commands/cc_users.py +701 -0
  164. wxcli/commands/cc_work_types.py +363 -0
  165. wxcli/commands/cdr.py +89 -0
  166. wxcli/commands/classifications.py +38 -0
  167. wxcli/commands/cleanup.py +1427 -0
  168. wxcli/commands/client_settings.py +72 -0
  169. wxcli/commands/conference.py +328 -0
  170. wxcli/commands/configure.py +72 -0
  171. wxcli/commands/converged_recordings.py +347 -0
  172. wxcli/commands/converged_recordings_export.py +310 -0
  173. wxcli/commands/cq_playlists.py +42 -0
  174. wxcli/commands/cucm.py +2794 -0
  175. wxcli/commands/cucm_config.py +129 -0
  176. wxcli/commands/customer_assist.py +373 -0
  177. wxcli/commands/data_sources.py +227 -0
  178. wxcli/commands/dect_devices.py +787 -0
  179. wxcli/commands/device_configurations.py +77 -0
  180. wxcli/commands/device_dynamic_settings.py +320 -0
  181. wxcli/commands/device_settings.py +1489 -0
  182. wxcli/commands/devices.py +280 -0
  183. wxcli/commands/domains.py +142 -0
  184. wxcli/commands/ecm.py +178 -0
  185. wxcli/commands/emergency_services.py +827 -0
  186. wxcli/commands/events.py +83 -0
  187. wxcli/commands/external_voicemail.py +52 -0
  188. wxcli/commands/groups.py +206 -0
  189. wxcli/commands/guest_management.py +76 -0
  190. wxcli/commands/hds.py +340 -0
  191. wxcli/commands/hot_desk.py +67 -0
  192. wxcli/commands/hot_desking_members.py +118 -0
  193. wxcli/commands/hot_desking_portal.py +124 -0
  194. wxcli/commands/hunt_group.py +577 -0
  195. wxcli/commands/hybrid_clusters.py +71 -0
  196. wxcli/commands/hybrid_connectors.py +67 -0
  197. wxcli/commands/identity_org.py +159 -0
  198. wxcli/commands/init_playbook.py +155 -0
  199. wxcli/commands/licenses.py +106 -0
  200. wxcli/commands/live_monitoring.py +40 -0
  201. wxcli/commands/location_call_handling.py +577 -0
  202. wxcli/commands/location_schedules.py +341 -0
  203. wxcli/commands/location_settings.py +1297 -0
  204. wxcli/commands/location_voicemail.py +494 -0
  205. wxcli/commands/locations.py +336 -0
  206. wxcli/commands/meeting_captions.py +110 -0
  207. wxcli/commands/meeting_chats.py +63 -0
  208. wxcli/commands/meeting_invitees.py +234 -0
  209. wxcli/commands/meeting_messages.py +28 -0
  210. wxcli/commands/meeting_participants.py +278 -0
  211. wxcli/commands/meeting_polls.py +111 -0
  212. wxcli/commands/meeting_preferences.py +515 -0
  213. wxcli/commands/meeting_qa.py +78 -0
  214. wxcli/commands/meeting_qualities.py +43 -0
  215. wxcli/commands/meeting_reports.py +101 -0
  216. wxcli/commands/meeting_session_types.py +105 -0
  217. wxcli/commands/meeting_site.py +57 -0
  218. wxcli/commands/meeting_slido.py +44 -0
  219. wxcli/commands/meeting_summaries.py +92 -0
  220. wxcli/commands/meeting_tracking_codes.py +233 -0
  221. wxcli/commands/meeting_transcripts.py +230 -0
  222. wxcli/commands/meetings.py +1997 -0
  223. wxcli/commands/memberships.py +164 -0
  224. wxcli/commands/messages.py +213 -0
  225. wxcli/commands/mode_management.py +244 -0
  226. wxcli/commands/my_call_settings.py +3577 -0
  227. wxcli/commands/numbers.py +405 -0
  228. wxcli/commands/operating_modes.py +410 -0
  229. wxcli/commands/org_contacts.py +284 -0
  230. wxcli/commands/org_health_cli.py +55 -0
  231. wxcli/commands/org_settings.py +71 -0
  232. wxcli/commands/organizations.py +83 -0
  233. wxcli/commands/paging_group.py +257 -0
  234. wxcli/commands/partner_admins.py +141 -0
  235. wxcli/commands/partner_reports.py +188 -0
  236. wxcli/commands/partner_tags.py +216 -0
  237. wxcli/commands/people.py +279 -0
  238. wxcli/commands/person_call_settings.py +71 -0
  239. wxcli/commands/pstn.py +280 -0
  240. wxcli/commands/recording_report.py +154 -0
  241. wxcli/commands/report_templates.py +38 -0
  242. wxcli/commands/reports.py +144 -0
  243. wxcli/commands/resource_group_memberships.py +160 -0
  244. wxcli/commands/resource_groups.py +67 -0
  245. wxcli/commands/roles.py +63 -0
  246. wxcli/commands/room_tabs.py +160 -0
  247. wxcli/commands/rooms.py +225 -0
  248. wxcli/commands/scim_bulk.py +46 -0
  249. wxcli/commands/scim_groups.py +246 -0
  250. wxcli/commands/scim_schemas.py +82 -0
  251. wxcli/commands/scim_users.py +283 -0
  252. wxcli/commands/security_audit.py +54 -0
  253. wxcli/commands/service_apps.py +51 -0
  254. wxcli/commands/single_number_reach.py +209 -0
  255. wxcli/commands/team_memberships.py +155 -0
  256. wxcli/commands/teams.py +153 -0
  257. wxcli/commands/ucm_profile.py +42 -0
  258. wxcli/commands/update.py +219 -0
  259. wxcli/commands/user_settings.py +5116 -0
  260. wxcli/commands/video_mesh.py +1090 -0
  261. wxcli/commands/virtual_extensions.py +502 -0
  262. wxcli/commands/virtual_line_settings.py +2072 -0
  263. wxcli/commands/webhooks.py +176 -0
  264. wxcli/commands/wholesale_billing_reports.py +147 -0
  265. wxcli/commands/wholesale_provisioning.py +523 -0
  266. wxcli/commands/workspace_locations.py +339 -0
  267. wxcli/commands/workspace_metrics.py +103 -0
  268. wxcli/commands/workspace_personalization.py +70 -0
  269. wxcli/commands/workspace_settings.py +3347 -0
  270. wxcli/commands/workspaces.py +279 -0
  271. wxcli/commands/xapi.py +114 -0
  272. wxcli/config.py +139 -0
  273. wxcli/errors.py +77 -0
  274. wxcli/main.py +210 -0
  275. wxcli/migration/CLAUDE.md +106 -0
  276. wxcli/migration/__init__.py +1 -0
  277. wxcli/migration/advisory/CLAUDE.md +196 -0
  278. wxcli/migration/advisory/__init__.py +46 -0
  279. wxcli/migration/advisory/advisor.py +107 -0
  280. wxcli/migration/advisory/advisory_patterns.py +2552 -0
  281. wxcli/migration/advisory/recommendation_rules.py +835 -0
  282. wxcli/migration/cucm/CLAUDE.md +74 -0
  283. wxcli/migration/cucm/__init__.py +5 -0
  284. wxcli/migration/cucm/connection.py +265 -0
  285. wxcli/migration/cucm/discovery.py +225 -0
  286. wxcli/migration/cucm/extractors/__init__.py +1 -0
  287. wxcli/migration/cucm/extractors/announcements.py +92 -0
  288. wxcli/migration/cucm/extractors/base.py +90 -0
  289. wxcli/migration/cucm/extractors/device_profiles.py +98 -0
  290. wxcli/migration/cucm/extractors/devices.py +193 -0
  291. wxcli/migration/cucm/extractors/e911.py +103 -0
  292. wxcli/migration/cucm/extractors/features.py +309 -0
  293. wxcli/migration/cucm/extractors/helpers.py +73 -0
  294. wxcli/migration/cucm/extractors/informational.py +295 -0
  295. wxcli/migration/cucm/extractors/locations.py +221 -0
  296. wxcli/migration/cucm/extractors/moh.py +100 -0
  297. wxcli/migration/cucm/extractors/remote_destinations.py +96 -0
  298. wxcli/migration/cucm/extractors/routing.py +493 -0
  299. wxcli/migration/cucm/extractors/shared_lines.py +146 -0
  300. wxcli/migration/cucm/extractors/templates.py +229 -0
  301. wxcli/migration/cucm/extractors/tier4.py +173 -0
  302. wxcli/migration/cucm/extractors/users.py +240 -0
  303. wxcli/migration/cucm/extractors/voicemail.py +243 -0
  304. wxcli/migration/cucm/extractors/workspaces.py +88 -0
  305. wxcli/migration/cucm/unity_connection.py +304 -0
  306. wxcli/migration/execute/CLAUDE.md +372 -0
  307. wxcli/migration/execute/__init__.py +303 -0
  308. wxcli/migration/execute/batch.py +277 -0
  309. wxcli/migration/execute/dependency.py +483 -0
  310. wxcli/migration/execute/engine.py +964 -0
  311. wxcli/migration/execute/handlers.py +2232 -0
  312. wxcli/migration/execute/planner.py +1939 -0
  313. wxcli/migration/execute/runtime.py +571 -0
  314. wxcli/migration/export/CLAUDE.md +49 -0
  315. wxcli/migration/export/__init__.py +8 -0
  316. wxcli/migration/export/csv_export.py +126 -0
  317. wxcli/migration/export/deployment_plan.py +479 -0
  318. wxcli/migration/export/json_export.py +60 -0
  319. wxcli/migration/models.py +941 -0
  320. wxcli/migration/phone_models.py +50 -0
  321. wxcli/migration/preflight/CLAUDE.md +52 -0
  322. wxcli/migration/preflight/__init__.py +89 -0
  323. wxcli/migration/preflight/checks.py +911 -0
  324. wxcli/migration/preflight/runner.py +293 -0
  325. wxcli/migration/rate_limiter.py +144 -0
  326. wxcli/migration/report/CLAUDE.md +245 -0
  327. wxcli/migration/report/__init__.py +7 -0
  328. wxcli/migration/report/appendix.py +2437 -0
  329. wxcli/migration/report/assembler.py +183 -0
  330. wxcli/migration/report/charts.py +263 -0
  331. wxcli/migration/report/executive.py +776 -0
  332. wxcli/migration/report/explainer.py +704 -0
  333. wxcli/migration/report/helpers.py +74 -0
  334. wxcli/migration/report/ingest.py +152 -0
  335. wxcli/migration/report/notice_templates.py +192 -0
  336. wxcli/migration/report/score.py +375 -0
  337. wxcli/migration/report/styles.py +1052 -0
  338. wxcli/migration/report/user_diff.py +1052 -0
  339. wxcli/migration/report/user_notice.py +425 -0
  340. wxcli/migration/state.py +139 -0
  341. wxcli/migration/store.py +860 -0
  342. wxcli/migration/transform/CLAUDE.md +107 -0
  343. wxcli/migration/transform/__init__.py +12 -0
  344. wxcli/migration/transform/analysis_pipeline.py +453 -0
  345. wxcli/migration/transform/analyzers/__init__.py +142 -0
  346. wxcli/migration/transform/analyzers/css_permission.py +189 -0
  347. wxcli/migration/transform/analyzers/css_routing.py +335 -0
  348. wxcli/migration/transform/analyzers/device_compatibility.py +122 -0
  349. wxcli/migration/transform/analyzers/dn_ambiguity.py +131 -0
  350. wxcli/migration/transform/analyzers/duplicate_user.py +221 -0
  351. wxcli/migration/transform/analyzers/extension_conflict.py +173 -0
  352. wxcli/migration/transform/analyzers/feature_approximation.py +227 -0
  353. wxcli/migration/transform/analyzers/layout_overflow.py +174 -0
  354. wxcli/migration/transform/analyzers/location_ambiguity.py +184 -0
  355. wxcli/migration/transform/analyzers/missing_data.py +300 -0
  356. wxcli/migration/transform/analyzers/selective_call_handling.py +394 -0
  357. wxcli/migration/transform/analyzers/shared_line.py +170 -0
  358. wxcli/migration/transform/analyzers/voicemail_compatibility.py +267 -0
  359. wxcli/migration/transform/analyzers/workspace_license.py +212 -0
  360. wxcli/migration/transform/cross_reference.py +1136 -0
  361. wxcli/migration/transform/cucm_pattern.py +246 -0
  362. wxcli/migration/transform/decisions.py +301 -0
  363. wxcli/migration/transform/e164.py +145 -0
  364. wxcli/migration/transform/engine.py +256 -0
  365. wxcli/migration/transform/mappers/CLAUDE.md +123 -0
  366. wxcli/migration/transform/mappers/__init__.py +76 -0
  367. wxcli/migration/transform/mappers/announcement_mapper.py +122 -0
  368. wxcli/migration/transform/mappers/base.py +190 -0
  369. wxcli/migration/transform/mappers/button_template_mapper.py +186 -0
  370. wxcli/migration/transform/mappers/call_forwarding_mapper.py +228 -0
  371. wxcli/migration/transform/mappers/call_settings_mapper.py +144 -0
  372. wxcli/migration/transform/mappers/css_mapper.py +868 -0
  373. wxcli/migration/transform/mappers/dect_mapper.py +367 -0
  374. wxcli/migration/transform/mappers/device_layout_mapper.py +289 -0
  375. wxcli/migration/transform/mappers/device_mapper.py +227 -0
  376. wxcli/migration/transform/mappers/device_profile_mapper.py +190 -0
  377. wxcli/migration/transform/mappers/device_settings_mapper.py +464 -0
  378. wxcli/migration/transform/mappers/e911_mapper.py +129 -0
  379. wxcli/migration/transform/mappers/ecbn_mapper.py +263 -0
  380. wxcli/migration/transform/mappers/executive_assistant_mapper.py +156 -0
  381. wxcli/migration/transform/mappers/feature_mapper.py +1179 -0
  382. wxcli/migration/transform/mappers/line_mapper.py +310 -0
  383. wxcli/migration/transform/mappers/location_mapper.py +235 -0
  384. wxcli/migration/transform/mappers/moh_mapper.py +114 -0
  385. wxcli/migration/transform/mappers/monitoring_mapper.py +221 -0
  386. wxcli/migration/transform/mappers/receptionist_mapper.py +245 -0
  387. wxcli/migration/transform/mappers/routing_mapper.py +821 -0
  388. wxcli/migration/transform/mappers/snr_mapper.py +201 -0
  389. wxcli/migration/transform/mappers/softkey_mapper.py +205 -0
  390. wxcli/migration/transform/mappers/user_mapper.py +264 -0
  391. wxcli/migration/transform/mappers/voicemail_group_mapper.py +286 -0
  392. wxcli/migration/transform/mappers/voicemail_mapper.py +514 -0
  393. wxcli/migration/transform/mappers/workspace_mapper.py +464 -0
  394. wxcli/migration/transform/normalizers.py +2008 -0
  395. wxcli/migration/transform/pattern_converter.py +106 -0
  396. wxcli/migration/transform/pipeline.py +271 -0
  397. wxcli/migration/transform/rules.py +255 -0
  398. wxcli/org_health/CLAUDE.md +63 -0
  399. wxcli/org_health/__init__.py +7 -0
  400. wxcli/org_health/analyze.py +93 -0
  401. wxcli/org_health/checks.py +458 -0
  402. wxcli/org_health/collector.py +62 -0
  403. wxcli/org_health/models.py +78 -0
  404. wxcli/org_health/report.py +300 -0
  405. wxcli/output.py +101 -0
  406. wxcli-1.2.0.dist-info/METADATA +505 -0
  407. wxcli-1.2.0.dist-info/RECORD +413 -0
  408. wxcli-1.2.0.dist-info/WHEEL +5 -0
  409. wxcli-1.2.0.dist-info/entry_points.txt +2 -0
  410. wxcli-1.2.0.dist-info/licenses/LICENSE +191 -0
  411. wxcli-1.2.0.dist-info/scm_file_list.json +751 -0
  412. wxcli-1.2.0.dist-info/scm_version.json +8 -0
  413. 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