Cisco Support Community
Showing results for 
Search instead for 
Did you mean: 
Community Member

use subflow or redirect step when calling another script

I have a main AA script and it calls another script when caller press option 6.  When a caller presss 6 it is only transferring the call to the sub script.  it does not return any values to the main script.

In this situation, is it better to use subflow or redirect step.  i am think redirect step but just want to check with the user community.

thanks in advance.

VIP Super Bronze

Re: use subflow or redirect step when calling another script

Either will work. Here are a few thoughts to consider in no particular order:

  • Subflows count toward the originally triggered scripts' maximum step count. If you have a lot of steps, this may result in an exception. Redirecting the call restarts this counter since the newly triggered script will have its own counter.
    NOTE: You might think that this is exactly why the Trigger Application step in Synchronous mode was created for. Alas, there is a bug which renders this useless in 7.0(1): CSCtd72562
  • Redirecting the call will result in the user hearing ringback. This would occur because of the recommended two-second delay step following the Accept step of a step to prevent a race condition. I find this to be irritating enough to shy away from it mid-way through an IVR if possible.
  • Subflows are more difficult to debug. You need to have sufficient code embedded in them such that you can trigger and reactively debug them.
  • Be sure that the redirect destination of an actual CCX Trigger (CTI Route Point). Do not set it to a value in UCM that is translated or forwarded back to CCX. This results in a race condition which CCX does not handle well.

If you were asking me as an individual my answer would be this: Is the code small enough and not reused elsewhere? If yes, then put it in the first script and avoid this topic all together. If it's reused in a bunch of places from multiple scripts and does not represent a large quantity of steps: use a subflow. Otherwise use Trigger Application if you're on a new enough version or Call Redirect if you're not.

Re: use subflow or redirect step when calling another script

Good summary Jon.  And I will add these two in now particular order:

Subflows inherit the Triggering Contact by default, whereas a Triggered Application will need it passed in.  This may not seem like a big deal, but storing the contact and changing every single step that references it can present confusion for casual administrators who makes changes.

i.e., This:

Play Prompt (--Triggering Contact--)

Menu (--Triggering Contact--)

Set Enterprise Call Info(--Triggering Contact--)


Play Prompt (contact_variable)

Menu (contact_variable)

Set Enterprise Call Info(contact_variable)

Subflows pass data back to the calling script, whereas a Triggered Application will need to store it, then have it retrieved by the calling script.  i.e., Using session variables to store caller data.

Anthony Holloway

Please use the star ratings to help drive great content to the top of searches.

Re: use subflow or redirect step when calling another script

One comment about redirects. They can play havoc with reporting. Make sure you think this part through if you want to use redirects.



Community Member

Re: use subflow or redirect step when calling another script

How do you pass the Triggering Contact into an application triggered by the Trigger Application step? I like being able to debug modular code reactively without setting each module up with it's own JTAPI trigger as would be done for a Subflow Step.

Community Member

Jonathon,Just ran across this


Just ran across this discussion and see it was 5 years ago, so wanted to get advice on similiar situation. I have inherited a contact center that has approx. 30 scripts each handling calls for different campaigns, each of these scripts has an option 8 for Spanish, which just sets a csq paramater that then is defined in each application. Now my client wants to trim down all those extra csq and have one Spanish csq. easy enough just change the parameter in each application but now they want some other on hold recordings for Spanish as well as after certain minutes redirect to another number.

All that said I believe I will create a Spanish script, would it be better to use a subflow in of the 30 scripts to this or put in a redirect to a trigger for this script? Or better off to keep the set csq= that is in script today and just modify each of the 30 with the extra criteria they are wanting? Appreciate any advice.

CreatePlease to create content