Showing results for 
Search instead for 
Did you mean: 

AMA-CUCM Troubleshooting: Best Practices for Reading Trace Files


route call to last agent in CCX 7 Premium.


I'm looking for an outline, description, or script example of how to route the caller to the last agent they spoke to.

As I recall, we have to catch the sessionID in a variable, and map it to the contact's Caller ID in order to identify the previous agent. Then we would route-to or queue-to that agent as applicable.

Am I on the right track?




Re: route call to last agent in CCX 7 Premium.

You will want an external application or database to assist with this. Without one of these you will face a few problems:

  • CCX is not intended to share data between script instances. The way we do this is by essentially creating a session with a known mapping ID and querying it. Sessions are expunged from memory after a period of inactivity.
  • The variable - likely a hash table - storing all of your agent to caller ID value mappings will be lost when the session timer expires. Unless you have a constant call volume that continually resets this timer you will lose the data. You're fighting time here and will likely get reports of inconsistant behavior.

Since you have a Premium license database access is an option. The next question: Is caller ID values sufficiently unique for you? The main issues with using caller ID are:

  • Not all callers send their caller ID (e.g. Unknown, Private).
  • Not all callers send their direct-dial number; or, do not have one. This happens most often with calls from a business (e.g. people calling from their office) who only send a general "public" number for outbound calls. If more than one person calls from this organization caller ID will break your last-agent logic.
  • If the same person calls from two different phones about the same issue your caller ID-based routing key will be useless.

The ideal scenario is to use a ticket number or other unique identifier that the caller would be provided. The ticket can be queried using a SQL statement to identify the owner's user ID.

Alternatively, some call centers choose to come up with an arbitrary passcode for each agent that changes periodically. Passcodes are more typically used to bypass the queue and return directly to a supervisor for example.

Regardless of what you choose as data, here are the general high-level steps:

  1. Get the unique identifier (caller ID, ticket number, passcode, etc).
  2. If the value is user-provided perform some IVR to confirm correct input and allow retries.
  3. Query the database and obtain the user ID of the agent you want to route to.
  4. If the value is user-provided and is not found, either proceed silently or inform the caller and allow them to retry.
    If the value is not user-provided, probably fail silently and proceed to a CSQ-based Select Resource step.
  5. Use the Get User step to obtain a Resource-type variable.
  6. Use the Select Resource step with the Routing Target Type parameter set to Resource. Reference the resource-type variable.
    Note: You cannot queue against an individual agent. You will have a success and failure condition only.
  7. If the agent-based routing fails, you can optionally play a prompt informing the caller their previous representative is not available and then use a normal Select Resource step to select one or more CSQs.

Re: route call to last agent in CCX 7 Premium.


Thanks for the detailed info.

Currently we have only Caller ID to work with and I understand those consequences. I'll have to default the caller to the appropriate Select Resource as needed. An account number input on the front-end may be forthcoming.

I'll work on the steps you listed regarding sending the session info to a database entry and then performing the lookup.

Thanks again for the pointers.



Re: route call to last agent in CCX 7 Premium.

No problem. Let us know how it turns out for you.

Also, please take the time to rate replies.

CreatePlease to create content
Content for Community-Ad
August's Community Spotlight Awards