Log inSign up
Home
Webex Contact Center
  • Overview
  • Service Apps
  • API REFERENCE
  • AI Assistant for Developers
  • Changelog

Webex Contact Center

Widget Data and Desktop Layout

Connect custom widgets to Desktop data through STORE properties and JSON layout configuration.

anchorData Provider—Widget Properties and Attributes

anchor

Note: To receive real-time data through properties or attributes inside a custom widget, it has to be assigned appropriately in the layout JSON configuration by the administrator. For more information on JSON layout, see Create custom desktop layout in Webex Help Center.

In addition to accessing data through JavaScript SDK subscribers, you can request data to be passed also through properties or attributes. If your component is built to react to changes in property or attribute, you will always get updated data this way from the single source of truth, the Desktop. We call it a data provider.

Currently, we have a single data provider under the key STORE. Below, you will find a breakdown of all possible data and type definitions that is available through the STORE key:

  • STORE.agent
  • STORE.agentContact
  • STORE.app
  • STORE.auth
  • STORE.generalNotifications
  • STORE.dynamic
STORE.agent (Agent Profile Attributes)
NameTypeDescription
STORE.agent.agentIdStringUnique identifier of the agent.
STORE.agent.agentNameStringName of the agent.
STORE.agent.agentPhotoStringThe URL of the agent picture in JPG format.
STORE.agent.allowConsultToQueueBooleanDetermines whether to consult an active call to a queue. The default value is false.
- True—Enables the consult call to a queue.
- False—Disables the consult call to a queue.
STORE.agent.dnNumberStringThe dial number to the entry point entered by an agent in the Station Credentials dialog box.
STORE.agent.enterpriseIdStringUnique database identifier of the tenant.
STORE.agent.agentEmailIdStringEmail ID of the agent.
STORE.agent.channelsObjectThe number of contacts that an agent can handle on each media channel at a given time. The media channels include chat, email, voice, and social.
-->voiceCountNumberThe number of voice calls that an agent can handle at a given time. The default value is 0.
-->chatCountNumberThe number of chat requests that an agent can handle at a given time. The default value is 0.
-->emailCountNumberThe number of email requests that an agent can handle at a given time. The default value is 0.
–>socialCountNumberThe number of social channel requests that an agent can handle at a given time. The social channels include Facebook Messenger and SMS. The default value is 0.
STORE.agent.idleCodesArrayThe idle reason codes indicate that the agent is not ready to accept any routed requests. Example: Idle, Coffee break, Meeting, Tea. For more information, see STORE.agent.idleCodes.
STORE.agent.idleStatusTimestampDateThe idle state timestamp which displays the current time and the total time that an agent was in the idle state.
For more information on timer details, see the Understand agent states in Webex Help Center.
STORE.agent.isAgentAvailableAfterOutdialBooleanDetermines whether an agent is available or not after the outdial call ends. The default value is false.
- True—The agent is available after the outdial call ends, and the agent state is set as Available.
- False—The agent is not available after the outdial call ends, and the agent state is set as Idle.
STORE.agent.isAdhocDialingEnabledBooleanDetermines whether an agent can use a phone number that is not stated in the enterprise address book to make an outdial call. The default value is false.
- True—An agent is allowed to use phone numbers (using the Dialpad) that are not stated in the enterprise address book to make an outdial call.
- False—An agent is allowed to use only the phone numbers that are stated in the enterprise address book to make an outdial call.
STORE.agent.isCampaignManagementEnabledBooleanDetermines whether the outbound campaign call feature is enabled or not. The default value is false.
- True—Enables the outbound campaign call feature for an agent.
- False—Disables the outbound campaign call feature for an agent.
STORE.agent.isEndCallEnabledBooleanDetermines whether an agent can end a voice call or not. The default value is false.
- True—Enables an agent to end a voice call.
- False—Disables an agent to end a voice call, and the agent must ask the customer to end the voice call.
STORE.agent.isEndConsultEnabledBooleanDetermines whether an agent can end a consult call or not. The default value is true.
- True—Enables an agent to end a consult call.
- False—Disables an agent to end a consult call.
STORE.agent.isOutboundEnabledForAgentBooleanDetermines whether an agent is allowed to make an outdial call or not. The default value is false.
- True—Enables an agent to make an outdial call.
- False—Disables an agent to make an outdial call.
STORE.agent.isOutboundEnabledForTenantBooleanDetermines whether the outdial feature is enabled for a tenant or not. The default value is false.
- True—Enables the outdial feature for a tenant.
- False—Disables the outdial feature for a tenant.
STORE.agent.campaignManagerAdditionalInfoStringAdditional details of the campaign manager.
STORE.agent.siteIdStringUnique identifier of the site.
STORE.agent.usesOtherDNBooleanDetermines whether the Dial Number (DN) of any other format is allowed or not.
- True—Allows any other format.
- False—Allows only the US format.
STORE.agent.outDialEpStringRefers to the outdial entry point.
STORE.agent.outdialAniListObjectOptions of the outdial ANI list.
-->idStringUnique Identifier for the outdial ANI.
-->nameStringName of the outdial ANI.
STORE.agent.profileTypeStringThe routing type associated with an agent's multimedia profile. The routing type allows an agent to handle number of contacts for a media channel at a given time. The routing types include Blended, Blended Real-time, and Exclusive.
STORE.agent.subStatusStringDeprecated. Global agent availability state. Not valid with granular state control. Where granular state is used, consume agent state from STORE.agent.channelsStatesMap instead. Legacy values: Available; Idle states configured by the administrator; RONA (Redirection on No Answer).
STORE.agent.subStatusChangeTimestampDateDeprecated. Global agent availability state timestamp. Not valid with granular state control. Consume agent state and stateChangeTimestamp from STORE.agent.channelsStatesMap (per channel) instead.
STORE.agent.channelsStatesMapObjectMap of channel-level agent state details for the new granular state feature. Keys are channel types (for example, telephony, chat, email, social). Each value is an object with the same shape as agentChannelStateDetail (see below). With granular state control, consume agent state from this map instead of the global subStatus and subStatusChangeTimestamp.
-->[channelType].agentStateStringAgent state for this channel (for example, Available, Idle, Engaged, WrapUp).
-->[channelType].stateChangeTimestampNumberEpoch time (seconds) when the agent's state last changed for this channel. Use for state duration and timers.
-->[channelType].pendingIdleBooleanWhether the agent has a pending idle state for this channel.
-->[channelType].auxCodeIdStringAuxiliary (idle) code ID for this channel, or "0" when not idle.
-->[channelType].availableChannelCountNumberNumber of channels of this type that are available.
-->[channelType].totalChannelCountNumberTotal number of channels of this type.
-->[channelType].stateChangeReasonStringReason for the last state change (for example, Break-over, Break).
-->[channelType].lastIdleCodeChangeTimestampNumberEpoch time (seconds) when the idle code last changed for this channel.
-->[channelType].manuallyAssignedChannelCountNumber or NullManually assigned channel count; may be null.
-->[channelType].manuallyAssignedAvailableChannelCountNumber or NullManually assigned available channel count; may be null.
-->[channelType].totalManuallyAssignedChannelCountNumber or NullTotal manually assigned channel count; may be null.
STORE.agent.teamIdStringUnique identifier of the team.
STORE.agent.teamNameStringName of the team.
STORE.agent.wrapUpDataObjectOptions of the wrap up data. For more information, see STORE.agent.wrapUpData.
STORE.agent.isTimeoutDesktopInactivityEnabledStringDetermines whether the Desktop Inactivity Timeout feature is enabled or not. The default value is No.
- Yes—Enables the Desktop Inactivity Timeout feature.
- No—Disables the Desktop Inactivity Timeout feature.
STORE.agent.timeoutDesktopInactivityMinsStringDesktop inactivity timeout value in minutes. The value ranges from 3 to 10000 minutes. The administrator defines the timeout value in the Management Portal. For more information, see Settings in the Cisco Webex Contact Center Setup and Administration Guide.

