Jump to content
KAZOOcon: hackathon signup and details here! ×

Main Call Flow Manual Override


Travis Hawkins

Recommended Posts

We have a couple of clients who have asked if there's an easy way to manually "close" their office for a short time (impromptu meetings, unscheduled lunches, etc) without having to change their office hours schedule or enter a holiday.  Lots of traditional systems have a short code for overriding the schedules and that's what they're looking for.  Example, there's a company meeting that might last 20 minutes, or maybe 2 hours.  How can someone quickly and easily roll the phones to a closed message or menu and then un-roll them once the meeting is done?

Thanks.

Link to comment
Share on other sites

Travis, there are two ways that I know of to accomplish a manual override of a callflow. 

1. (This is NOT a good idea, see option 2) There is a Preflow setting in Advanced Callflows under Account Settings. You can create a callflow and then through this menu assign a Preflow. Preflow is designed to send ALL inbound calls to the assigned callflow, bypassing normal operations. 

image.png.41cff6d5f81c80e62947e5890fb65c10.png

2. Another way, again, through advanced callflows, create a callflow with a menu to conditionally disable or reset time of day. In it's simplest fashion create a time of day that is always open. It will act like a logical switch. Use it in disable and reset. 

image.png.d3767f6c7cfb5fe44295fda59accc575.png

Then create a callflow that uses that time of day. When active, calls flow down the MainOpenSwitch1 and when disabled, calls flow to All-other-times bypassing the main callflow.

image.png.8c29702c48a75f27214ef6d55768697e.png

Edited by FASTDEVICE (see edit history)
Link to comment
Share on other sites

If you want to further complicate things haha, you can also assign a BLF key on the phone to monitor the status of each time of day. Basically you'd setup a call flow like Fast Device mentioned, but also have it update a random presence number. Then you'd set a BLF key for each time time of day with the presence number(s) you used, and the one that was active would be lit up. The issue is this wastes BLF keys if you're using a phone that doesn't have many. And then it requires at least four keys (one to update the time of day for A, one to update the time of day for B, one for the light for time of day A and one for the light for time of day B), versus some customers may be used to an older-style PBX system where you simply turn "night mode" on and off with one button, and that same button lights up when it's on. This is one thing I wish we could do that we can't!

Link to comment
Share on other sites

Here's what we do:

1) Create a "Star  Code" callflow leading to a menu. Pick a star code that's not in use anywhere else.

2)  Drop in a Menu

3) Create a menu message, set it to a TTS and input this  "Hello, I can help you open and close your office manually. For instance you may want to force your office to be closed during a holiday. Or, may want force your office to be opened if you will be staying late. A quick note before we get started, please do not end this call early or your system may not behave as expected. I will hang up the call when we are all finished. To reset your office back to the schedule setup when your system was configured, please press 1. To manually close your office, please press 2. To manually open your office, please press 3. Thank you."

4) Drag in a manual presence three menu items. Set them all to update your star code feature. 1 should update to idle and 2 & 3 should update to busy.

5) Under option 1 drag in a reset time of day and reset these TODs... "Main Monday" "Main Tuesday" "Main Wednesday" "Main Thursday" "Main Friday" "Main Saturday" "Main Sunday"

6) Under option 2 drag in a disable time of day and pull in the same TODs

7) Under 3 drag in en enable time of day and select the same TODs.

I love this config. I've posted before about doing this with three separate BLF keys. But, that took up quite a few keys. And people would always forget when to use what keys. With this setup, the TTS explains how it works every time. So there's no need to train new people. It doesn't get forgotten about because there's a big red button when it's activated. And, we don't get pestered about setting holidays up for out clients.

 

image.thumb.png.1b7f859dbc76723c56eb2d78d72c30f8.png

Link to comment
Share on other sites

  • Administrators

Nice job everyone with all the suggestions, this is an awesome thread. I hadn't even thought of a menu, Rick! Great idea!

Karl, I don't understand your reply. Why can't you use the same Time-of-Day option in multiple callflows to determine if the office is open or not? Then you only need one BLF light, despite the time-of-day being used in multiple callflows.

 

Link to comment
Share on other sites

