09-13-2025 06:40 PM - edited 09-13-2025 06:41 PM
Hi All,
I am trying to use ECE APIs with VXML application and have started testing in Call Studio, which seems going well. However, I would like to know if anyone has done similar development and can shed some light about what can go wrong or what to keep in mind. Specially for the ECE login API which needs custom Java development because VXML cant read Session Header from this API which will be used in other APIs.
This is for PCCE 12.6(2) and ECE 12.6.
Thanks,
Piyush Aghera
09-13-2025 08:10 PM
Can you describe an example of the business case of what you're trying to do?
09-15-2025 07:20 AM
Sure Bill. I have a requirement that if an activity is not worked upon/assigned to any agent in a specific time frame, that activity should be assigned to a specific agent and auto close. When activity is closed, trigger an external API to let another application know that the activity was auto closed.
Here's what I am thinking to do:
ECE Q --> ICM script --> Queued for x minutes --> trigger VXML app --> ECE API to login, pick activity, close activity, logout session --> send response to external API
09-16-2025 06:32 AM
I ran into my first challenge with this development:
I was able to generate Authentication header and get response using Rest_Client element. However, certain APIs like Pull activity, Transfer and Logout respond back with blank body if the request is successful. They all just return 204 No Content status. I see this status coming back, but Rest_Client errors out as there is no body in the response from API.
I get below error:
10.10.90.151.1757987502577.0.ECE_API_V1,09/15/2025 21:51:44.586, The error was: A built-in element encountered an exception of type com.sun.jersey.api.client.UniformInterfaceException. The root cause was: com.sun.jersey.api.client.UniformInterfaceException: DELETE https://<ECE Server FQDN>/system/ws/v20/authentication/user/logout returned a response status of 204 No Content
com.audium.server.AudiumException: A built-in element encountered an exception of type com.sun.jersey.api.client.UniformInterfaceException.
I can work this API out using custom Java class, but would like to use Rest_Client element to minimize custom development. Is there any way to overcome this issue?
Here's the ECE API guide for Logout API:https://pubhub.devnetcloud.com/media/enterprise-chat-and-email/docs/guides/interaction-api-developer-guide/d1/d39/class_logout_page.html#kb-logout-page
09-16-2025 06:35 AM
Does your same code work if you run it outside of CVP/VXML, like with Postman say?
And you didn't have any issues running a CVP/VXML application with the email trigger i.e. with a phone call triggering it? I believe the last time that scenario came up in the community, it couldn't be done.
09-16-2025 06:49 AM - edited 09-16-2025 07:20 AM
Hi Bill,
The API works fine in Postman. When I am using that in Rest_Client element, I can see user session was logged out. Meaning API was triggered, executed and sent response back. However the problem is with Rest_Client element which is expecting a body in response, however these ECE APIs are designed to send no body in the response and send 204 No Content status back. So Rest_Client element does not like that and errors out instead of completing the execution successfully. (EDIT) Because I dont get proper Body and Response in Rest_Client, I cant verify if the API was executed successfully or not.
To your second question, there is no phone call involved here. As I stated in the flow earlier, its purely email part. Email comes to ECE, ECE generates Activity and queues under ECE queue, ECE queue triggers ICM script to queue email activity under PQ for agent assignment and if no agent is available for x minutes, trigger VXML app. I haven't tried this in ICM script yet because I am still working on CVP Call Studio, but I think it will work.
09-16-2025 07:51 AM
You're a brave soul for building a VXML application to work with the ECE API. The API is just very basic and has some interesting gotchas. Auth mechanisms that are different for an app versus a user. Error messages that aren't very helpful, etc. Couldn't you do some of what you're looking for using an ECE workflow instead?
david
09-16-2025 08:13 AM
Lol David.. I hear you and agree 100% about your feedback. However, I couldnt find a way within ECE to do what I explained earlier - auto close an activity if it is not picked up / assigned to agent in x minutes. I think the main issue is that the activity queue timer is in ICM and have to do something from ICM. I didnot find any setting or configuration item in ECE that tells me that the activity is in queue/not pickedup for x minutes and then auto close it.
09-17-2025 04:31 AM
I know there's no phone call, what I was asking was, can the CVP/VXML even run without it being triggered by a call. I didn't think, based on previous posts in the community, that you could run a CVP/VXML application without it being triggered in some way by a call.
As far as your post, can you not do something like the attached with a workflow to close your case?
https://www.cisco.com/c/en/us/support/docs/contact-center/enterprise-chat-email-1261/222734-configure-ece-alarm-workflow-to-reproces.html
09-17-2025 07:50 AM
Thanks Bill. I looked at Alarm workflow earlier also. The main criteria for my requirement is to take action only if activity is in queue for x minutes and is not yet assigned to anyone. Now I cant figure out that in ECE to check for how long an activity is in queue. I can do that from ICM script. Below is a sample of my ICM script where I can use Wait node after PQ node to see how long activity is queued. Just as an example, I can set 10 minutes of Wait node timer, and if Activity is not assigned to anyone when that Wait timer expires, then task routing will follow thru from Wait node to the next node. I am planning to add VXML app node after Wait node. Theoretically the task will go thru the VXML app node and should trigger VXML app, but you may be right that it may need a call trigger. I am going to try that and will update here.
09-17-2025 10:38 AM
So why not just cause the activity in the UCCE script to "error out" after your X minute threshold and then use the alarm workflow to handle it?
Again, I could be wrong but I don't think you'll be able to call a VXML app in this manner, you might want to try that first.
09-22-2025 02:35 PM
When you say "error out" in ICM script, do you mean that by Cancel queueing and let activity go to Default Exception Queue?
Also, is it possible to assign activity to an ECE agent (integrated with PCCE) after say 5 minutes of queue time in ICM?
09-23-2025 04:38 AM - edited 09-23-2025 04:39 AM
What I'm saying is if the alarm workflow lets you close the case/handle it as you want, make the UCCE script "fail" after the 5 minutes or whatever you want in Script Editor logic. Like, send it to an End Node or a Release node or Terminate node after 5 minutes and see if that would allow you to handle it within ECE. Not something I've done but it sounds like that might be much simpler than the ECE API route.
09-23-2025 08:16 AM
I tried to "fail" or "error out" activity from ICM with and without Cancel Queue node with Release and End node. And with any configuration I use, I see activity gets dequeued, but ECE sends it back to ICM for routing. ECE does this total 4 times, and then routes activity to Default Exception Queue. Is this something you are referring, or am I missing something?
And once the activity is in Default Exception queue, I can run Alarms workflow at certain period to close that activity. I am going to try this out and I think it will work, but I am seeing two limitations with this:
1. Activity is not closed in real-time, i.e., it will close when the Alarms workflow runs. And with my requirement, I may have to run it per minute, not sure how much load it will have on system.
2. I also have to let CRM know that the activity is closed, using CRM's APIs. I believe I will not have any possibility to trigger an API from ECE work flow.
I think I am in hot waters with this one.. lol
09-24-2025 04:50 AM
Did you try things like a Terminate node? Another workaround, although less than ideal, is what if you create an error in UCCE (like have it loop until it hits the maximum number of nodes). I don't know ECE enough to know if they differentiate for these different types of returns back to them.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide