Getting Hands-On with Avaya Breeze Engagement Designer
If I can get functionality, power, and ease of use in the same package, I'd be a fool to look the other way.
"'Excellent!' I cried. 'Elementary,' said he."
-- Doctor John Watson and Sherlock Holmes
I tend to do things the hard way. I have a dishwasher, yet I still wash dishes by hand. I like to fish, but I have no desire to own an electronic fish finder. I make my pizza dough from scratch. You get the idea.
That's not to say that I am not open to being persuaded to take the easy way, but you would have to prove its value across multiple fronts. I won't trade quality for cost. Neither will I give up less tangible attributes such as self-fulfillment and personal growth. If easy seriously detracts from the holistic experience, you can count me out.
Therefore, it was completely natural for me to gravitate toward the Java interface when I began working with Avaya's Breeze technology. I find an odd sense of comfort in building Java classes, interfaces, and servlets. While I am a decent programmer, creating complicated workflows in Java is not a trivial task. I am required to implement RESTful Web services, database operations, and SIP header manipulation at a fairly low level. I wrote one particular state machine that quickly grew into a very complicated collection of states, transitions, and actions. In other words, even for experienced programmers, Breeze programming using the Java APIs is not something one should undertake lightly.The Avaya Engagement Designer
Last week, I completed a two-day Engagement Designer boot camp and decided to rethink my approach to Breeze development. Unlike the Java SDK, you don't need to be a programmer (Java or otherwise) to use Engagement Designer. The interface is 100% visual, and Snap-Ins (Breeze applications) are created by dragging, dropping, and connecting functional widgets. In a matter of minutes, I am able to create very clever workflow applications that would take me hours or possibly days to do in Java.
Best of all, I don't have to sacrifice features and performance for ease of use. While there are some things that the Java APIs can do that Engagement Designer cannot, that functionality is constrained to some of the more esoteric, less common routines. For example, you can access and manipulate the underlying SIP messages in Java, but you cannot get to them with Engagement Designer. However, the interface has been designed in a way that you will be hard pressed to think of good reasons why you would ever need to dig into SIP headers.Business Process Modeling Notation
Engagement Designer is based around the concepts defined by the Business Process Modeling Notation (BPMN) standard. BPMN allows businesses to define and document their internal business procedures using a set graphical notation. This provides organizations a way to communicate transactions within the organization and between outside entities. The goal is that by using BPMN, a business can quickly adjust to new internal and business-to-business (B2B) circumstances.
To me, the words "within," "between," transactions," and "circumstances" scream workflows, and a notation that defines business process modeling can also be used for real-time communications. The folks at Avaya felt the same and adopted a vast majority of the symbols (events, activities, gateways, etc.), design methodologies, and connection logic for their use. Not only did that simplify their job, but it greatly expanded the kinds of people who can use Engagement Designer. Said differently, you don't have to be a telephony professional to design and create practical and realistic communications workflows.The Engagement Designer Palette
Engagement Designer is a browser-based tool that allows a developer to define workflows by connecting graphical components. For example, a workflow that intercepts an incoming call and prompts the caller to receive a text message, send an email, or route the call through to the called party will look similar to the following:
My basic workflow took me about two minutes to design, deploy, and verify that it works. While I could have done the exact same thing in Java, it would have taken me far longer to write and debug it.
This brings me to another important aspect of Engagement Designer. Every workflow will be automatically validated before deployment. Knowing that a workflow is syntactically accurate before it runs, saves the designer a tremendous amount of time. Missing parameters or loopback conditions will be caught by the tool and not the users of the Snap-In. You don't get similar assistance with Java; you are responsible for finding and fixing your mistakes.Widgets Galore
The capabilities of an Engagement Designer workflow are numerous. In addition to an extensive collection of telephony tools (make call, forward call, fork call, etc.), designers can add the following:
- SMS Text
- Log Message
- Media Communications
- Play Prompt
- Play Prompt and Collect Digits
- Recognize Speech
- Schedule Scopia Conference
- Real-Time Speech
- Start Speech Search
- Stop Speech Search
- Work Assignment
- Request Resource
- Update Resource
- Reject Resource
- Query Resource
- Service Metrics
- Request Group of Resources
- Request Multiple Resources
- Context Store
- Timer Event
- Error Event
- Exclusive Gateway
- Inclusive Gateway
- Parallel Gateway
- Call RESTful service
- Read from Database
- Update Database
Another beauty of the Engagement Designer is that if you don't see a feature you absolutely need, new tools can be created with the Java SDK and added to the Engagement Designer palette. This essentially makes the platform unlimited in what it can do within a workflow. For instance, do you want an Engagement Designer tool that monitors an IoT (Internet of Things) sensor and alerts a workflow when the temperature exceeds a configured threshold? No problem.
Lastly, the debugging tools that come with Engagement Designer are very impressive. You can step-by-step your way through workflows to understand exactly which paths are chosen under what circumstances. This can be done with live data (e.g. an incoming telephone call) or staged with static, simulated information. This alone is worth the price of admission.Mischief Managed
While I expect to continue writing Breeze Snap-Ins in Java, I plan on relying more and more on Engagement Designer for a significant number of my workflows. Like every one of us in this industry, I am a busy person, and time is a very valuable commodity. If I can write the exact same application in ten minutes rather than ten days, I know which track I will choose.
As I stated early on, I am not one to trade functionality and power for ease of use. However, if I can get all three in the same package, I would be a fool to look the other way. Engagement Designer gives me nearly everything I need without compromising my standards of quality, scalability, and performance.
This article was meant to be an introduction to Engagement Designer. As I gain more experience with the tool, I expect to delve deeper into the power of workflows and how the Avaya Engagement Designer is able to turn my wild-eyed visions into reality.
Andrew Prokop writes about all things unified communications on his popular blog, SIP Adventures.