The only issue to consider with Rick's suggestion is that using "enable" will result in the persistent appearance of the office phones working, but potentially disabling your normal business hours and holiday schedule. In both Rick's and my case, the end-user has to manually use the "reset" option regardless, but in Rick's they rely on BLF for indication. My suggestion to simplify the menu and avoid BLF altogether is use a short ring duration after-hours and a normal long-ring duration normal business hours. This way if a BLF is on the fritz or not programmed, the short ring will indicate the mode and the end user never has to worry about taking a call if they stay late. Additionally, as I mentioned, the menu is simplified to just two state. All of my clients are programmed this way and we sell it as a feature; Always able to receive a call when working after hours. 

Here is our menu:

Press 1 to route calls to after hours service, Press 2 to resume normal scheduling. @Rick Guyton"Please remain on the line until the system confirms your routing is complete." 

Edited by FASTDEVICE (see edit history)
Link to comment
Share on other sites

On 10/13/2017 at 12:53 PM, FASTDEVICE said:

The only issue to consider with Rick's suggestion is that using "enable" will result in the persistent appearance of the office phones working, but potentially disabling your normal business hours and holiday schedule. In both Rick's and my case, the end-user has to manually use the "reset" option regardless, but in Rick's they rely on BLF for indication.

This is totally valid. And we were bitten once when BLF states were lost on the 2600hz side during an upgrade that coincided with a holiday. Fortunately, most of our clients knew they needed to push the button to reset anyway. And at the end of the day all but one of the reports were more of a "why did this weird thing happen?" and not a "OMGZ everything's down". We haven't had issues with BLF being on the fritz for quite some time, so I'm really hoping that's behind us...

Also, it's important to know that if the user hang up at EXACTLY the right time, it's possible for them to hit the BLF update in the callflow without hitting the office hours update callflow item. That's why we tell the client not to hang up the call in the TTS for the menu. The TTS is usually enough to prevent this though. Also, during training I'll stress the importance of letting the phone system hang up. I usually throw a joke about the system being like my wife in that way for fun, but that's totally optional. 

Thanks for the info on the preflow @FASTDEVICE! I didn't know about that. I'll probably personally stick to our way of doing out of office. But, I'm sure that info will come in handy eventually.

Link to comment
Share on other sites

8 minutes ago, FASTDEVICE said:

@Rick Guyton Didn't realize the routing could fail if the user hangs up before confirmation. 

Yea, we've had issues where the user will press a menu option and then immediately hang up. And sometimes the system doesn't route it in time. So it fails. With our config this is slightly more pronounced because we have a process BLF callflow item and then a TOD item. And there was a time that we put the TOD first in the callflow and the BLF second. Man, that was a bad idea.. So, now we just advise clients to walk away and let the system hang up on them.

To be clear, I'm not sure if this is a practical issue for your config because you go straight to the TOD toggle from your menu. I was just highlighting a couple of potential issues with my solution so people go in eyes wide open.

Link to comment
Share on other sites

So I'm curious here...

We have some clients who either:

a) just want to close the office early some days (meaning they just want to start the normal after hours, or "all other times" TOD, earlier in the day)

or

b) want to activate an override of all TOD functions until further notice (i.e. a snow day where they record a special holiday voicemail and want all calls to go to that voicemail box until further notice)

Does anyone have a good idea on how to accomplish both of these together, with BLF keys that will illuminate simply when the after hours or holiday TODs are active (one for "after hours" and one for "holiday")? The issue with the methods above is that if the client let's say activates their after hours early, they then have to manually reset it in the morning. Also, the BLF key won't illuminate if the system is automatically closing them so having a BLF key is misleading, other than telling them that something out of the ordinary is happening. I'm guessing that two features would need to be added to accomplish this: 1) A way to "schedule" presence updates at certain times, and 2) A way to "schedule" TOD resets to happen when a normal TOD would change the behavior.

Does anyone have a programmable thermostat? It would work the same way...you schedule the temperatures you want based on the days and times. If you go and change the temperature with the up/down arrows, it holds the temperature that you set until the next scheduled temperature change and then resets and goes back to what it's scheduled to do (this would be the equivalent of closing the office early). Or if you change the temperature and then press override, it will keep the temperature at the temperature you set until further notice (this would be the equivalent of a snow day).

Or maybe all of this is possible and I'm missing something?? :-)

Link to comment
Share on other sites

  • 3 weeks later...

@Karl Stallknecht I don't think you are missing anything. Once a "disable time of day" is invoked, the only way I know to resume the normal schedule is to "reset time of day" or enable selectively, but as I mentioned above, enable could be misleading so I always use reset. 