Breaking change (granular state): STORE.agent.subStatus (global status) and STORE.agent.subStatusChangeTimestamp are not valid with granular state control. Start consuming agent state from STORE.agent.channelsStatesMap for status and stateChangeTimestamp per channel type. Listen to the eAgentChannelStateChanged event (instead of updated) for state changes when using the granular state APIs (for example, stateChangeV2).

STORE.agent.idleCodes
NameTypeDescription
isSystemBooleanDetermines whether the entity is generated by the system or configured by the administrator.
- True—Entity is generated by the system.
- False—Entity is configured by the administrator.
nameStringName of the entity.
idStringUnique Identifier for the entity.
isDefaultBooleanDetermines whether the idle code is the default value or not.
- True—Default idle code is displayed when an agent signs in.
- False—Default idle code is not displayed when an agent signs in.
STORE.agent.wrapUpData
NameTypeDescription
wrapUpPropsObjectOptions of the wrap up property.
-->autoWrapupBoolean or UndefinedDetermines whether the auto wrap up is enabled or not.
- True—The auto wrap up is enabled.
- False—The auto wrap up is disabled.
-->autoWrapupIntervalNumber or UndefinedIndicates the count down time that is left before the interaction is auto wrapped up.
-->wrapUpReasonListArrayThe array of objects. For more information, see wrapUpReasonList.
-->interactionIdStringUnique identifier for the user interaction.
-->allowCancelAutoWrapupBoolean or UndefinedDetermines whether an agent can cancel the Desktop from wrapping up automatically.
- True—Enables an agent to cancel the auto wrap up time and extend the wrap up time.
- False—Disables an agent to cancel the auto wrap up time and extend the wrap up time.
STORE.agent.wrapUpData.wrapUpProps.wrapUpReasonList
NameTypeDescription
isSystemBooleanDetermines whether the wrap up reason is generated by the system or configured by the administrator.
- True—Wrap up reason is generated by the system.
- False—Wrap up reason is configured by the administrator.
nameStringName of the wrap up reason.
idStringUnique Identifier for the wrap up reason.
isDefaultBooleanDetermines whether the wrap up reason is the default value or not.
- True—Default wrap up reason is applied during auto wrap up.
- False—Default wrap up reason is not applied.
STORE.agentContact (Tasks/Interactions)
NameTypeDescription
STORE.agentContact.lastCompletedTaskStringUnique Identifier for the last wrapped up task.
STORE.agentContact.selectedTaskIdStringUnique Identifier for the selected task.
STORE.agentContact.interactionIdsArrayList of Unique identifiers of the user interactions.
STORE.agentContact.chatConferenceDataObjectOptions of the chat conference data. For more information, see STORE.agentContact.chatConferenceData.
STORE.agentContact.taskMapMapThe full list of tasks that are assigned to an agent at a given time. For more information, see STORE.agentContact.taskMap.
STORE.agentContact.taskSelectedObjectProvides the user interaction details of the selected task.
STORE.agentContact.chatConferenceData
NameTypeDescription
initiateConferenceChatBooleanDetermines whether an agent can start a chat conference or not.
- True—Enables an agent to start a chat conference.
- False—Disables an agent from starting a chat conference.
interactionIdStringUnique identifier for the user interaction.
destAgentIdString or NullUnique identifier of the chat conference request destination agent. The destination agent refers to another agent who joined the chat.
agentIdStringUnique identifier of the agent.
STORE.agentContact.taskMap
NameTypeDescription
TaskIdStringUnique identifier for the task.
TaskObjectOptions of an active request or task or interaction.
-->mediaResourceIdStringUnique identifier of the digital channel.
-->agentIdStringUnique identifier of the agent.
-->destAgentIdString or NullUnique identifier of the chat conference request destination agent. The destination agent refers to another agent who joined the chat.
-->trackingIdStringUnique identifier based on the notification error.
-->consultMediaResourceIdString or NullUnique identifier of the chat conference digital channel.
-->interactionObjectDetails for the user interaction. For more information, see STORE.agentContact.taskMap.Task.interaction.
-->interactionIdStringUnique identifier for the user interaction.
-->orgIdStringUnique identifier of the organization.
-->ownerString or NullUnique identifier for the agent who owns a task.
-->queueMgrStringUnique identifier for the queue manager.
-->typeStringName of the event that describes the unique notification response. The response is used by an event listener.
-->ronaTimeoutNumberIndicates the configured RONA timeout value.
Note: The maximum available time to accept a voice call request is 18 seconds. The maximum available time to accept a digital channel request is 32 seconds.
-->isConsultedBooleanDetermines whether an agent is consulted by another agent or not.
- True—Allows an agent to be consulted by another agent.
- False—Prevents an agent from being consulted by another agent.
-->isConferencingBooleanDetermines whether an agent can accept a conference request or not.
- True—Allows an agent to accept a conference request.
- False—Prevents an agent from accepting a conference request.
-->updatedByStringUnique identifier of the agent who updates the Call-Associated Data (CAD) variables of a task.
-->destinationTypeStringThe type of request to be placed. The destination type can be Agent, Queue, or DN.
-->autoResumedBooleanDetermines whether the paused call must be resumed manually.
- True—Voice call to be resumed automatically after the specified duration.
- False—User to take action on the paused voice call based on the button defined. For example, Start Recording.
-->reasonCodeString or NumberReason code for an error on the Desktop. For example, ReasonCode 26 (DC_CALLS_LIMIT_EXCEEDED)
-->reasonStringReason for an error on the Desktop. For example, ReasonCode 26 is displayed when the data center has reached the maximum limit for concurrent outdial calls.
STORE.agentContact.taskMap.Task.interaction
NameTypeDescription
mediaTypeStringThe media channel type. The possible values are telephony, social, email, and chat.
stateStringCurrent agent state.
participantsObjectMap keyed by participant ID, with details about each participant.
interactionIdStringUnique identifier for the user interaction.
orgIdStringUnique identifier of the organization.
callProcessingDetailsObjectOptions from the acceptance of an incoming call through the final disposition of the call. For more information, see callProcessingDetails.
mediaObjectOptions of the digital media. For more information, see media.
ownerString or NullUnique identifier for an agent who owns the interaction.
mediaChannelStringThe media channel type. The possible values are telephony, social, email, and chat.
contactDirectionObjectOptions of the call type from a dialer to recipient.
-->typeStringCall type from a dialer to recipient. The possible values are OUTBOUND and INBOUND.
outboundTypeString or NullType of an outdial call such as OUTDIAL, COURTESY_CALLBACK and CAMPAIGN; null for inbound interactions.
callFlowParamsObjectOptions of the call flow parameters. For more information, see callFlowParams.
callAssociatedDataObjectOptions of the Call-Associated Data (CAD) variables For more information, see callAssociatedData.
STORE.agentContact.taskMap.Task.interaction.callProcessingDetails
NameTypeDescription
aniStringThe phone number (Automatic Number Identification) of the customer in case of an inbound call. In the case of email and chat, the email ID of the customer.
dnisStringThe phone number (Dialed Number Identification) of the customer care in case of an outdial call.
tenantIdStringUnique database identifier of the tenant (organization).
QueueIdStringUnique identifier of the routing queue.
vteamIdStringUnique identifier of the virtual team.
pauseResumeEnabledStringAgent can access the Privacy Shield icon to pause and resume recording a call.
pauseDurationStringSpecifies the time, in seconds, for which the Desktop pauses the call recording. After the time has elapsed, the Desktop automatically starts recording the call.
isPausedStringIndicates whether a call recording is paused or not.
recordInProgressStringIndicates whether a call recording is in progress or not.
ctqInProgressStringIndicates whether a consult call to queue is in progress or not.
outdialTransferToQueueEnabledStringIndicates whether an outdial transfer call to queue is enabled or not.
convIvrTranscriptStringIndicates whether an IVR transcript is available for current user interaction or not.
customerNameStringName of the customer.
virtualTeamNameStringName of the virtual customer.
ronaTimeoutStringIndicates the configured RONA timeout value.
categoryStringThe value selected by a customer while initiating a chat. The administrator defines the values for an organization.
reasonStringReason for a customer to contact the contact center.
sourceNumberStringUnique identifier of a digital channel source. For example, Facebook Messenger source number.
sourcePageStringSource page of a digital channel. For example, Facebook Messenger source page.
appUserStringUnique identifier of a digital channel user. For example, Facebook Messenger user.
customerNumberStringUnique identifier of the customer.
reasonCodeString or NumberReason code associated with a reason for a customer to contact the contact center.
IvrPathStringThe Interactive Voice Response (IVR) call flow allows a customer to be routed to an appropriate queue.
fromAddressStringCustomer email ID for an incoming email.
STORE.agentContact.taskMap.Task.interaction.media
NameTypeDescription
mediaResourceIdStringUnique identifier of the digital channel.
mediaTypeStringThe media channel type. The possible values are telephony, social, email, and chat.
mediaMgrStringRefers to the media manager.
participantsArrayList of participants with details about each participant.
mTypeStringSpecifies whether the digital channel incoming request is from an original call (call between a customer and an agent who accepted a customer call) or consult call.
isHoldBooleanDetermines whether the customer call is put on hold or not.
- True—Customer is put on hold.
- False—Customer call is not put on hold.
holdTimestampNumber or NullThe timestamp displays the time when a call is put on hold.
STORE.agentContact.taskMap.Task.interaction.callFlowParams
NameTypeDescription
nameStringName of the call flow parameter.
descriptionStringDescription of the call flow parameter.
valueDataTypeStringData type of the call flow parameter value. The data types are Boolean, String, Integer, Decimal, or Date Time.
valueStringValue of the call flow parameter.
STORE.agentContact.taskMap.Task.interaction.callAssociatedData
NameTypeDescription
displayNameStringLabel for the Call-Associated Data (CAD) variable. For example, Customer Address.
nameStringKey (unique identifier) for the CAD variable.
agentEditableBooleanDetermines whether an agent can edit a CAD variable during an active call.
- True—Agent can edit a CAD variable during an active call.
- False—Agent cannot edit a CAD variable during an active call.
valueStringValue of the CAD variable.
typeStringData type of the call variable value. The CAD variable types are Boolean, String, Integer, Decimal, or Date Time.
STORE.app (Application Level)
NameTypeDescription
STORE.app.logoStringCompany logo displayed on the Desktop. Specify a URL for the company logo in the JSON layout. If you do not provide a URL, the the Webex Contact Center logo appears by default.
STORE.app.titleStringTitle displayed on the horizontal header of Desktop. The default title is Webex Contact Center.
STORE.app.darkModeBooleanDetermines whether an agent can enable or disable the dark background theme of the Desktop.
- True—Enables the dark background theme of the Desktop.
- False—Disables the dark background theme of the Desktop.

