# Setting up last agent and preferred agent routing in Webex Contact Center

Systems: Webex Contact Center

For Webex Contact Center administrators and flow developers who edit flows in Flow Designer and connectors in Control Hub.

Canonical: https://warmtransfer.net/guides/wxcc-preferred-agent-routing-setup

Last verified: 2026-10-01

Agent-based Routing in Webex Contact Center routes or queues a contact directly to a specified preferred agent, and the Queue To Agent flow activity is what implements it[^1]. The last-agent use case routes a returning caller to the last agent who handled them, the preferred-agent use case sends contacts to a dedicated agent or relationship executive, and a flow can chain Queue To Agent to Queue Contact so the contact goes through a regular queue when no preferred agent is available[^54][^55][^30].

## Before you start

- Flow Designer access requires a Premium Agent License plus a user profile with rights to edit flows[^57].
- Connectors are created in Control Hub under Services > Contact Center > Tenant Settings > Integrations > Connectors[^56][^8].
- Identify the entry point and flow you will change, because an Entry Point is the object that associates an inbound telephone number with a Webex CC flow[^58].
- Identify a reporting queue and a recovery queue, because Queue To Agent reports the contact against a reporting queue chosen by queue ID and sends missed, rejected or undeliverable contacts to a recovery queue[^41][^40].
- Identify the regular queue that the fallback Queue Contact activity will target[^30].
- Count the variables already in the flow, because a flow can contain at most 30 variables in total, including global variables and custom flow variables[^59].
- For a last-agent lookup, note that the Search API's taskDetails query filters origin against a phone number in E.164 form, such as +12344565678[^15], and that Webex Contact Center maps only PSTN numbers in globalized +E.164 format to entry points[^60].
- For a CRM lookup, note that an organisation can add up to 10 custom connectors[^9].
- Digital channels for Webex Contact Center are configured through Webex Connect, and their flows are built in Webex Connect rather than in Flow Designer[^61].