Perhaps sponsor 2600hz to develop a "TEMP DISABLE TIME OF DAY" where this feature disables the time of day until the next TOD event is reached where it then follows the reset selections. However, I fear implementing this feature could be somewhat complicated.       

Link to comment
Share on other sites

  • Administrators

@FASTDEVICE Is correct about the "complicated" part of this.

The current method of enable, disable, reset allows us to:

  • Set the time-of-day's state/status (open/closed/auto) on a document, and is triggered by someone dialing a code or hitting an API
  • Check the time-of-day's state/status when it's dialed to see what it's state is

This means both the above two actions ONLY happen (i.e. the document with the state/status is ONLY checked) when someone takes an action. This means if the system has 100,000 time-of-day config documents, they're still only accessed at the time they're actually being used.

With a "temp disable", we now need to either:

  • Introduce a "crawler" which crawls the database one account at a time, looks to see if any time-of-day's are in "temp" mode, calculates if they still should be or not, and resets them
  • Figure out a way to track what the system did so that there's no "mystery black magic" such that when a support ticket comes in, we can see when/why the system may have reset a state/status (right now we can generally figure out what happened by looking at CDRs for dial codes, or API requests)
  • Alternatively check the time-of-day state/status to see if it's "temp" at the moment a callflow is called, to see if it should no longer be in "temp" mode, but this means BLFs/etc. will be inaccurate until a call is actually received on a flow where the time-of-day should have been reset, which may confuse people

So, there's not a great solution to this without a crawler/background scheduler. Which makes it a complex task.

This actually seems like an easier task to do externally, frankly, via an API script or something customized. I would encourage folks (like FastDevice) to consider a module on their side that people can buy/sign up for since I think this is also not a super-common request (though not uncommon either) and would be better suited by a simple program running "along side" Kazoo as an add-on feature.

 

Link to comment
Share on other sites

18 hours ago, Karl Stallknecht said:

Bump? :-) Any ideas @FASTDEVICE or @Rick Guyton?

I mean, my solutions does exactly what you describe. Except that the BLF keys do not that will illuminate  when the after hours or holiday TODs are active. They only illuminate when you are overriding the system schedule. Personally, that's what I want. A BIG RED BUTTON when action needs to be taken. I understand the preference for it to work the other way. But good god the unholy hacks you'd have to do to make it even kind of work as an external service would be nasty. Even if you did manage to do it... when 2600hz does maintenance and wipes the BLF status cache... your clients would be calling you all the time.

Link to comment
Share on other sites

  • 2 months later...

@Darren Schreiber I realized I never said thank you for your detailed explanation on this post! I appreciate you going over the architecture thought behind this.

I love the creativity in this thread, but for now I think these methods are just too prone to error on the side of my staff or our clients. I do like the idea of an external service, although not sure I have enough time on my hands to write that :-/ 

Link to comment
Share on other sites

  • 2 years later...
  • 8 months later...

@G2G I did this today for a client.... They wanted a recording about a snow day to play, and then calls to continue as they normally do for business hours

 

 

899 will be where the main number for the business comes in. There is a Time 24x7 that is what it says, S-S 00:00-23:59 every day. 

image.png 

The 900 Call Flow is the next Call flow with Time

image.png

You have the Work Week M-F, 8am-5pm... 

These are the two Call flows that interest us.  

 

image.png

 

Setup this Call Flow with TTS: 

"Hello, I can help you open and close your office manually. For instance you may want to force your office to be closed during a holiday. Or, may want force your office to be opened if you will be staying late. A quick note before we get started, please do not end this call early or your system may not behave as expected. I will hang up the call when we are all finished. To reset your office back to the schedule setup when your system was configured, please press 1. To manually close your office, please press 2. To manually open your office, please press 3. To Manually set a recording for Snow_Or other event closure_ Press 4. Thank you"

 

image.png

 

Then Setup a BLF on the receptionist phone emergency_change_business_schedule

When Button 1 is pressed - Everything Normal - BLF light Blank

When Button 2 is pressed - Business Closed - BLF light Solid Red

When Button 3 is pressed - Business Is Open - BLF light Solid Red

When Button 4 is pressed - Weather Message - BLF light Flashing Red

I Tried to rack my brain on how to do it with 1 Call Flow and more options, but had to resort to what I did with 2 Call Flows and Times above. (You of course have your Day/Night Call flows also to setup.

 

Hope that helps someone! 

esoare

p.s. thanks again to those that put the original effort into documenting things! 

 

*96

 

Link to comment
Share on other sites

×
×
  • Create New...