For more information on JSON layout, see Create custom desktop layout in Webex Help Center.

STORE.auth (Single Sign-On)
NameTypeDescription
STORE.auth.accessTokenStringAuthentication token used for SSO authentication.
STORE.generalNotifications (Application Notifications)
NameTypeDescription
STORE.generalNotifications.isNotificationsEnabledBooleanDetermines whether the display of notifications is enabled or disabled on the Desktop.
- True—Enables the display of notifications on the Desktop.
- False—Disables the display of notifications on the Desktop.
STORE.generalNotifications.isSilentNotificationsEnabledBooleanDetermines whether the display of visual notifications is enabled or disabled on the Desktop.
- True—Enables the display of visual notifications on the Desktop.
- False—Disables the display of visual notifications on the Desktop.
Note: Silent notifications do not display on the Desktop, but are listed in the Notification Center.
STORE.generalNotifications.countActivatedNumberThe number of active notifications displayed on the Desktop.
STORE.generalNotifications.countDeactivatedNumberThe number of notifications that are not active. The Notification Center icon displays a badge indicating the number of unread notifications displayed on the Desktop.
STORE.generalNotifications.countPendingNumberThe number of active notifications that are displayed on the Desktop before the notification pop-up is closed.
STORE.generalNotifications.countAddedNumberThe total number of all notifications displayed on the Desktop.
STORE.dynamic (Connector View or Desktop View)
NameTypeDescription
STORE.dynamic.isConnectorBooleanDetermines whether the Desktop is loaded in the connector view (smaller viewing area) or desktop view (larger viewing area).
- True—Desktop is loaded in the connector view (smaller viewing area).
- False—Desktop is loaded in the desktop view (larger viewing area).
JSON Layout
{
"widgets": {
    "my-component": {
        "comp": "my-custom-component",
        "properties": {
            "agentDnNumber": "$STORE.agent.dnNumber",
            "channelsStatesMap": "$STORE.agent.channelsStatesMap",
            "teamId": "$STORE.agent.teamId"
        }
    }
}
}