See also [Calling an external API from a Webex Contact Center flow](https://warmtransfer.net/knowledge/wxcc-http-request-setup).

See also [Setting up callbacks in Webex Contact Center](https://warmtransfer.net/knowledge/wxcc-callback-setup).

See also [Error path behaviour across Flow Designer activities](https://warmtransfer.net/knowledge/webex-cc-flow-error-paths).

## What changes by situation

- Where does the preferred agent come from? The last agent who handled this caller; An owner recorded in a CRM or another external system.
- If the preferred agent is not available right now, how long should the caller wait? Do not wait and go straight to the queue; Wait a fixed number of seconds and then go to the queue; Wait for the preferred agent however long it takes.

## Step 1: Confirm the feature and plan the mapping

### Do

Cisco's 2021 Setup and Administration Guide describes Agent-based Routing as an optional feature[^19]. Queue To Agent returns failure code 4, FEATURE_NOT_ENABLED, when the Agent-based Routing feature is not enabled[^35][^32]. Decide which external system holds the contact-to-agent mapping, because for both the preferred-agent and last-agent use cases Cisco says the contact details and the mapping are stored outside Webex Contact Center[^22]. A contact can be mapped to one or more preferred agents[^23].

### Verify

Queue To Agent writes QueueToAgent.FailureCode as an output variable[^38], and failure code 4 means the Agent-based Routing feature is not enabled[^35]. Suggested check: during the end-to-end test calls, confirm the stored failure code never shows the feature-disabled value.

## Step 2: Choose the reporting queue and the recovery queue

### Do

Pick an existing queue as the reporting queue: its configuration, such as recording and default music in queue, applies to the preferred-agent contact, and the contact is reported against it[^46][^41]. Pick a recovery queue for contacts that Queue To Agent fails to deliver, that the agent does not answer, or that the agent rejects[^40]. Choose a recovery queue whose agents can take any of these callers, because in the recovery queue the contact goes to the longest available agent and skills-based routing is not supported[^45]. Pick the regular queue that a chained Queue Contact activity will use when no preferred agent is available[^30].

### Verify

Queue To Agent failure code 5, INVALID_VTEAM_ERROR, indicates an invalid reporting or recovery queue[^32]. Suggested check: when you configure the preferred-agent activity, confirm both chosen queues appear in its queue drop-downs.

## Step 3: Create the connector the lookup will use

**The last agent who handled this caller**

### Do

In Control Hub go to Services > Contact Center > Tenant Settings > Integrations > Connectors, choose the Webex Contact Center card, give the connector a unique name, and tick the authorisation checkbox[^56]. Read-Only Access allows GET API calls[^5], and Read-Write Access allows GET, POST, PUT, UPDATE and DELETE calls[^6]. WarmTransfer's reading of the sources is that the connector article does not say which access level the Search API needs, so a Search call sent as POST may need a Read-Write connector and should be tested before you rely on Read-Only[^4].

### Verify

In Cisco's developer blog example, the HTTP Request activity has Use Authenticated Endpoint turned on and the Webex Contact Center connector selected[^2]. Suggested check: open a lookup activity in the flow editor, turn on the authenticated endpoint option, and confirm the new connector appears in the connector list.

### Rollback

Suggested rollback: remove the connector from every flow that uses it, then delete it.

**An owner recorded in a CRM or another external system**

### Do

In Control Hub go to Services > Contact Center > Tenant Settings > Integrations > Connectors and create a custom connector whose Resource Domain URL starts with https://[^8]. Use Basic Authentication, the default, or OAuth 2.0 with client credentials and a certificate, client credentials and a client secret, or password grant[^7]. An OAuth 2.0 custom connector requires Client ID, Client Secret, Token URL and Scope fields[^62]. Check how many custom connectors already exist, because an organisation can add up to 10[^9].

### Verify

The HTTP Request activity has Use Authenticated Endpoint and Connector fields[^17]. Suggested check: open a lookup activity in the flow editor, turn on the authenticated endpoint option, and confirm the new custom connector appears in the connector list.

### Rollback

Suggested rollback: delete the custom connector once no flow references it. An organisation can add up to 10 custom connectors, so deleting an unused one leaves room under that limit[^9].

## Step 4: Add the lookup HTTP Request to the flow

**The last agent who handled this caller**

### Do

Cisco says the preferred-agent lookup is done with the HTTP Request flow activity[^21], and Cisco's developer blog says the Search API, called from Flow Designer, can look up the last agent a caller spoke with so the flow can queue the caller to that agent[^50]. Configure the HTTP Request as in Cisco's blog example: Use Authenticated Endpoint on, the Webex Contact Center connector selected, and /search as the Request Path[^2]. Write the body as a taskDetails GraphQL query, which runs over Customer Session Records and Customer Activity Records[^16]. Include the mandatory from and to arguments as Long epoch timestamps[^13]. Filter origin with the equals operator against the caller's number in E.164 form[^15]. Select lastAgent with its id subfield[^14]. When a query fetches AAR or CAR data, the span between from and to cannot exceed 30 days[^12]. WarmTransfer's reading of the sources is that the last-agent lookup should keep from-to within 30 days and sort or limit to the most recent task[^51]. Use Parse Settings, an Output Variable and a Path Expression, to put the agent ID into a flow variable[^18]. Flow Designer's templates include one called "Last agent routing template", which you can start from[^52].

### Verify

The origin filter compares against a phone number in E.164 form, such as +12344565678[^15]. Suggested check: in a test call from a number that has called before, confirm the parsed variable holds an agent ID, and confirm it is empty for a number that has never called. Suggested check: confirm the caller number in the flow uses the same format as the stored origin value.

### Rollback

Suggested rollback: delete the lookup activity and republish the flow.

**An owner recorded in a CRM or another external system**

### Do

Cisco says the preferred-agent lookup is done with the HTTP Request flow activity, which retrieves the mapping from an external application[^21]. Turn on Use Authenticated Endpoint, select the CRM connector, and set the Request Path, Method and Content Type for the CRM's lookup endpoint[^17]. Use Parse Settings, an Output Variable and a Path Expression, to put the owner into a flow variable[^18]. Store either the agent's email address or ID, because the Queue To Agent Agent Variable holds one of the two[^28]. Review the Response Timeout and Number of Retries fields on the activity[^17].

### Verify

Suggested check: in a test call for a known customer record, confirm the parsed variable holds the expected owner.

### Rollback

Suggested rollback: delete the lookup activity and republish the flow.

## Step 5: Configure the Queue To Agent activity

**The last agent who handled this caller**

### Do

Add Queue To Agent after the lookup and set Agent Variable to the flow variable filled in step 4[^28]. Agent Lookup Type is either Email or ID[^36]. We infer that a last-agent flow should set Agent Lookup Type to ID, because the Search API returns the last agent as lastAgent.id[^20]. Select the reporting queue by queue ID from its drop-down[^41], and select the recovery queue chosen in step 2[^40]. Set a static priority from P1, the highest, to P9, the lowest, which ranks contacts queued to the same agent[^42]. Alternatively, use a flow variable that returns an integer from 1 to 9[^44].

### Verify

Queue To Agent writes QueueToAgent.AgentId and QueueToAgent.FailureCode[^38], and failure code 2 is AGENT_NOT_FOUND[^32]. Suggested check: place a test call from a returning number and confirm the agent output holds the agent who last handled that number.

### Rollback

Suggested rollback: remove the activity and reconnect the lookup output to your existing queueing activity.

**An owner recorded in a CRM or another external system**

### Do

Add Queue To Agent after the lookup and set Agent Variable to the flow variable filled in step 4[^28]. Set Agent Lookup Type to Email or ID to match what the CRM returns[^36]. Select the reporting queue by queue ID from its drop-down[^41], and select the recovery queue chosen in step 2[^40]. Set a static priority from P1, the highest, to P9, the lowest[^42], or a flow variable that returns an integer from 1 to 9[^44]. If the CRM can return a second owner, chain a second Queue To Agent activity for that agent, because a flow can chain Queue To Agent activities to try consecutive preferred agents[^29].

### Verify

Queue To Agent writes QueueToAgent.AgentId and QueueToAgent.FailureCode[^38], and failure code 2 is AGENT_NOT_FOUND[^32]. Suggested check: place a test call for a known customer and confirm the agent output holds the owner the external system names. Suggested check: if the agent is not found, compare the email address or ID stored in the external system with the agent's record.

### Rollback

Suggested rollback: remove the activity or activities and reconnect the lookup output to your existing queueing activity.

## Step 6: Set the parking behaviour

**Do not wait and go straight to the queue**

### Do

Leave the "Park Contact if Agent is unavailable" toggle off[^39]. With the toggle off, a contact whose preferred agent is unavailable fails to reach the agent[^37], and Queue To Agent takes its failure path[^33].

### Verify

Failure code 1 is AGENT_UNAVAILABLE, and failure code 6, AGENT_BUSY, means the agent is available but already engaged in another call[^32][^34]. Suggested check: with the preferred agent not available, place a test call and confirm the contact leaves the preferred-agent activity by its failure path.

**Wait a fixed number of seconds and then go to the queue**

### Do

Turn the "Park Contact if Agent is unavailable" toggle on, which parks the contact against the preferred agent until that agent becomes available[^39]. WarmTransfer's reading of the sources is that a timed fallback can be built by parking the contact with Queue To Agent, playing music for a set Music Duration, and then running Queue Contact[^53].

### Verify

Suggested check: with the preferred agent not available, place a test call and confirm the contact is parked rather than failed, and that the activities after the preferred-agent activity run.

### Rollback

Suggested rollback: turn the park toggle off and republish the flow.

**Wait for the preferred agent however long it takes**

### Do

Turn the "Park Contact if Agent is unavailable" toggle on[^39]. If the preferred agent is unavailable and the park option is selected, the contact is parked and waits for that agent to become available[^26]. WarmTransfer's reading of the sources is that none of them gives a maximum park time, so parking with no flow-side timer may leave a caller waiting as long as the preferred agent stays unavailable[^25].

### Verify

Suggested check: confirm the business has accepted an open-ended wait for these callers before going live. Suggested check: with the preferred agent not available, place a test call, confirm it stays parked, then make the agent available and confirm the call is offered to them.

### Rollback

Suggested rollback: turn the park toggle off and republish the flow.

## Step 7: Wire the fallback to the queue

**Do not wait and go straight to the queue**

### Do

Connect the Queue To Agent failure path to a Queue Contact activity that targets your regular queue[^30][^33]. Connect the HTTP Request and Queue To Agent error-handling paths to the same Queue Contact, because an activity with no error handling path configured falls back to the path defined in the OnGlobalError event handler[^63]. The Undefined Error node is not present on the HTTP Request activity[^64]. Field reports suggest the activity set uses at least 5 label conventions for an outcome, so check each activity's own port names[^65].

### Verify

Suggested check: run the unknown-caller, logged-out-agent and unavailable-agent tests and confirm each ends in the regular queue.

### Rollback

Suggested rollback: remove the added connections, but leave the failure path connected to a valid destination.

**Wait a fixed number of seconds and then go to the queue**

### Do

After Queue To Agent, add a Play Music activity and set Music Duration to the wait you chose, in seconds[^27]. Then add a Queue Contact activity that targets your regular queue[^30]. WarmTransfer's reading of the sources is that Cisco documents this chaining and the duration setting but not how Queue Contact treats a contact that is still parked against an agent, so treat the design as unproven until the step 10 tests pass[^53]. Connect the failure path to the same Queue Contact, because it is still taken when the variable lookup cannot find the preferred agent[^33]. Connect the HTTP Request and Queue To Agent error-handling paths there too, because an activity with no error handling path configured falls back to the OnGlobalError event handler path[^63]. Field reports suggest the activity set uses at least 5 label conventions for an outcome, so check each activity's own port names[^65].

### Verify

Suggested check: with the preferred agent not available, confirm the caller hears music for the chosen wait and then reaches an agent in the regular queue. Suggested check: make the preferred agent available partway through the music and confirm that agent gets the call.

### Rollback

Suggested rollback: remove the music and fallback queue activities, then turn parking off as in the no-wait option.

**Wait for the preferred agent however long it takes**

### Do

The reporting queue's configuration, such as default music in queue, applies to the preferred-agent contact, so set the parked caller's music on that queue[^46]. Connect the Queue To Agent failure path, which is taken when the variable lookup cannot find the preferred agent, to a Queue Contact activity that targets your regular queue[^33][^30]. Connect the HTTP Request and Queue To Agent error-handling paths there too, because an activity with no error handling path configured falls back to the OnGlobalError event handler path[^63]. Contacts that the agent does not answer or rejects go to the recovery queue without extra wiring[^40].

### Verify

Suggested check: confirm an unknown caller lands in the regular queue, and a parked caller hears music until the preferred agent is free.

### Rollback

Suggested rollback: remove the added connections and activities, then turn parking off.

## Step 8: Check how long the preferred agent rings

### Do

Review the RONA (Redirection on No Answer) timeout, which is set at tenant level in Control Hub under Services > Contact Center > Tenant settings > Desktop[^49]. For telephony it defaults to 18 seconds, with a minimum of 1 second and a maximum of 120 seconds[^48]. WarmTransfer's reading of the sources is that the RONA timeout is the most likely bound on how long a preferred agent rings before the contact moves to the recovery queue[^47].

### Verify

Suggested check: during the end-to-end tests, time an unanswered offer to the preferred agent and compare it with the configured timeout.

### Rollback

Suggested rollback: restore the previous timeout value.

## Step 9: Capture the outcome for reporting and troubleshooting

### Do

Store QueueToAgent.FailureCode, QueueToAgent.AgentState and QueueToAgent.AgentIdleCode where you can see them later[^38]. A Webex developer blog lists Global Variables and Caller Associated Data (CAD) Variables among the categories of flow data[^66]. Global variables are created by an administrator in the Provisioning module of Control Hub and then consumed inside a flow[^67]. If you need actions when the agent accepts or disconnects, handle the AgentAccepted and AgentDisconnected events that Queue To Agent triggers in the main flow's Event Flows tab[^31]. Expect preferred-agent contacts to be reported against the reporting queue[^41]. When a Callback activity follows Queue To Agent, customers can request a callback from their preferred agent[^68]. The Analyzer Callback Report's Preferred Agent Name column shows N/A when the contact was not queued to a preferred agent through Queue To Agent[^3].

### Verify

Suggested check: after the end-to-end tests, confirm the stored failure codes match each scenario and the test contacts appear under the reporting queue.

### Rollback

Suggested rollback: remove the variable assignments and republish the flow.

## Step 10: Test every path

**Do not wait and go straight to the queue**

### Do

Place these test calls and compare the outcome with the Queue To Agent failure codes and recovery behaviour[^32][^40]:

- A caller whose preferred agent is available should connect to that agent[^1].
- A caller whose preferred agent is unavailable should show failure code 1, AGENT_UNAVAILABLE, and then reach the regular queue[^32][^30].
- A caller whose preferred agent is logged out should show failure code 3, AGENT_NOT_LOGGED_IN, and then reach the regular queue[^32].
- A caller whose preferred agent is on another call should show failure code 6, AGENT_BUSY[^34].
- An unknown caller should show failure code 2, AGENT_NOT_FOUND, or an empty lookup, and then take the failure path to the regular queue[^32][^33].
- A preferred agent who lets the call ring out or rejects it should cause the contact to go to the recovery queue[^40].

### Verify

Suggested check: confirm every case ends with an agent and no caller hears a disconnect.

**Wait a fixed number of seconds and then go to the queue**

### Do

Run the same cases as for the no-wait option, comparing outcomes with the Queue To Agent failure codes and recovery behaviour[^32][^40]:

- A caller whose preferred agent is available should connect to that agent[^1].
- A caller whose preferred agent is logged out should show failure code 3, AGENT_NOT_LOGGED_IN[^32].
- A caller whose preferred agent is on another call should show failure code 6, AGENT_BUSY[^34].
- An unknown caller should take the failure path to the regular queue[^33][^30].
- A preferred agent who lets the call ring out or rejects it should cause the contact to go to the recovery queue[^40].
- A caller whose preferred agent stays unavailable for longer than the Music Duration should reach the regular queue, which tests the timed-fallback design[^27][^30].
- A caller whose preferred agent becomes available partway through the music should reach that agent, because a parked contact waits for that agent[^39].

WarmTransfer's reading of the sources is that these timing cases are what prove or disprove the timed fallback, because Cisco does not document how Queue Contact treats a contact still parked against an agent[^53]. Also check that no test returns failure code 7, VTEAM_TRANSITION_LIMIT_REACHED[^32].

### Verify

Suggested check: confirm both timing cases behave as expected. Suggested check: if a parked contact is not moved to the regular queue after the music, switch to the no-wait option.

**Wait for the preferred agent however long it takes**

### Do

Run the same cases as for the no-wait option, comparing outcomes with the Queue To Agent failure codes and recovery behaviour[^32][^40]:

- A caller whose preferred agent is available should connect to that agent[^1].
- A caller whose preferred agent is unavailable should be parked and wait for that agent[^26].
- A caller whose preferred agent is logged out should show failure code 3, AGENT_NOT_LOGGED_IN[^32].
- An unknown caller should take the failure path to the regular queue[^33][^30].
- A preferred agent who lets the call ring out or rejects it should cause the contact to go to the recovery queue[^40].

Add a long-wait case in which the preferred agent stays unavailable for several minutes, and note whether the park ends on its own; WarmTransfer's reading of the sources is that none of them gives a maximum park time[^25].

### Verify

Suggested check: confirm parked callers are offered to the preferred agent as soon as that agent is available. Suggested check: confirm the long-wait experience matches what the business accepted when choosing this option.

## Step 11: Publish and keep a way back

### Do

Turn validation on and publish the flow, because the Publish flow button stays disabled while the Validation toggle is off or any active errors exist[^69]. Flow validation checks only structural errors and cannot confirm that variables resolve to expected values at runtime[^70]. Flow Designer has no version control feature: the version number counts publishes, and version labels can be applied[^71]. Attach a version label such as Live, Test or Dev when publishing; "Latest" is applied by default to the most recently published version[^72]. Keep a record of the previous design before you change the live flow, because Flow Designer has no version control to restore it[^71].

### Verify

Suggested check: confirm real calls on the entry point follow the new path, and repeat one of the end-to-end test cases on the live number.

### Rollback

Suggested rollback: rebuild the previous design from your record, removing the lookup, the preferred-agent activity and the fallback wiring, then republish. Do not rely on undo, because Flow Designer undo and redo covers only the last 10 canvas actions[^73].

## Applicability

The Agent-based Routing optional-feature statement comes from Cisco's 2021 Setup and Administration Guide[^19]. Webex Contact Center is deployed in Amazon Web Services[^74]. Applies to: Cisco Webex Contact Center. Deployments: cloud and multi-tenant. Sources checked 2026-10-01. Digital channels for Webex Contact Center are configured through Webex Connect, and their flows are built in Webex Connect rather than in Flow Designer[^61].

## What remains uncertain

How to enable Agent-based Routing on a tenant where Queue To Agent returns FEATURE_NOT_ENABLED is not covered by the sources below. Webex Contact Center desktop profiles have a Last Agent Routing toggle, described only as specifying "whether you want to keep the last routing"[^10]. WarmTransfer's reading of the sources is that the desktop profile article gives no default, channel scope or interaction with Queue To Agent for that toggle, so it is unclear whether it affects flow-based last-agent routing[^11]. The exact HTTP method and content type the Search request needs, and the default Response Timeout and Number of Retries values, are not covered by the sources below. WarmTransfer's reading of the sources is that the connector article does not say which connector access level the Search API needs[^4]. How quickly a finished call becomes visible to the Search API as the last agent is not covered by the sources below. WarmTransfer's reading of the sources is that Cisco does not document how Queue Contact treats a contact that is still parked against an agent[^53]. WarmTransfer's reading of the sources is that none of them gives a maximum park time for Queue To Agent[^25]. Building the external lookup endpoint, and any data protection review of using caller history for routing, are not covered by the sources below.

## Sources

[^1]: Agent-based Routing in Webex Contact Center routes or queues a contact directly to a specified (preferred) agent, and the Queue To Agent flow activity is what implements it. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing. Checked 2026-10-01.
[^2]: In the blog's example, the HTTP Request activity has Use Authenticated Endpoint turned on, the Webex Contact Center connector selected, and /search as the Request Path. Source: [Using the New HTTP Connector for Webex Contact Center APIs](https://developer.webex.com/blog/using-the-new-http-connector-for-webex-contact-center-apis), Calling the Search API with the New Connector. Checked 2026-10-01.
[^3]: The Analyzer Callback Report has a Preferred Agent Name column. It shows N/A when the contact was not queued to a preferred agent through the Queue to Agent activity. Source: [Webex Contact Center Analyzer Stock Reports](https://help.webex.com/en-us/article/t137o3/Webex-Contact-Center-Analyzer-Stock-Reports), Stock Reports > Historical Reports > Callback Reports > Callback Report > Preferred Agent Name. Checked 2026-10-01.
[^4]: The connector article describes Read-Only as GET-only and does not say which access level the Search API needs. A Search call sent as POST may therefore need a Read-Write connector; test this before relying on Read-Only (inferred). Source: [Create Webex Contact Center HTTP connector](https://help.webex.com/en-us/article/n54f5wd), Create Webex Contact Center HTTP connector, access options. Checked 2026-10-01.
[^5]: Read-Only Access on a Webex Contact Center connector allows GET API calls. Source: [Create Webex Contact Center HTTP connector](https://help.webex.com/en-us/article/n54f5wd), Create Webex Contact Center HTTP connector, access options. Checked 2026-10-01.
[^6]: Read-Write Access on a Webex Contact Center connector allows GET, POST, PUT, UPDATE and DELETE calls. Source: [Create Webex Contact Center HTTP connector](https://help.webex.com/en-us/article/n54f5wd), Create Webex Contact Center HTTP connector, access options. Checked 2026-10-01.
[^7]: A custom connector for a third-party API supports Basic Authentication (the default) or OAuth 2.0. The OAuth 2.0 grant types are client credentials with a certificate, client credentials with a client secret, and password grant. Source: [Configure custom connector for Webex Contact Center](https://help.webex.com/en-us/article/n4u702ab), Configure custom connector, authentication type. Checked 2026-10-01.
[^8]: A custom connector's Resource Domain URL must start with https://, and the connector is created under Services > Contact Center > Tenant Settings > Integrations > Connectors. Source: [Configure custom connector for Webex Contact Center](https://help.webex.com/en-us/article/n4u702ab), Configure custom connector, Resource Domain field. Checked 2026-10-01.
[^9]: An organisation can add up to ten custom connectors. Source: [Configure custom connector for Webex Contact Center](https://help.webex.com/en-us/article/n4u702ab), Configure custom connector. Checked 2026-10-01.
[^10]: Webex Contact Center desktop profiles have a Last Agent Routing toggle, described only as specifying 'whether you want to keep the last routing'. Source: [Manage desktop profiles](https://help.webex.com/en-us/article/nvaf71f/Manage-desktop-profiles), Desktop profiles > Last Agent Routing. Checked 2026-10-01.
[^11]: The desktop profile article gives no default, channel scope or interaction with Queue To Agent for the Last Agent Routing toggle, so it is unclear whether the toggle has any effect on flow-based last-agent routing (inferred). Source: [Manage desktop profiles](https://help.webex.com/en-us/article/nvaf71f/Manage-desktop-profiles), Desktop profiles > Last Agent Routing. Checked 2026-10-01.
[^12]: When a query fetches AAR or CAR data, the span between from and to cannot exceed 30 days. Source: [webex-contact-center-api-samples / reporting-samples / graphql-sample](https://github.com/WebexSamples/webex-contact-center-api-samples/tree/main/reporting-samples/graphql-sample), README > Fetching Raw Data. Checked 2026-10-01.
[^13]: taskDetails needs mandatory from and to arguments: Long epoch timestamps that mark the start and end of the query span. Source: [webex-contact-center-api-samples / reporting-samples / graphql-sample](https://github.com/WebexSamples/webex-contact-center-api-samples/tree/main/reporting-samples/graphql-sample), README > TaskDetails Query > arguments. Checked 2026-10-01.
[^14]: The taskDetails schema has a composite lastAgent field with an id subfield, and the sample queries select lastAgent.id. Source: [webex-contact-center-api-samples / reporting-samples / graphql-sample](https://github.com/WebexSamples/webex-contact-center-api-samples/tree/main/reporting-samples/graphql-sample), README > TaskDetails Query - Sample Query; Performing group by operation. Checked 2026-10-01.
[^15]: taskDetails can be filtered on the origin field with an equals operator against a phone number in E.164 form, such as +12344565678. Source: [webex-contact-center-api-samples / reporting-samples / graphql-sample](https://github.com/WebexSamples/webex-contact-center-api-samples/tree/main/reporting-samples/graphql-sample), README > String Operators for filtering. Checked 2026-10-01.
[^16]: The Search API's taskDetails GraphQL query runs over Customer Session Records (CSR) and Customer Activity Records (CAR). Source: [webex-contact-center-api-samples / reporting-samples / graphql-sample](https://github.com/WebexSamples/webex-contact-center-api-samples/tree/main/reporting-samples/graphql-sample), README > TaskDetails Query. Checked 2026-10-01.
[^17]: The HTTP Request activity has Response Timeout and Number of Retries fields, along with Use Authenticated Endpoint, Connector, Request Path, Method and Content Type. Source: [Contact Center Flow Designer: Integrating Third-Party APIs with the HTTP Integration Connector](https://developer.webex.com/blog/contact-center-flow-designer-integrating-third-party-apis-with-the-http-integration-connector), Flow Designer HTTP Request configuration walkthrough. Checked 2026-10-01.
[^18]: The HTTP Request activity has Parse Settings, an Output Variable and a Path Expression, that extract a value from the response into a flow variable for later activities. Source: [Contact Center Flow Designer: Integrating Third-Party APIs with the HTTP Integration Connector](https://developer.webex.com/blog/contact-center-flow-designer-integrating-third-party-apis-with-the-http-integration-connector), Flow Designer HTTP Request configuration walkthrough. Checked 2026-10-01.
[^19]: Cisco's 2021 Setup and Administration Guide describes Agent-based Routing as an optional feature. Source: [Cisco Webex Contact Center Setup and Administration Guide - Contact Routing](https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/webexcc/SetupandAdministrationGuide_2/b_mp-release-2/b_cc-release-2_chapter_0100.html), Contact Routing > Agent-based Routing. Checked 2026-10-01.
[^20]: The Search API returns the last agent as lastAgent.id, so a last-agent flow that feeds that value into Queue To Agent should set Agent Lookup Type to ID, not Email (inferred). Source: [webex-contact-center-api-samples / reporting-samples / graphql-sample](https://github.com/WebexSamples/webex-contact-center-api-samples/tree/main/reporting-samples/graphql-sample), README > TaskDetails Query - Sample Query. Checked 2026-10-01.
[^21]: Cisco says the preferred-agent lookup is done with the HTTP Request flow activity, which retrieves the mapping from an external application. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing. Checked 2026-10-01.
[^22]: For both the preferred-agent and last-agent use cases, Cisco says the contact details and the contact-to-agent mapping are stored outside Webex Contact Center. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing. Checked 2026-10-01.
[^23]: A contact can be mapped to one or more preferred agents. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing. Checked 2026-10-01.
[^24]: While a contact is parked against a preferred agent, the flow keeps running, so the caller can hear music or register a callback while waiting. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing > Queue To Agent (park behaviour). Checked 2026-10-01.
[^25]: None of the sources read gives a maximum park time for Queue To Agent. Parking with no flow-side timer may leave a caller waiting as long as the preferred agent stays unavailable (inferred). Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Park Contact if Agent is unavailable. Checked 2026-10-01.
[^26]: If the preferred agent is unavailable and the park option is selected, the contact is parked and waits for that agent to become available. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing > Queue To Agent. Checked 2026-10-01.
[^27]: The Play Music activity has a Music Duration setting: the number of seconds the music plays in the queue. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Play Music activity > Music Duration. Checked 2026-10-01.
[^28]: In the Queue To Agent activity, the Agent Variable setting is a flow variable, chosen from a drop-down, that holds the preferred agent's email address or ID. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Agent Variable. Checked 2026-10-01.
[^29]: A flow can chain one Queue To Agent activity to another to try consecutive preferred agents. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity (introduction). Checked 2026-10-01.
[^30]: A flow can chain Queue To Agent to a Queue Contact activity so that the contact goes through a regular queue when none of the preferred agents is available. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity (introduction). Checked 2026-10-01.
[^31]: Queue To Agent triggers the AgentAccepted and AgentDisconnected events in the main flow's Event Flows tab. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity. Checked 2026-10-01.
[^32]: Queue To Agent defines eight failure codes: 1 AGENT_UNAVAILABLE, 2 AGENT_NOT_FOUND, 3 AGENT_NOT_LOGGED_IN, 4 FEATURE_NOT_ENABLED, 5 INVALID_VTEAM_ERROR (invalid reporting or recovery queue), 6 AGENT_BUSY, 7 VTEAM_TRANSITION_LIMIT_REACHED and 8 INVALID_OPERATION_FOR_INTERACTION_STATE. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Failure codes table. Checked 2026-10-01.
[^33]: The Queue To Agent failure path is taken when the preferred agent is unavailable and parking is disabled, or when the variable lookup cannot find the preferred agent. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > output paths. Checked 2026-10-01.
[^34]: Failure code 6, AGENT_BUSY, means the agent is available but already engaged in another call. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Failure codes table, code 6. Checked 2026-10-01.
[^35]: Failure code 4, FEATURE_NOT_ENABLED, means the Agent-based Routing feature is not enabled. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Failure codes table, code 4. Checked 2026-10-01.
[^36]: The Queue To Agent Agent Lookup Type setting is either Email or ID. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Agent Lookup Type. Checked 2026-10-01.
[^37]: If the preferred agent is unavailable and the park toggle is off, the contact fails to reach the agent. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Park Contact if Agent is unavailable. Checked 2026-10-01.
[^38]: Queue To Agent writes the output variables QueueToAgent.AgentId, QueueToAgent.FailureDescription, QueueToAgent.FailureCode, QueueToAgent.AgentState and QueueToAgent.AgentIdleCode. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Output Variables table. Checked 2026-10-01.
[^39]: Queue To Agent has a 'Park Contact if Agent is unavailable' toggle. Turning it on parks the contact against the preferred agent until that agent becomes available. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Park Contact if Agent is unavailable. Checked 2026-10-01.
[^40]: Queue To Agent sends the contact to the recovery queue when it fails to deliver the contact to the preferred agent, when the agent does not answer, or when the agent rejects the contact. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Recovery Queue. Checked 2026-10-01.
[^41]: The Reporting Queue is chosen by queue ID from a drop-down, and Queue To Agent reports the contact's details against it. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Reporting Queue. Checked 2026-10-01.
[^42]: A static Queue To Agent contact priority runs from P1 to P9, where P1 is highest and P9 lowest. Priority ranks contacts queued to the same agent. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Contact Priority > Static Priority. Checked 2026-10-01.
[^43]: Queue To Agent also has an Undefined Error path for system errors during flow execution. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > output paths. Checked 2026-10-01.
[^44]: A variable Queue To Agent priority uses a flow variable that returns an integer from 1 to 9. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Contact Priority > Variable Priority. Checked 2026-10-01.
[^45]: In the recovery queue the contact goes to the longest available agent, and the recovery queue does not support skills-based routing. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity > Recovery Queue. Checked 2026-10-01.
[^46]: The Queue To Agent reporting queue names the queue whose configuration, such as recording and default music in queue, applies to the contact, and the queue the contact is reported against. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing > Queue To Agent > Reporting Queue. Checked 2026-10-01.
[^47]: An available preferred agent who does not answer moves the contact to the recovery queue, and the tenant RONA timeout sets how long an offered call rings. The RONA timeout is therefore the most likely bound on how long a preferred agent rings before recovery (inferred). Source: [Manage RONA timeouts (Webex Contact Center)](https://help.webex.com/en-us/article/nbkcfp1/), Manage RONA timeouts, channel table. Checked 2026-10-01.
[^48]: For telephony the RONA timeout defaults to 18 seconds, with a minimum of 1 second and a maximum of 120 seconds. Source: [Manage RONA timeouts (Webex Contact Center)](https://help.webex.com/en-us/article/nbkcfp1/), Manage RONA timeouts, channel table, Telephony row. Checked 2026-10-01.
[^49]: RONA (Redirection on No Answer) timeouts are set at tenant level in Control Hub under Services > Contact Center > Tenant settings > Desktop. Source: [Manage RONA timeouts (Webex Contact Center)](https://help.webex.com/en-us/article/nbkcfp1/), Manage RONA timeouts, procedure. Checked 2026-10-01.
[^50]: Cisco's developer blog says the Search API, called from Flow Designer, can look up the last agent a caller spoke with so the flow can queue the caller to that agent. Source: [Using the New HTTP Connector for Webex Contact Center APIs](https://developer.webex.com/blog/using-the-new-http-connector-for-webex-contact-center-apis), The Webex Contact Center API Connector in Action. Checked 2026-10-01.
[^51]: For the last-agent lookup, keep from-to within 30 days and sort or limit to the most recent task. A wider span risks the AAR/CAR 30-day limit if the query touches CAR data, and an older 'last agent' is less likely to be relevant (inferred). Source: [webex-contact-center-api-samples / reporting-samples / graphql-sample](https://github.com/WebexSamples/webex-contact-center-api-samples/tree/main/reporting-samples/graphql-sample), README > Fetching Raw Data. Checked 2026-10-01.
[^52]: Flow Designer's templates include one called 'Last agent routing template'. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Flow templates (table of contents entry 'Last agent routing template'). Checked 2026-10-01.
[^53]: A timed fallback can be built by parking the contact with Queue To Agent, playing music for a set Music Duration, and then running Queue Contact. Cisco documents the chaining and the duration setting but not how Queue Contact treats a contact that is still parked against an agent (inferred). Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Queue To Agent activity (chaining); Play Music activity > Music Duration. Checked 2026-10-01.
[^54]: The last-agent use case routes a contact who calls back several times to the last agent who handled that contact. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing > Last agent routing. Checked 2026-10-01.
[^55]: The preferred-agent use case is a customer assigning contacts to dedicated agents or relationship executives, with Agent-based Routing sending those contacts straight to that agent. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), Agent Based Routing > Preferred agent routing. Checked 2026-10-01.
[^56]: A Webex Contact Center connector, used to call Contact Center APIs from a flow, is created in Control Hub under Services > Contact Center > Tenant Settings > Integrations > Connectors, from the Webex Contact Center card, with a unique name and an authorisation checkbox. Source: [Create Webex Contact Center HTTP connector](https://help.webex.com/en-us/article/n54f5wd), Create Webex Contact Center HTTP connector, procedure steps 1-7. Checked 2026-10-01.
[^57]: Accessing the Flow Designer application requires a Premium Agent License plus a user profile with rights to edit flows. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Get started / Access Flow Designer. Checked 2026-09-04.
[^58]: An Entry Point is the configuration object that associates an inbound telephone number with an IVR service flow (a Webex CC Flow) in Webex Contact Center; inbound numbers must be mapped to entry points as part of PSTN provisioning. Source: [Set up voice channels for Webex Contact Center](https://help.webex.com/en-us/article/nhy3codb/Set-Up-Voice-Channel-for-Webex-Contact-Center), Configuration of Inbound Entry Points to Webex Contact Center subsection. Checked 2026-09-04.
[^59]: A flow can contain a maximum of 30 variables in total, and this count includes all global variables plus flow (custom) variables regardless of whether they are reportable or agent viewable. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Use variables and expressions / Create Custom Flow Variables. Checked 2026-09-04.
[^60]: Webex Contact Center maps only PSTN numbers in globalized +E.164 format to entry points. Source: [Set up a channel](https://help.webex.com/en-us/article/ewuay1/Set-up-a-channel), section Create a channel. Checked 2026-09-30.
[^61]: Digital channels for Webex Contact Center (Facebook Messenger, live chat, email, SMS, Apple Messages for Business, WhatsApp) are configured through Webex Connect, and their flows are built in Webex Connect rather than in Flow Designer. Source: [Set up digital channels in Webex Contact Center](https://help.webex.com/en-us/article/n954r0k/Set-up-digital-channels-in-Webex-Contact-Center), overview and setup steps (final step 'Create flows in Webex Connect'). Checked 2026-09-30.
[^62]: Custom HTTP connectors configured for OAuth 2.0 support Client Credentials and Password grant types, requiring Client ID, Client Secret, Token URL, and Scope fields. Source: [Contact Center Flow Designer: Integrating Third-Party APIs with the HTTP Integration Connector](https://developer.webex.com/blog/contact-center-flow-designer-integrating-third-party-apis-with-the-http-integration-connector), developer.webex.com blog / HTTP Integration Connector. Checked 2026-09-04.
[^63]: If a flow developer does not configure an error handling path for an activity, execution falls back to the path defined in the OnGlobalError event handler. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Configure error handling. Checked 2026-09-04.
[^64]: The Undefined Error node (used to route undefined system errors) is not present on 4 Flow Control activities: Start Flow, End Flow, HTTP Request, and Parse. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Configure error handling. Checked 2026-09-04.
[^65]: The activity set uses at least 5 different label conventions for the same idea of an outcome: Success and Failure on one activity onSuccess and onError on another Handled and Escalated and Error on a third Errored on its successor and True and False on the branching activities (field report). Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Flow Designer, activity output ports across the catalogue. Checked 2026-09-15.
[^66]: A Webex developer blog describes 5 categories of flow data: Local (custom flow) Variables, Global Variables, Caller Associated Data (CAD) Variables, Activity Output Variables, and Event Output Variables. Source: [Design Delightful Customer Experiences with Webex Contact Center Flow Designer](https://developer.webex.com/blog/design-delightful-customer-experiences-with-webex-contact-center-flow-designer), developer.webex.com blog / Data Definitions for Effective Flow Design. Checked 2026-09-04.
[^67]: Global variables are created by an administrator in the Provisioning module of Control Hub, and flow developers consume (add, edit default value of, or remove) them inside a flow rather than fully redefining them. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Use variables and expressions / Global variables. Checked 2026-09-04.
[^68]: When the Callback activity follows a QueueToAgent activity, customers can request a callback from their preferred agent. Source: [Understand Routing and Queueing in Webex Contact Center](https://help.webex.com/en-us/article/np2fdx/Understand-Routing-and-Queueing-in-Webex-Contact-Center), section Callback. Checked 2026-09-30.
[^69]: A flow cannot be published unless validation succeeds; the Publish flow button is disabled while the Validation toggle is off or any active errors exist. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Create and manage flows / Validate a flow, Publish a flow. Checked 2026-09-04.
[^70]: Flow validation only checks for structural errors (required fields, valid structure); it cannot evaluate functions or confirm that variables resolve to expected values at runtime. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Create and manage flows / Validate a flow. Checked 2026-09-04.
[^71]: Flow Designer has no version control feature. The flow version number counts how many times the flow has been published, and version labels can be applied. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), flow versioning section. Checked 2026-09-30.
[^72]: When publishing a flow, you can attach 1 or more version labels (such as Live, Test, or Dev); 'Latest' is applied by default and cannot be removed from the most recently published version. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), Create and manage flows / Publish a flow. Checked 2026-09-04.
[^73]: Flow Designer undo and redo covers the last 10 canvas actions. Source: [Build and manage flows with Flow Designer](https://help.webex.com/en-us/article/nhovcy4/Build-and-manage-flows-with-Flow-Designer), canvas actions, undo/redo. Checked 2026-09-30.
[^74]: Webex Contact Center is deployed in Amazon Web Services (AWS). Source: [Webex Contact Center Architecture](https://help.webex.com/en-us/article/utqcm7/Webex-Contact-Center-Architecture), Deployment and Connectivity section. Checked 2026-09-30.