Note: With granular state control, the global $STORE.agent.subStatus is not valid. Consume agent state from $STORE.agent.channelsStatesMap instead.

NameTypeDescription
widgetsObjectRefers to custom widgets.
my-componentObjectRefers to custom components.
compStringRepresents the name of the custom HTML element (known as Web Component or any other element).
propertiesObjectSpecifies the properties that you need to pass for a Web Component.
-->agentDnNumberStringDial Number (DN) used for inbound and outbound calls.
-->channelsStatesMapObjectMap of channel-level agent state (keyed by channel type). With granular state control, consume agent state from this; global subStatus is not valid. Use for agent status and stateChangeTimestamp per channel.
-->teamIdStringUnique identifier of the team.

For more information on JSON layout, see Create custom desktop layout in Webex Help Center.

anchorUpdate Dynamic Widget Title

anchor

Updates the wrapper title using the JavaScript SDK for the dynamic web component widget.

Example

const e = new CustomEvent("unique-id-to-update-title", {
  bubbles: true,
  detail: {
    title: "new title"
  }
});
window.dispatchEvent(e);

In the CustomEvent, ensure that you use the same unique identifier (unique-id-to-update-title) specified in the JSON desktop layout. For more information on JSON layout, see Create custom desktop layout in Webex Help Center.

To update the iframe-based widget title, the iframe must share Desktop’s origin: the same scheme, hostname, and port.

Example

<button id="customEvent" type="button">New Title</button>
<script>
  // This iframe must have the same origin as Desktop.
  // Match the event name configured in the Desktop layout.
  const titleEventName = "unique-id-to-update-title";
  document.querySelector("#customEvent").addEventListener("click", () => {
    const event = new window.parent.CustomEvent(titleEventName, {
      bubbles: true,
      detail: { title: "new title" }
    });
    window.parent.dispatchEvent(event);
  });
</script>

anchorRelated Pages

anchor
  • Agent Desktop overview
  • Desktop SDK Reference

anchorVerify Data Bindings

anchor

Load the widget with the JSON layout and confirm that its configured properties receive the expected STORE values. Change a relevant agent or interaction value and confirm that the widget updates. If a binding stays empty, check the exact STORE path and property name. For title updates, confirm that the layout event identifier matches the event dispatched by the widget.

In This Article
  • Data Provider—Widget Properties and Attributes
  • Update Dynamic Widget Title
  • Related Pages
  • Verify Data Bindings

Connect

Support

Developer Community

Developer Events

Contact Sales

Handy Links

Webex Ambassadors

Webex App Hub

Resources

Open Source Bot Starter Kits

Download Webex

DevNet Learning Labs

Terms of Service

Privacy Policy

Cookie Policy

Trademarks

© 2026 Cisco and/or its affiliates. All rights reserved.