You are on page 1of 273

Avaya Engagement Designer Developer's

Guide

Release 3.7
Issue 1
December 2019
© 2014-2019, Avaya Inc. YOU DO NOT WISH TO ACCEPT THESE TERMS OF USE, YOU
All Rights Reserved. MUST NOT ACCESS OR USE THE HOSTED SERVICE OR
AUTHORIZE ANYONE TO ACCESS OR USE THE HOSTED
Notice SERVICE.
While reasonable efforts have been made to ensure that the Licenses
information in this document is complete and accurate at the time of
printing, Avaya assumes no liability for any errors. Avaya reserves THE SOFTWARE LICENSE TERMS AVAILABLE ON THE AVAYA
the right to make changes and corrections to the information in this WEBSITE, HTTPS://SUPPORT.AVAYA.COM/LICENSEINFO,
document without the obligation to notify any person or organization UNDER THE LINK “AVAYA SOFTWARE LICENSE TERMS (Avaya
of such changes. Products)” OR SUCH SUCCESSOR SITE AS DESIGNATED BY
AVAYA, ARE APPLICABLE TO ANYONE WHO DOWNLOADS,
Documentation disclaimer USES AND/OR INSTALLS AVAYA SOFTWARE, PURCHASED
“Documentation” means information published in varying mediums FROM AVAYA INC., ANY AVAYA AFFILIATE, OR AN AVAYA
which may include product information, operating instructions and CHANNEL PARTNER (AS APPLICABLE) UNDER A COMMERCIAL
performance specifications that are generally made available to users AGREEMENT WITH AVAYA OR AN AVAYA CHANNEL PARTNER.
of products. Documentation does not include marketing materials. UNLESS OTHERWISE AGREED TO BY AVAYA IN WRITING,
Avaya shall not be responsible for any modifications, additions, or AVAYA DOES NOT EXTEND THIS LICENSE IF THE SOFTWARE
deletions to the original published version of Documentation unless WAS OBTAINED FROM ANYONE OTHER THAN AVAYA, AN AVAYA
such modifications, additions, or deletions were performed by or on AFFILIATE OR AN AVAYA CHANNEL PARTNER; AVAYA
the express behalf of Avaya. End User agrees to indemnify and hold RESERVES THE RIGHT TO TAKE LEGAL ACTION AGAINST YOU
harmless Avaya, Avaya's agents, servants and employees against all AND ANYONE ELSE USING OR SELLING THE SOFTWARE
claims, lawsuits, demands and judgments arising out of, or in WITHOUT A LICENSE. BY INSTALLING, DOWNLOADING OR
connection with, subsequent modifications, additions or deletions to USING THE SOFTWARE, OR AUTHORIZING OTHERS TO DO SO,
this documentation, to the extent made by End User. YOU, ON BEHALF OF YOURSELF AND THE ENTITY FOR WHOM
YOU ARE INSTALLING, DOWNLOADING OR USING THE
Link disclaimer SOFTWARE (HEREINAFTER REFERRED TO
Avaya is not responsible for the contents or reliability of any linked INTERCHANGEABLY AS “YOU” AND “END USER”), AGREE TO
websites referenced within this site or Documentation provided by THESE TERMS AND CONDITIONS AND CREATE A BINDING
Avaya. Avaya is not responsible for the accuracy of any information, CONTRACT BETWEEN YOU AND AVAYA INC. OR THE
statement or content provided on these sites and does not APPLICABLE AVAYA AFFILIATE (“AVAYA”).
necessarily endorse the products, services, or information described Avaya grants You a license within the scope of the license types
or offered within them. Avaya does not guarantee that these links will described below, with the exception of Heritage Nortel Software, for
work all the time and has no control over the availability of the linked which the scope of the license is detailed below. Where the order
pages. documentation does not expressly identify a license type, the
Warranty applicable license will be a Designated System License as set forth
below in the Designated System(s) License (DS) section as
Avaya provides a limited warranty on Avaya hardware and software. applicable. The applicable number of licenses and units of capacity
Refer to your sales agreement to establish the terms of the limited for which the license is granted will be one (1), unless a different
warranty. In addition, Avaya’s standard warranty language, as well as number of licenses or units of capacity is specified in the
information regarding support for this product while under warranty is documentation or other materials available to You. “Software” means
available to Avaya customers and other parties through the Avaya computer programs in object code, provided by Avaya or an Avaya
Support website: https://support.avaya.com/helpcenter/ Channel Partner, whether as stand-alone products, pre-installed on
getGenericDetails?detailId=C20091120112456651010 under the link hardware products, and any upgrades, updates, patches, bug fixes,
“Warranty & Product Lifecycle” or such successor site as designated or modified versions thereto. “Designated Processor” means a single
by Avaya. Please note that if You acquired the product(s) from an stand-alone computing device. “Server” means a set of Designated
authorized Avaya Channel Partner outside of the United States and Processors that hosts (physically or virtually) a software application
Canada, the warranty is provided to You by said Avaya Channel to be accessed by multiple users. “Instance” means a single copy of
Partner and not by Avaya. the Software executing at a particular time: (i) on one physical
“Hosted Service” means an Avaya hosted service subscription that machine; or (ii) on one deployed software virtual machine (“VM”) or
You acquire from either Avaya or an authorized Avaya Channel similar deployment.
Partner (as applicable) and which is described further in Hosted SAS License types
or other service description documentation regarding the applicable
hosted service. If You purchase a Hosted Service subscription, the Concurrent User License (CU). End User may install and use the
foregoing limited warranty may not apply but You may be entitled to Software on multiple Designated Processors or one or more Servers,
support services in connection with the Hosted Service as described so long as only the licensed number of Units are accessing and using
further in your service description documents for the applicable the Software at any given time. A “Unit” means the unit on which
Hosted Service. Contact Avaya or Avaya Channel Partner (as Avaya, at its sole discretion, bases the pricing of its licenses and can
applicable) for more information. be, without limitation, an agent, port or user, an e-mail or voice mail
account in the name of a person or corporate function (e.g.,
Hosted Service webmaster or helpdesk), or a directory entry in the administrative
THE FOLLOWING APPLIES ONLY IF YOU PURCHASE AN AVAYA database utilized by the Software that permits one user to interface
HOSTED SERVICE SUBSCRIPTION FROM AVAYA OR AN AVAYA with the Software. Units may be linked to a specific, identified Server
CHANNEL PARTNER (AS APPLICABLE), THE TERMS OF USE or an Instance of the Software.
FOR HOSTED SERVICES ARE AVAILABLE ON THE AVAYA Cluster License (CL). End User may install and use each copy or an
WEBSITE, HTTPS://SUPPORT.AVAYA.COM/LICENSEINFO UNDER Instance of the Software only up to the number of Clusters as
THE LINK “Avaya Terms of Use for Hosted Services” OR SUCH indicated on the order with a default of one (1) Cluster if not stated.
SUCCESSOR SITE AS DESIGNATED BY AVAYA, AND ARE “Cluster” means a group of Servers and other resources that act as a
APPLICABLE TO ANYONE WHO ACCESSES OR USES THE single system.
HOSTED SERVICE. BY ACCESSING OR USING THE HOSTED
SERVICE, OR AUTHORIZING OTHERS TO DO SO, YOU, ON Heritage Nortel Software
BEHALF OF YOURSELF AND THE ENTITY FOR WHOM YOU ARE “Heritage Nortel Software” means the software that was acquired by
DOING SO (HEREINAFTER REFERRED TO INTERCHANGEABLY Avaya as part of its purchase of the Nortel Enterprise Solutions
AS “YOU” AND “END USER”), AGREE TO THE TERMS OF USE. IF Business in December 2009. The Heritage Nortel Software is the
YOU ARE ACCEPTING THE TERMS OF USE ON BEHALF A software contained within the list of Heritage Nortel Products located
COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT at https://support.avaya.com/LicenseInfo under the link “Heritage
YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY TO THESE Nortel Products” or such successor site as designated by Avaya. For
TERMS OF USE. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF Heritage Nortel Software, Avaya grants Customer a license to use
Heritage Nortel Software provided hereunder solely to the extent of INDEPENDENTLY OBTAIN ANY APPLICABLE LICENSE
the authorized activation or authorized usage level, solely for the AGREEMENTS, AT THE AVAYA CHANNEL PARTNER’S EXPENSE,
purpose specified in the Documentation, and solely as embedded in, DIRECTLY FROM THE APPLICABLE THIRD PARTY SUPPLIER.
for execution on, or for communication with Avaya equipment.
WITH RESPECT TO CODECS, IF THE AVAYA CHANNEL
Charges for Heritage Nortel Software may be based on extent of
PARTNER IS HOSTING ANY PRODUCTS THAT USE OR EMBED
activation or use authorized as specified in an order or invoice.
THE H.264 CODEC OR H.265 CODEC, THE AVAYA CHANNEL
Copyright PARTNER ACKNOWLEDGES AND AGREES THE AVAYA
CHANNEL PARTNER IS RESPONSIBLE FOR ANY AND ALL
Except where expressly stated otherwise, no use should be made of RELATED FEES AND/OR ROYALTIES. THE H.264 (AVC) CODEC
materials on this site, the Documentation, Software, Hosted Service, IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE
or hardware provided by Avaya. All content on this site, the FOR THE PERSONAL USE OF A CONSUMER OR OTHER USES
documentation, Hosted Service, and the product provided by Avaya IN WHICH IT DOES NOT RECEIVE REMUNERATION TO: (I)
including the selection, arrangement and design of the content is ENCODE VIDEO IN COMPLIANCE WITH THE AVC STANDARD
owned either by Avaya or its licensors and is protected by copyright (“AVC VIDEO”) AND/OR (II) DECODE AVC VIDEO THAT WAS
and other intellectual property laws including the sui generis rights ENCODED BY A CONSUMER ENGAGED IN A PERSONAL
relating to the protection of databases. You may not modify, copy, ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PROVIDER
reproduce, republish, upload, post, transmit or distribute in any way LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS GRANTED
any content, in whole or in part, including any code and software OR SHALL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL
unless expressly authorized by Avaya. Unauthorized reproduction, INFORMATION FOR H.264 (AVC) AND H.265 (HEVC) CODECS
transmission, dissemination, storage, and or use without the express MAY BE OBTAINED FROM MPEG LA, L.L.C. SEE HTTP://
written consent of Avaya can be a criminal, as well as a civil offense WWW.MPEGLA.COM.
under the applicable law.
Compliance with Laws
Virtualization
You acknowledge and agree that it is Your responsibility for
The following applies if the product is deployed on a virtual machine. complying with any applicable laws and regulations, including, but not
Each product has its own ordering code and license types. Unless limited to laws and regulations related to call recording, data privacy,
otherwise stated, each Instance of a product must be separately intellectual property, trade secret, fraud, and music performance
licensed and ordered. For example, if the end user customer or rights, in the country or territory where the Avaya product is used.
Avaya Channel Partner would like to install two Instances of the
same type of products, then two products of that type must be Preventing Toll Fraud
ordered.
“Toll Fraud” is the unauthorized use of your telecommunications
Third Party Components system by an unauthorized party (for example, a person who is not a
corporate employee, agent, subcontractor, or is not working on your
“Third Party Components” mean certain software programs or company's behalf). Be aware that there can be a risk of Toll Fraud
portions thereof included in the Software or Hosted Service may associated with your system and that, if Toll Fraud occurs, it can
contain software (including open source software) distributed under result in substantial additional charges for your telecommunications
third party agreements (“Third Party Components”), which contain services.
terms regarding the rights to use certain portions of the Software
(“Third Party Terms”). As required, information regarding distributed Avaya Toll Fraud intervention
Linux OS source code (for those products that have distributed Linux
If You suspect that You are being victimized by Toll Fraud and You
OS source code) and identifying the copyright holders of the Third
need technical assistance or support, call Technical Service Center
Party Components and the Third Party Terms that apply is available
in the products, Documentation or on Avaya’s website at: https:// Toll Fraud Intervention Hotline at +1-800-643-2353 for the United
support.avaya.com/Copyright or such successor site as designated States and Canada. For additional support telephone numbers, see
by Avaya. The open source software license terms provided as Third the Avaya Support website: https://support.avaya.com or such
successor site as designated by Avaya.
Party Terms are consistent with the license rights granted in these
Software License Terms, and may contain additional rights benefiting Security Vulnerabilities
You, such as modification and distribution of the open source
software. The Third Party Terms shall take precedence over these Information about Avaya’s security support policies can be found in
Software License Terms, solely with respect to the applicable Third the Security Policies and Support section of https://
Party Components to the extent that these Software License Terms support.avaya.com/security.
impose greater restrictions on You than the applicable Third Party Suspected Avaya product security vulnerabilities are handled per the
Terms. Avaya Product Security Support Flow (https://
The following applies only if the H.264 (AVC) codec is distributed with support.avaya.com/css/P8/documents/100161515).
the product. THIS PRODUCT IS LICENSED UNDER THE AVC Downloading Documentation
PATENT PORTFOLIO LICENSE FOR THE PERSONAL USE OF A
CONSUMER OR OTHER USES IN WHICH IT DOES NOT RECEIVE For the most current versions of Documentation, see the Avaya
REMUNERATION TO (i) ENCODE VIDEO IN COMPLIANCE WITH Support website: https://support.avaya.com, or such successor site
THE AVC STANDARD (“AVC VIDEO”) AND/OR (ii) DECODE AVC as designated by Avaya.
VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A Contact Avaya Support
PERSONAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO
PROVIDER LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS See the Avaya Support website: https://support.avaya.com for
GRANTED OR SHALL BE IMPLIED FOR ANY OTHER USE. product or Hosted Service notices and articles, or to report a problem
ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, with your Avaya product or Hosted Service. For a list of support
L.L.C. SEE HTTP://WWW.MPEGLA.COM. telephone numbers and contact addresses, go to the Avaya Support
website: https://support.avaya.com (or such successor site as
Service Provider designated by Avaya), scroll to the bottom of the page, and select
THE FOLLOWING APPLIES TO AVAYA CHANNEL PARTNER’S Contact Avaya Support.
HOSTING OF AVAYA PRODUCTS OR SERVICES. THE PRODUCT Trademarks
OR HOSTED SERVICE MAY USE THIRD PARTY COMPONENTS
SUBJECT TO THIRD PARTY TERMS AND REQUIRE A SERVICE The trademarks, logos and service marks (“Marks”) displayed in this
PROVIDER TO BE INDEPENDENTLY LICENSED DIRECTLY FROM site, the Documentation, Hosted Service(s), and product(s) provided
THE THIRD PARTY SUPPLIER. AN AVAYA CHANNEL PARTNER’S by Avaya are the registered or unregistered Marks of Avaya, its
HOSTING OF AVAYA PRODUCTS MUST BE AUTHORIZED IN affiliates, its licensors, its suppliers, or other third parties. Users are
WRITING BY AVAYA AND IF THOSE HOSTED PRODUCTS USE not permitted to use such Marks without prior written consent from
OR EMBED CERTAIN THIRD PARTY SOFTWARE, INCLUDING Avaya or such third party which may own the Mark. Nothing
BUT NOT LIMITED TO MICROSOFT SOFTWARE OR CODECS, contained in this site, the Documentation, Hosted Service(s) and
THE AVAYA CHANNEL PARTNER IS REQUIRED TO product(s) should be construed as granting, by implication, estoppel,
or otherwise, any license or right in and to the Marks without the
express written permission of Avaya or the applicable third party.
Avaya is a registered trademark of Avaya Inc.
All non-Avaya trademarks are the property of their respective owners.
Linux® is the registered trademark of Linus Torvalds in the U.S. and
other countries.
Contents

Chapter 1: Introduction.......................................................................................................... 11
Intended audience................................................................................................................. 11
Chapter 2: Overview............................................................................................................... 12
Engagement Designer description.......................................................................................... 12
Accessing Engagement Designer........................................................................................... 13
Chapter 3: User interfaces..................................................................................................... 15
Engagement Designer interface description............................................................................. 15
Administration Console.......................................................................................................... 18
Instance Viewer description.............................................................................................. 20
Chapter 4: Data Mapping........................................................................................................ 23
Data mapper description........................................................................................................ 23
Mapping task data........................................................................................................... 24
Transforming input mapping data...................................................................................... 24
Transforming output mapping data.................................................................................... 26
Data Mapper validation.................................................................................................... 27
Mapping special cases..................................................................................................... 31
Chapter 5: Pools and Lanes................................................................................................... 33
Pools and Lanes descriptions................................................................................................. 33
Adding a Pool and Lanes to a WFD........................................................................................ 33
Chapter 6: Create, edit, or delete a Workflow Definition..................................................... 35
Creating a workflow............................................................................................................... 35
Defining a Start event............................................................................................................ 35
Scheduling a Start event.................................................................................................. 36
Mapping Start event output variables...................................................................................... 37
Adding a task........................................................................................................................ 37
Repeating execution........................................................................................................ 39
Task synchronicity........................................................................................................... 39
Completing the Workflow Definition......................................................................................... 39
Deploying the Workflow Definition........................................................................................... 40
Editing a Workflow Definition.................................................................................................. 41
Deleting a draft workflow........................................................................................................ 41
Deleting a deployed workflow................................................................................................. 41
Deleting Workflow Instances.................................................................................................. 42
Chapter 7: Comparing Workflows......................................................................................... 43
Workflow Diff Tool overview.................................................................................................... 43
Using the Workflow Diff Tool................................................................................................... 43
®
Comparing Avaya Oceana Solution workflows........................................................................ 46
Chapter 8: Debug a Workflow Definition.............................................................................. 50
Debugger description............................................................................................................. 50

December 2019 Avaya Engagement Designer Developer's Guide 5


Comments on this document? infodev@avaya.com
Contents

Debugging a Workflow Definition............................................................................................ 51


Chapter 9: Test a Workflow Definition.................................................................................. 53
Creating a test instance of the Workflow Definition................................................................... 53
Verifying Workflow Definition status........................................................................................ 53
Verifying Workflow Instance status.......................................................................................... 54
Chapter 10: Import or export a Workflow Definition............................................................ 55
Exporting a workflow as a file................................................................................................. 55
Exporting a workflow as an svar package................................................................................ 55
Importing a Workflow Definition from an XML file..................................................................... 56
Importing a Workflow Definition from an svar file...................................................................... 56
Chapter 11: Archive Workflow Data...................................................................................... 58
Configuring archival attributes................................................................................................ 58
Archiving Workflow data......................................................................................................... 59
Chapter 12: Event Catalog..................................................................................................... 60
Event Catalog description...................................................................................................... 60
Creating an Event.................................................................................................................. 61
Event catalog field descriptions........................................................................................ 61
Chapter 13: Routing................................................................................................................ 62
Routing Workflow Definitions.................................................................................................. 62
Creating routing rules...................................................................................................... 62
Activating and deactivating routing rules............................................................................ 64
Chapter 14: Global Variables................................................................................................. 65
Global Variables description................................................................................................... 65
Creating a static Global Variable............................................................................................. 65
Creating an externally provided Global Variable....................................................................... 66
Chapter 15: Connectors......................................................................................................... 67
Connectors description.......................................................................................................... 67
Adding conditions to connectors............................................................................................. 67
Chapter 16: Events................................................................................................................. 69
Events description................................................................................................................. 69
Start event............................................................................................................................ 69
End event............................................................................................................................. 70
Terminate event.................................................................................................................... 71
Interrupt event....................................................................................................................... 71
Intermediate Timer Event....................................................................................................... 73
Message Boundary Event...................................................................................................... 73
Error Boundary Event............................................................................................................ 75
Timeout Boundary Event........................................................................................................ 75
Chapter 17: Conditions.......................................................................................................... 77
Conditions (Gateways) description.......................................................................................... 77
Condition Match (Exclusive Gateway)..................................................................................... 77
Multiple Conditions Match (Inclusive Gateway)........................................................................ 79

December 2019 Avaya Engagement Designer Developer's Guide 6


Comments on this document? infodev@avaya.com
Contents

All (Parallel Gateway)............................................................................................................ 80


Chapter 18: Variables node.................................................................................................... 82
Variables node description..................................................................................................... 82
Chapter 19: Properties node.................................................................................................. 83
Properties node description.................................................................................................... 83
Adding properties.................................................................................................................. 84
Viewing properties................................................................................................................. 84
Chapter 20: Tasks................................................................................................................... 85
Integration tasks.................................................................................................................... 85
Receive.......................................................................................................................... 85
Call Rest Service............................................................................................................. 88
Create Process............................................................................................................... 90
Abstract Task.................................................................................................................. 91
Cancel Task.................................................................................................................... 91
Read Spreadsheet File.................................................................................................... 92
Read From DB................................................................................................................ 93
Update DB...................................................................................................................... 94
Conditional Assign........................................................................................................... 96
User Task....................................................................................................................... 96
Sub-process................................................................................................................... 99
Comment...................................................................................................................... 100
Publish Event................................................................................................................ 100
Error............................................................................................................................. 101
Get Last Agent.............................................................................................................. 102
Update Last Agent......................................................................................................... 103
Notification tasks................................................................................................................. 104
Send Email................................................................................................................... 104
Send Text Msg.............................................................................................................. 105
Log Message................................................................................................................ 107
Alarm........................................................................................................................... 107
Telephony Communications tasks......................................................................................... 109
Allow Call..................................................................................................................... 109
Block Call..................................................................................................................... 109
Announce and Block Call............................................................................................... 110
Drop Call...................................................................................................................... 112
Fork Call....................................................................................................................... 112
Forward Call.................................................................................................................. 113
Suspend Call................................................................................................................. 114
Make Call...................................................................................................................... 115
Set Call Policy............................................................................................................... 116
Drop Participant............................................................................................................. 118
Add Participant.............................................................................................................. 119
Set Called Party............................................................................................................ 120

December 2019 Avaya Engagement Designer Developer's Guide 7


Comments on this document? infodev@avaya.com
Contents

Set Calling Party........................................................................................................... 121


Get Calling Party........................................................................................................... 122
Get Called Party............................................................................................................ 123
Set Call Context............................................................................................................ 124
Get Call Context............................................................................................................ 125
Leave Call.................................................................................................................... 126
Get User Data Task............................................................................................................. 127
Get User Data............................................................................................................... 127
Media Communication tasks................................................................................................. 128
Play And Collect............................................................................................................ 128
Send DTMF.................................................................................................................. 133
Play Announcement...................................................................................................... 134
Recognize Speech........................................................................................................ 139
Schedule Scopia........................................................................................................... 140
Record Participant......................................................................................................... 142
Transformation tasks........................................................................................................... 145
Assign.......................................................................................................................... 145
Data Manipulation......................................................................................................... 145
IFTTT Task......................................................................................................................... 148
IFTTT........................................................................................................................... 148
VXML Tasks........................................................................................................................ 149
Interactive Voice............................................................................................................ 149
Use VXML.................................................................................................................... 154
Salesforce CRM Tasks......................................................................................................... 156
Create Account............................................................................................................. 156
Account Authentication.................................................................................................. 158
Get Account.................................................................................................................. 159
Update Billing Address................................................................................................... 162
Update Account............................................................................................................ 163
Create Contact.............................................................................................................. 165
Get Contact.................................................................................................................. 167
Update Contact............................................................................................................. 169
Create Case................................................................................................................. 171
Retrieve Open Case...................................................................................................... 173
Update Case................................................................................................................. 175
Configuring Salesforce CRM login attributes.................................................................... 176
How to use CRM tasks in a workflow.............................................................................. 177
Work Assignment tasks........................................................................................................ 182
Work Assignment tasks overview.................................................................................... 182
Input mapping for Work Assignment tasks....................................................................... 182
Output mapping for Work Assignment tasks.................................................................... 185
Work Assignment Message Boundary Events.................................................................. 186
Work Assignment sample Workflow Definitions................................................................ 190

December 2019 Avaya Engagement Designer Developer's Guide 8


Comments on this document? infodev@avaya.com
Contents

Request Resource......................................................................................................... 192


Update Request Resource............................................................................................. 194
Reject Resource............................................................................................................ 195
Request Multiple Resources........................................................................................... 196
Request Group of Resources......................................................................................... 198
Cancel Request............................................................................................................ 199
Service Metrics............................................................................................................. 200
Query Resource............................................................................................................ 201
Context Store task............................................................................................................... 202
Context Store task overview........................................................................................... 202
Context Store................................................................................................................ 202
Creating a Context Store Workflow Definition................................................................... 209
Output mapping with csObjectOutput ............................................................................. 211
Real-Time Speech Search tasks........................................................................................... 214
Real-time Speech Search tasks overview........................................................................ 214
Start Speech Search...................................................................................................... 217
Stop Speech Search...................................................................................................... 218
Avaya Oceana Solution tasks............................................................................................... 219
Send Offer.................................................................................................................... 219
Send Queued................................................................................................................ 221
Send Error.................................................................................................................... 222
Request AutoChat......................................................................................................... 224
Create Element............................................................................................................. 225
Create Data.................................................................................................................. 227
Get Context.................................................................................................................. 230
Get Customer Id............................................................................................................ 233
Get Services................................................................................................................. 235
Update Context............................................................................................................. 238
Configuring the Context Store cluster.............................................................................. 241
Configuring the Customer Management Cluster............................................................... 242
Build Service................................................................................................................. 242
Extract Attributes........................................................................................................... 244
Modify Attributes........................................................................................................... 247
Assign Attributes........................................................................................................... 250
Route To Agent............................................................................................................. 253
ZangCloud Tasks................................................................................................................ 256
ZangCloud Snap-in description....................................................................................... 256
Configuring ZangCloud Snap-in attributes....................................................................... 256
Carrier Lookup.............................................................................................................. 257
Mobile Lookup.............................................................................................................. 259
Billing Address Lookup.................................................................................................. 261
Caller Lookup................................................................................................................ 263
Transcribe Audio URL.................................................................................................... 265

December 2019 Avaya Engagement Designer Developer's Guide 9


Comments on this document? infodev@avaya.com
Contents

Chapter 21: Additional Resources...................................................................................... 267


Documentation.................................................................................................................... 267
Avaya DevConnect.............................................................................................................. 268
Support.............................................................................................................................. 268

December 2019 Avaya Engagement Designer Developer's Guide 10


Comments on this document? infodev@avaya.com
Chapter 1: Introduction

Intended audience
This document is intended for business process analysts and developers who use Engagement
Designer to create Workflow Definitions that will be executed by Avaya Breeze® platform.
Experience with Business Process Model and Notation (BPMN) 2.0 is helpful but not required.

December 2019 Avaya Engagement Designer Developer's Guide 11


Comments on this document? infodev@avaya.com
Chapter 2: Overview

Engagement Designer description


Engagement Designer has the following components that run on Avaya Breeze® platform:
• Workflow Engine (WFE)
• Workflow Definition (WFD)
• Workflow Instance (WFI)
Workflow Engine
The Workflow Engine is installed as a snap-in on Avaya Breeze® platform. It subscribes to Avaya
Breeze® platform events and executes the Workflow Instances for deployed Workflow Definitions.
Workflow Definition
Workflow Definitions describe business processes used in your enterprise. Use Workflow
Definitions to create complex, end-to-end communications-enabled business processes across
mobile collaboration and contact center applications. Engagement Designer supports Business
Process Model and Notation (BPMN) 2.0. Adhering to the BPMN specification, Engagement
Designer supports three types of nodes in the WFD:
• Events – Events are represented as circles in the WFD. They specify something that
happens during the WFD (as opposed to an activity that is done, like a task).
• Conditions (Gateways) – Conditions are represented as diamonds in the WFD. Conditions
are used for decision-making to determine which execution paths are taken by a workflow
instance.
• Activities – Activities are represented as rounded rectangles in the WFD. They indicate a pre-
defined action that is performed by the , workflow when it executes this node. Activities
include:
- Integration Tasks
- Notification Tasks (requires Communication Tasks bundle)
- Telephony Communications Tasks (requires Communication Tasks bundle)
- Media Communications Tasks (requires Communication Tasks bundle)
- Work Assignment Tasks (requires Avaya Work Assignment Snap-in)
- Context Store Task (requires Avaya Context Store Snap-in)
- Real-Time Speech Search Tasks (requires Avaya Real-Time Speech Snap-in)
- Avaya Oceana® Solution Tasks (requires Avaya Oceana® Solution)

December 2019 Avaya Engagement Designer Developer's Guide 12


Comments on this document? infodev@avaya.com
Accessing Engagement Designer

- ZangCloud Tasks (requires ZangCloud Snap-in)


- Salesforce CRM Tasks (requires Salesforce CRM Tasks bundle)
- VXML Tasks (requires VXML Tasks bundle). Unlike other task bundles, the VXML task
bundle is deployed on System Manager rather than from the Engagement Designer
Administration Console.
- Transformation Tasks (requires Communication Tasks bundle)
- Dynamic Tasks created independently by Engagement Designer task developers.
The Variables node is a special un-connectable node in the WFD. It stores variables provided by
the Start event for use in the WFD. Additionally, some tasks create data that can be stored by
mapping it to the Variables node for use by subsequent tasks.
The Properties node is also an un-connectable node in the WFD. Use it to define additional
properties for the WFD that become snap-in attributes when the WFD is deployed.
Engagement Designer supports BPMN Pools and Lanes for enhancing visual usability in a WFD.
Add tasks to a Workflow Definition by selecting them from the palette on the left margin of the
Engagement Designer interface. All Workflow Definitions must have a Start event, End event,
Variables node, and Properties node. Deploy Workflow Definitions directly from the Engagement
Designer interface.
Workflow Instance
A Workflow Instance is created each time a Workflow Definition is invoked by a triggering event.

Accessing Engagement Designer


Before you begin
Engagement Designer must be deployed on Avaya Breeze® platform. For deployment information,
see Avaya Engagement Designer Reference.
The computer used to access Engagement Designer must be able to resolve the Avaya Breeze®
platform FQDN to the IP address of the Avaya Breeze® platform Security Module and the System
Manager FQDN to the primary System Manager IP address. Do this through DNS or by modifying
your local hosts file. Contact your system administrator for assistance.
Access to Engagement Designer depends on the permission assigned to the user. For information
on assigning permissions, see Avaya Engagement Designer Reference. The following
permissions apply:
• Designer Console Read Access – Can read workflows.
• Designer Console Write Access – Can read, edit and save workflows.
• Designer Console URL Access – Allows access to the Engagement Designer web page. Can
read, write, and deploy workflows.
• Admin Console URL Access – Allows access to the Engagement Designer administration
console page. Can open the administration console and perform administration functions.
Also can read, write, and deploy workflows.

December 2019 Avaya Engagement Designer Developer's Guide 13


Comments on this document? infodev@avaya.com
Overview

Procedure
Access Engagement Designer by one of the following methods.
• Enter the following address in your web browser : https://<FQDN of the Avaya Breeze
security module>/services/EngagementDesigner/index.html. Enter your System
Manager logon credentials.
Note:
The redirection URL should contain the FQDN of Avaya Breeze® platform. If you are
redirected to the System Manager logon URL, but the goto address URL query parameter
contains the security module IP address rather than the FQDN of the Avaya Breeze®
platform server, you will receive a redirect loop error. Replace the IP address with the
FQDN.
• On System Manager click Elements > Avaya Breeze® > Cluster Administration. In the row
for the cluster where Engagement Designer is installed, click Select in the Service URL column.
Select Designer Console URL.
Note:
If you receive a blank canvas without a palette, Engagement Designer did not install correctly.
Install Engagement Designer again.

December 2019 Avaya Engagement Designer Developer's Guide 14


Comments on this document? infodev@avaya.com
Chapter 3: User interfaces

Engagement Designer interface description


There are six sections of the Engagement Designer interface:
• Menu bar
• Palette
• Canvas
• Properties pane
• Zoom view
• Error pane

Menu bar
Buttons and icons display in a menu bar along the top of the interface. Place your cursor over any
button or icon to see a brief description of its purpose.

December 2019 Avaya Engagement Designer Developer's Guide 15


Comments on this document? infodev@avaya.com
User interfaces

Button
New Click to create a new workflow, create a workflow
from a template, or open a draft or deployed
workflow.
Validate Click to verify that the workflow is constructed with
valid entries in all required properties. The error
pane displays along the bottom edge of the
interface with the result of the validation. It displays
errors or warnings associated with the workflow.
Deploy Click to deploy a finished workflow.
Admin Console Click to access the Administration Console.
Import Click to import a workflow xml file by navigating to
the location where it is stored.
Export as Click to export a workflow as an xml or svar file.
Help Click to access help systems for deployed task
bundles.

Icon
Preview Workflow – Click to display a preview of the
workflow in a separate window. From this window
you can select to print the workflow without the user
interface surround.
Start debugging – Click to run and verify operation
of a workflow without deploying it. Validate your
workflow before you debug it.
Task alignment options – Select a group of nodes
on the canvas. Click this icon to change the
alignment of the selected nodes.
Grids enabled/disabled – Click to enable or disable
the appearance of a grid on the workflow canvas.
The grid is helpful in aligning nodes.
Zoom – Use the zoom slide to resize the
appearance of the workflow.

Zoom Reset – Click to reset zoom to 100%. The


workflow can be edited only at 100% magnification.
Settings – Click and select one of the following;
• Click the Autosave box to automatically save your
workflow every 5 minutes.
• Click Diff Tool to launch the Diff Tool in a separate
browser window. Use the Diff Tool to identify
differences between two workflows. See Workflow
Diff Tool overview on page 43.

December 2019 Avaya Engagement Designer Developer's Guide 16


Comments on this document? infodev@avaya.com
Engagement Designer interface description

The palette
The palette displays along the left margin of the interface. It lists the tasks that can be dragged
and dropped onto the canvas as part of a Workflow Definition. Tasks with common functions are
divided into separate drawers that can be collapsed or expanded. The palette is collapsible. The
tasks that appear on your palette depend upon which task bundles have been deployed on
Engagement Designer. For instructions for deploying additional task bundles on your system, see
Avaya Engagement Designer Reference.
The canvas
The canvas is the section of the interface where the Workflow Definition displays as you build it.
The canvas displays with a prepopulated Variables, Properties, and Start node. Drag tasks from
the palette onto the canvas to create the Workflow Definition. When dragging tasks across the
canvas, guidelines appear to aid in alignment. When you drag a node onto the canvas, it
automatically snaps to the closest grid location. Right click on the canvas, then select Undo to
discard changes.
Formatting nodes
Select one or multiple nodes and arrows and right click then click Format to access the style
toolbar.

Use this toolbar to:


• Format the color, alignment and characteristics of text displayed for the node or arrow
• Format the width, line type, and corner shape for arrows
Copying nodes
To copying nodes within or between workflows, select one or multiple nodes. Right click and select
Copy. In the location or workflow where you want the copy to appear, right click and select Paste.
To copy between two instances of Engagement Designer, both instances must be in the same
domain.
The properties pane
The properties pane displays at the right-hand side of the interface when you double-click a task
on the canvas. It displays the task properties. It can be resized.
The zoom view
The zoom view shows all the canvas items in a small viewer in the lower- left corner of the
interface, below the palette. It gives an overall perspective of the workflow.
The error pane
The error pane displays along the bottom edge of the interface only when you validate a Workflow
Definition. It lists errors and warnings that result from the validation. It can be resized and is
collapsible.

December 2019 Avaya Engagement Designer Developer's Guide 17


Comments on this document? infodev@avaya.com
User interfaces

Administration Console

Select from the tabs on the Administration Console:


• Workflows
• Workflow Drafts
• Instances
• Event Catalog
• Bundles
• Variables
• Routing
• Rules
Workflows
The version number, description, and deployment status of each workflow, including the day the
workflow was deployed. For any workflow in the list, you can do the following :
• Create Instance: Creates an instance of the workflow. The Instances page displays the
instance the page, which you can view in the Instances Viewer.
• Undeploy Workflow: Undeploys workflow drafts.
• Attributes: Shows the properties associated with the workflow.
From the actions icons, you can choose whether to copy or undeploy a selected workflow.
Workflow Drafts
The names of the draft workflows and the file path to their location. You can:
• Create a new workflow by being routed back to the Engagement Designer canvas.

December 2019 Avaya Engagement Designer Developer's Guide 18


Comments on this document? infodev@avaya.com
Administration Console

• Delete a selected workflow draft.


From the actions icons, you can also edit, copy, deploy, export, or delete a selected draft workflow.
Instances
A list of all workflow instances. If you set your global attributes in System Manager to delete
completed instances, the list of workflow instances includes only those instances that are still in
progress. Select any Instance in the list, and do one of the following:
• Continue: Causes an active workflow instance to continue to the next step.
• Terminate: Terminates an active workflow instance.
• Delete: Deletes any workflow instance.
From this page, you can also:
• Change the interval at which the Instances list refreshes.
• Delete all workflow instances.
• Archive the instances based on the schedule you configure. For more information, see
Archiving Workflow data on page 59.
• Select any workflow instances to view it in the instance viewer.
Event Catalog
A list of administered events. Select any event in the list, and do one of the following :
• View
• Edit
• Delete
• Export
• Import
You can also use this page to create new events. For more information, see Event Catalog
description on page 60.
Bundles
A list of task bundles deployed, or available to be deployed. On this page, you can do the
following:
• Load a task bundle to Engagement Designer.
• Deploy the task bundle so that tasks are available on the Engagement Designer palette.
• Remove tasks from the Engagement Designer palette.
• Download the task bundle to an alternate location.
• Delete the task bundle from Engagement Designer.
• View the attributes associated with the selected bundle.
• Export the task bundle as an svar file.

December 2019 Avaya Engagement Designer Developer's Guide 19


Comments on this document? infodev@avaya.com
User interfaces

Variables
A list of the static and externally provided global variables. You can:
• Create a new global variable.
• View, edit or delete an existing global variable.
For information about creating static and externally provided global variables, see Global Variables
description on page 65.
Routing
A list of administered routing rules. Do one of the following:
• Create a new rule.
• Edit a selected existing rule.
• Delete a selected existing rule.
• Activate a selected rule that has been disabled. Rules are enabled by default when they are
created.
• Deactivate a selected rule.
For information about creating or editing a rule, see Routing Workflow Definitions on page 62.
Rules
A list of rule sets that can be used within a workflow to modify the workflow behavior based on
variables defined in the rule set. For additional information, see the IFTTT task description. On this
tab do one of the following:
• Create a new rule set.
• Edit a selected existing rule set.
• Add/edit rules in a rule set.
• Delete a selected existing rule set.
Related links
Instance Viewer description on page 20

Instance Viewer description


Use the Instance Viewer to track the execution path of a WFI.
Click any instance in the list of instances on the Administration Console to open the Instance
Viewer.

December 2019 Avaya Engagement Designer Developer's Guide 20


Comments on this document? infodev@avaya.com
Administration Console

The Instance Viewer shows the path the WFI took through the WFD nodes. Click any highlighted
node for additional information. If the WFI has not completed, return to the Instances page, select
the WFI, and click Continue. Return to the Instance Viewer to view the results.
Nodes that have been completed are highlighted in green.
Nodes that were visited but not completed are highlighted in orange.
Nodes that have been cancelled are highlighted in purple.
Nodes that have errors are highlighted in red.
You can view an instance of a Create Process task by clicking the task in the Instance Viewer. If
the task has executed, the process opens in a separate Instance Viewer tab.
Click an Intermediate Timer Event or Timeout Boundary Event to view the start time and expected
end time.
Direct access to the workflow Instance Detail page
You can open an Instance Detail page in a separate browser window, thereby creating a link to the
page that you can share or use for direct access. The page refreshes automatically.
From the Instances tab, select the instance you want to track. On the Instance detail page, click
Share .

December 2019 Avaya Engagement Designer Developer's Guide 21


Comments on this document? infodev@avaya.com
User interfaces

The Instance Detail page opens in a separate browser window.


Related links
Administration Console on page 18
Creating a test instance of the Workflow Definition on page 53

December 2019 Avaya Engagement Designer Developer's Guide 22


Comments on this document? infodev@avaya.com
Chapter 4: Data Mapping

Data mapper description


The data mapper manages the flow of data from the Start event through the different tasks of the
Workflow Definition (WFD). The data arrives at the Start event from:
• An event administered in the Event Catalog
• An event created by the completion of another WFD
• A process created by a Create Process task
• A website or REST client
Data can also arrive from static or externally provided global variables that you have created from
the Routing tab of the Administration Console. For more information, see Global Variables
description on page 65.
Start events have an associated schema that describes the available data. Events from the Event
Catalog arrive with a preset schema. For Events without a schema you can enter a schema in the
Start event.
For the data from the Start event to be available to tasks in the WFD, data must be passed from
the Start event to the Variables node. The Variables node acts as a repository for the data that is
passed from task to task through the WFD. Click Output Mapping on the Start properties
window to map data from the Start event to the Variables node. The Start event output scheme is
automatically mapped to the Variables node at the object level. You can change this mapping, or
map specific values from the schema.
Each time a task requires data from the Variables node, on the task properties window, click Map
next to any property or click Input Mapping to map data from the Variables node to the task.
Likewise, a task may store data in the Variables node for use in subsequent tasks. Click Output
Mapping on the task properties window to map this data to the Variables node.
In this way, data from the start event is available throughout the WFD. And, data collected by
tasks throughout the WFD is also available to other subsequent tasks in the WFD.
When a Start event is triggered by a call or call intercepted event family, Engagement Designer
automatically maps the UCID from the StartSchema for tasks that have the UCID in the task input
schema.
You can also modify the data that passes between the Variables node and other tasks in the
WFD. Use the Expression Builder to create an expression to change data for each data mapping
connection.

December 2019 Avaya Engagement Designer Developer's Guide 23


Comments on this document? infodev@avaya.com
Data Mapping

Note:
If there are child-level mappings and object-level mappings, the object-level mapping takes
precedence.
Related links
Transforming output mapping data on page 26

Mapping task data


Procedure
1. Double-click the task to open the properties window.
2. Map data the task requires from the Variables node or Global Variables. (Input Mapping).
This data can be workflow-specific variables stored in the Variables node or Global
Variables available to any workflow.
a. Click the arrow to the right of any property.
b. From the list, select the item that you want mapped to this property.
Begin typing the name of the item you want to map to view a smaller list of possible
selections.
c. When you have mapped all required task properties, click the canvas to close the
properties window.
3. Map data the task saves to the Variables node (Output Mapping).
a. Click Output Mapping.
b. Place your cursor over an item in the output schema list on the left side of the window
until an arrow appears at the end of the item.
Map items based on the field names within the schema, not its title.
c. Click on the arrow and drag it to align with its matching item in the variables list on the
right side of the window.
d. When you have matched all the items you want to map to the Variables node, click
Save.

Transforming input mapping data


Procedure
1. Double-click the task to open the properties window.
2. Click the arrow to the right of any mapped property.
3. Click the Expression Editor icon.

December 2019 Avaya Engagement Designer Developer's Guide 24


Comments on this document? infodev@avaya.com
Data mapper description

4. Click the Functions tab to display the functions that can be used to transform the data.
5. Click any of the functions in the Functions list to add it to the Expression Box.
Place your cursor over any function to read an explanation of its result.
6. Click to continue adding functions to build an expression that will manipulate the data.
The Expression Editor supports the Ternary Conditional Operator, which allows you to
assign a different value to a variable based on a condition.
7. Replace the parameters of the function with your values or variables.
8. Press Validate to test if the express you created is valid.
9. Click Save to save your changes and exit the Expression Editor window.
10. Click the canvas to exit the properties window.

December 2019 Avaya Engagement Designer Developer's Guide 25


Comments on this document? infodev@avaya.com
Data Mapping

Transforming output mapping data


Procedure
1. Double-click the task to open the properties window.
2. On the task properties window, click Output Mapping.
3. Double-click the arrow that maps the task data to the variable to open the Expression
Editor window.

4. Click the Functions tab to display the functions that can be used to transform the data.
5. Click any of the functions in the Functions list to add it to the Expression Box.
Place your cursor over any function to read an explanation of its result.
6. Click to continue adding functions to build an expression that will manipulate the data.

December 2019 Avaya Engagement Designer Developer's Guide 26


Comments on this document? infodev@avaya.com
Data mapper description

The Expression Editor supports the Ternary Conditional Operator, which allows you to
assign a different value to a variable based on a condition.
7. Replace the parameters of the function with your values or variables.
8. Press Validate to test if the express you created is valid.
9. Click Save to save your changes and exit the Expression Editor window.
10. Click Save again to exit the Data Mapping window.
11. Click the canvas to exit the properties window.

Data Mapper validation


The Data Mapper checks the validity of the mapping at the time the data mapping is done. It also
checks existing data mapping in the WFD. It checks for the following conditions.
Validation when mapping is created
• Variables of the same or different types can be mapped to each other. When different data
types are mapped, a transformation expression is added implicitly to the mapping. For
example, if a number is mapped to a string, the transformation expression is added.

• A data type with multiple objects can be mapped to:


- Another multiple objects data type of the same data type.
- To the same primitive data type variable. In this case, the first element of the multiple is
assigned to the primitive it is mapped to.

December 2019 Avaya Engagement Designer Developer's Guide 27


Comments on this document? infodev@avaya.com
Data Mapping

- Likewise, the same primitive data type can be mapped to a multiple. In this case, only the
first element of the multiple is set.
• An output data variable can be mapped only once. If the already mapped output variable is
used for mapping, an error displays.
Source Variable Target Variable Mapping Implicit Conversion Additional
Function Information
String String Yes n/a
String Number Yes parseInt([string]) Returns numeric
string
value to integer.
String Boolean No n/a
String Object Yes JSON.parse([string Converts string of
]) JSON text into an
object.
String Multiple Strings Yes n/a Appends the String
to target Multiple
Strings.
String Multiple of other No n/a
type
Number String Yes [Number].toString( Returns a numeric
) string.
Number Number Yes n/a
Number Boolean Yes Boolean([Number]) Return false if
passed number is
zero and returns
true if passed
number is not zero.
Number Object No n/a
Number Multiple Numbers Yes n/a Append the source
number to
target Multiple
Numbers.
Number Multiple of other No n/a
type
Boolean String Yes [Boolean].toString( Returns a string.
) "true" / "false"
Boolean Number Yes Number([Boolean]) Return numeric
value 1, if we pass
true and return 0 if
we pass false.
Boolean Boolean Yes n/a
Boolean Object No n/a
Table continues…

December 2019 Avaya Engagement Designer Developer's Guide 28


Comments on this document? infodev@avaya.com
Data mapper description

Boolean Multiple Booleans Yes n/a Appends source


Boolean variable to
target Multiple
Booleans
Boolean Multiple of other No n/a
type
Object String Yes JSON.stringify([Ob Returns string of
ject]) JSON text from an
object.
Object Number No n/a
Object Boolean No n/a
Object Object Yes n/a Mapping is valid for
all cases, but
values are
transferred if same
name of sub-
variables are
present on both
sides.
Object Multiple Objects Yes n/a Appends source
variable to
target Multiple
Objects.
Object Multiple of other No n/a
type
Multiple Strings String Yes n/a Passes the first
element of
the Multiple Strings
into the target
String.
You can assign an
index to the source
variable to pass a
specific value to
the target.
Multiple Strings other data type No n/a
Table continues…

December 2019 Avaya Engagement Designer Developer's Guide 29


Comments on this document? infodev@avaya.com
Data Mapping

Multiple Numbers Number Yes n/a Passes the first


element of
the Multiple
Numbers into the
target number.
You can assign an
index to the source
variable to pass a
specific value to
the target.
Multiple Numbers other data type No n/a
Multiple Booleans Boolean Yes n/a Passes the first
element of
the Multiple
Booleans into the
target.
You can assign an
index to the source
variable to pass a
specific value to
the target.
Multiple Booleans other data type No n/a
Multiple objects Object Yes n/a
Passes the first
element of
the Multiple
Objects into the
target variable.
You can assign an
index to the source
variable to pass a
specific value to
the target.
Multiple objects other data type No n/a

Object to object mapping


Mapping between objects is valid only if the structure of the source object is the same as the
structure of the target object. In the following example, the mapping is not valid. The two objects
contain different attributes.

December 2019 Avaya Engagement Designer Developer's Guide 30


Comments on this document? infodev@avaya.com
Data mapper description

Validation of existing mapping


The Source or target missing from existing mapping error message displays under
the following conditions:
• If the schema used for mapping is deleted or modified.
• If the data properties of the schema used for mapping are updated.

Mapping special cases


Mapping between multiple object strings and multiple strings
A result set may have multiple objects, each with a single string. This string variable can be
mapped to a multiple of the same variable. In the following example, the email string from multiple
objects is mapped to the email recipient multiple strings.

This mapping passes all the email addresses from the result set in the form multiple strings. For
example, the following result set would result in the target variable:
["smith@mycompany.com","thomas@mycompany.com","jones@mycompany.com"]

Uid firstName lastName Mobile Email


1 Rachel Smith 123456 smith@mycompan
y.com
2 Robert Thomas 98765 thomas@mycompa
ny.com
3 John Jones 456789 jones@mycompan
y.com

Mapping between multiple object strings and string


A result set may have multiple objects, each with a single string. This string variable can be
mapped to a single string variable. In the following example, the email string from multiple objects
is mapped to the email recipient string.

December 2019 Avaya Engagement Designer Developer's Guide 31


Comments on this document? infodev@avaya.com
Data Mapping

This mapping passes a single email addresses from the result set to the email string. For
example, the previous result set would result in the target variable:
["smith@mycompany.com"]

You can select a specific string from the result set by entering the index value in the Expression
Editor.

December 2019 Avaya Engagement Designer Developer's Guide 32


Comments on this document? infodev@avaya.com
Chapter 5: Pools and Lanes

Pools and Lanes descriptions


Pools and Lanes are a BPMN construct intended to improve the visual usability of a Workflow
Definition. They segment and clarify the different processes and participants of the WFD. See the
BPMN 2.0 standard for an explanation of the best practices in using Pools and Lanes. The Pools
and Lanes have no effect on the execution of the WFD. They are just a visual representation of
the workflow.
Pools and Lanes are initiated by selecting the Add Pools and Lanes checkbox when you create a
new workflow. This action adds a BPMN drawer to the palette, and adds a default Pool and Lane
to the canvas. Use the Lane task to add Lanes to the default Pool.
The following guidelines and constraints apply to the use of Pools and Lanes:
• There is only one pool per workflow. It can contain as many lanes as required. The single
default pool cannot be deleted from the workflow.
• Lanes can be deleted. When a Lane is deleted, the nodes inside the lane are also deleted.
• If a Lane contains a Variables node or Start event, it cannot be deleted.
• Tasks and other nodes can be placed anywhere in any lane, or anywhere outside of the pool.
Nodes cannot be placed outside of a lane, but inside of the pool.
• When a pool is re-sized, the lanes inside the pool automatically re-size.
• You can connect nodes across lanes or from inside the lane to outside of the pool and vice
versa.
• Nodes can be copied and pasted across the lanes using the clipboard operations.

Adding a Pool and Lanes to a WFD


Procedure
1. Selecting the Add Pools and Lanes checkbox when you create a new workflow.
A BPMN drawer appears on the palette, and a default Pool and Lane appear on the
canvas.
2. Optionally click the Default Pool and Default Lane, and add a name in the Label field.

December 2019 Avaya Engagement Designer Developer's Guide 33


Comments on this document? infodev@avaya.com
Pools and Lanes

3. From the BPMN drawer, drag the Lane task onto the canvas, placing it inside the default
pool.
You must place the Lane inside the Pool, not inside the existing Default Lane.
4. Continue adding the required number of Lanes to the Pool.
The Pool can contain as many lanes as required.
5. Click added Lanes and type a name in the Label field.
6. Add tasks and other nodes from the palette to the appropriate Lanes.
Tasks and other nodes can be placed anywhere in any lane, or anywhere outside of the
pool.
7. Connect the tasks and construct the WFD as you normally would.
You can connect nodes across lanes or from inside the lane to outside of the pool and vice
versa.

December 2019 Avaya Engagement Designer Developer's Guide 34


Comments on this document? infodev@avaya.com
Chapter 6: Create, edit, or delete a
Workflow Definition

Creating a workflow
Procedure
1. On Engagement Designer, click the New button above the palette.
2. Click Create a new workflow.
3. Enter a Workflow Name.
4. Do one of the following:
• Choose the folder where you want to save your workflow.
• Click Create New Folder and enter a folder name to create a new folder for your
workflow.
5. Click Save.
The page displays the name of the workflow above the canvas.
6. (Optional) Click the Settings icon and select Autosave.
Engagement Designer autosaves the workflow every 5 minutes.

Defining a Start event


The Start event determines when a Workflow Definition (WFD) is invoked. It specifies the data that
the external event must provide to the WFD for the workflow to successfully execute. It also
defines the schema, in JSON format, for the data received.
Procedure
1. Double-click the Start event.
A Start event, Variables node, and Properties node are prepopulated on the canvas.
2. In the Label field, type a name for the Start Event.

December 2019 Avaya Engagement Designer Developer's Guide 35


Comments on this document? infodev@avaya.com
Create, edit, or delete a Workflow Definition

3. Select the triggering event or schedule.


• For a workflow triggered by an Event Catalog event, select the Event family, Event
Type, and Event version.
• For a scheduled Start event, click the Schedule checkbox and select the frequency and
recurrence.
For workflows triggered by a website, REST client, or Create Process task, leave these
fields blank.
4. For a WFD triggered by a Event Catalog event, the JSON schema populates automatically
for the selected event. Click the Show checkbox to view the schema.
5. For a Start event that does not have an Event Family and Event Type, or is not
scheduled, in the Output Schema field, enter the JSON schema.
6. Click the canvas to close the Start Event Properties window.
If you receive a JSON schema error, review the JSON schema validation criteria.
Related links
Scheduling a Start event on page 36

Scheduling a Start event


Procedure
1. Double-click the Start event.
2. Click the Schedule checkbox to select it. The Schedule window launches.

When you elect to schedule execution, all other properties in the window are disabled.
3. Select the frequency for the execution of the WFD in the Recurrence Pattern window.

December 2019 Avaya Engagement Designer Developer's Guide 36


Comments on this document? infodev@avaya.com
Mapping Start event output variables

4. Select the date and time for the WFD to execute.


5. For WFD’s that will execute more than once, enter the frequency, start and end
parameters.
Related links
Defining a Start event on page 35

Mapping Start event output variables


The Variables node stores information that is required for the different tasks that are part of a
Workflow Definition (WFD). Tasks can either use data from the Variables node or pass
information to the Variables node for use in subsequent tasks. Input mapping for a task inputs the
values from the Variables node to the task. Output mapping for a task outputs the values from the
task to the Variables node.
The output of the Start event is mapped to the automatically created variable startschema by
default. To change this default mapping, complete the following procedure.
Procedure
1. On the canvas, double-click the Start event then click Output Mapping.
2. Place your cursor over an item in the output schema list until an arrow appears at the end
of the item.
3. Click the arrow and drag it to align with its matching item in the Variables node list.
4. When you have matched all the items you want to map to the Variables node, click Save.
5. Click the canvas to exit the Start Event Properties window.

Adding a task
Procedure
1. On the palette, click a task to add to the workflow. Drag the task to its correct location on
the canvas.
2. Double-click the task.
3. To replace the default value for the label that appears beneath the task, in the Label field
type a unique name for the task.
The Label field can contain only alphanumeric characters.
4. Enter values for the task properties as required for different tasks.
5. Optionally, click Repeated execution and enter the values to repeat execution of the task.

December 2019 Avaya Engagement Designer Developer's Guide 37


Comments on this document? infodev@avaya.com
Create, edit, or delete a Workflow Definition

6. Map data the task requires from the Variables node. For example:
a. Click the arrow to the right of any property.
b. From the list, select the item that you want mapped to this property.
7. Map data the task saves to the Variables node. For example:
a. Click Output Mapping.
b. Click the + sign on the StartSchema list to display its variables.
c. Place your cursor over an item in the task output schema list until an arrow appears at
the end of the item.
d. Click the arrow and drag it to align with its matching item in the StartSchema list.
e. When you have matched all the items you want to map to the Variables node, click
Save.
8. Make changes to the data that passes between the task and the Variables node.
a. To change input mapping data, click the arrow to the right of any mapped property.
b. Click the Expression Editor icon.
c. Use the functions in the Functions list to build an expression that will manipulate the
data.
d. Press Validate to test if the express you created is valid.
e. Click Save to save your changes and exit the Data Transformation window.
f. To change output mapping date, click Output Mapping.
g. Double-click the arrow that connects the task data to the variable.
h. Use the functions in the Functions list to build an expression that will manipulate the
data.
i. Press Validate to test if the express you created is valid.
j. Click Save to save your changes and exit the Data Transformation window.
k. Click Save again to exit the Data Mapping window.
9. Connect the Start event or preceding task to this task by placing your cursor on the task.
Click the blue dot on the task, and drag it to this task.
Related links
Repeating execution on page 39
Task synchronicity on page 39
Transforming output mapping data on page 26
Adding conditions to connectors on page 67
Data mapper description on page 23

December 2019 Avaya Engagement Designer Developer's Guide 38


Comments on this document? infodev@avaya.com
Completing the Workflow Definition

Repeating execution
The Repeated execution selection on a task properties window causes the task to repeat. The
number of times the task repeats is based on the array you choose to loop. Use the Repeated
Execution function to create a virtual loop, thereby avoiding the need to create multiple nodes and
conditions to create an actual loop in a WFD. When Repeated Execution is active for a task, the
task is flagged with a loop symbol on the canvas.
Procedure
1. On the task properties window, click Repeated execution.
2. Click the Loop execution box.
3. Select the Array to loop from the drop-down list.
4. Click the canvas to exit the task properties window..
Example
Loop Execution for a Send Email task using an array with 100 elements, each of which is an email
address. The Send Email task will repeat 100 times using one email address from the array each
time.

Task synchronicity
Tasks can be either synchronous or asynchronous.
Synchronous tasks
A synchronous task executes at one time, without pause. Do not attach a Boundary Event to a
synchronous task. Because the synchronous task never pauses, the Boundary Event would have
no effect.
Asynchronous tasks
An asynchronous task pauses before it completes. Part of its functionality is executed by another
component in the system, other than the WFD. For example, the Receive task is asynchronous. It
causes the WFI to wait for another event. While an asynchronous task is paused, it can respond to
instructions from a Boundary Event. You can place only four Boundary Events on each
asynchronous task.

Completing the Workflow Definition


Procedure
1. On the palette, click the End event or Terminate event and drag it to its correct location on
the canvas.

December 2019 Avaya Engagement Designer Developer's Guide 39


Comments on this document? infodev@avaya.com
Create, edit, or delete a Workflow Definition

Use the Terminate event in a workflow with multiple End events when you want the other
paths in the Workflow Definition to stop as soon as the Workflow Instance reaches the
Terminate event.
2. Double-click the End event.
3. In the Label field, type the name of the event.
4. If the results of this workflow can be used as a Start Event for another workflow, enter the
Event family, Event type, Event version, and Input schema required for the triggered
workflow in the properties window.
5. Click the canvas to exit the event properties window..
6. Connect the final task to the End event by placing your cursor on the task. Click the blue
dot on the task, and drag it to the End event.
7. Save the workflow by clicking the arrow by the workflow name above the canvas and
selecting Save.
8. Validate the workflow by clicking the Validate button located above the canvas.
9. Correct for Errors and Warnings displayed below the canvas. Save the workflow again
after changes.
Next steps
Debug the WFD before you deploy it.
Related links
Debugger description on page 50

Deploying the Workflow Definition


Procedure
1. If the workflow is not open, open it.
a. Click the New button.
b. Click Open Draft from repository.
c. Under Draft Workflows, navigate to the location where you saved the workflow and
select it.
d. Click Open.
2. Click the Deploy button above the canvas.
The Deployment Details window displays with the Workflow Name and Version
prepopulated.
3. Leave the prepopulated values, or optionally type a new Workflow Name and Version for
the WFD. Optionally .

December 2019 Avaya Engagement Designer Developer's Guide 40


Comments on this document? infodev@avaya.com
Editing a Workflow Definition

4. Optionally add a Description and select a User Pattern for the WFD.
5. Click Deploy.

Editing a Workflow Definition


Workflow Definitions (WFD) are stored on System Manager.
Procedure
1. On Engagement Designer click the New button above the palette.
2. Select Open Draft from repository.
3. Select the workflow name, and click Open.
4. Make changes to the Workflow Definition.
5. Save the Workflow.
• To save the Workflow Definition with the same name, click the name of the workflow
about the canvas and click Save Workflow.
• To save the Workflow Definition with a different name, click the name of the workflow
about the canvas and click Save as .... Type a Workflow name and click Save.

Deleting a draft workflow


Use this procedure to delete a draft workflow that has been saved. The procedure does not delete
workflows that have been deployed.
Procedure
1. On the Administration Console, click Workflow Drafts.
2. Select the workflow you want to deplete.
3. Click Delete Workflow Draft.
4. Click OK to confirm the deletion.

Deleting a deployed workflow


About this task
Use this procedure to delete a workflow that has been deployed.

December 2019 Avaya Engagement Designer Developer's Guide 41


Comments on this document? infodev@avaya.com
Create, edit, or delete a Workflow Definition

Procedure
1. On the Administration Console, click Workflows.
2. On the Workflows tab, click the checkbox of the workflow that you want to remove.
3. Click Undeploy Workflow.
4. Click OK to undeploy the selected workflow.

Deleting Workflow Instances


About this task
Use this procedure to delete a Workflow Instance (WFI) or to purge all WFIs.
Procedure
1. On the Administration Console, click Instances.
2. To delete one or multiple WFIs, click the checkbox of the WFIs that you want to delete.
3. Click Delete.
4. Click OK to confirm the deletion.
5. To purge all Completed/Error WFIs, on the Instances tab, click Purge All.
6. Click OK to confirm the purge.

December 2019 Avaya Engagement Designer Developer's Guide 42


Comments on this document? infodev@avaya.com
Chapter 7: Comparing Workflows

Workflow Diff Tool overview


Use the Workflow Diff Tool to visually identify differences between two workflows. The tool shows:
• New tasks that appear in one workflow, but not the other
• Modified tasks that appear in both workflow but are different
• Icons that indicates the differences between modified tasks:
M – Mapping differences
L – Label differences
P – Property differences
• For Oceana® out-of-the-box gold stamp workflows whether tasks in the workflow are intact or
have been modified
The Diff Tool also allows you to copy nodes from one workflow to another. The following rules
apply:
• If the copied nodes contain variables that are not defined in the target workflow, those
variables are automatically created in the target workflow after pasting.
• If any of the copied nodes are from task bundles that are not installed on the target
Engagement Designer, those nodes display with an icon showing the task as not available.
• If any of the copied nodes are from task bundles that are not licensed on the target
Engagement Designer, those nodes display grayed out.

Using the Workflow Diff Tool


About this task
Complete the following steps to compare the nodes and properties of two workflows.
Procedure
1. On the Engagement Designer menu bar, click the Settings icon and select Diff Tool.
The Diff Tool displays in a separate browser window.

December 2019 Avaya Engagement Designer Developer's Guide 43


Comments on this document? infodev@avaya.com
Comparing Workflows

2. Click one of the two arrows at the top of the display.


3. Load a workflow from the Repository, or select a Local File.
4. Click the second arrow and open the workflow you want to compare.
5. Click Show Diff.
A list of differences between the two workflows appears at the bottom of the page.
Differences also are highlighted in the workflows displayed by the tool.

• Tasks that appear in one workflow, but not the other, are highlighted in green.
• Common nodes or tasks that have been modified are highlighted in orange.
• Icons beside modified tasks indicate the type of change:
M – Mapping differences
L – Label differences
P – Property differences
• For Oceana® out-of-the-box gold stamp workflows:

indicates a task has not changes from the gold stamp version

indicates a task has been modified from the gold stamp version

December 2019 Avaya Engagement Designer Developer's Guide 44


Comments on this document? infodev@avaya.com
Using the Workflow Diff Tool

6. Click Modified next to any modified task to display the Task properties difference window.

7. Click the Properties, Input Mapping, or Output Mapping tabs to view the task differences
for each.
8. Icons in the Mapping tabs indicate function (fx) or template (ts) changes. Hover you cursor
over one of these icons to display the content.

9. Click any item on the List Changes window to take you directly to its location in the
workflow.
10. Alter the properties of modified notes.
a. In Engagement Designer, open the workflow that contains the task with the properties
you want to modify.
b. Double click the task and modify the properties.
In complex tasks with multiple property changes, you can instead use the Copy procedure
to simply copy the task with the changed properties to replace the old one.

December 2019 Avaya Engagement Designer Developer's Guide 45


Comments on this document? infodev@avaya.com
Comparing Workflows

11. Copy tasks between workflows


a. In the Diff Tool window or on the Engagement Designer canvas, select an individual
task in one of the workflows. Or, drag your cursor across the canvas to select multiple
tasks.
b. Right click and click Copy.
c. In Engagement Designer, open the target workflow.
d. Place your cursor where you want the copied nodes to appear, right click and click
Paste.
To copy between two instances of Engagement Designer, both instances must be in the
same domain.

Comparing Avaya Oceana® Solution workflows


Before you begin
To complete this sample procedure, download the following workflows by clicking the links at the
bottom of the page. You can save the workflows locally and open them from that location. Or, you
can save the workflows, Import them to Engagement Designer and then open them from the
repository folder where you saved them.
• Oceana® 3.5 workflow template.
• Oceana® modified 3.5 workflow template.
• Oceana® 3.6 workflow template.
About this task
The Diff Tool is particularly useful in comparing new Avaya Oceana® Solution out-of-the-box
workflows, with similar workflows you have customized to your requirements. The procedures
described here compare a customer modified Oceana® 3.5 template with the original 3.5 template.
And then describe how to revise the new 3.6 workflow templates to capture the modifications. In
this way you can identify changes you made to the workflow template and easily copy your
custom-tailoring for 3.5 to the new 3.6 template.
Procedure
1. On the Engagement Designer menu bar, click the Settings icon and select Diff Tool.
The Diff Tool displays in a separate browser window.
2. Click one of the two arrows at the top of the display.
3. Load the Oceana® 3.5 workflow template from the location where you saved it.
4. Click the second arrow and load the modified Oceana® 3.5 workflow template from the
location where you saved it.
5. Click Show Diff.

December 2019 Avaya Engagement Designer Developer's Guide 46


Comments on this document? infodev@avaya.com
Comparing Avaya Oceana® Solution workflows

A list of differences between the two workflows appears are the bottom of the page.
Differences also are highlighted in the workflows displayed by the tool.
• Tasks that appear in one workflow, but not the other, are highlighted in green.
• Common nodes or tasks that have been modified are highlighted in orange.
• Icons beside modified tasks indicate the type of change:
M – Mapping differences
L – Label differences
P – Property differences
• For Oceana® out-of-the-box gold stamp workflows:

indicates a task has not changes from the gold stamp version.

indicates a task has been modified from the gold stamp version.
The following screen shows the list of modified and new tasks. It also shows the new tasks
the customer added highlighted in the customized workflow. For example:
• The Join Agent/Send Offer task appears in both workflows, but the mapping is different
• The Log The New Match Error/LogMessage appears in both workflows, but the
properties are different
• The Global Error/ErrorBoundaryEvent appears in the customized workflow but not in the
original template

6. Click Modified next to any modified task to display the Task properties difference window.
The window shows the properties or mapping for the node for both workflows being
compared.

December 2019 Avaya Engagement Designer Developer's Guide 47


Comments on this document? infodev@avaya.com
Comparing Workflows

7. Click the Properties, Input Mapping, or Output Mapping tabs to view the task differences
for each. In this case, clicking Modified > Output Mapping for the Retrieve Context task
displays the mapping of the task in each workflow..

8. Icons in the Mapping tabs indicate function (fx) or template (ts) changes. Hover you cursor
over one of these icons to display the content.
9. Click any item on the List Changes window to take you directly to its location in the
workflow.
10. Alter the properties of modified notes.
a. Click any Modified node on the list to display the node properties for both
occurrences. In this case click the Retrieve Context task.
Output mapping in this task has been modified by the customer.
b. In Engagement Designer, open the new Oceana® 3.6 workflow template.
c. Double click the Retrieve Context task.
d. Change the mapping to match the custom change.
e. Repeat these steps to change the properties or mapping for each modified node.
In complex tasks with multiple property changes, you can instead use the Copy procedure
to simply copy the task with the changed properties to replace the old one.
11. Copy tasks between workflows
a. In the Diff Tool window or on the Engagement Designer canvas, select an individual
task in one of the workflows. Or, drag your cursor across the canvas to select multiple
tasks. In this case, copy the “Cancel Earlier Match request” tasks that were added to
the customized workflow.
b. Right click and select Copy.

December 2019 Avaya Engagement Designer Developer's Guide 48


Comments on this document? infodev@avaya.com
Comparing Avaya Oceana® Solution workflows

c. In Engagement Designer, open the new Oceana® 3.6 workflow template.


d. Place your cursor where the copied nodes appeared in the 3.5 modified workflow,
right click and select Paste.
To copy between two instances of Engagement Designer, both instances must be in the
same domain.
Related links
Oceana 3.5 workflow template
Oceana modified 3.5 workflow template
Oceana 3.6 workflow template

December 2019 Avaya Engagement Designer Developer's Guide 49


Comments on this document? infodev@avaya.com
Chapter 8: Debug a Workflow Definition

Debugger description
Overview
Use the debugger to run and verify operation of a Workflow Definition without deploying it. Specify
the payload, and step through each task or other node as the WFD executes. Inspect the
variables and payload for each task as it runs and modify these variables while debugging.
When the debugger stops execution of a node, it shows the state of the node based on the
following color scheme:
• Green – executed node
• Orange – active node
• Purple – canceled node
• Red – failed node
Debugging a call-intercept WFD
If you are debugging a WFD with a call intercept event family specified in the Start event, the
debugger uses a WebRTC call for the debug session. The system:
• Deploys the WFD.
• Creates the debug Service Profile.
• Puts Engagement Designer in the Service Profile.
• Creates the rule so that the WFD is invoked.
• Creates the implicit user profile for calling and called address so that the inbound call will be
able to create the debug instance of the WFD.
• Makes a WebRTC call using the calling and called addresses from Engagement Designer.
• Displays a dial pad when the call is connected. The dial pad can be used for debugging Play
and Collect tasks that expect DTMF tones. It also allows you to drop the call if required.
To debug call-intercept WFDs, you must configure the following Engagement Designer attributes
on System Manager. On System Manager click Elements > Avaya Breeze® > Configuration >
Attributes, select the Service Clusters or Service Globals tab, and from the Service pull-down
menu, select Engagement Designer.
• Debugger Service Profile – Service Profile name used for debugging the WFD.
• WebRTC Debugger called address – Called address for making the inbound WebRTC call.
• WebRTC Debugger caller address – Caller address for making the inbound WebRTC call.

December 2019 Avaya Engagement Designer Developer's Guide 50


Comments on this document? infodev@avaya.com
Debugging a Workflow Definition

• WebRTC Server URL – Location of the WebRTC server.


When you debug a call-intercept WFD, Engagement Designer deploys a WFD with the name
webrtc_debugger_workflow<Cluster Name>. This WFD is for WebRTC debugging and
should not be undeployed.
Debugger toolbar
Use the debugger toolbar to manage execution of the debugging process. Place your cursor over
any icon in the toolbar to see its function.
The toolbar provides the following functions from left to right:
• Stop debugging
• Continue debugging – Resumes debugging from the node where debugging stopped and
continues to execute nodes until it reaches a node where a breakpoint is set.
• Step over – Executes the current node where debugging stopped and then stops at the next
node.
• Add breakpoint – Add a breakpoint to a node to stop execution at that node. A red circle
indicates notes that have breakpoints attached.
• Remove breakpoint
• Refresh

Debugging a Workflow Definition


About this task
Complete this task to verify operation of a WFD before deploying it.
Before you begin
To debug a call-intercept WFD, you must install and configure the WebRTC Snap-in. For more
information, see Avaya WebRTC Snap-in Reference.
Procedure
1. Click the Start debugging icon located above the canvas.
If an output schema is specified in the Start event, a window displays for the required input
data for the WFD.
2. In the input data window, enter the information required for the WFD to execute, and click
Start debugging.
The debugger steps through each node on the WFD. The designer is in read-only mode
while the debugger runs. You will not be able to modify the workflow. The Debugger
Console displays on the right side of the canvas. When the debugger stops execution at a
node, a color code indicates the state of the node. The Debugger Console displays
information about the highlighted node.
A debugging toolbar displays at the top of the window. Use this toolbar to navigate through
the debugging process.

December 2019 Avaya Engagement Designer Developer's Guide 51


Comments on this document? infodev@avaya.com
Debug a Workflow Definition

3. Optionally change variable values for the node.


a. Click Expand next to the variables you want to change.
b. Type the new information for each variable.
c. Click Collapse to close the variables list.
You cannot edit the system variables.
4. Optionally add a breakpoint to a node by highlighting the node and clicking the Add
Breakpoint icon on the debugger toolbar.
A breakpoint causes workflow execution to pause at the node during debugging.
5. Continue debugging the WFD.
• Click the Continue icon in the debugging toolbar to resume debugging and continue to
execute nodes until the debugger reaches a node where a breakpoint is set
• Click the Step next icon in the debugging toolbar to resume debugging and continue to
the next node.
6. Click on a completed task to view its output data in the Debugger Console.
7. When you have finished debugging the WFD, click the Stop debugging icon in the
debugging toolbar.

December 2019 Avaya Engagement Designer Developer's Guide 52


Comments on this document? infodev@avaya.com
Chapter 9: Test a Workflow Definition

Creating a test instance of the Workflow Definition


Before you begin
The WFD you are testing must be deployed.
Procedure
1. On the Administration Console, click Workflows.
2. Click the box in front of the workflow.
3. Click Create Instance.
4. Enter values for all the fields in the Create Instance popup box.
You may need to scroll to see all the values in the box.
5. Click OK.
6. Click the Instances tab at the top of the page.
You can change the interval rate at which the Instances tab refreshes the list of WFIs by
selecting a number of seconds from the Refresh menu. The default refresh interval is 30
seconds.
If your WFD executed successfully, Completed displays in the State column.
7. Click the instance to view additional information.
Nodes that have errors are highlighted in red.
8. Click any highlighted node for details about what caused the error.
Related links
Instance Viewer description on page 20

Verifying Workflow Definition status


This procedure checks the status of the Workflow Definitions (WFD) using the Engagement
Designer administration interface.

December 2019 Avaya Engagement Designer Developer's Guide 53


Comments on this document? infodev@avaya.com
Test a Workflow Definition

Procedure
1. Click the Admin Console button above the canvas to access the Engagement Designer
administration console.
2. Click the Workflows tab.
The web page shows the version number, description and deployment status of each
WFD, including the date the WFD was deployed.

Verifying Workflow Instance status


This procedure checks the status of a single Workflow Instance (WFI) of the Workflow Definition.
Procedure
1. Click the Admin Console button above the canvas to access the Engagement Designer
administration console.
2. Click the Instances tab.
You can change the interval rate at which the Instances tab refreshes the list of WFIs by
selecting a number of seconds from the Refresh menu.
3. To view the WFI status in the Graphical Instance Viewer, click an instance.
If you set your global attributes in System Manager to delete completed instances, the list
of WFIs includes only those instances that are still in progress.
The web page shows a graphical representation of the status of the WFI.
Nodes that have been completed are highlighted in green.
Nodes that were visited but not completed are highlighted in orange.
Nodes that have been cancelled are highlighted in purple.
Nodes that have errors are highlighted in red.
4. Click on a highlighted node to view additional information.

December 2019 Avaya Engagement Designer Developer's Guide 54


Comments on this document? infodev@avaya.com
Chapter 10: Import or export a Workflow
Definition

Exporting a workflow as a file


Procedure
1. Open the Workflow Definition (WFD) in the canvas by clicking New > Open Draft from
repository.
2. Select the WFD name, and click Open.
3. Click the Export as ... button above the canvas.
4. Select Export as xml.
The workflow saves with the extension type of .xml to your computer. With Chrome or
Firefox, the file is saved in the download folder with the name <workflow name>.xml. With
Internet Explorer, you can choose any name to save the workflow.

Exporting a workflow as an svar package


Procedure
1. Open the Workflow Definition (WFD) in the canvas by clicking New > Open Draft from
repository.
2. Select the WFD name, and click Open.
3. Click the Export as ... button above the canvas.
4. Select Export as svar.
5. Enter a File Name, Version, and Description for the package.
6. Click Export.
The workflow saves with the extension type of .svar to your computer.

December 2019 Avaya Engagement Designer Developer's Guide 55


Comments on this document? infodev@avaya.com
Import or export a Workflow Definition

Importing a Workflow Definition from an XML file


Procedure
1. With the canvas blank, click the Import button above the canvas.
2. For Internet Explorer complete the following steps:
a. In Notepad open the .xml file that was exported and that contains the Workflow
Definition (WFD) code.
b. Copy the XML code from the file and paste it into the Popup Window.
c. Click Import.
The WFD displays on the canvas.
3. For other browsers complete the following steps:
a. Click Choose File and select the xml file to import.
b. Click Import.
The workflow displays on the canvas.
4. Click untitled above the canvas and click Save Workflow.
5. Enter a Workflow Name and select the folder where you want to save the workflow.
6. Click Save.

Importing a Workflow Definition from an svar file


Procedure
1. Before you can access the Workflow Definition XML code within the svar file, you must
unzip the contents of the svar. Open the svar file in WinZip or another program that can
unzip the file.
There are several files within the svar.
2. Select the zip file inside the svar and unzip that.
3. For Internet Explorer complete the following steps:
a. Open the .xml file that is contained in the zip file in Notepad.
b. With the canvas blank, click the Import button above the canvas.
c. Copy the XML code from the xml file in the svar and paste it into the Popup Window.
d. Click Import.
The WFD displays on the canvas.

December 2019 Avaya Engagement Designer Developer's Guide 56


Comments on this document? infodev@avaya.com
Importing a Workflow Definition from an svar file

4. For other browsers complete the following steps:


a. With the canvas blank, click the Import button above the canvas.
b. Click Choose File and select the xml file to import.
c. Click Import.
The WFD displays on the canvas.
5. Click untitled above the canvas and click Save Workflow.
6. Enter a Workflow Name and select the folder where you want to save the workflow.
7. Click Save.

December 2019 Avaya Engagement Designer Developer's Guide 57


Comments on this document? infodev@avaya.com
Chapter 11: Archive Workflow Data

Configuring archival attributes


About this task
Engagement Designer does not archive workflow instances. The archival process is conducted by
scheduled Avaya Breeze® platform database backups. Use this procedure to configure fields in
System Manager that determine when workflow instances are deleted from the archive. To ensure
that your instances are saved, verify that you have regularly scheduled Avaya Breeze® platform
backups.
Procedure
1. On System Manager, click Elements > Avaya Breeze® > Configuration > Attributes.
2. Select the Engagement Designer attributes globally or for a cluster. Complete one of the
following action.
• Select the Service Globals tab. From the Service drop-down menu, select
Engagement Designer.
• Select the Service Clusters tab. From the Cluster drop-down select the cluster where
Engagement Designer in installed. From the Service drop-down menu, select
Engagement Designer.
3. For Number of days the data user want to retain , enter the number of days to retain
completed workflow instances. The default is 1.
4. For Number of days the user want to retain archival run summary , enter the number
of days to retain archival run summary. The default is 30.
5. For Number of days the user want to retain error instances , enter the number of days
to retain error instances. Default is 7.
6. For Number of days the user want to retain active instances , enter the number of days
to retain active instances. Default is 3.
7. For Error rate threshold percentage, enter the threshold percentage. For example, if you
enter 50, the error rate threshold percentage is 50%.
8. For Number of instances for calculating error rate, enter the number of instances for
calculating the error rate. For example, if you enter 25, the rate would be calculated for
instances more than 25.
9. Click Commit to save your changes.

December 2019 Avaya Engagement Designer Developer's Guide 58


Comments on this document? infodev@avaya.com
Archiving Workflow data

Archiving Workflow data


About this task
This procedure schedules an archive of workflows that are active, have completed or have failed.
The Cron expression runs the scheduler after the set interval to check if the archive has been
updated based on the properties defined in the Engagement Designer attributes. If the archive has
been updated, no action is taken. However, if the archive has not been updated, the archive is
checked again after one interval and an update is scheduled if required.
Note:
Engagement Designer does not archive workflow instances. The archival process is
conducted by scheduled Avaya Breeze® platform database backups. To ensure that your
instances are saved, verify that you have regularly scheduled Avaya Breeze® platform
backups.
Before you begin
Verify or revise the archive attributes set on System Manager.
Procedure
1. Click Admin Console on the toolbar to access the Engagement Designer administration
console.
2. On the Instances tab, click Archival.
3. In the Archival scheduling field, type the Cron expression that describes the schedule for
archiving.
For example, enter 0 0/15 * 1/1 * ? * to set the archive for every fifteen minutes.
This is a global setting. It is not necessary to set the schedule separately for each node in
the cluster as long as all the nodes share the same workflow-related databases.
4. Click Save Cron.

December 2019 Avaya Engagement Designer Developer's Guide 59


Comments on this document? infodev@avaya.com
Chapter 12: Event Catalog

Event Catalog description


The Event Catalog provides a central repository for known events in Avaya Breeze® platform.
Some event definitions are predefined data in the catalog. Predefined events in the catalog can
not be revised. However, you can add new events to the catalog using the Engagement Designer
administration interface.
The event mechanism works based on a producer-consumer model between the snap-ins. An
event represents a state change between the producer and consumer.
A producer snap-in and a consumer snap-in may agree to an event definition and pass events
conforming to that definition between themselves. However, the event catalog acts as the master
repository for all events that will be available between the Avaya Breeze® platform platform and
Engagement Designer. An event definition in the catalog must include a schema definition with
which the event payload will be exchanged between the producer and consumer.
Events are grouped by families. Examples of event families are:
• Call - events that are related to calls processed by Avaya Breeze® platform.
• System - events of interest to snap-ins that the system generates. For example, an event will
notify the Workflow Engine that a Workflow Definition has been installed on Avaya Breeze®
platform.
• Eventing - events of importance to consumers from the Eventing Framework. Currently there
is a single event that notifies a consumer when one of its subscriptions is about to expired.
A family is made up of one or more events. For example, the Call family contains the following five
events:
• CALL_OFFERED_FROM_CALLING_PARTY
• OFFERING_CALL_TO_CALLED_PARTY
• CALL_ALERTING
• CALL_ANSWERED
• CALL_ENDED
Avaya Breeze® platform notifies the WFE when the event happens.
The Events Catalog lists events that initiate activity in a Workflow Instance (WFI). For example, a
CALL_ALERTING event could be used to initiate an instance of a Workflow Definition (WFD).
Likewise, a CALL_ANSWERED event could be used with a Message Boundary Event to let a WFI
continue processing when a call is answered.

December 2019 Avaya Engagement Designer Developer's Guide 60


Comments on this document? infodev@avaya.com
Creating an Event

Creating an Event
Procedure
1. On the Administration Console, click Event Catalog.
2. Click Create.
3. Enter the details of the Event. Click JSON Schema Editor if necessary to create the JSON
schema for the Event.
4. Click OK to create the new Event.

Event catalog field descriptions


Name Description
Family The family to which the event belongs.
Family Display Name The name of the Event Catalog family as it is
displayed in the Avaya Engagement Designer.
Event Type The type of the event.
Event Type Display Name The name of the Event Catalog type as it is
displayed in the Avaya Engagement Designer.
Version The version of the event.
Schema Name The name of the event schema. You can use the
same schema for multiple event types.
Schema The schema.

December 2019 Avaya Engagement Designer Developer's Guide 61


Comments on this document? infodev@avaya.com
Chapter 13: Routing

Routing Workflow Definitions


You can attach rules to events that launch Workflow Definitions. The rules allow you to vary which
workflows launch based on information passed to the workflows from the initiating event schema.
For example, for an event type of CALL_INTERCEPT_FROM_CALLING_PARTY, you could
establish rules where calls from different area codes, or calls made at different times of day, trigger
different workflows. A rule can apply to one or multiple workflows.
Here is another example.
Assume the ROUTE_CONTACT event contains the three variables Channel, WorkflowName, and
Routepoint. And assume the workflows A, B, C, and D subscribe to the ROUTE_CONTACT event
in the Start event. You can create rules that specify:
If Channel = Email then launch WFD A
If Routepoint = 5555 then launch WFD B
If Routepoint = 555 and Workflowname = John then launch WFD C
If Channel = Email and Workflowname = John then launch WFD D
If no rules are defined for an event, the event launches any workflow that has the event in their
Start event. If at least one rule is defined for an event and there is no match to the rule, no
workflows are triggered.
Create rules that apply to single or multiple workflows from the Routing tab using a simplified
rules interface.
Related links
Creating routing rules on page 62
Activating and deactivating routing rules on page 64

Creating routing rules


Before you begin
For Call-intercept events to work with these rules , Engagement Designer must be in the Service
Profile of the user. You can use static and externally provided Global Variables that you have
created in routing rules. For more information about using Global Variables in routing rules, see
Avaya Engagement Designer Developer’s Guide.

December 2019 Avaya Engagement Designer Developer's Guide 62


Comments on this document? infodev@avaya.com
Routing Workflow Definitions

Procedure
1. On the Administration Console, click the Routing tab.
2. Click Create.
3. From the down-down menus, select the event you want the rule to apply to, and the
workflow or workflows that you want to follow the rule.
4. Type a name for the rule.
5. Enter a priority for the rule.
The priority determines which workflows are triggered when the conditions of the rule are
met. Only the workflows with the highest priority are triggered. The higher the number you
assign, the higher the priority. For example:
• Rule A – priority 0: For a call number 408-XXX-XXXX trigger workflow A
• Rule B – priority 2: For a call number 408-XXX-XXXX and Sunday trigger workflow B
• Rule C – priority 1: For a call number 408-666-XXXX and Sunday trigger workflow C
All 3 rules are true for an incoming call from 408-666-xxxx on a Sunday, but only rule B is
considered because it has the highest priority, therefore only workflow B is triggered.
6. Click Add Rule.
A set of attributes and fields associated with the event displays.
7. Select attributes and associated functions from the drop-down menus. Enter required
values.
Begin typing in a box to select from a list of matching choices.
8. Click Add Rule again to create additional functions. Click Advanced to add complex
functions.

9. When you have entered all the required information, click Save.
The new rule appears in the list of rules. It can be modified by selecting it and pressing
Edit. It can be deleted by selecting it and pressing Delete.

December 2019 Avaya Engagement Designer Developer's Guide 63


Comments on this document? infodev@avaya.com
Routing

Related links
Routing Workflow Definitions on page 62

Activating and deactivating routing rules


About this task
When you create a routing rule, it is activated automatically. Use this procedure to deactivate or
reactivate a rule. A deactivated rule is not considered when routing calls.
Procedure
1. Access the Engagement Designer Administration Console.
2. Click the Routing tab.
3. Select the routing rule that you want to activate or deactivate.
• To activate a routing rule, click Enable. The rule shows as true in the Enabled column.
• To deactivate a routing rule, click Disable. The rule shows as false in the Enabled
column.
Related links
Routing Workflow Definitions on page 62

December 2019 Avaya Engagement Designer Developer's Guide 64


Comments on this document? infodev@avaya.com
Chapter 14: Global Variables

Global Variables description


Global Variables are variables that are available for use in all workflows. In this way they are
different from the variables you create in the Variables node within a workflow, which are available
only for that workflow.
There are two types of Global Variables:
• Static Global Variables. These variables are constants that can be assigned string values
using the Value field.
• Externally Provided Global Variables. These variables retrieve their values during workflow
execution from an external URL. The response from the URL is processed and mapped as
defined in the JSON variable schema specified for the global variable.
If you edit a Global Variable, the change is reflected in all rules and workflows where the Global
Variable is used.
You can use Global Variables in Routing Rules, and in workflow data mapping.

Creating a static Global Variable


Procedure
1. On the Administration Console, click Variables.
2. Click Create.
3. Type a name for the variable.
Do not use the term UCID in the variable name. UCID is a reserved word that uniquely
identifies a call in progress.
4. From the Variable Type list, select Static.
5. Enter a Value for the variable.
Since this is a static variable, you will not be able to enter a URL or schema for the
variables.
6. Click OK.

December 2019 Avaya Engagement Designer Developer's Guide 65


Comments on this document? infodev@avaya.com
Global Variables

The variable appears in the list of Global Variables with a type of Static. It is now available
for use in workflows or routing rules.

Creating an externally provided Global Variable


Before you begin
If the REST URL of the externally provided Global Variable is https, you must install the certificate
of the Web Service provider on the Avaya Breeze® platform cluster where Engagement Designer
is installed. For more information, see Avaya Engagement Designer Reference.
To create an externally provided Global Variable you must know the schema of the REST URL
that is providing the data. This is available from the URL.
Procedure
1. On the Administration Console, click Variables.
2. Click Create.
3. Type a name for the variable.
Do not use the term UCID in the variable name. UCID is a reserved word that uniquely
identifies a call in progress.
4. From the Variable Type list, select Externally Provided.
5. Enter the URL where you will retrieve the information you want for the variable.
6. The the Variable Schema box, click JSON Schema Editor.
7. Use the editor to construct the schema that describes the information you receive from the
URL.
The response from the URL is processed and mapped per this schema.
8. Click OK.
The variable appears in the list of Global Variables with a type of Externally Provided. It is
now available for use in workflows or routing rules.

December 2019 Avaya Engagement Designer Developer's Guide 66


Comments on this document? infodev@avaya.com
Chapter 15: Connectors

Connectors description
Connectors connect the tasks, events and gateways that are part of the Workflow Definition
(WFD). Arrows at the end of the connectors indicate the direction of the flow through the WFD.
You can assign data conditions to a connector that goes from an Exclusive Gateway or Inclusive
Gateway to a task. These conditions determine when or if a WFI can follow the path marked by
the connector.
Connector properties
Connectors have different properties depending upon where they are linked from:
• An exclusive or inclusive gateway – properties of the connectors are assigned in the gateway
Properties window.
- Label – A name for the connector that appears above the connector on the canvas.
- Condition – The expression that describes the conditions you want met if the WFI is to use
this path.
• A parallel gateway – properties are assigned on the connection by double-clicking the
connector.
- Label – A name for the connector that appears above the connector on the canvas.
- Sequence number – Indicates the order in which to consider the conditions assigned to the
connector. For example, a Sequence number of 1 would indicate this is the preferred path
from the gateway. If a Sequence Number is not entered, the connector conditions will be
considered in the order in which the connectors were drawn.
• Any other task type
- Label – A name for the connector that appears above the connector on the canvas.
Changing the appearance of a connector
Select one or multiple connectors, right click and select Format to format the text and line
appearance.

Adding conditions to connectors


Assign conditions only to connectors from Exclusive and Inclusive Gateways. By assigning
conditions to connectors, you can limit the circumstances under which a Workflow Instance (WFI)
will follow a given path in the Workflow Definition (WFD). Used in combination with Exclusive and

December 2019 Avaya Engagement Designer Developer's Guide 67


Comments on this document? infodev@avaya.com
Connectors

Inclusive Gateways, the connector conditions determine which paths the WFI must or can take.
Do not apply conditions to connectors from Parallel Gateways since all paths are taken
unconditionally.
Procedure
1. Double-click the gateway..
2. Click Row .
3. Type a label that will appear on the connector indicating the condition.
4. Click the Condition Editor button ....
5. In the Expression Editor, build the expression that describes the conditions you want met
if the WFI is to use this path.
For example, the expression StartSchema[“callingParty”][“handle”]==
"29090" would allow a WFI to take this path only if the calling party extension was 29090.
6. Click Validate to test if the expression is valid.
7. When the expression tests as valid, click Save.
8. Click Row again to continue adding connector conditions.
The sequence in which the workflow attempts the different paths is determined by the
order of conditions in the Conditions list. Change the order using the up and down arrows
to the right of each condition row.
9. Click the canvas to close the Properties window.
When you close the Properties window, connectors are created for each condition you
defined.

December 2019 Avaya Engagement Designer Developer's Guide 68


Comments on this document? infodev@avaya.com
Chapter 16: Events

Events description
An Event is an occurrence defined in the Workflow Definition (WFD) that happens during a
business process. Events affect the flow of the process. There are seven types of Events available
with Engagement Designer:
• Start
• End
• Terminate
• Interrupt
• Intermediate Timer Event
• Message Boundary Event
• Error Boundary Event
• Timeout Boundary Event

Start event
The Start event indicates the beginning of the Workflow Definition (WFD). A WFD must have a
Start event.
The Start event is triggered by one of the following:
• An event administered in the Event Catalog.
• An event created by the completion of another WFD. Designate the Event Family, Event
type and Event version administered in the End event of the triggering WFD.
• A process created by a Create Process task in a different WFD.
• A website or REST client.
• A schedule administered on the Start properties window.
Access the Start properties window by double-clicking the Start event. For Event Catalog events,
the Start event receives data from the triggering event based on the JSON schema administered
for that event in the Event Catalog.

December 2019 Avaya Engagement Designer Developer's Guide 69


Comments on this document? infodev@avaya.com
Events

Determine the data that is passed from the Start event to the Variables node by completing the
Output Mapping from the Start properties window.
Start event properties
In the following list, Event family, Event type, and Event version are mandatory fields for an event-
triggered WFD when the WFD goes into production. These fields pick up the event definition from
the Event Catalog. However, when the WFD is under development, you can define your own event
schema by entering the schema in the Output schema field. Then test the event flow mechanism
using REST calls.
• Schedule – Click to enable the use of a schedule to execute the WFD.
• Schedule options – The date, time, and frequency for executing the WFD. You can also
select Cron to enter a Cron expression for scheduling the workflow execution.
• Event family – The event family as specified in the Event Catalog.
• Event type – The event type as specified in the Event Catalog.
• Event version – The event version as specified in the Event Catalog.
• Output schema – The schema used to transmit data from the event to the Variables node.
• Match Workflow – Check this box to invoke the WFD only if the event has metadata
workflowname=<name of the workflow>.

End event
An End event indicates the end of a workflow or a path in a workflow. In a WFD with multiple paths
with different end points, when an End event is reached, it will not terminate the Workflow
Instance. Paths leading to other End events continue.
If the results of this WFD will be used as a Start event for another workflow, enter the Event
family, Event type, Event version, and Input schema required for the triggered WFD. You can
also use the Input Mapping function to map variables from data collected by the WFD.
End event properties
• Event family – The event family as specified in the Event Catalog.
• Event type – The event type as specified in the Event Catalog.
• Event version – The event version as specified in the Event Catalog.
• Input schema – The schema used to transmit data to another Start event for a triggered
WFD.

December 2019 Avaya Engagement Designer Developer's Guide 70


Comments on this document? infodev@avaya.com
Terminate event

Terminate event
A Terminate event indicates the end of a workflow or a path in a workflow. In a WFD with multiple
paths with different end points, when a Terminate event is reached, it ends the Workflow Instance.
Paths leading to other End events stop.
If the results of this WFD will be used as a Start event for another workflow, enter the Event
family, Event type, Event version, and Input schema required for the triggered WFD. You can
also use the Input Mapping function to map variables from data collected by the WFD.
Terminate event properties
• Event family – The event family as specified in the Event Catalog.
• Event type – The event type as specified in the Event Catalog.
• Event version – The event version as specified in the Event Catalog.
• Input schema – The schema used to transmit data to another Start event for a triggered
WFD.

Interrupt event
A call event may change the desired behavior of a Workflow Instance (WFI) at multiple tasks in
the WFI execution. For example, a dropped call at any step in a WFI might require that an alarm
be generated. Use the Interrupt event, to create special handling for these global call events
whenever they occur.
To use the Interrupt event, create a separate flow on the canvas in addition to the Workflow
Definition (WFD). When the administered event is received, the WFI behaves as described below.
You can add as many Interrupt event branches as needed in a workflow, however, only one
Interrupt event branch is executed at run time.
To handle abnormal call drops (the caller may drop the call anytime during the workflow
execution), use the Interrupt Event to catch the CALL_ENDED event in the Workflow. Otherwise,
some workflow instances could ended in an Error state because the call was dropped before the
instance was completed.
WFI behavior with an Interrupt event
1. The WFD is triggered, the Start event detects the Interrupt event and subscribes to the
global event selected in the Interrupt properties window. The subscription ID of the
instance object is saved. Normal execution of the WFD continues.
2. At the start of every WFD task, Engagement Designer checks for the global event.
3. When the global event is detected during the execution of a task (synchronous or
asynchronous), the global event data is stored.
4. The next task of the WFI is not executed. The WFI continues execution with the Interrupt
event flow.
5. The main branch of the WFD is cancelled.

December 2019 Avaya Engagement Designer Developer's Guide 71


Comments on this document? infodev@avaya.com
Events

Interrupt event properties


• Event family – The event family as specified in the Event Catalog. For example, Call, Call
Intercepted, Speech Search.
• Event type – The event type belonging to a particular family. For example, for Call event, type
can be Call Altering, Call Answered, Call Ended etc.
• Event version – The event version as specified in the Event Catalog.
• Criterion – The matching criterion for the event to proceed. Its selection is based on the
Event Family and Event Type selected. This selection indicates if the event is meant for the
call, user, workflow instance, or for the workflow instance and task together. Possible values
are:
- Call – Subscribe to an event based on the call id specified by input mapping. If the event
comes with the specified call id, it will be received by this Interrupt event.
- CorrelationKey – Subscribe to an event based on a unique correlation key.
- Instance – The Interrupt event receives the event based on the Workflow Instance (WFI)
id. To use this Criterion, you must set the Workflow Instance (WFI) id as the correlation id
on the event.
- Instance + Task – The Interrupt event receives the event based on the Workflow Instance
(WFI) id and the task name. To use this Criterion, you must set the string <wfi_id>
+<task_name> as the correlation id on the event.
- User – Subscribe to an event based on the user id specified by input mapping. If the event
comes with the specified user id, it will be received by this Interrupt event.
• Correlation Key – The custom correlation key name. This is required when the
"CorrelationKey" is selected in Criterion. It is the responsibility of the event producer to
ensure the name of the correlation key is unique.
• Check Interrupting if you want to interrupt the instance when the waited-for event occurs. Do
not check the box if you want the instance to continue without interruption. For example,
check Interrupting to stop playing an announcement when the waited-for event occurs.
• Output schema – The schema used to transmit data from the delaying event to the Variables
node. This value gets filled automatically on the basis of Event family, Event type, and
Event version. Click the Show checkbox to view the output schema.
Input schema
• user –User id. If the event comes with the specified user id, this Interrupt event is triggered.
• call – Call id. If the event comes with the specified call id, this Interrupt event is triggered.
• correlationValue – Unique specified custom correlation key name.
Output schema
The output schema is determined by the event selected in the properties window. The event
schema from the Event Catalog becomes the event output schema.

December 2019 Avaya Engagement Designer Developer's Guide 72


Comments on this document? infodev@avaya.com
Intermediate Timer Event

Intermediate Timer Event


An Intermediate Timer Event pauses a Workflow Instance for an administered amount of time.
Intermediate Timer Event properties
• Duration (m.secs) – The length of the delay in milliseconds.
Input schema
• duration – The length of the delay in milliseconds.

Message Boundary Event


A Message Boundary Event causes a Workflow Instance (WFI) to wait for some specific event to
occur before proceeding further. The particular workflow path with the Message Boundary Event
cannot continue until the external event takes place. When the event does happen, the workflow
resumes. If the Message Boundary Event is waiting for an event in the Events Catalog, Avaya
Breeze® platform listens in the background for the delaying event to occur. It then notifies the
Workflow Engine when it has occurred. However, the Message Boundary Event can also be
waiting for events generated by other entities external to the WFD.
Attach a Message Boundary Event to the boundary of a task by dragging and dropping the event
directly on the task. In placing a Message Boundary Event be certain that you are attaching it to a
path that will yield the results you desire.
The Message Boundary Event can send data received as a result of the delaying event to the
Variables node for use by subsequent tasks. Determine the data that is passed by completing the
Output Mapping from the Message Boundary Event Properties window.
The task that a Message Boundary Event is attached to can be stopped when the waited-for event
occurs, or the WFI can wait until the task completes. On the Message Boundary Event
Properties window in the interrupting field, select if the task is stopped when the event occurs.
Message Boundary Event properties
In the following list, Event family, Event type, and Event version are mandatory fields when the
WFD goes into production. These fields pick up the event definition from the Event Catalog.
However, when the WFD is under development, you can define your own event schema by
entering the schema in the Output schema field. Then test the event flow mechanism using REST
calls.
• Event family – The event family as specified in the Event Catalog.
• Event type – The event type as specified in the Event Catalog.
• Event version – The event version as specified in the Event Catalog.

December 2019 Avaya Engagement Designer Developer's Guide 73


Comments on this document? infodev@avaya.com
Events

• Criterion – Possible selections are based on the Event Family and Event Type selected.
Indicates if the Message Boundary Event is meant for that task alone, for that user, for the
workflow instance, or for the workflow instance and task together.
- Call – Subscribe to an event based on the call id specified by input mapping. If the event
comes with the specified call id, this Message Boundary Event is triggered.
- CorrelationKey – Subscribe to an event based on a unique correlation key.
- Instance – The Message Boundary Event is triggered by the Workflow Instance (WFI) id.
To use this Criterion, you must set the Workflow Instance (WFI) id as the correlation id on
the event.
- Instance+Task - A Workflow Definition can have more than one task with Message
Boundary Events that have the same event type. Use the Instance + Task criterion to
specify that the Message Boundary Event is triggered by a combination of the Workflow
Instance (WFI) id and the name of the task the Message Boundary Event is attached to.
You must set the Workflow Instance (WFI) id and task name as the correlation id on the
event.
- User - Subscribe to an event based on the user id specified by input mapping. If the event
comes with the specified user id, this Message Boundary Event is triggered.
• Correlation Key – The custom correlation key name. This is required when the
"CorrelationKey" is selected in Criterion. It is the responsibility of the event producer to
ensure the name of the correlation key is unique.
• Interrupting – Check Interrupting if you want the task to be interrupted when the waited-for
event occurs. Do not check Interrupting if you do not want to interrupt the task but want it to
complete. For example, to interrupt the playing of an announcement when the waited-for
event occurs, check Interrupting.
• Multiple – Use in cases where there can be more than one event (like a speech-search-
match) that triggers the Message Boundary Event. Select true to allow multiple events to
trigger the Message Boundary Event. Select false if only one event can be sent to the
Message Boundary Event. Additional events will log an error that the event is already
completed.
• Output schema – The schema used to transmit data from the delaying event to the Variables
node. Click Show to view the output schema.
• Deferred – Select to indicate that the workflow instance may wait a significant time before the
triggering event occurs. If the node is checked as deferred, an instance generated by the
workflow is flagged as true in the Deferred column on the Administration Console Instances
tab. Checking the Deferred box indicates the expected delay, but does not change execution
of the instance.
Input schema
• user –User id. If the event comes with the specified user id, this Message Boundary Event is
triggered.
• call – Call id. If the event comes with the specified call id, this Message Boundary Event is
triggered.
• correlationValue – Unique specified custom correlation key name.

December 2019 Avaya Engagement Designer Developer's Guide 74


Comments on this document? infodev@avaya.com
Error Boundary Event

Output schema
The output schema is determined by the event selected in the Message Boundary Event
properties window. The event schema from the Event Catalog becomes the event output schema.
Use Case
Any task that takes time to execute can be stopped in mid-execution using a Message Boundary
Event. When the event specified in the MBE arrives, the execution of the task can be stopped. For
example, a Play Announcement that is playing a 2 minute long message, a Receive task that is
indefinitely waiting for an event to arrive, or a REST task that communicates to an external REST
web service can each have an MBE attached.

Error Boundary Event


When an error occurs the Error Boundary Event triggers the attached event. Attach an Error
Boundary Event to the boundary of a task by dragging and dropping the event directly on the task.
This error can be any business exception or system error. When any error occurs on a task, the
engine checks for an associated Error Boundary Event. If it finds one, the engine directs the flow
to the Error Boundary Event and proceeds to the outgoing flow from the Error Boundary Event.
You can also add an Error Boundary Event in a workflow without attaching it to a node. It would be
executed in case of an error.
Error Boundary Event property
• Error Code – The type of error code, or codes (separated by commas) that will trigger this
Error Boundary Event. Multiple Error Boundary Events on a single task can trigger different
behavior based on which error code arrives. Leaving this field blank indicts that any error
triggers the event.
Output schema
• Error – The type of error code, or codes that triggered the event.

Timeout Boundary Event


A Timeout Boundary Event puts a limit on how much time a task has to complete. It specifies an
alternate path for the Workflow Instance (WFI) if the task does not complete in the allotted time.
Attach a Timeout Boundary Event to the boundary of a task by dragging and dropping the event
directly on the task.
Timeout Boundary Event properties
• Duration (m.secs) – The time, in milliseconds, allotted for the task to complete.
• Interrupting – Check Interrupting if you want the WFI to take the alternate path and the
original path to terminate when the duration limit is reached. If the event is not interrupting,
when the time limit is reached, the WFI takes the alternate path, but when the task

December 2019 Avaya Engagement Designer Developer's Guide 75


Comments on this document? infodev@avaya.com
Events

completes, the WFI also follows the original path. Do not check Interrupting if you do not
want to interrupt the task but want it to complete. If interrupting is checked, it has no effect
when the Timeout Boundary Event is used as a global event and is not attached to a task.
Input schema
• duration – The time, in milliseconds, allotted for the task to complete

December 2019 Avaya Engagement Designer Developer's Guide 76


Comments on this document? infodev@avaya.com
Chapter 17: Conditions

Conditions (Gateways) description


Conditions (Gateways) determine the path a Workflow Instance (WFI) takes through the process
described by the workflow. It splits the flow of the workflow into alternative paths when more than
one path is possible. There are three types of Conditions (Gateways) available with Engagement
Designer:
• Condition Match (Exclusive Gateway)
• Multiple Condition Match (Inclusive Gateway)
• All (Parallel Gateway)
For additional information about conditions/gateways and their uses, see the Business Process
Model and Notation, Release 2.0 specification.

Condition Match (Exclusive Gateway)


Description
Use the Exclusive Gateway to create multiple paths where only one of the paths is taken by a
Workflow Instance (WFI). The WFI selects the first path it finds that matches the data conditions
and discards other options. The path selected is determined by conditions you add in the
Exclusive Gateway property window. The sequence in which the workflow attempts the different
paths is determined by the order of conditions added in the properties. You can change the order
using the up and down arrows to the right of each condition row. Include exactly one default path
without any condition to ensure there is at least one path taken if none of the conditions match.
The default condition will be executed only if all other conditions evaluate to false, regardless of
the default path position in the Conditions list. If there is more than one default path, a validation
error occurs.
When tasks are joined by an Exclusive Gateway, when a task completes, the WFI continues and
does not wait for the other joined tasks to complete.
Exclusive Gateway properties
• Conditions – A dynamic combination of labels and conditions. The data in each row
corresponds to one outgoing connector that is created when you close the property window.

December 2019 Avaya Engagement Designer Developer's Guide 77


Comments on this document? infodev@avaya.com
Conditions

Click + to add a new condition. Click buttons to the right of the condition to open the
Condition Editor, delete and reorder rows.
- Label – A unique identifier that displays on the connector that corresponds to the
condition. If no label is entered for a connector, a warning shows during validation.
- Condition – A read only field that is set or modified using the Condition Editor button ....
The condition is evaluated at the time of execution and the path is taken if the condition
evaluates to true.
Example
In this example, assume ExGwy1 has two conditions. If the call is from any number other than
‘12345’ an announcement plays to the caller. If the call is from the number ‘12345’, the call
forwards to another number.

December 2019 Avaya Engagement Designer Developer's Guide 78


Comments on this document? infodev@avaya.com
Multiple Conditions Match (Inclusive Gateway)

Multiple Conditions Match (Inclusive Gateway)


Description
Use the Inclusive Gateway to create multiple paths where any of the paths can be taken by a
Workflow Instance (WFI). The WFI selects all paths that match the data conditions and discards
any that do not. The path selected is determined by conditions you add in the Inclusive Gateway
property window. The sequence in which the workflow attempts the different paths is determined
by the order of conditions added in the properties. You can change the order using the up and
down arrows to the right of each condition row.
When tasks are joined by an Inclusive Gateway, when a task completes, the WFI waits for the
other joined tasks to complete before continuing.
Inclusive Gateway properties
• Conditions – A dynamic combination of labels and conditions. The data in each row
corresponds to one outgoing connector that is created when you close the property window.
Click + to add a new condition. Click buttons to the right of the condition to open the
Condition Editor, delete and reorder rows.
- Label – A unique identifier that displays on the connector that corresponds to the
condition. If no label is entered for a connector, a warning shows during validation.
- Condition – A read only field that is set or modified using the Condition Editor button ....
The condition is evaluated at the time of execution and the path is taken if the condition
evaluates to true.
Example
In this example, a user task is assigned to each the Sales department and to the Finance
department. When both tasks are complete, the Inclusive Gateway is executed, and an email and
SMS are sent to agents stating that finance and sales have approved the activity.

December 2019 Avaya Engagement Designer Developer's Guide 79


Comments on this document? infodev@avaya.com
Conditions

All (Parallel Gateway)


Description
Use the Parallel Gateway to create multiple paths that run simultaneously. The Workflow Instance
(WFI) follows all paths out of a Parallel Gateway. There are no conditions assigned to any of the

December 2019 Avaya Engagement Designer Developer's Guide 80


Comments on this document? infodev@avaya.com
All (Parallel Gateway)

paths. The sequence in which the workflow attempts the different paths in set by the Sequence
number field on the Connection properties window. If all paths are joined after execution by a
Parallel Gateway, then the tasks in all paths must complete before the WFI continues.
Example
In this example, the WFI sends both an email and a text message. When both have been sent the
process continues.

December 2019 Avaya Engagement Designer Developer's Guide 81


Comments on this document? infodev@avaya.com
Chapter 18: Variables node

Variables node description


The Variables node stores data that is used by other tasks in the Workflow Definition (WFD). A
Variables node is required for each WFD.
Data is passed to the Variables node by events external to the WFD and events and tasks that
are a part of the WFD. The event that triggers an instance of the WFD provides data to the Start
event. The Start event schema is automatically mapped to the Variables node at the object level.
Any other WFD event or task that generates data or collects data from an external event can use
output mapping to store data in the Variables node. This data is then available for subsequent
steps.
Retrieve data from the Variables node using the mapping arrow icon to the right of a property or
Input Mapping on the Properties window of events or tasks that require information from the
Variables node.
The Variables node requires a JSON schema appropriate to the information required for the
execution of the WFD. This JSON schema in prepopulated based on the selected Start event
properties. You can define additional variables in the Variables Properties window for the
Variables node. These variables become available for mapping. When creating variables, do not
use the term UCID in the variable name. UCID is a reserved word that uniquely identifies a call in
progress.

December 2019 Avaya Engagement Designer Developer's Guide 82


Comments on this document? infodev@avaya.com
Chapter 19: Properties node

Properties node description


Use the Properties node to define additional properties for a WFD. A property is a matched set of
a name and value. The defined properties become snap-in attributes when the WFD is deployed
to Avaya Breeze® platform. Define as many properties as needed for the WFD.
The properties appear as read-only variables in the mapping functions in the Properties windows
for mapping in the WFD. The properties display in a single Properties object in the Properties list.

The properties also appear in the Deployment Details window when you deploy the WFD.
You can alter the value assigned to a property by:
• Editing the Value in the Properties node
• Editing the value in the Deployment Details window

December 2019 Avaya Engagement Designer Developer's Guide 83


Comments on this document? infodev@avaya.com
Properties node

Adding properties
Procedure
1. Double-click the Properties node on the canvas.
2. In the Properties window, click Add new property.
3. Type a Name and Value for each property you add.

4. When you have added all the properties, click Save.

Viewing properties
About this task
Use this task to view the properties of a Workflow Definition (WFD) on the administration console.
Note:
You can also view the properties of any WFD instances by clicking the Properties node when
viewing the instance details on the administration console.
Procedure
1. On the Administration Console, click the Workflows tab.
2. Click the checkbox of the WFD whose properties you want to view.
3. Click Attributes.
A new window displays the configured properties for the WFD.

December 2019 Avaya Engagement Designer Developer's Guide 84


Comments on this document? infodev@avaya.com
Chapter 20: Tasks

Integration tasks

Receive
Task description
The Receive task causes the Workflow Instance (WFI) to wait for a specific event to occur before
proceeding. The particular workflow path with the Receive task cannot continue until the external
event takes place. When the event is received, the WFI can resume execution to the next tasks.
The data can be received in the form of an event. In this case, enter the Event family, Event
type, and Event version on the properties window.
Receive is an asynchronous task.
Task properties
In the following list, Event family, Event type, and Event version are mandatory fields when the
WFD goes into production. These fields pick up the event definition from the Event Catalog.
However, when the WFD is under development, you can define your own event schema by
entering the schema in the Output schema field. Then test the event flow mechanism using REST
calls. For additional information, see Getting Started with Avaya Engagement Designer .
• Event family – The event family as specified in the Event Catalog. For example, Call, Call
Intercepted, Speech Search.
• Event type – The event type belonging to a particular family. For example, for Call event, type
can be Call Alerting, Call Answered, Call Ended etc.
• Event version – The event version as specified in the Event Catalog.
• Criterion – The matching criterion for the event to proceed. Its selection is based on the
Event Family and Event Type selected. This selection indicates if the event is meant for the
call, user, workflow instance, or for the workflow instance and task together. Possible values
are:
- Call – Subscribe to an event based on the call ID specified by input mapping. If the event
comes with the specified call ID, it is received by this task.
- CorrelationKey – Subscribe to an event based on a unique correlation key.
- Instance – The task receives the event based on the Workflow Instance (WFI) ID. To use
this Criterion, you must set the Workflow Instance (WFI) ID as the correlation ID on the
event.

December 2019 Avaya Engagement Designer Developer's Guide 85


Comments on this document? infodev@avaya.com
Tasks

- Instance + Task – A Workflow Definition can have more than one Receive task with the
same event type. Use the Instance + Task criterion to specify that the event must be
received by the specific Receive task that matches the combination of the Workflow
Instance (WFI) ID and the name of the Receive task. You must set the Workflow Instance
(WFI) ID and task name as the correlation ID on the event.
- User – Subscribe to an event based on the user ID specified by input mapping. If the event
comes with the specified user ID, it is received by this task.
• Correlation Key – The custom correlation key name. The key name is required when
CorrelationKey is selected in Criterion. It is the responsibility of the event producer to ensure
the name of the correlation key is unique.
• Output schema – The schema used to transmit data from the delaying event to the Variables
node. This value is filled automatically on the basis of the Event family, Event type, and
Event version. Click Show to view the output schema.
• Deferred – Select to indicate that the workflow instance may wait a significant time before the
triggering event occurs. If the node is checked as deferred, an instance generated by the
workflow is flagged as true in the Deferred column on the Administration Console Instances
tab. Checking the Deferred box indicates the expected delay, but does not change execution
of the instance.
Input mapping
The value from input mapping becomes important if the criterion selected through on the task
property window is Call or User. When a Workflow Instance (WFI) comes to a Receive task, a
subscription is created for the corresponding event with a unique subscription ID. If the criterion is
call or user, it is part of the subscription ID. After receiving the event, the Receive task executes
only if the call or user ID in the event subscription matches the one in mapping.
• user – The user ID mapped to criterion selected is user.
• call – The call ID mapped to criterion selected is call.
• correlation – The custom correlation key name.
Output mapping
The output values depend on the Event family, Event type, and Event version selected for the
input properties
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Use any of the Boundary Events with this task.
Use Case
The workflow is triggered by a CALL_ALERTING event selected in the Start Event. The Receive
task is waiting for a CALL_ANSWERED event. The Message Boundary Event is waiting for a
CALL_ENDED event.

December 2019 Avaya Engagement Designer Developer's Guide 86


Comments on this document? infodev@avaya.com
Integration tasks

If the CALL_ANSWERED event occurs, the workflow takes the path from the Forward Call task to
the End Event. However if the CALL_ENDED event is found, the workflow goes directly to the End
Event from the Message Boundary Event.

How to use the custom correlation key


You may want to subscribe to an Event based on an event attribute other than call ID, user, or
other criterion. For example, you want to receive all the Call-CALL-ALERTING events with
test.com in the domain CallingParty:
{ "title" : "CallEvent", "type" : "object", "properties" : { "callingParty" : {
"type" : "object", "properties" : { "handle" : { "type" :
"string" },
"domain" : { "type" : "string" }, "display" : {
"type" : "string" } } }, "calledParty" : { "type" : "object",
"properties" : {
"handle" : { "type" : "string" }, "domain" : {
"type" : "string" }, "display" : { "type" : "string" }
} }, "eventingParty" :
{ "type" : "object", "properties" : { "handle" : { "type" :
"string" }, "domain" : { "type" : "string" },
"display" : {
"type" : "string" } } }, "reason" : { "type" : "string" },
"shortReason" : { "type" : "string" }, "timeOfEvent" : { "type" :
"string" },
"ucid" : { "type" : "string" }, "appid" : { "type" : "string" } }}

In this case, you can define a unique correlation key for this kind of event and add this correlation
key/value pair to the event when it is created by the message producer. For example, the following
code generates the event that has the custom correlation key CallingPartyDomain. Its value is
"test.com".
EventMetaData meta = EventingFactory.createEventMetaData();
meta.addValue("CallingPartyDomain", "test.com");
EventProducer producer = null;
producer = EventingFactory.createEventProducer("Call", "CALL_ALERTING", meta,
payload, "1.0"); // the payload is the event message and it is supposed to have "test.com" as
the domain of the callingParty.
producer.publish();
To receive this kind of event, the Receive Task property must have the same event family, type,
version, CorrelationKey Criterion and Correlation Key configured. Also, the input value of
CorrelationValue should be test.com. For input mapping, map the correlation value to test.com.

December 2019 Avaya Engagement Designer Developer's Guide 87


Comments on this document? infodev@avaya.com
Tasks

If the same event was produced without having the code meta.addValue("CallingPartyDomain",
""test.com"");, the Receive Task would not be able to receive it even though the event message
has test.com as the domain of the callingParty.
In fact, this custom correlation key may not have anything to do with the event attributes. The
correlation key and value pair is just a unique tag. The event producer can add this unique tag to
the event and the Receive Task can be configured to receive only the event with this tag.

Call Rest Service


Task description
The Call Rest Service task calls an external REST service website to collect or update
information.
Call Rest Service is a synchronous task.
Task properties
• Rest URI (mandatory) – The URI of the web service that is being invoked.
The path variable or the request parameter is in the curly brackets {}. Its name should contain
only alphanumeric characters “-” and “_”. For example,
http://host:port/your-rest-resources/{pathVar1}/{pathVar2}/...
http://host:port/your-rest-resources?
param1={requestParam1}&param2={requestParam2}
http://host:port/your-rest-resources/ (There is no variable/parameter in the
URL. There could be some in the payload.)
For a REST resource URI, for example, http://www.thomas-bayer.com/sqlrest/
CUSTOMER/1,http://www.thomas-bayer.com/sqlrest/CUSTOMER/2 or http://
www.thomas-bayer.com/sqlrest/CUSTOMER/3, replace the exact customer number 1,
2, or 3 with a run-time parameter. Then, fill in the Rest URI value with http://
www.thomas-bayer.com/sqlrest/CUSTOMER/{pathVar1}.
• Request method (mandatory) – How the request is sent. Select the HTTP Request method
from the drop-down menu.
• Connect Timeout – The timeout in millisecond until a connection is established. A timeout
value of zero is interpreted as an infinite timeout. The default value is 3000 milliseconds.
• Socket Timeout – The timeout in millisecond for waiting for data or, put differently, a
maximum period of inactivity between two consecutive data packets. A timeout value of zero
is interpreted as an infinite timeout. The default value is 3000 milliseconds.
• TLS version (mandatory if the REST resource URI uses HTTPS) – Select the TLS version
from the drop-down menu.
• HTTP authentication (mandatory) – If HTTP authentication is required. Select the HTTP
Authentication type from the drop-down menu.
• User Name – Required if HTTP authentication is used, optional if not.
• Password – Required if HTTP authentication is used, optional if not.

December 2019 Avaya Engagement Designer Developer's Guide 88


Comments on this document? infodev@avaya.com
Integration tasks

• OAuth Client ID – Required if OAuth 2.0 is used and the OAuth Token is not provided.
• OAuth Client Secret – Required if OAuth 2.0 is used and the OAuth Token is not provided.
• OAuth URL – The URL for users to log in to retrieve the OAuth Token. Required if OAuth 2.0
is used and the OAuth Token is not provided.
• OAuth Token – Required if OAuth 2.0 is used. When the OAuth Token is not available, the
OAuth Client ID, OAuth Client Secret and OAuth URL must be provided so that the OAuth
Token can be retrieved.
• Customized Headers (optional) – Customized Headers in the HTTP Request. The
customized headers can be added in this box, separated by commas. For example, x-
transactionid,x-session-id,x-stylecode. The parameter name of the header value will be
automatically created in the name of the header and added into the Input Schema when the
Retrieve button is clicked. You can see them in the input mapping.
• Response headers – Headers in the HTTP Response. The headers can be added in this box,
separated by commas. For example, Content-Length,Content-Language. The parameter
name of the header value is automatically created in the name of the header and added into
the Output Schema when the Retrieve button is clicked. Response headers appear in the
output mapping.
• Content type (mandatory) – The format of the data being sent in the HTTP request. It should
be empty if there is no data (payload) in the request.
• Payload (mandatory) – The data being sent to the website. The parameter in payloads is in
the curly bracket {}. Its name should contain only alphanumeric characters. For example,
{"email":"{payloadParam1}", "user":"{payloadParam2}"}
To pass the payload data you must:
1. Paste the correct JSON string with the parameter values into this Payload field.
2. Click Retrieve in the Input schema field to update the schema.
3. Click Input Mapping and provide the values for the parameters through mapping.
• Input schema (mandatory) – Click Retrieve to generate the input schema of the Call Rest
task based on the input in the Rest URI, Customized Headers and Payload fields, so ensure
that all those fields are configured properly first. The schema is based on the input from these
fields and is not based on anything retrieved remotely. Click Show to view the generated
input schema. The input schema allows you to do input mapping.
• Return schema (mandatory) – The schema of the JSON payload returned by the external
REST service. It should be empty if the Content Type in the HTTP response is not
“application/json.”
Populate the Return schema for the JSON payload in the response you are expecting from
the external REST service so that you can map each property in the JSON payload
separately and pass them individually to the next task. For example,
{title:JSONPayloadSchema,type:object,properties:{authenticated:
{type:string},user:{type:string}}}.
• Output schema (mandatory) – Click Retrieve to generate the output schema of this Call Rest
task. Ensure that the Return schema field is configured properly as needed first, before you
click the Retrieve button. Click Show to view the generated output schema. The output
schema allows you to do output mapping.

December 2019 Avaya Engagement Designer Developer's Guide 89


Comments on this document? infodev@avaya.com
Tasks

Error handling
Errors can be handled by using Error Boundary Events.
Prerequisites
The REST service is external to Engagement Designer. This task interacts with any REST service
to get the data. The REST service must be available. When the schema HTTPS is used in the
URL, the certificate of the Web Service server (or the CA certificate of it) must be added as a
trusted certificate in the cluster. For additional information, see Administering Avaya Breeze®
platform.
The Call Rest Service task uses the HTTP proxy configured on Avaya Breeze® platform. The
HTTP Proxy is configured during deployment of Avaya Breeze® platform and is enabled or
disabled on Avaya Breeze® platform. During Avaya Breeze deployment, you can also create a
proxy exclusion list. The exclusion list defines domains or IP addresses where outgoing HTTP
requests go directly to the destination address rather than first routing to the proxy. For additional
information, see Deploying Avaya Breeze® platform.
Related Boundary Events
The Error Boundary Event can be used with this task.
Use Case
Use the Call Rest Service task to retrieve a customer's email address by ID through a web service
(REST) and return the email address to the workflow.

Create Process
Task description
The Create Process task calls another Workflow Definition (WFD) from this one. The called WFD
is invoked by name. The called WFD may pass some output back, which would be output of this
task type.
Create Process is an asynchronous task.
Task properties
• Process name (mandatory) – The name of the WFD you are invoking. To appear in the list, a
process must already be deployed.

December 2019 Avaya Engagement Designer Developer's Guide 90


Comments on this document? infodev@avaya.com
Integration tasks

• Version (mandatory) – The version of the WFD you are invoking.


• Input schema – What you are sending to the Start Event of the invoked WFD. (Mandatory if
the chosen process requires it.) Click the Show checkbox to view the input schema.
• Output schema – What you are expecting back from the End Event of the invoked WFD. If
there are multiple End Events, the last executed one's output is returned. (Mandatory if the
chosen process requires it.) Click the Show checkbox to view the output schema.
Error handling
Not applicable.
Prerequisites
The process and version selected must be created, validated and ready to deploy.
Use Case
The Process task provides a way to use modularity in WFD design. For example, you might have
an existing WFD that takes a Social Security number as input, runs a credit check and returns a
FICO score. Use the Process task to call that process into another WFD.

Abstract Task
Task description
The Abstract Task does not perform any work. It is used by a Workflow Definition (WFD) designer
to document the process. For example, use it to indicate when a process has reached a
milestone.

Cancel Task
Task description
The Cancel Task stops execution of a specified task in a WFD. After a conditional gateway, use it
to cancel activity on one branch of the WFD and not on another branch.
Cancel Task is a synchronous task.
Task properties
• Node name (mandatory) – The name of the task to be cancelled.
Error handling
Cancel Task does not generate any errors.
Prerequisites
Not applicable.
Use Case
In this example, a Cancel Task is used to stop a Create Process task from executing depending
on the payload received from the task.

December 2019 Avaya Engagement Designer Developer's Guide 91


Comments on this document? infodev@avaya.com
Tasks

The Message Boundary Event attached to the Create Process task is waiting for the
WORK_QUEUED event. This event contains metrics that a WFD designer might want to use to
determine if the Create Process task should execute. The Exclusive Gateway routes the WFI
based on the information received from the Message Boundary Event. It will either route the WFI
to the Cancel Task to stop execution of the Create Process task. Or, it will allow the Create
Process task to execute.

Read Spreadsheet File


Task description
The Read Spreadsheet task reads the contents of an excel spreadsheet into a workflow. The
spreadsheet to be read is specified by the URL location.
Read Spreadsheet File is a synchronous task.
Task properties
• Spreadsheet File URL (mandatory) – The URL location of the spreadsheet file to be read.
• File Password – The password of the spreadsheet file if the spreadsheet is password
protected.
• Header Names (mandatory) – The name of the column heads in the spreadsheet. The
number of columns in the spreadsheet should match the number of header names.
• Output schema – Click Retrieve to generate the output schema based on the specified
header names. The output schema allows you to do output mapping. When the task is
executed, a json array is returned based on the output schema. Click Show to view the
generated output schema.

December 2019 Avaya Engagement Designer Developer's Guide 92


Comments on this document? infodev@avaya.com
Integration tasks

Use Case
Use the Read Spreadsheet file to read a list of names and phone numbers from a spreadsheet
containing parent contact information. A workflow could then call each parent to play an
announcement of a school closure.

Read From DB
Task description
The Read from DB task reads from the database table. It executes user-defined queries and
returns a set of records. You can select from databases that are supported by Engagement
Designer. Requires knowledge of SQL to write SQL statements.
Read from DB is a synchronous task.
Note:
The validation query, for example "select 1", is used to ensure that the DB connection in the
connection pool is not stale. It requires that the DB table must have at least one row.
Refer to Avaya Engagement Designer Reference for instructions on how to create JDBC
Providers and Data Sources and configure them to use in database tasks. This process
requires a restart of the WebSphere application.
Task properties
• DB Serve profile name (mandatory) – Select from the list of JDBC Sources available on the
Avaya Breeze® platform cluster.
• SQL query (mandatory) – User-defined query.
• Input schema (mandatory) – Click Retrieve to populate this field. It uses the SQL query field
to generate the input schema. Click the Show checkbox to view the generated input schema.
The input schema allows you to do Input Mapping.
If there is no variable in the SQL query, the properties field of the generated input schema is
empty: {"title":"ReadDbTaskInputSchema","properties":
{},"type":"object"}.
For an SQL statement containing variables (question marks), an input schema is created (by
clicking Retrieve), based on the type of the columns that the variables represent. For
example, if the SQL query is : select email from test.users where telephone
= ? and name = ?, the generated schema would be:
{"title":"ReadDbTaskInputSchema","properties":{"inputParam2":
{"type":"string"},"inputParam1":{"type":"string"}},"type":"object"},
where inputParam1 represents the first question mark, and inputParam2 represents the
second question mark. It is important for the user to map the correct parameter to the correct
values during input mapping. Even if the inputParam numbers do not show in incremental
numbering, use the numbers of inputParam to map with the question marks.
• Output schema (mandatory) – Click Retrieve to populate this field. It is the schema of what
you are expecting back from the database. It uses the SQL query field to generate the output
schema. Click the Show checkbox to view the generated output schema. The output schema
allows you to do Output Mapping. Because the result of a select statement can return
multiple values, the output schema is a JSON array. For example, if the SQL statement is:

December 2019 Avaya Engagement Designer Developer's Guide 93


Comments on this document? infodev@avaya.com
Tasks

select email from test.users where telephone = ? and name = ?, the


generated schema would be:
{"title":"ReadDbTaskOutputSchema","properties":{"resultSet":
{"items":{"properties":{"email":
{"type":"string"}},"type":"object"},"minItems":"1","uniqueItems":"tr
ue","type":"array"}},"type":"object"}.
Error handling
Errors can be handled by using Error Boundary Events.
Prerequisites
The database must be configured through System Manager. For additional information, see Avaya
Engagement Designer Reference.
Related Boundary Events
The Error Boundary Event can be used with this task.
Use Case
From every incoming call to a specific number, get the calling number and retrieve the
corresponding user’s information (name, address, last purchased item, etc.) from a database.
Send the information to a pre-defined email address.

Update DB
Task description
The Update DB task updates, inserts or deletes information from a database. You can select from
databases that are supported by Engagement Designer. Requires knowledge of SQL to write SQL
statements.
Update DB is a synchronous task.
Note:
The validation query, for example "select 1", is used to ensure that the DB connection in the
connection pool is not stale. It requires that the DB table must have at least one row.

December 2019 Avaya Engagement Designer Developer's Guide 94


Comments on this document? infodev@avaya.com
Integration tasks

Refer to Avaya Engagement Designer Reference for instructions on how to create JDBC
Providers and Data Sources and configure them to use in database tasks. This process
requires a restart of the WebSphere application.
Task properties
• DB Server profile name (mandatory) – Select from the list of JDBC Sources available on the
Avaya Breeze® platform cluster.
• SQL query (mandatory) –User-defined query. Operations supported are DELETE, INSERT,
UPDATE, and CREATE.
• Input schema (mandatory) – Click Retrieve to populate this field. It uses the SQL query field
to generate the input schema. Click the Show checkbox to view the generated input schema.
The input schema allows you to do Input Mapping.
If there is no variable in the SQL statement, the properties field of the generated input
schema is empty: {"title":"UpdateDbInputSchema","properties":
{},"type":"object"}.
For an SQL statement containing variables (question marks), an input schema is created (by
clicking Retrieve), based on the type of the columns that the variables represent. For
example, if the SQL statement is: INSERT INTO test.users
(email,telephone,name,id,userID) VALUES ('eliaidam@aidam.com',?,?,
70,'ekaidam'), the generated schema would be:
{"title":"UpdateDbInputSchema","properties":{"inputParam2":
{"type":"string"},"inputParam1":{"type":"string"}},"type”:”object”},
where inputParam 1 represents the first question mark, and inputParam2 represents the
second question mark. It is important for the user to map the correct parameter to the correct
values during input mapping. Even if the inputParam numbers do not show in incremental
numbering, use the numbers of the inputParam to map with the question marks.
Error handling
Errors can be handled by using Error Boundary Events.
Prerequisites
The database must be configured through System Manager. For additional information, see Avaya
Engagement Designer Reference.
Related Boundary Events
The Error Boundary Event can be used with this task.
Use Case
When a call is answered, save the caller’s name and telephone number into a database.

December 2019 Avaya Engagement Designer Developer's Guide 95


Comments on this document? infodev@avaya.com
Tasks

Conditional Assign
Task description
The Conditional Assign task evaluates a set of rules that form a condition. Based on whether the
condition evaluates to true or false, variables can be assigned values. If it evaluates to true, the
variable selected in ‘Then’ property is assigned the value provided in the ‘thenValue’ input
mapping or the following ‘Assign With’ property. If it evaluates to false, the variable selected in
‘Else’ property is assigned the value provided in the ‘elseValue’ input mapping or the following
‘Assign With’ property.
Conditional Assign is a synchronous task.
Task properties
• Conditions – A dynamic combination of rules that form one single condition.
• Then – If condition evaluates to true, this variable is assigned the value in the following
‘Assigned With’ field.
• Assigned With – Value assigned to the variable selected in ‘Then’.
• Else – If condition evaluates to false, this variable is assigned the value in the following
‘Assigned With’ field.
• Assigned With – Value assigned to the variable selected in ‘Else’.
Input schema
• thenValue: If condition evaluates to true, this value is assigned to the variable.
• elseValue: If condition evaluates to false, this value is assigned to the variable.
Output schema
status: If the value was successfully assigned to the desired variable.

User Task
Task description
The User Task assigns a WFD activity to a person.

December 2019 Avaya Engagement Designer Developer's Guide 96


Comments on this document? infodev@avaya.com
Integration tasks

When a User Task is reached during the WFI execution, it sends an email or text message to a list
of assignees, the people who will work on the assigned item. If assignees are within the
organization, they can be selected based on their common role, or the work can be assigned to an
individual user. If the assignees are external to the organization, they can be mapped in the input
mapping.
The email or text message includes two links: one to the assigned activity and one to the User
Task Portal. The User Task Portal lists all tasks assigned to or accepted by the user. After the
assignee completes the work activity, they must update the state of the User Task and fill the
output data, if any. After the User Task completes, its result and output data pass to the next node
in the WFD. The workflow continues.
The Workflow Administrator also can complete a User Task or assign it to a different assignee.
The Workflow Administrator can access the task through the User Task Portal, enter the output
data, and update the state of the task in place of the assignee.
User Task is an asynchronous task.
Task properties
• Requires Credentials – If this is checked, the User Task is assigned to a role or user within
the organization. If it is not checked, the assignees must be mapped in input mapping.
• Assignee Role – Lists all the roles present in the System Manager roles store. When the
WFD is executed, the task selects all people assigned this role in the System Manager user
store. Assignee Role is given priority if both role and user are selected. If Required
Credentials is checked and neither Assignee Role or User Email are selected, the System
Administrator role is selected by default.
• User Email – If Assignee Role is empty, assign the task to a single user by providing an
email address in this field.
• Set Due Date as Days (optional) – Check this box to specify that the Due Date will be a
number of days from the task start rather than a specific date.
• Due Date – Select the date and time the task is due, or type the number of days the task is
due to be completed after the task starts.
• Reminder – Select how often a reminder should be sent. Choose from Daily, Weekly and
Monthly.
• Form Input Fields (optional) – Select the variable that has all the input information (fields) to
display on the User Task activity page sent in the link in the email or text message. They are
read-only fields for display on the User Task Portal. It is possible that there is no need to
show any input information in some scenarios.
• Form Output Fields (optional) – Select the variable that includes all the output information
(fields) that the assignee must fill in on the User Task page on the portal. It is possible that
the assignee does not need to fill in any data except just clicking the Approve/Reject button in
some scenarios.
• Input schema – Click the Show checkbox to view the input schema.
• Output schema – Click the Show checkbox to view the output schema.
• Custom Image URL – A URL containing the image/logo to be used on the activity page. The
image can be used to customize the look of the page.
• Public URL – The URL to display to the user.

December 2019 Avaya Engagement Designer Developer's Guide 97


Comments on this document? infodev@avaya.com
Tasks

• Email notification – If checked, email is sent to all assignees.


• SMS notification – If checked, SMS is sent to all assignees.
Input Mapping
• Assignee Role - If Requires Credentials is checked, a valid role can be mapped to this.
• User Email – If role is not provided and Requires Credentials is checked, user email can be
mapped to this.
• User Phone – User phone number can be provided if Requires Credentials is selected and
user is selected not role.
• Assignees – Multiple assignee objects can be mapped to this if Requires Credentials is not
checked.
• smsBody – Custom SMS content can be mapped to this.
• smsSender – SMS sender information can be provided.
• Email subject – Custom email subject can be provided.
• emailBody – Custom email content can be provided.
• emailSender – This is mandatory is email notification has been selected.
• emailCc/emailBcc : Multiple emails can be mapped to these properties.
If input form fields is provided, the object and its fields are also available in the input mapping.
Mapping of assignee if Requires Credentials is not checked:

Output Mapping
• approved – This is true or false based on the output sent by the user after completing the
assigned activity.
If output form fields is provided, the object and its fields that contain the feedback are also
available in the output mapping.
Related Boundary Events
Use any of the Boundary Events with this task.

December 2019 Avaya Engagement Designer Developer's Guide 98


Comments on this document? infodev@avaya.com
Integration tasks

Use Case
Use the User Task to insert into the flow of a WFD an action that requires human intervention. For
example, a step in the process automated by the WFD might require sign off by an executive,
review of a document, or approval by a loan agent. The WFD waits for the assignee to complete
and report on the activity before it continues to the next task.

Sub-process
Task description
The Sub-process task creates an independent subprocess within the flow of the WFD. You cannot
save the subprocess as a separate WFD. Click the + sign on the task to open the subprocess
window.

Sub-process tasks have their own Start and End events. You can place any task from the palette
into the subprocess. WFD tasks outside the subprocess link to the subprocess, but cannot be
linked to tasks within the subprocess.
Task properties
None.
Prerequisites
Not applicable.
Related Boundary Events
Attach boundary events to the subprocess as you would with other tasks.

December 2019 Avaya Engagement Designer Developer's Guide 99


Comments on this document? infodev@avaya.com
Tasks

Comment
Task description
The Comment task places a block of plain text on the canvas. Use it to annotate the WFD. The
Comment task has no effect on the execution of the WFD.
Task properties
• Comment – The text to appear on the canvas at the location where the task is placed.

Publish Event
Task description
The Publish Event task publishes an event for a given Event Family, Type and Version.
Publish Event is a synchronous task.
Task properties
• Event family – The event family as specified in the Event Catalog.
• Event type – The event type belonging to a particular family.
• Event version – The event version as specified in the Event Catalog.
• Criterion
- Call
- CorrelationKey
- Instance
- Instance+task
- User
• Correlation Key – The custom correlation key name. This is required when the
“CorrelationKey” is selected in Criterion.
• Input schema – The payload as specified in the Event Catalog. Click the Show checkbox to
view the input schema.
Input mapping
Input mapping contains the event schema read from the Event Catalog for the specified Event
Family, Type, and Version.
Output mapping
None
Error handling
Not applicable.

December 2019 Avaya Engagement Designer Developer's Guide 100


Comments on this document? infodev@avaya.com
Integration tasks

Prerequisites
Not applicable.
Use Case
Use the Publish Event task to publish an event that can be consumed by a Receive task that is
waiting for an event.
The key value pair in the event payload should be considered as the criteria/filter for the
subscription to match on the consumer.
Setting criteria:
• On the Receive task, select CorrelationKey for the Criterion.
• The Correlation Key property:value should match the key:value pair used as the criteria in the
Publish Event task.

Error
Task description
The Error task raises an error with the information specified in the input schema.
Error is a synchronous task.
Task properties
None.
Input schema
• task_error – user-readable error message. For example, context store does not have date, or
no agent is found.
• task_error_code – A code that can be used by a Error Boundary Events to decide whether to
catch this error or not. For example, CS_NO_DATA.
Output schema
None.

Prerequisites
None.
Related Boundary Events
Global Error events can specify what error code they are interested in. There can be multiple
global error events in a process for different kinds of error codes.
Use Case
This task provides a way to raise an error within a flow, that would then be caught by a global
Error Boundary Event. Use this task to raise an error that can be picked up by the Error Boundary
Event if, for example, you run into an invalid situation in the flow, or receive for example, an async
WORK_ERROR event.

December 2019 Avaya Engagement Designer Developer's Guide 101


Comments on this document? infodev@avaya.com
Tasks

Get Last Agent


Task description
The Get Last Agent task uses the Customer ID, Channel Type, and Topic to look up the agent the
customer previously spoke to. Get Last Agent works with the Update Last Agent task, which in
turn updates the agent-customer pairing when the agent answers the customer.
Get Last Agent and Update Last Agent tasks are generally used with Avaya Oceana® Solution
where multiple channel types are available. However, these tasks are designed to work in
Engagement Designer workflows. So, even in other deployments, a business analyst can find
these tasks useful.
Get Last Agent is a synchronous task.
Task properties
• Customer Id (mandatory) – The customer id. The id can be any uniquely identifiable property
that refers to the specific caller. It can be as simple as the caller's phone number, or it can be
the Avaya Oceana® Solution Contact Id.
• Channel Type - The channel type is used to identify the different channels supported in
Avaya Oceana® Solution. While it is mandatory to have the Channel Type to uniquely identify
a work item, as far as this workflow task is concerned, this is not a mandatory parameter. If
this task is used in Avaya Oceana® Solution deployments, a valid Channel Type should be
provided to retrieve the previous agent the caller worked with.
• Topic (optional) – Any content that can help identify the agent that the customer previously
spoke to. For example, an email subject or department name.
Input schema
• CustomerId – The uniquely identifiable customer id.
• ChannelType – Channel type.
• Topic (optional) – Any content to help identify the agent.
Output schema
• SourceName - Oceana® Source Name that is combined with the Resource Id of the agent
(NativeResourceId ) to uniquely identify a resource.
• NativeResourceId - Oceana® Resource Id of the agent that uniquely identifies a resource.
• TimeOfContact - The date and time the resource answered the contact earlier.
• ChannelType - Oceana® Channel Type.
• Status:
• SUCCESS - The previous agent for the provided contact is successfully retrieved.
• NO_DATA_AVAILABLE - There is no previous agent found for the provided contact.
Related Boundary Events
You can attach an Error Boundary Event to catch any errors the task encounters while retrieving
the last agent.

December 2019 Avaya Engagement Designer Developer's Guide 102


Comments on this document? infodev@avaya.com
Integration tasks

Use Case
See the Last Agent Routing Engagement Designer workflow template.

Update Last Agent


Task description
The Update Last Agent task records the customer id and agent pairing when a contact is
answered. This pairing is used in the future when the contact calls back. The Update Last Agent
task works along with the Get Last Agent task, which in turn retrieves the agent-customer pairing
from the last time the customer called in.
Get Last Agent and Update Last Agent tasks are generally used with Avaya Oceana® Solution
where multiple channel types are available. However, these tasks are designed to work in
Engagement Designer workflows. So, even in other deployments, a business analyst can find
these tasks useful.
Update Last Agent is a synchronous task.
Task properties
• Customer Id (mandatory) – The customer id. The id can be any uniquely identifiable property
that refers to the specific caller. It can be as simple as the caller's phone number, or it can be
the Avaya Oceana® Solution Contact Id.
• Source Name (mandatory) – Avaya Oceana® Solution Source Name that is combined with
the Resource Id of the agent (NativeResourceId ) to uniquely identify a resource.
• Native Resource Id (mandatory) – Avaya Oceana® Solution Resource Id of the agent that
uniquely identifies a resource.
• Channel Type - The channel type is used to identify the different channels supported in
Avaya Oceana® Solution. While it is mandatory to have the Channel Type to uniquely identify
a work item, as far as this workflow task is concerned, this is not a mandatory parameter. If
this task is used in Avaya Oceana® Solution deployments, a valid Channel Type should be
provided to retrieve the previous agent the caller worked with.
• Topic (optional) – Any content that can help identify the agent that the customer previously
spoke to. For example, the topic could be an email subject or department name.
Input schema
• CustomerId – The uniquely identifiable customer id.
• SourceName – Oceana® Source Name that is combined with the NativeResourceId of the
agent to uniquely identify a resource.
• NativeResourceId – Oceana® Resource Id of the agent.
• ChannelType – Channel type.
• Topic (optional) – Any content to help identify the agent.
Output schema
• Status:

December 2019 Avaya Engagement Designer Developer's Guide 103


Comments on this document? infodev@avaya.com
Tasks

• SUCCESS-UPDATED - The contact/agent pairing is updated for future reference.


• SUCCESS-NOT-UPDATED - The contact/agent pairing is not updated. This could be
because of invalid parameters supplied. Check the task_status.
• FAILED-ERROR - The contact/agent pairing is not updated due to an error.
Related Boundary Events
You can attach an Error Boundary Event to catch any errors the task encounters while updating
the pairing.
Use Case
See the Last Agent Routing Engagement Designer workflow template.

Notification tasks

Send Email
Task description
The Send Email task sends email to a list of email IDS.
This is an asynchronous task.
Task properties
• Sender (mandatory) – Email address of the sender.
• To – List of 'to' email recipients. Separate multiple recipients with commas when entered in
the Properties window.
• Cc – List of cc email recipients. Separate multiple recipients with commas when entered in
the Properties window.
• Bcc – List of bcc email recipients. Separate multiple recipients with commas when entered in
the Properties window.
• Email subject (mandatory) – Subject of the email.
• Email body (mandatory) – Message of the email.
• Select the content type for email body – Select the content type from the drop-down menu.
The default is TEXT_PLAIN.
• Wait for Email Success – If checked, the instance waits for the last status staying active until
the status arrives. If not checked, instance does not wait for status and immediate status
EMAIL_QUEUED is used. The instance is completed.
You must enter a value for at least one of the following: To, Cc, or Bcc.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.

December 2019 Avaya Engagement Designer Developer's Guide 104


Comments on this document? infodev@avaya.com
Notification tasks

All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• emailSender (mandatory) – Email address of the sender.
• emailRecipient – List of 'to' email recipients. (A JSON array if given over mapping.)
• emailCc – List of cc email recipients. (A JSON array if given over mapping.)
• emailBcc – List of bcc email recipients. (A JSON array if given over mapping.)
• emailSubject (mandatory) – Subject of the email.
• emailBody (mandatory) – Message of the email.
• contentType – The type of content in the email: TEXT_HTML, TEXT_PLAIN, TEXT_RTF,
TEXT_VCARD, TEXT_XML.
You must enter a value for: To, Cc, or Bcc.
Output schema
• Status:
- EMAIL_OK - The EmailRequest was successfully delivered to the email server.
- EMAIL_TEST - The email connector received the EmailRequest, but the connector is in
test mode.
- EMAIL_QUEUED - The EmailRequest was successfully queued to the email connector.
- EMAIL_PARTIAL_SUCCESS - The EmailRequest was partially successfully delivered by
the email server.
- EMAIL_BAD_REQUEST - The EmailRequest was poorly formed.
- EMAIL_EXPIRED - The EmailRequest expired.
- EMAIL_CONNECTOR_ERROR - The email connector experienced an internal error.
- EMAIL_FAILED - The email request failed.
Prerequisites
The Avaya Breeze® platform email connector snap-in must be configured.
Related Boundary Events
Not applicable.
Use Case
Use the Send Email task in a customer service or call center to send an email to a customer after
a call.

Send Text Msg


Task description
The Send Text Msg task sends a text message to a list of telephone numbers.

December 2019 Avaya Engagement Designer Developer's Guide 105


Comments on this document? infodev@avaya.com
Tasks

This is an asynchronous task.


Task Properties
• Sender’s phone number (mandatory) – The phone number of the message sender.
• Recipient’s phone number (mandatory) – List of phone numbers of message recipients.
Separate multiple numbers with commas when entered in the Properties window. A valid
phone number is the full number including the country code.
• SMS body (mandatory) – The text message.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
Input schema
• smsSender (mandatory) – The phone number of the message sender.
• smsRecipient (mandatory) – List of phone numbers of message recipients. (A JSON array if
given over mapping.) A valid phone number is the full number including the country code.
• smsBody (mandatory) – The text message.
Output schema
• Status:
- SMS_OK - The message was successfully delivered to all recipients. This could also mean
that the SMS request was successfully delivered by the SMS provider to a network
gateway.
- SMS_TEST - The SMS connector received the SmsRequest, but the connector is in test
mode.
- SMS_QUEUED - The SMSRequest was successfully queued to the SMS connector.
- SMS_PARTIAL_SUCCESS - The message was successfully delivered to some of the
recipients.
- SMS_BAD_REQUEST - The SmsRequest was poorly formed.
- SMS_EXPIRED - The SMSRequest expired.
- SMS_CONNECTOR_ERROR - The connector that services SMS requests has
encountered some kind of internal error.
- SMS_FAILED - The request was sent to the provider, but the provider was unable to send
the message to any recipient.
Prerequisites
The Avaya Breeze® platform SMS connector snap-in must be installed and configured.
Related Boundary Events
Not applicable.
Use Case
Use the Send Text Message task in a customer service or call center to send an SMS text
message to a customer after a call.

December 2019 Avaya Engagement Designer Developer's Guide 106


Comments on this document? infodev@avaya.com
Notification tasks

Log Message
Task descriptions
The Log Message task logs the specified message with the selected log level to the snap-in log
( EngagementDesigner.log).
This is a synchronous task.
Task properties
• Level (mandatory) – Log level for logging the message. Select from: FATAL, ERROR, WARN,
INFO, FINE, FINER, FINEST.
• Message (mandatory) – The message or statement to be logged.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• level (mandatory) – Log level for logging the message. Log levels are: FATAL, ERROR,
WARN, INFO, FINE, FINER, FINEST.
• message (mandatory) – The message or statement to be logged.
Output schema
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
In a Call Center, use the Log Message task to log a message saying “Agent Connect to Customer”
when an agent has answered the call.

Alarm
Task description
The Alarm task raises or clears alarms on System Manager.
To view alarms, on the System Manager home page, navigate to Services > Events > Alarms.
This is a synchronous task.

December 2019 Avaya Engagement Designer Developer's Guide 107


Comments on this document? infodev@avaya.com
Tasks

Task properties
• Severity (mandatory) – Severity level of the alarm. Severity levels are: critical, major, minor,
warning.
• Alarm type – Raise or clear the alarm. Default is raise.
• Message (mandatory) – Text or message to be displayed as part of the alarm.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• severity (mandatory) – Severity level of the alarm. Severity levels are: critical, major, minor,
warning.
• alarmType – Raise or clear the alarm. Default is raise.
• message – Text or message to be displayed as part of the alarm.
• wfdName (mandatory) – Name of the Workflow Definition (WFD), mapped from the system
variable.
• wfdVersion (mandatory) – Version of the Workflow Definition (WFD), mapped from the
system variable.
Output schema
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
The serviceability agent on System Manager must be configured for alarms to be raised.
Related Boundary Events
Not applicable.
Use Case
If a task like Forward Call fails on attempting to forward a call to a call center agent, the Alarm task
can raise an alarm to notify the administrator or others who can take corrective action. Administer
the severity of the alarm based on the severity of the possible emergency.

December 2019 Avaya Engagement Designer Developer's Guide 108


Comments on this document? infodev@avaya.com
Telephony Communications tasks

Telephony Communications tasks

Allow Call
Task definition
The Allow Call task lets an incoming call proceed. It resumes a call when a Suspend Call task has
been used to suspend the call.
This is a synchronous task.
Task properties
None.
Input schema
All mandatory fields should be mapped for validation to succeed.
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call to be allowed or resumed.
Map the ucid from the Call event or from a task returning ucid in the output.
Output schema
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
When a call is suspended using the Suspend task in a flow, use the Allow Call task to resume the
call.

Block Call
Task definition
The Block Call task blocks a call before it is answered. The caller receives a busy signal.
This is a synchronous task.
Task properties
None.

December 2019 Avaya Engagement Designer Developer's Guide 109


Comments on this document? infodev@avaya.com
Tasks

Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call to be blocked. Map the ucid
from the Call event or from a task returning ucid in the output.
All mandatory fields should be mapped for validation to succeed.
Output schema
• ucid – Call ID of the call.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
Use the Block Call task to create a black list of callers whose calls you want to block.

Announce and Block Call


Task definition
The Announce and Block Call task plays an announcement to the caller and then drops the call.
Announce and Block Call is an asynchronous task. It resumes when the announcement
completes.
Task properties
In the following list of properties, the media source is mandatory.
Values specified by input mapping take precedence over corresponding values entered in the
Properties window.
• Media URI/Text/cstoreURI (mandatory) – The source that identifies the list of audio resources
or the text-to-speech (TTS) string to be played on the call.
• Additional Media URI – Used to provide multiple URIs or multiple TTS or a mix or both URIs
and TTS to play as an announcement. Click Add Option to add a new value. This value can
hold a Media URI/Text/cstoreURI.
If both a media URI and additional URI are provided, the first announcement is the media
URI followed by the additional URI.
• Use Locale – If checked, the locale mapping/property is used for playing media. If that is not
provided, the System Manager default locale attribute is used.
• Locale – Prompt language supported by Avaya Aura® Media Server (MS).
The Locale variable in the Input Mapping will overwrite this static setting when mapped.
Ensure that the locale specified is supported by the TTS server (Speech Recognizer and

December 2019 Avaya Engagement Designer Developer's Guide 110


Comments on this document? infodev@avaya.com
Telephony Communications tasks

Speech Synthesizer) that is used in your solution. The locale name must be compliant with
RFC3066, that is, in the format of language-COUNTRY, for example, en-US or fr-CA.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call where the announcement is to
be played. Map the ucid from the appid of the Call event or from the output schema of the
Make Call task.
• mediauri (mandatory) – Audio resource to be played to the caller.
• additionalmediauri – Used to provide multiple URIs or multiple TTS or a mix or both URIs and
TTS. This value can hold a Media URI/Text/cstoreURI. It must be in JSONArray format for
example:
[
{"MediaURIAdditional":"1st Media File/TTS/CStore URI"}
,
{"MediaURIAdditional":"2nd Media File/TTS/CStore URI "}
]

• useLocale – True and False values accepted. If true, the locale mapping/property is used for
playing media. If that is not provided, the System Manager default locale attribute is used.
• locale – Prompt language supported by Avaya Aura® Media Server (MS).
Output schema
• ucid – Universal call ID of the call.
• Status:
- COMPLETE - Play completed because all media generation has completed.
- FAILED - Play operation failed before it could complete.
- INTERRUPTED - Play completed because the media was interrupted by a digit press.
- STOPPED - The play operation was stopped explicitly by the client service.
Error handling
Not applicable.
Prerequisites
• Avaya Aura® Media Server (MS) must be configured.
• The MRCP server must be installed and configured for Text-to-Speech (TTS) functionality.
• For older Workflow Definitions you must have a locale administered on System Manager for
the Locale attribute. If Avaya Aura® Media Server (MS) does not support additional
languages, keep en-us (English) as the default. For information about how to administer
attributes, see Avaya Engagement Designer Reference.
Related Boundary Events
Attach a Message Boundary Event or Timeout Boundary Event to the task with Interrupting set to
true to cancel/stop the task before it completes.

December 2019 Avaya Engagement Designer Developer's Guide 111


Comments on this document? infodev@avaya.com
Tasks

Use Case
The Announce and Block Call task can be used to play an announcement to a customer calling
customer service when no agent is available for service. The call drops after the announcement.

Drop Call
Task definition
The Drop Call task drops an ongoing call.
Drop Call is a synchronous task.
Task properties
None.
Input schema
• ucid (Universal Call Identifier) (mandatory): Call ID of the call to be dropped. Map the ucid
from the Call event or from a task returning ucid in the output.
All mandatory fields should be mapped for validation to succeed.
Output schema
• ucid – Call ID of the call dropped.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
If you have a policy to not allow calls to last longer than a specified amount of time, you can use
the Drop Call task to drop a call when it exceeds the time limit.

Fork Call
Task definition
The Fork Call task alerts or rings a call at two endpoints. The task is used on call intercept. For
example, if there is a call from A to B, and the call is intercepted with a Fork Call to the
Participant number C. Both B and C will ring. The call can be answered from either of the ringing
endpoints. The call is established only with the endpoint that answered the call. The endpoint that
did not answer is no longer part of the call.

December 2019 Avaya Engagement Designer Developer's Guide 112


Comments on this document? infodev@avaya.com
Telephony Communications tasks

Fork Call is a synchronous task.


Task properties
• Participant number (mandatory) – Number/address of the endpoint to be alerted.
Check with your administrator for the format to use for the number/address.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call to be forked. Map the ucid
from the Call event or from a task returning ucid in the output.
• participant_number (mandatory) – Number/address of the endpoint to be alerted.
Output schema
• ucid – Call ID of the call that was forked.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
When a call comes to your office number, you may want to ring your mobile number as well so
that you can take the calls even when you are away from your desk. Use the Fork Call task to ring
your mobile number when a call comes to your office desk phone.

Forward Call
Task definition
The Forward Call task redirects or forwards a call to another number.
Forward Call is a synchronous task.
Task properties
• Forward to (mandatory) – Number/address to which the call will be redirected.
Check with your administrator for the format to use for the number/address.
• Wait for call answer – If this box is checked, the workflow does not continue to the next node
until the call is answered. If the call is not answered, the workflow waits at this task and the

December 2019 Avaya Engagement Designer Developer's Guide 113


Comments on this document? infodev@avaya.com
Tasks

call continues ringing. If the box is not checked, after the forwarded call starts ringing, the
workflow continues to the next node.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call to be forwarded. Map the ucid
from the Call event or from a task returning ucid in the output.
• redirect_number (mandatory) – Number/address to which the call will be redirected.
Output schema
• ucid – Call ID of the call that was forwarded.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
When you are leaving the office, you may want to forward all the calls coming to your office phone
to your cell phone. Use the Forward Call task to forward calls coming to your office number to your
mobile number.

Suspend Call
Task definition
The Suspend Call task suspends call proceeding. It allows time for other activities to occur before
the call continues.
Suspend Call is a synchronous task.
Task properties
None.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call to be suspended. Map the
ucid from the Call event or from a task returning ucid in the output.
All mandatory fields should be mapped for validation to succeed.

December 2019 Avaya Engagement Designer Developer's Guide 114


Comments on this document? infodev@avaya.com
Telephony Communications tasks

Output schema
• ucid – Call ID of the call that was suspended.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
Your Workflow Definition (WFD) might have time-intensive tasks, like the Read From DB task, that
could hold up the call for more than 2-3 seconds. In this case, use the Suspend Call task to
suspend the call and allow enough time for the Read From DB or other task to complete. The
Allow Call task can be used in the flow to resume the suspended call. Allow Call and Suspend Call
can be invoked only in call intercept cases.

Make Call
Task definition
The Make Call task creates a call. The call can be a single or two-party call.
Make Call is an asynchronous task.
Task properties
• Calling party (mandatory) – Calling party number in the format handle@domain. If a domain
is not provided, the Default SIP Domain must be administered for the Avaya Breeze®
platform cluster attributes.
• Called party (mandatory) – Called party number in the format handle@domain.
• Caller ID (mandatory) – Caller’s display name.
• Context ID – Any string to specify the context of the call.
• Two party call – Specifies the call is a two-party call if checked.
• Wait Until Called Answer – If checked, the Make Call task resumes after the called party
answers. If not checked, the Make Call task resumes when the calling party answers.
Check with your administrator for the format to use for the number.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.

December 2019 Avaya Engagement Designer Developer's Guide 115


Comments on this document? infodev@avaya.com
Tasks

Input schema
• callingParty (mandatory) – Calling party number in the format handle@domain.
• calledParty (mandatory) – Called party number in the format handle@domain.
• identity (mandatory) – Caller’s display name
• contextId – Any string to specify the context of the call.
• twoPartycall – Specifies the call is a two-party call if this flag is set to true.
• waitUntilCalledAnswer – If true, the Make Call task resumes after the called party answers. If
false, the Make Call task resumes when the calling party answers.
Output schema
• ucid – Universal call ID of the call.
• appid – A local call id that can be used as input to map the ucid to media tasks (Play
Announcement, Play and Collect, Announce and Block Call)
• status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Avaya Aura® Media Server (MS) must be configured.
Related Boundary Events
Use the Timeout Boundary Event with this task.
Use Case
Use the Make Call task to place a call between two parties. You could have a click-to-call link on a
website. When the customer clicks on it, use this task to call an agent as the first party and the
customer as the second party.
If you want to play an announcement or emergency notification use this task to make the call.

Set Call Policy


Task definition
The Set Call Policy task sets the termination policy for the call and the media policy. The call
termination policy defines whether a call remains active or drops when the call is left with a single
participant after a participant has dropped from the call. The media policy defines the conditions
when an Avaya Aura® Media Server is included in a call.
Set Call Policy is a synchronous task.

December 2019 Avaya Engagement Designer Developer's Guide 116


Comments on this document? infodev@avaya.com
Telephony Communications tasks

Task properties
You must enter a value for either Policy or Media Policy.
• Policy – The call termination policy to be set for a call.
- DROP_CALL_IF_ONE_PARTICIPANT_REMAINS – The call drops when a single
participant remains.
- DROP_CALL_WHEN_NO_PARTICIPANT_REMAINS – The call remains active when a
participant drops and only one remains.
• Media Policy
- MEDIA_SERVER_INCLUDED – Add an Avaya Aura® Media Server resource to the call for
the duration of the call.
- MEDIA_SERVER_NEEDED_ONLY_FOR_MEDIA_OPERATION – Add an Avaya Aura® Media
Server resource to the call only when needed for a media operation.
• PreAnswerMediaState – Check this box to play an audio recording to the caller before
connecting the call. This prevents toll charges from accruing until the call is answered.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call. Map the ucid from the Call
event or from a task returning ucid in the output.
• policy – The call termination policy to be set for a call. The policy is either
DROP_CALL_IF_ONE_PARTICIPANT_REMAINS or
DROP_CALL_WHEN_NO_PARTICIPANT_REMAINS.
• mediaPolicy – The media policy to be set for a call. The policy is either
MEDIA_SERVER_INCLUDED or MEDIA_SERVER_NEEDED_ONLY_FOR_MEDIA_OPERATION.
You must enter a value for either Policy or Media Policy.
Output schema
• ucid – Universal Call Identifier.
• Status – Success if the task succeeds. Failed if the task fails to execute.
• policy – The policy set for a call.
• mediaPolicy – The media policy set for a call.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.

December 2019 Avaya Engagement Designer Developer's Guide 117


Comments on this document? infodev@avaya.com
Tasks

Use case
Set the termination policy to DROP_CALL_WHEN_NO_PARTICIPANT_REMAINS to drop a call
when there is no participant in the call. Set it to DROP_CALL_IF_ONE_PARTICIPANT_REMAINS
to drop a call when there is one participant in a call.
Set the media policy to MEDIA_SERVER_INCLUDED to always have the Avaya Aura® Media
Server on a call. Set it to MEDIA_SERVER_NEEDED_ONLY_FOR_MEDIA_OPERATION to have
the Avaya Aura® Media Server only when there is any media related operations.
If the call termination policy is set to DROP_CALL_IF_ONE_PARTICIPANT_REMAINS and the
call is a 2–party call, then the call will drop after dropping a participant. The call remains active if
the call termination policy is set to DROP_CALL_WHEN_NO_PARTICIPANT_REMAINS.
If the media policy is set to MEDIA_SERVER_NEEDED_ONLY_FOR_MEDIA_OPERATION, and
a Play Announcement task is invoked, the Avaya Aura® Media Server is included in the call during
the execution of Play Announcement. The Avaya Aura® Media Server is included always in the call
when the media policy is set to MEDIA_SERVER_INCLUDED.

Drop Participant
Task definition
The Drop Participant task drops a participant from an active call. If the call termination policy is set
to DROP_CALL_IF_ONE_PARTICIPANT_REMAINS, the call is dropped after the participant is
dropped, otherwise the call remains active.
Drop Participant is an asynchronous task. It waits to receive a PARTICIPANT_DROPPED event.
Task properties
• Phone number (mandatory) – Phone number of the participant to be dropped from the call.
The phone number can be just the participant’s handle, or in the form handle@domain.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call. Map the ucid from the Call
event or from a task returning ucid in the output.
• phoneNumber (mandatory) – Phone number of the participant to be dropped from the call.
The phone number can be just the participant’s handle, or in the form handle@domain.
Output schema
• ucid – Universal Call Identifier.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.

December 2019 Avaya Engagement Designer Developer's Guide 118


Comments on this document? infodev@avaya.com
Telephony Communications tasks

Related Boundary Events


Not applicable.
Use case
• Use the Drop Participant task to drop a participant from an active call.
• Use the Drop Participant task with Add Participant tasks to replace an existing party with a
new party from the call. In this case, set the call termination policy to
DROP_CALL_WHEN_NO_PARTICIPANT_REMAINS. Otherwise, the call will be dropped
after dropping a participant.
• If the call termination policy is DROP_CALL_IF_ONE_PARTICIPANT_REMAINS, the Drop
Participant task is equivalent to the Drop Call task.

Add Participant
Task definition
The Add Participant task adds another participant to the call. If the call is ringing, Add Participant
has the effect of adding another participant so that multiple participants are ringing. If the call has
dropped to a single participant (if allowed by the Call Termination Policy), Add Participant can be
used to add another participant. If the call already has two connected (established, talking)
participants, Add Participant is not allowed.
Add Participant is a synchronous task. This task can be used in call intercept cases or non-call
intercept cases. When used with call intercept cases, the Allow Call task should be used in the
flow.
Task properties
• Phone number (mandatory) – Phone number of the participant to be added to the call. The
phone number can be just the participant’s handle, or in the form handle@domain.
• Display name – Participant’s display name. Use only alphanumeric characters in the display
name. Special characters are not supported. If a special character is used, the displayed
name truncates at the location of the special character.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Adding alerting participants is generally an action that is desired on behalf of the called party.
While some use cases could be envisioned for performing such actions in the calling phase of the
call, this is not currently supported. An addParticipant() operation will fail if executed from a Calling
Party service while the call is alerting.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call. Map the ucid from the Call
event or from a task returning ucid in the output.
• phoneNumber (mandatory) – Phone number of the participant to be added to the call. The
phone number can be just the participant’s handle, or in the form handle@domain.
• displayName – Participant’s display name. Use only alphanumeric characters in the display
name. Special characters are not supported. If a special character is used, the displayed
name truncates at the location of the special character.

December 2019 Avaya Engagement Designer Developer's Guide 119


Comments on this document? infodev@avaya.com
Tasks

Output schema
• ucid – Universal Call Identifier.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
To listen for Add Participant events, use the Receive task and listen for :
OFFERING_CALL_TO_CALLED_PARTY
CALL_ALERTING
ADD_PARTICIPANT_FAILED
PARTICIPANT_DROPPED
CALL_ENDED
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use case
• Use the Add Participant task to alert multiple destinations to a call. When one of the alerting
parties answers, the other parties will be out of the call.
• Use the Add Participant task with the Drop Participant task to replace an existing party with a
new party from the call. In this case, set the call termination policy to
DROP_CALL_WHEN_NO_PARTICIPANT_REMAINS. Otherwise, the call will be dropped
after dropping a participant.
• Invoke the Add Participant task in the Single Leg Active call to bring a new party into the call.
• Use the Receive task to listen to the event ‘ADD_PARTICIPANT_FAILED’ to trace if the
operation fails to add a participant.

Set Called Party


Task definition
The Set Called Party task sets the called party’s display name/identity to be presented to other
parties in the call.
Set Called Party is a synchronous task.
Task properties
• Display name (mandatory) – Called party’s display name to be presented to other parties in
the call. Use only alphanumeric characters in the display name. Special characters are not
supported. If a special character is used, the displayed name truncates at the location of the
special character.
• Phone number – The called party’s phone number to be presented to other parties in the call.
The phone number can be just the caller’s handle, or in the form handle@domain.

December 2019 Avaya Engagement Designer Developer's Guide 120


Comments on this document? infodev@avaya.com
Telephony Communications tasks

All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call. Map the ucid from the Call
event or from a task returning ucid in the output.
• displayName (mandatory) – Called party’s display name to be presented to other parties in
call. Use only alphanumeric characters in the display name. Special characters are not
supported. If a special character is used, the displayed name truncates at the location of the
special character.
• phoneNumber – The called party’s phone number to be presented to other parties in the call.
The phone number can be just the caller’s handle, or in the form handle@domain.
Output schema
• ucid – Universal Call Identifier.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use case
Use the Set Called Party task to set the calling party’s identity to be displayed to other parties in
the call when the call is forwarded to another SIP endpoint.
• Use the attribute presentedDisplayName of the Get Called Party task to fetch the value of
the display name in the WFDs.
• Use the attributes presentedHandle or presentedDomain of the Get Called Party task to
fetch the handle or domain part of phone number respectively in the WFDs.

Set Calling Party


Task definition
The Set Calling Party task sets the caller’s display name/identity or phone number to be presented
to other parties in the call.
Set Calling Party is a synchronous task.
Task properties
• Display name (mandatory) – Caller’s display name to be presented to other parties in the call.
Use only alphanumeric characters in the display name. Special characters are not supported.
If a special character is used, the displayed name truncates at the location of the special
character.

December 2019 Avaya Engagement Designer Developer's Guide 121


Comments on this document? infodev@avaya.com
Tasks

• Phone number – The caller’s phone number to be presented to other parties in the call. The
phone number can be just the caller’s handle, or in the form handle@domain.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call. Map the ucid from the Call
event or from a task returning ucid in the output.
• displayName (mandatory) – Caller’s display name to be presented to other parties in call.
Use only alphanumeric characters in the display name. Special characters are not supported.
If a special character is used, the displayed name truncates at the location of the special
character.
• phoneNumber – The caller’s phone number to be presented to other parties in the call. The
phone number can be just the caller’s handle, or in the form handle@domain.
Output schema
• ucid – Universal Call Identifier.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use case
Use the Set Calling Party task to set the caller’s identity to be displayed to other parties in the call
when the call is forwarded to another SIP endpoint.
• Use the attribute presentedDisplayName of the Get Calling Party task to fetch the value
of the display name in the WFDs.
• Use the attributes presentedHandle or presentedDomain of the Get Calling Party task
to fetch the handle or domain part of phone number respectively in the WFDs.

Get Calling Party


Task definition
The Get Calling Party task collects calling party information for the designated call ID.
Get Calling Party is a synchronous task.
Task properties
None.

December 2019 Avaya Engagement Designer Developer's Guide 122


Comments on this document? infodev@avaya.com
Telephony Communications tasks

Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call. Map the ucid from the Call
event or from a task returning ucid in the output.
All mandatory fields should be mapped for validation to succeed.
Output schema
• ucid – Universal Call Identifier
• Address – An address string in the format handle@domain
• displayName – Display name of the participant as provided by the network or endpoint.
• domain – Domain part of the party's address as provided by the network or endpoint.
• handle – Handle part of the party's address as provided by the network or endpoint.
• presentedDisplayName – Display name to be presented to other parties in the call, as
previously set by the client service.
• presentedDomain – Domain part of this party's address to be presented to other parties in
the call, as previously set by the client service.
• presentedHandle – Handle part of this party's address to be presented to other parties in the
call, as previously set by the client service.
• type – The protocol type used by the participant. (SIP/SIPS)
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
In a customer service or call center workflow, use the Get Calling Party task to log information
about a customer who is calling. For example, a call center would want to keep a history of the
customers that called in.

Get Called Party


Task definition
The Get Called Party task collects called party information for the designated call ID.
Get Called Party is a synchronous task.
Task properties
None.

December 2019 Avaya Engagement Designer Developer's Guide 123


Comments on this document? infodev@avaya.com
Tasks

Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call. Map the ucid from the Call
event or from a task returning ucid in the output.
All mandatory fields should be mapped for validation to succeed.
Output schema
• ucid – Universal Call Identifier.
• Address – An address string in the format handle@domain .
• displayName – Display name of the participant as provided by the network or endpoint.
• domain – Domain part of the party's address as provided by the network or endpoint.
• handle – Handle part of the party's address as provided by the network or endpoint.
• presentedDisplayName – Display name to be presented to other parties in the call, as
previously set by the client service.
• presentedDomain – Domain part of this party's address to be presented to other parties in
the call, as previously set by the client service.
• presentedHandle – Handle part of this party's address to be presented to other parties in the
call, as previously set by the client service.
• type – The protocol type used by the participant. (SIP/SIPS)
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
In a customer service or call center workflow, use the Get Called Party task to log information
about a customer who is being called. For example, a call center would want to keep a history of
the customers that called in.

Set Call Context


Task definition
The Set Call Context task sets the context (any string) or adds collected digits to a call.
Set Call Context is a synchronous task.
Task properties
• Context ID – Any string to specify the context of the call.
• Collected digits – Collected digits to be added to the call.

December 2019 Avaya Engagement Designer Developer's Guide 124


Comments on this document? infodev@avaya.com
Telephony Communications tasks

• Call Attributes – Stores an attribute for later retrieval.


If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Either Context Id or Collected Digits should be mapped using the Input Mapping window or
entered in the Properties window for validation to succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call where the information will be
added. Map the ucid from the Call event or from a task returning ucid in the output.
• contextid – Any string to specify the context of the call.
• collectedDigits – Collected digits to be added to the call.
• callAttributes – Stores an attribute for later retrieval.
Output schema
• ucid – Call ID of the call.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
When a customer calls a call center and selects options from an Interactive Voice Response (IVR)
system, the options selected can be added to the call using the Collected Digits parameter. The
call then can be routed to an agent based on those digits. Any other information like customer id of
the caller can be added to the call as Context. The agent can then retrieve the customer id to see
the history of the caller.

Get Call Context


Task definition
The Get Call Context task retrieves the context (string) or collected digits from a call.
Get Call Context is a synchronous task.
Task properties
None.

December 2019 Avaya Engagement Designer Developer's Guide 125


Comments on this document? infodev@avaya.com
Tasks

Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call where the information will be
retrieved. Map the ucid from the Call event or from a task returning ucid in the output.
• callAttribute – Retrieve an attribute that was previously stored with the Set Call Context task.
All mandatory fields should be mapped for validation to succeed.
Output schema
• ucid – Call ID of the call.
• parentUcid – If call is transferred or conferenced, the ucid of original call.
• contextid – String set on the call to specify the context of the call.
• collectedDigits – Collected digits set on the call.
• callAttribute – Retrieve an attribute that was previously stored with the Set Call Context task.
• videoDetected – Indicates if video was offered by the calling party.
• Status – Success if the task succeeds. Failed if the task fails to execute.
Error handling
Not applicable.
Prerequisites
Not applicable.
Related Boundary Events
Not applicable.
Use Case
When a customer calls a call center and selects options from an Interactive Voice Response (IVR)
system, the options selected and any other information, like the customer ID of the caller, are set
to the call. Use the Get Call Context task to retrieve the Collected Digits to route the call to the
right agent. The agent can then retrieve the customer id set as Context using this task to see the
history of the caller.

Leave Call
Task description
The Leave Call task removes Avaya Breeze® platform from the signaling path for a two-party call
when Engagement Designer is the only service in the sequence (other than the Call Event and
Control Service (CECS)).
Leave Call is an asynchronous task.
Task properties
None.

December 2019 Avaya Engagement Designer Developer's Guide 126


Comments on this document? infodev@avaya.com
Get User Data Task

Input schema
All mandatory fields should be mapped for validation to succeed.
• ucid – (Universal Call Identifier) (mandatory) – Call ID of the call to be allowed or resumed.
Map the ucid from the Call event or from a task returning ucid in the output.
Output schema
Status – Success if the task succeeds. Failed if the task fails to execute.
Prerequisites
When creating the Session Manager Implicit User Rule:
• In the SIP Domain field, select an explicit domain. Do not select ALL.
• Select a Termination Application Sequence. Do not select an Origination Application
Sequence.
Use Case
Using Engagement Designer for front-end Interactive Voice Response:
1. When self-service is completed, Engagement Designer transfers the call to
Communication Manager for assisted service.
2. Engagement Designer drops out of the call since its role is complete.

Get User Data Task

Get User Data


Task description
The Get User Data task retrieves user information, such as different profiles and communication
addresses configured on System Manager, for the designated user.
This is a synchronous task.
Task properties
• Login name – The login name of the user as defined in System Manager.
• Phone number – The SIP handle of a user who is configured in System Manager.
You must enter a value for either the Login name or Phone number. If you enter information in
both fields, the Login name takes precedence over the Phone number. For validation to succeed,
either Login name or Phone number should be mapped or entered in the Properties window.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.

December 2019 Avaya Engagement Designer Developer's Guide 127


Comments on this document? infodev@avaya.com
Tasks

Input schema
• loginName – The login name of the user as defined in System Manager.
• phoneNumber – The SIP handle of a user who is configured in System Manager.
If you map both fields, the Login name takes precedence over the Phone number.
Output schema
• enterprise_id – The enterprise id of the user (same as the login name).
• communication_address – getUserData will fetch the results only for users that have the
communication address.
- AVAYA_E164 : List of Avaya E164 addresses configured for the user.
- AVAYA_SIP : List of Avaya SIP addresses configured for the user.
- AVAYA_XMPP : List of Avaya XMPP addresses configured for the user.
- GOOGLE_TALK : List of Google Talk addresses configured for the user.
- IBM_SAMETIME : List of IBM Sametime addresses configured for the user.
- LOTUS_NOTES : List of Lotus Notes addresses configured for the user.
- MICROSOFT_EXCHANGE : List of Microsoft Exchange addresses configured for the user.
- MICROSOFT_OCS_SIP : List of Microsoft OCS SIP addresses configured for the user.
- OTHER_EMAIL : List of other email addresses configured for the user.
- OTHER_SIP : List of other SIP addresses configured for the user.
- WORK_ASSIGNMENT: List of work assignment addresses configured for the user.
- MOBILE: List of mobile numbers configured for the user.
- OTHER_XMPP : List of other XMPP addresses configured for the user.
• tennant_id – Tenant ID of the user. (A tenant identifies a business unit and allows for
multiple business units to share an implementation but still have data segmented within that
implementation.)
Use Case
Use the Get User Data task to fetch the email address of the user to send an email.

Media Communication tasks

Play And Collect


Task definition
The Play And Collect task plays an announcement and collects dual tone multi-frequency (DTMF)
digits pressed by the calling or called party. You can combine the Play And Collect task with the
Read DB task to identify a caller and address the announcement to that caller.

December 2019 Avaya Engagement Designer Developer's Guide 128


Comments on this document? infodev@avaya.com
Media Communication tasks

Play and Collect is an asynchronous task. It resumes when the announcement times out, is
terminated, or is interrupted by digits being pressed.
Task properties
In the following list of properties, the media source is mandatory.
Values specified by input mapping take precedence over corresponding values entered in the
Properties window.
• Media URI/Text/cstoreURI (mandatory) – The source that identifies the list of audio resources
or the text-to-speech (TTS) string to be played on the call. Legal value for source: a list of
cstore:// or file:// or http:// URI for audio resources or TTS text strings to be synthesized into
speech.
• Additional Media URI – Used to provide multiple URIs or multiple TTS or a mix or both URIs
and TTS to play as an announcement. Click Add Option to add a new value. This value can
hold a Media URI/Text/cstoreURI.
If both a media URI and additional URI are provided, the first announcement is the media
URI followed by the additional URI.
• Use Locale – If checked, the locale mapping/property is used for playing media. If that is not
provided, the System Manager default locale attribute is used.
• Locale – Prompt language supported by Avaya Aura® Media Server (MS).
The Locale variable in the Input Mapping will overwrite this static setting when mapped.
Ensure that the locale specified is supported by the TTS server (Speech Recognizer and
Speech Synthesizer) that is used in your solution. The locale name must be compliant with
RFC3066, that is, in the format of language-COUNTRY, for example, en-US or fr-CA.
• Number of digits – The number of digits that must be collected. Valid entry: number greater
than or equal to 1.
• Termination key – The termination key that stops a digit collection operation. A possible value
could be a digit '0-9', '*' or '#' symbol. The user may enter the termination key at will to
terminate the announcement. The default value is the # symbol. The user is never prompted
to press the termination key. However, the user can may choose to terminate the process by
pressing the termination key. The moment Avaya Aura® Media Server (MS) detects the last
digit of the required number of digits entered by the user, the task collects and returns the
output. Pressing the termination key is not required.
• Handle – The number/address for whom the announcement will be played and digits
collected from.
• Collect digits from – The recipient of the announcement, the called or calling party. Valid
entries: Calling, Called or Active. If you select Active, Play and Collect takes place on the
Active party in the call. If there is more than one active party, the calling party is used.
• Interrupt announcement (optional) – Determines whether the audio announcement is
interrupted when a digit is pressed. True interrupts the announcement. False (default) does
not.
• Iterate count – The number of times to play the announcement.
• Timeout (optional) – Number of seconds to wait to receive the first digit. Default is 60
seconds. If a digit is not received in the specified time, the WFD continues to the next task.

December 2019 Avaya Engagement Designer Developer's Guide 129


Comments on this document? infodev@avaya.com
Tasks

• Clear collected digit buffer – If checked, before the current Play and Collect task executes,
the DTMF digits previously collected are flushed. In this case when the current Play and
Collect task executes, the DTMF buffer is empty. If not checked, the DTMF buffer will contain
values entered in a previous Play and Collect or other task.
If both Handle and Collect digits from are provided, then Handle takes precedence. If none, then
calling party is used.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call where the announcement is
played. Map the ucid from the appid of the Call event or from the output schema of the Make
Call task.
• mediauri (mandatory) – The source that identifies the list of audio resources or the text-to-
speech (TTS) string to be played on the call. Legal value for source: a list of cstore:// or file://
or http:// URI for audio resources or TTS text strings to be synthesized into speech.
• additionalmediauri – Used to provide multiple URIs or multiple TTS or a mix or both URIs and
TTS. This value can hold a Media URI/Text/cstoreURI. It must be in JSONArray format, for
example:
[
{"MediaURIAdditional":"1st Media File/TTS/CStore URI"}
,
{"MediaURIAdditional":"2nd Media File/TTS/CStore URI "}
]

• interruptibility (optional) – Determines whether the audio announcement is interrupted when a


digit is pressed. True (default), interrupts the announcement. False does not.
• handle – The number/address for whom the announcement will be played and digits
collected from.
• participant – The recipient of the announcement, the called or calling party. Valid entries:
calling, called.
• iterateCount – The number of times to play the announcement.
• numberOfDigits – The number of digits that must be collected before an event is
generated. Valid entry: number greater than or equal to 1.
• terminationKey – The termination key that stops a digit collection operation. A possible value
could be a digit '0-9', '*' or '#' symbol. The user may enter the termination key at will to
terminate the announcement. The default value is the # symbol.
• timeout (optional) – Number of seconds to wait to receive the first digit. Default is 60
seconds.
• useLocale – True and false values accepted. If true, the locale mapping/property is used for
playing media. If that is not provided, the System Manager default locale attribute is used.
• locale – Prompt language supported by Avaya Aura® Media Server (MS).
• isFlush – If set to true, before the current Play and Collect task executes, the DTMF digits
previously collected are flushed. In this case when the current Play and Collect task
executes, the DTMF buffer is empty. If false, the DTMF buffer will contain values entered in a
previous Play and Collect or other task.

December 2019 Avaya Engagement Designer Developer's Guide 130


Comments on this document? infodev@avaya.com
Media Communication tasks

If both Handle and Collect digits from are mapped, then Handle takes precedence. If none, then
calling party is used.
Output schema
• ucid – Universal call ID of the call.
• digits – Digits collect by the task.
• status:
- FAILED - If the digit collection failed before any completion criteria was met.
- NUMBER_OF_DIGITS - If the collection ended and the number of digits is met.
- STOPPED - The digit collection operation was stopped explicitly by the client service.
- TERMINATION_KEY - If the collection ended and the termination key was met.
- TIMEOUT - If the collection completes and there was no DTMF entered.
Look for the following messages in the status when a task is not success, correlate the
output, and add logic appropriately:
- ‘shortReason:'AFTER_ANSWER’
- ‘shortReason:' MEDIA_SERVER_FAILURE’
Error handling
Not applicable.
Prerequisites
• Avaya Aura® Media Server (MS) must be configured.
See the following related documents on the Avaya support site:
- Implementing and Administering Avaya Aura® Media Server
- Deploying and Updating Avaya Aura® Media Server Appliance
- The Avaya Aura® Media Server (MS) field descriptions in Administering Avaya Breeze®
platform.
• Any MRCP server, like the Nuance server, is required for Text-to-Speech (TTS) functionality.
See the following related documents on the Avaya support site:
- The MRCP configuration section of Implementing and Administering Avaya Aura® Media
Server
- Avaya Real-Time Speech Snap-in Reference
• For older Workflow Definitions you must have a locale administered on System Manager for
the Locale attribute. If Avaya Aura® Media Server (MS) does not support additional
languages, keep en-us (English) as the default. For information about how to administer
attributes, see Avaya Engagement Designer Reference.
Related Boundary Events
Attach a Message Boundary Event or Timeout Boundary Event to the task with Interrupting set to
true to cancel/stop the task before it completes.

December 2019 Avaya Engagement Designer Developer's Guide 131


Comments on this document? infodev@avaya.com
Tasks

Use case 1 – Prompt caller to enter digits for call routing


Use the Play and Collect task to play an announcement to a caller prompting them to enter DTMF
digits. Use the digits to route the call to the appropriate path in the workflow.
The following is the priority for the Play and Collect task:
1. If the handle is specified, the Play and Collect task uses the handle.
2. If the handle is null, but the participant is given, the Play and Collect task uses the
participant.
3. If both the handle and participant are null, the single active participant is used. If there is
more than one active participant, the Play and Collect task uses the calling party.
Use case 2 – Address an announcement to the specific caller
A customer can be addressed by name in an announcement. To do this:
1. Use a Read From DB task to fetch the caller’s name.
2. Map the output from the Read From Database task to the Play and Collect mediaURI.
3. Double click the link.
4. Use one of the following methods to construct the greeting by combining static text with the
Read From DB task output.
• Concat function

• Template, moustache notation

December 2019 Avaya Engagement Designer Developer's Guide 132


Comments on this document? infodev@avaya.com
Media Communication tasks

Send DTMF
Task description
The Send DTMF task sends dual tone multi-frequency (DTMF) digits to the calling or called party.
Send DTMF Digits is an asynchronous task. It resumes when the digits are sent, or when the task
times out or is terminated
Task properties
• DTMF Digits (mandatory) – The digits to be sent. The supported digits are from the set {0-9,
A, B, C, D, *, #}.
• Send digits to – Specify whether to send the digits to the called, calling or active party. Valid
entries: Calling, Called or Active. If you select Active, Send Digits takes place on the Active
party in the call. If there is more than one active party, the calling party is used.
• Termination key – The termination key to be appended to the digits. Possible value could be
a digit '0-9', '*' or '#' symbol.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.

December 2019 Avaya Engagement Designer Developer's Guide 133


Comments on this document? infodev@avaya.com
Tasks

Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call where the announcement is
played. Map the ucid from the appid of the Call event or from the output schema of the Make
Call task.
• DTMF Digits (mandatory) – the digits to be sent. The supported digits are from the set {0-9,
A, B, C, D, *, #}.
• participant – Send the digits to called, calling or active party. Valid entries: Calling, Called or
Active. If you select Active, Send Digits takes place on the Active party in the call. If there is
more than one active party, the calling party is used.
• terminationKey – The termination key to be appended to the digits. A possible value could be
a digit '0-9', '*' or '#' symbol.
Output schema
• ucid – Universal call ID of the call.
• status:
- FAILED - If the send digits operation failed.
- COMPLETE - If the send digits operation succeeded.
Prerequisites
• Avaya Aura® Media Server (MS) must be configured.
See the following related documents on the Avaya support site:
- Implementing and Administering Avaya Aura® Media Server
- Deploying and Updating Avaya Aura® Media Server Appliance
- The Avaya Aura® Media Server (MS) field descriptions in Administering Avaya Breeze®
platform.
Use Case
Use the Send DTMF task to send digits to a bridge. Assume the caller calls a number and an
application forwards the call to a bridge. Use the Send DTMF task to send the digits to connect to
the bridge.

Play Announcement
Task definition
The Play Announcement task plays an announcement during a call. You can combine the Play
Announcement task with the Read DB task to identify a caller and address the announcement to
that caller.
Play Announcement is an asynchronous task.
Task Properties
In the following list of properties, the media source is mandatory. The Media URI/Text source
takes precedence over values selected for the Media name space, Media group name and
Media file.

December 2019 Avaya Engagement Designer Developer's Guide 134


Comments on this document? infodev@avaya.com
Media Communication tasks

Values specified by input mapping take precedence over corresponding values entered in the
Properties window.
• Media URI/Text/cstoreURI (mandatory) – The source that identifies the list of audio resources
or the text-to-speech (TTS) string to be played on the call. Legal value for source: a list of
cstore:// or file:// or http:// URI for audio resources or TTS text strings to be synthesized into
speech.
• Additional Media URI – Used to provide multiple URIs or multiple TTS or a mix or both URIs
and TTS to play as an announcement. Click Add Option to add a new value. This value can
hold a Media URI/Text/cstoreURI.
If both a media URI and additional URI are provided, the first announcement is the media
URI followed by the additional URI.
• Handle – The number/address for whom the announcement will be played.
• Play announcement to
- Callid – Play the announcement to the callid. All parties connected to the call hear the
announcement.
- Called – Play the announcement to the called party only.
- Calling – Play the announcement to the calling party only.
• Use Locale – If checked, the locale mapping/property is used for playing media. If that is not
provided, the System Manager default locale attribute is used.
• Locale – Prompt language supported by Avaya Aura® Media Server (MS).
The Locale variable in the Input Mapping will overwrite this static setting when mapped.
Ensure that the locale specified is supported by the TTS server (Speech Recognizer and
Speech Synthesizer) that is used in your solution. The locale name must be compliant with
RFC3066, that is, in the format of language-COUNTRY, for example, en-US or fr-CA.
• Interrupt announcement (optional) – Determines whether the audio announcement is
interrupted when a digit is pressed. True interrupts the announcement. False (default) does
not.
• Duration (secs) – The duration of a play request in seconds.
• Iterate count – The number of times to play the announcement.
• Announce forever (Optional) – Sets the media to play forever without being interrupted by a
timer expiration. The duration and Iterate count parameters are not used when this flag is set
to true. Default is false.
If both Handle and Play announcement to have a value, Handle takes precedence. If none, then
callid is used.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• ucid (Universal Call Identifier) (mandatory) – Call ID of the call where the announcement is
played. Map the ucid from the appid of the Call event or from the output schema of the Make
Call task.

December 2019 Avaya Engagement Designer Developer's Guide 135


Comments on this document? infodev@avaya.com
Tasks

• mediauri (mandatory) – The source that identifies the list of audio resources or the text-to-
speech (TTS) string to be played on the call. Legal value for source: a list of cstore:// or file://
or http:// URI for audio resources or TTS text strings to be synthesized into speech.
• additionalmediauri – Used to provide multiple URIs or multiple TTS or a mix or both URIs and
TTS. This value can hold a Media URI/Text/cstoreURI. It must be in JSONArray format.
• handle – The number/address for whom the announcement will be played.
• participant – The recipient of the announcement – the called or calling party. Valid entries:
callid, calling, called.
• interruptibility (optional) – Determines whether the audio announcement is interrupted when a
digit is pressed. True (default), interrupts the announcement. False does not.
• duration – The duration of a play request in seconds.
• iterateCount – The number of times to play the announcement.
• announcementForever (Optional) – Sets the media to play forever without being interrupted
by a timer expiration. The duration and Iterate count parameters are not used when this flag
is set to true. Default is false.
• locale – Prompt language supported by Avaya Aura® Media Server (MS).
• useLocale – True and false values accepted. If true, the locale mapping/property is used for
playing media. If that is not provided, the System Manager default locale attribute is used.
If both Handle and Play announcement to are mapped, Handle takes precedence. If none, then
callid is used.
Output schema
• ucid – Call ID of the call.
• status:
- COMPLETE - Play completed because all media generation completed.
- FAILED - Play operation failed before it could complete.
- INTERRUPTED - Play completed because the media was interrupted by a digit press.
- STOPPED - The play operation was stopped explicitly by the client service.
Look for the following messages in the status when a task is not success, correlate the
output, and add logic appropriately:
- ‘shortReason:'AFTER_ANSWER’
- ‘shortReason:' MEDIA_SERVER_FAILURE’
Error handling
Not applicable.
Prerequisites
• Avaya Aura® Media Server (MS) must be configured.
See the following related documents on the Avaya support site:
- Implementing and Administering Avaya Aura® Media Server

December 2019 Avaya Engagement Designer Developer's Guide 136


Comments on this document? infodev@avaya.com
Media Communication tasks

- Deploying and Updating Avaya Aura® Media Server Appliance


- The Avaya Aura® Media Server (MS) field descriptions in Administering Avaya Breeze®
platform.
• Any MRCP server, like the Nuance server, is required for Text-to-Speech (TTS) functionality.
See the following related documents on the Avaya support site:
- The MRCP configuration section of Implementing and Administering Avaya Aura® Media
Server
- Avaya Real-Time Speech Snap-in Reference
• For older Workflow Definitions you must have a locale administered on System Manager for
the Locale attribute. If Avaya Aura® Media Server (MS) does not support additional
languages, keep en-us (English) as the default. For information about how to administer
attributes, see Avaya Engagement Designer Reference.
Related Boundary Events
Attach a Message Boundary Event or Timeout Boundary Event to the task with Interrupting set to
true to cancel/stop the task before it completes.
Use case 1 – Play welcome or on-hold music to a caller
A customer may want to speak to a contact center agent who is not available. Use the Play
Announcement task to play music to the caller until the agent becomes available. Alternately, use
the Play Announcement task to play welcome music to a caller before the call connects to an
agent.
The following is the priority for the Play Announcement task:
1. If the handle is specified, the Play Announcement task uses the handle.
2. If the handle is null, but the participant is given, calling or called, the Play Announcement
task uses the participant.
3. If both the handle and participant are null, the Play Announcement task uses the callid so
that all participants on the call hear the announcement.
Use case 2 – Address an announcement to the specific caller
A customer can be addressed by name in an announcement. To do this:
1. Use a Read From DB task to fetch the caller’s name.
2. Map the output from the Read From Database task to the Play Announcement mediaURI.

December 2019 Avaya Engagement Designer Developer's Guide 137


Comments on this document? infodev@avaya.com
Tasks

3. Double click the link.


4. Use one of the following methods to construct the greeting by combining static text with the
Read From DB task output.
• Concat function

• Template, moustache notation

December 2019 Avaya Engagement Designer Developer's Guide 138


Comments on this document? infodev@avaya.com
Media Communication tasks

Recognize Speech
Task definition
The Recognize Speech task plays an announcement during a call and lets the user either press a
number or speak pre-defined phrases to make a selection in a simple menu-based application.
Recognize Speech is an asynchronous task.
Task properties
• Description – Text that describes what the user wants this appearance of the task to
accomplish in this WFD.
• Speech recognition options – A dynamic combination of words and numbers the task
recognizes. Click expand to add a combination to the list. Each combination contains the
following properties:
- DTMF Tone: A value between 0 to 9 that the caller or called party can press on the dial
pad to select a choice.
- Speech Key: A user-defined key that the task passes to the workflow to identify which
choice the caller or called party made.
- Phrases: The words, separated by commas, that the task recognizes as indicating this
choice. The task detects the choice when the caller or called party utters any of these
phrases.

December 2019 Avaya Engagement Designer Developer's Guide 139


Comments on this document? infodev@avaya.com
Tasks

Input schema
• ucid – Universal Call Identifier (mandatory). The Call ID of the call where the speech is being
recognized.
Output schema
choice – The choice selected by the caller or called party.
Prerequisites
• Avaya Aura® Media Server (MS) must be configured.
See the following related documents on the Avaya support site:
- Implementing and Administering Avaya Aura® Media Server
- Deploying and Updating Avaya Aura® Media Server Appliance
- The Avaya Aura® Media Server (MS) field descriptions in Administering Avaya Breeze®
platform.
• Any MRCP server, like the Nuance server, and the Real-Time Speech snap-in must be
installed and configured for Text-to-Speech (TTS) functionality.
See the following related documents on the Avaya support site:
- The MRCP configuration section of Implementing and Administering Avaya Aura® Media
Server
- Avaya Real-Time Speech Snap-in Reference
Use Case
Use the Recognize Speech task in a call flow to let a customer press a number or say a phrase to
make a selection in response to an announcement in a simple menu-based application. For
example, for a bank call center, the following DTMF tone and Phrase combinations could be used
to route a call to the correct department.
DTMF Key Key Identifier Phrases
1 Checking Check, checking, checks
2 Savings Savings, save, saving
3 Service Representative, service, customer service, agent

Schedule Scopia
Task description
The Schedule Scopia task schedules a Scopia conference with the specified parameters and
outputs the URL for the conference. The URL can then be sent to conference participants by email
or SMS.
Schedule Scopia is a synchronous task.
Task properties
• Subject (mandatory) – Subject of the conference.

December 2019 Avaya Engagement Designer Developer's Guide 140


Comments on this document? infodev@avaya.com
Media Communication tasks

• From – Start Calendar time for the conference. Select the date and time from the calendar
that appears when you place your cursor in the field.
• To – End Calendar time for the conference. Select the date and time from the calendar that
appears when you place your cursor in the field.
• Participant count – Participant resources to be reserved. More participants can join if
resources are available. Any number greater than 0, preferable greater than 3. Default is 2.
• Moderator Pin – Pin for moderator to use to join the conference. Any number greater than 0,
preferably 5 digits long with no repeating digits.
• Participant Pin – Pin for the participants to use to join the conference. Any number greater
than 0, preferably 5 digits long with no repeating digits.
• Cancel Scopia – Cancels a Scopia meeting.
If a start and end time are not entered, by default the conference will start at the time the WFD is
deployed, and it will last for one hour.
A Scopia meeting cannot exceed 30 days if a start and end time are entered.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
• subject (mandatory) – Subject of the conference.
• duration
- days – Duration of the conference in number of days.
- hours – Duration of the conference in hours.
- minutes – Duration of the conference in minutes.
• participantCount – Participant resources to be reserved. More participants can join if
resources are available. Any number greater than 0, preferable greater than 3. Default is 2.
• moderatorPin – Pin for moderator to use to join the conference. Any number greater than 0,
preferably 5 digits long with no repeating digits.
• participantPin – Pin for the participants to use to join the conference. Any number greater
than 0, preferably 5 digits long with no repeating digits.
• startTime
- year – The year the conference starts (for example, 2016)
- month – The month the conference starts (for example, 11)
- date – The day of the month the conference starts (for example, 17)
- hour – The hour the conference starts (for example, 15)
- minute – The minute the conference starts (for example, 45)
The examples above describe a conference scheduled to start at 3:45 p.m., November 17,
2016.

December 2019 Avaya Engagement Designer Developer's Guide 141


Comments on this document? infodev@avaya.com
Tasks

• conferenceId – The Scopia conference ID to cancel.


If a start and end time are not entered, by default the conference will start at the time the WFD is
deployed, and it will last for one hour.
Output schema
• ScopiaUrl – Url of the Scopia conference that is created by the task.
• conferenceId – Can be used to cancel Scopia conference.
Error handling
Not Applicable.
Prerequisites
The Scopia connector snap-in must be installed and configured with the Scopia server details.
Related Boundary Events
Not Applicable.
Use Case
Use the Schedule Scopia task to set up a video conference with a team. You can use this task to
schedule the conference at a specified time and send the scopia URL via email to team members.

Record Participant
Task description
The Record Participant task enables/starts recording for one participant in the call. It supports
recording only one participant in one call. The Record Participant task does not work at the call
alerting stage. For example, it cannot be place immediately after Allow Call, Forward Call, or other
call alerting task. For the Record Participant task to work properly, a Set Call Policy task is
required as the first task in the workflow. It must have the Media Policy set to
MEDIA_SERVER_INCLUDED.
Record Participant is a synchronous task. However, it functions as an asynchronous task if the
Wait until the recording is complete checkbox is selected.
Task properties
• File URI (mandatory) – The URI of the recorded WAV file (.wav). This is the location where
the recording will be written after the recording is completed. The URI scheme must be one
of the following http://, https://, cstore:// or file://. Do not specify the file name in the File URI
as it will be automatically generated by the task and appended to the File URI. Examples of
each URI scheme:
- Content Store: cstore://?ns=announcements&cg=greetings This URI scheme is
based on the Avaya Aura® Media Server content-id (It will be generated by the task and
inserted before the question mark), namespace (announcements) and content group
(greetings) parameters. This requires an administrator who logged into the Avaya Aura®
Media Server management web page to add the namespace and content group prior to a
record operation

December 2019 Avaya Engagement Designer Developer's Guide 142


Comments on this document? infodev@avaya.com
Media Communication tasks

- Http URI: http://www.mycompany.com/recordings/


- Https URI: https://www.mycompany.com/recordings/
The Public Key Infrastructure (PKI) trusted certificate of the HTTP server must be installed
on the media server.
- File URI: file://
The recording file is local to theAvaya Aura® Media Server in the folder /opt/avaya/app/
localmedia. The Avaya Aura® Media Server does not provide a web interface to access the
recording files. The recorded file is not replicated to other media servers in either a load-
balanced or clustered environment. Therefore, play back of the recording can fail in load-
balanced or clustered environments.
See Avaya Aura® Media Server documentation for details about content store administration,
or for details about supported wav file formats (for example 16–bit mono sampled at 8kHz)
and PKI rusted certificate.
• Recorded Party (mandatory) – The participant (Call Party) that will be recorded. Select
Calling, Called or Answering from the drop-down menu. The Answering party is available
only after the call is answered.
• Maximum Duration – The maximum recording duration in milliseconds. The default is
3600000ms if this value is not configured.
• Termination Key – The key available on the dial pad that the user can press to stop the
recording. Valid keys are 0 to 9, * and #.
• Recording File Name Pattern – The recording file name pattern. There are three options:
RecordedParty_CallId, CallPartyNumber_CallId and CallPartyNumber_Timestamp. For
example, Calling_00015000021486138813, 2300_00015000011486138602 and
2100_20170203145033. The Time Stamp is in the format of yyyyMMddHHmmss. The default
RecordedParty_CallId is used if none is selected.
• Retrieval URL – The URL from which the recorded WAV file can be retrieved. By default, the
Retrieval URL property is the same as File URI if not specified otherwise. When you
configure it, do not specify the recording file name in the URL. The task will append the file
name to the URL and generate the output for Output Mapping.
For example: http://www.mycompany.com/recordings/
• Wait until the recording is complete – Select if you want to proceed to the next task only after
the recording is completed. In some scenarios, the recording file does not need to be
processed by this workflow in real time, so the Record Participant task does not have to wait
until the actual recording is completely finished.
Input schema
• ucid – Universal Call Identifier.
• fileUri – The URI of the recorded WAV file (.wav). This is the location where the recording will
be written after the recording is completed.
• recordedParty –The participant (Call Party) that will be recorded.
• maxDuration – The maximum recording duration in milliseconds.
• terminationKey – The key available on the dial pad that the user can press to stop the
recording.

December 2019 Avaya Engagement Designer Developer's Guide 143


Comments on this document? infodev@avaya.com
Tasks

• retrievalUrl – The URL from which the recorded WAV file can be retrieved.
Output schema
• status – FAILED or SUCCESS.
• cause – FAILED, PARTICIPANT_DROPPED, STOPPED, TERMINATION_KEY_PRESSED.
• retrievalUrl – The URL from which the recorded WAV file can be retrieved.
Error handling
Errors can be handled by using Error Boundary Events.
Use Case
• Answer Machine
The workflow is kicked off by a CALL_INTERCEPT_TO_CALLED_PARTY event selected in
the Start Event. The Record Participant task is configured to record the Calling party and the
Wait until the recording is completed checkbox is selected.
After the recording ends, the Send Email task sends the retrieval URL of the recording WAV
file to the called person by email.

• Record Called Party and wait until the recording is completed


The workflow is kicked off by a CALL_INTERCEPT_TO_CALLED_PARTY event selected in
the Start Event. The Record Participant task is configured to record the Called party and the
Wait until the recording is completed checkbox is selected. A Message Boundary Event is
attached to the Record Participant task to catch the CALL_ENDED event.
After the call is answered, the Record Participant is executed to enable and start recording.
When the recording completes, the Send Email task sends the retrieval URL of the recording
WAV file to a person by email.
• Enable Recording Called Party
The workflow is kicked off by a CALL_INTERCEPT_TO_CALLED_PARTY event selected in
the Start Event. The Record Participant task is configured to record the Called party.
For an incoming call, the Record Participant is executed to enable recording and the Allow
Call task allows the call to go through. The workflow would be completed before the call is
answered and ended. The recording file will be available after the recording is ended.

December 2019 Avaya Engagement Designer Developer's Guide 144


Comments on this document? infodev@avaya.com
Transformation tasks

Transformation tasks

Assign
Task description
The Assign task adds a designated string and number to the workflow. Can be used to set global
variables for a flow. There are no inputs to the task.
Task properties
• Assign String – The string to add to the WFI.
• Assign Int – The number to add to the WFI.
Output schema
• outputString – The string added to the WFI.
• outputInt – The number added to the WFI.

Data Manipulation
Task description
The Data Manipulation task transforms or isolates data received from the Start schema or other
node in the workflow.
Use Output Mapping with the Data Manipulation task to take data from the Start event and save
that data to the Variables node for easy access throughout the workflow.
Data Manipulation is a synchronous task.
Task properties
None.

December 2019 Avaya Engagement Designer Developer's Guide 145


Comments on this document? infodev@avaya.com
Tasks

Use Case 1

In this basic example, the Data Manipulation task is used to simply transfer data from the Start
schema to the Variables node for use in the workflow.
• A variable was created in the Variables node. In this example, DataManipulationVariable. It
stores a number and a string.

• A schema for the Start event was created with two properties: N1 – a number, and S1 – a
string. In the Start event output mapping, this schema is mapped to the StartSchema.
• In the Output Mapping of the Data Manipulation task, S1 and N1 from the StartSchema are
mapped to the A String and B number of the DataManipulationVariable. At this point you
could also click the arrow between the linked values to use the Expression Editor to make
changes to the data that is passed.
• You can debug this workflow step by step to see how the data is passed. Use the Step next
icon in the debugging toolbar to step through each node.
- When debugging starts you enter values for the N1 and S1 schema properties.
- When the Start event has executed, the values you entered appear on the Debugger
Console in the DataManipulationSchema, but not in the DataManipulationVariable.
- When the Data Manipulation task has executed, the values appear in both the schema and
the variable. If you manipulated the data further with the Expression Editor, these changes
appear in the data in the DataManipulationVariable.
Each time the workflow executes, the Data Manipulation task passes the number and string from
the Start event to the Variables node.

December 2019 Avaya Engagement Designer Developer's Guide 146


Comments on this document? infodev@avaya.com
Transformation tasks

Use Case 2

In this example, the Data Manipulation task is used to increment the counter when an array of
email addresses is used to send emails. The following conditions have been set:
• A variable was created in the Variables node. In this example, MyVariableName.

• A schema for the Start event was created with two properties: n1 – a number, and s1 – a
string. In the Start event output mapping, this schema is mapped to the StartSchema.
• In the first Data Manipulation task, the number from the Start Schema is mapped to the
maximum number in the MyVariableName variable. This is the number of emails that will be
sent.
• In the second Data Manipulation task the counter numbers are linked with an expression that
increments the counter by 1 each time an email is sent so that a different email is selected
from the array.

December 2019 Avaya Engagement Designer Developer's Guide 147


Comments on this document? infodev@avaya.com
Tasks

Each time an email is sent, the Data Manipulation task increments the counter by one. When the
maximum number of emails has been sent, the workflow ends.

IFTTT Task

IFTTT
Task description
Insert the IFTTT task in a workflow to modify the behavior of the workflow based on variables
defined in rule sets on the rules tab in the Administration Console. On the rules tab, define a rule
set, or create a blank rule set by giving it a name in the IFTTT task. When you insert an IFTTT
task in a workflow, the task will determine the treatment for a call based on the variables defined in
the rule set you select in the task properties.
IFTTT is a synchronous task.
Task properties
• RuleSet (mandatory) – A list of rule sets created in the rules editor on the Administration
Console. Select the rule set that contains the variable you want to use to determine the
behavior of the workflow.
• New Rule Set – Creates a new rule set in the Administration Console when the workflow is
deployed. Enter the name for the rule set you want to create. You must later edit this rule set
on the Administration Console to add rules to it.

December 2019 Avaya Engagement Designer Developer's Guide 148


Comments on this document? infodev@avaya.com
VXML Tasks

Use Case
In this case, the IFTTT task is used to determine the treatment of a call based on two variables:
rating and treatment. The rating of the caller determines the treatment they receive. A rule set is
created for these two variables. Customers with a rating greater than 4 receive gold treatment.
Customers with a rating equal to or less than 4 receive silver treatment. These values can be
altered in the rule rather than requiring changes to the workflow.

This rule set treatment, defined above, is then used in a workflow to route calls by selecting it from
the RuleSet drop-down on the IFTTT properties window.

VXML Tasks

Interactive Voice
Task description
The Interactive Voice task represents one interaction between the user and the machine in the
Interactive Voice Response (IVR) scenario. It can either "Play Announcement" or "Play and
Collect" for the calling party only. For example, a customer calling the service hotline. It plays an
announcement only without waiting for user input when no Grammar is configured.
Interactive Voice is an asynchronous task.
Task properties
• Description – Text that describes what the workflow designer wants this appearance of the
task to accomplish in this WFD.
• Language – The language of the prompts and grammars. The language variable in the Input
Mapping will overwrite this static setting when mapped. Ensure that the language specified is
supported by the TTS server (Speech Recognizer and Speech Synthesizer) that is used in
your solution. The language name must be compliant with RFC3066, that is, in the format of
language-COUNTRY, for example, en-US or fr-CA.
• Interruptible – Determines whether the announcement/prompt is interrupted when user input
is detected. Interruptible works only when grammar is defined, i.e. expecting input from the
user.
• Timeout (secs) – The maximum time in seconds waiting for user input. The default value is 8
seconds.

December 2019 Avaya Engagement Designer Developer's Guide 149


Comments on this document? infodev@avaya.com
Tasks

• Prompts – Click Expand to show the table of prompts:


- Audio or TTS: Select the type of the prompts from the drop-down list, for example,
Prerecorded Audio, TTS and a few Say-As types.
- Phrase Or Media URI: The URI that identifies the audio resource or the text-to-speech
(TTS) string to be played to the user. You can also select one the of Say-As types to say
the TTS string in the proper way as per the type. For example, for the TTS string "12",
"Say-As digits" would say "one two", "Say-As number" would say "twelve". For the string
"true" and "false", "Say-As boolean" would say the affirmative or negative phrase
appropriate to the current language, for example, in English, yes or no. For details about
all Say-As types, refer to the VoiceXML standard, https://www.w3.org/TR/voicexml20/,
Appendix P, the Table of Builtin Types.
The phrase and the media URI may have some variables, which must be in curly brackets
{}. The variable name should contain only alphanumeric characters. For example, Media
URI: builtin://mas/cstore/media/{language}/Welcome?ns=workflow; TTS: Hello
{firstName1}; Say-As digits: {digits1}.
Legal value of the Media URI: When using the built-in media resources inAvaya Aura®
Media Server, the Media URI is builtin://mas/cstore/ContentGroup/{language}/Welcome?
ns=NameSpace, e.g. builtin://mas/cstore/media/{language}/Welcome?ns=workflow when
the NameSpace is "workflow", the ContentGroup is "media" and all supported languages
are under the "media" in separate groups, for example, en-US, or fr-CA. The "{language}"
in the URI represents the variable in the Input Mapping or the Language property setting. It
will be replaced with the real value at run time. You may also specify a static language, for
example, "en-US", in the URI if needed. The language name must be the one defined by
the standard RFC3066 .
The Phrase of TTS can contain the speech markup elements, for example "Take a deep
breath. <break time="3s"/>", "That is a <emphasis> big </emphasis> car!", etc..
- Language of TTS: To support multiple languages at run time, you must configure the TTS
"Phrase" in different languages and specify the corresponding language name here as per
RFC3066 in the format of language-COUNTRY, for example, en-US, or fr-CA. You must
configure this when TTS is selected from the Audio or TTS drop-down box. If the
language is not specified here, the TTS string will be considered as the language in the
input mapping (or the Language property if there is no mapping) at run time. When running
the WFD, all TTS prompts that match the language in the input mapping (or the Language
property if there is no mapping) at run time will be played. TTS prompts in other languages
will not be played.
Multiple prompts can be defined and they will be played in the same order as shown in the
table. The Retrieve button must be used to generate the new Input Schema after all Prompts
are configured.
• Builtin DTMF Grammars – Select and configure the built-in DTMF grammar for the expected
user input. Click Expand to show the table of built-in DTMF grammars:
- Builtin Type: Select one of the built-in data types from the drop-down list, i.e. boolean,
date, digits, currency, number, phone number and time. When the built-in type "digits" is
selected, define the "Exact Length of Digits", or the "Minimum Length of Digits" and/or the
"Maximum Length of Digits" as described below. When the built-in type "boolean" is
selected, define the "Digit for Boolean True" and "Digit for Boolean False" as described
below. For details about all built-in types, refer to the VoiceXML standard, https://
www.w3.org/TR/voicexml20/, Appendix P, the Table of Builtin Types.

December 2019 Avaya Engagement Designer Developer's Guide 150


Comments on this document? infodev@avaya.com
VXML Tasks

- Exact Length of Digits: The exact length of the expected digits. For example, set it to 4 if
the user is expected to input a 4-digit PIN.
- Minimum Length of Digits: The minimum length of the expected digits. For example, set it
to 4 if the user is expected to input a PIN with 4 or more digits.
- Maximum Length of Digits: The maximum length of the expected digits. For example, set it
to 10 if the user is expected to input a PIN with no more than 10 digits.
- Digit for Boolean True: Specify the digit that represents the boolean true. This must be
configured when the built-in type "boolean" is selected.
- Digit for Boolean False: Specify the digit that represents the boolean false. This must be
configured when the built-in type "boolean" is selected.
Normally it makes sense to define just one Built-in DTMF Grammar that matches the data
type of the expected input.
• Builtin Speech Grammars – Select and configure the built-in speech grammar for the
expected user input. Click Expand to show the table of built-in speech grammars:
- Builtin Type: Select one of the built-in data types from the drop-down list, i.e. boolean,
date, digits, currency, number, phone number and time. When the built-in type "digits" is
selected, define the "Exact Length of Digits", or the "Minimum Length of Digits" and/or the
"Maximum Length of Digits" as described below. For details about all built-in types, refer to
the VoiceXML standard, https://www.w3.org/TR/voicexml20/, Appendix P, the Table of
Builtin Types.
- Exact Length of Digits: The exact length of the expected digits. For example, set it to 4 if
the user is expected to input a 4-digit PIN.
- Minimum Length of Digits: The minimum length of the expected digits. For example, set it
to 4 if the user is expected to input a PIN with 4 or more digits.
- Maximum Length of Digits: The maximum length of the expected digits. For example, set it
to 10 if the user is expected to input a PIN with no more than 10 digits.
Normally it makes sense to define just one Built-in Speech Grammar that matches the data
type of the expected input.
• DTMF Grammars – Configure the custom DTMF grammar for the expected user input. Click
Expand to show the table of custom DTMF grammars:
- One-Of: Specify the DTMF key that the user may input via the key pad on the phone. All
the possible digits can be configured in one "One-Of" box, separated by commas, or
configured in a few "One-Of" boxes in multiple rows.
- Tag: Specify the tag of each possible digit configured in "One-Of". The Tag should contain
only alphanumeric characters without any special characters. The Tag(s) in each row must
match the digit(s) defined in the "One-Of" box in the same row. For example, the Tag for
digit "1" is "Sales", for digit "2" it is "Services", then you may have "1,2" in the "One-Of' box
and "Sales,Services" in the Tag box in the same row. When the input of the user is
captured, the corresponding Tag value will be in the "tagOfInput" in the Output Mapping.
• Speech Grammars – Configure the custom Speech grammar for the expected user input.
Click Expand to show the table of custom speech grammars:
- One-Of: Specify the words or phrases expected from the user. All the possible words
and/or phrases can be configured in one "One-Of" box, separated by commas, or
configured in a few "One-Of" boxes in multiple rows.

December 2019 Avaya Engagement Designer Developer's Guide 151


Comments on this document? infodev@avaya.com
Tasks

- Tag: Specify the tag of each possible word/phrase configured in "One-Of". The Tag should
contains letters and numbers only without any special characters. The Tag(s) in each row
must match the word(s)/phrase(s) defined in the "One-Of" box in the same row. For
example, the Tag for the phrase "sales department please" is "Sales", for "I want to check
my account balance" it is "Services", then in the row one you may have "sales department
please" in the "One-Of' box and "Sales" in the Tag box. In the row two, you may have "I
want to check my account balance" in the One-Of and "Services" in the Tag box. When the
input of the user is captured, the corresponding Tag value will be in the "tagOfInput" in the
Output Mapping.
- Language: Specify the language of the words/phases in the One-Of box in the same row if
it is not the same language defined in the Language property or the language in the input
mapping. The language name if specified here must be compliant with RFC3066, that is, in
the format of language-COUNTRY, for example, en-US, or fr-CA.
• Help Messages – Configure the help message(s) that will be played when the "help" event is
generated by the platform. Click Expand to show the table of help messages. This table
contains the exact same properties as those in the Prompts property, so refer to the Prompts
section for details.
• No Input Handlings – Configure the "noinput" event handlings. The "noinput" event is
generated by the platform when there is no input detected. Click Expand to show the table of
actions:
- Occurrence: Select the occurrence of the "noinput" event from the drop-down list: 1, 2 or
3.
- Action: Select the type of the actions from the drop-down list, for example, Prerecorded
Audio, TTS, a few Say-As types, Reprompt and Go to next task.
- Phrase Or Media URI: The URI that identifies the audio resource or the text-to-speech
(TTS) string to be played to the user. There is no need to configure this if "Reprompt" or
"Go to next task" is selected in the Action box. Refer to the Phrase Or Media URI
description in Prompts for details.
- Language of TTS: Refer to the Language of TTS description in Prompts for details.
• No Match Handlings – Configure the "nomatch" event handlings. The "nomatch" event is
generated by the platform when there is no input detected. Click Expand to show the table of
actions:
- Occurrence: Select the occurrence of the "nomatch" event from the drop-down list: 1, 2 or
3.
- Action: Select the type of the actions from the drop-down list, for example, Prerecorded
Audio, TTS, a few Say-As types, Reprompt and Go to next task.
- Phrase Or Media URI: The URI that identifies the audio resource or the text-to-speech
(TTS) string to be played to the user. There is no need to configure this if "Reprompt" or
"Go to next task" is selected in the Action box. Refer to the Phrase Or Media URI
description in Prompts for details.
- Language of TTS: Refer to the Language of TTS description in Prompts for details.
• Input schema – Click Retrieve to generate the input schema of the Interactive Voice task
based on the variables in the TTS phrases and Media URIs in Prompts, Help Messages, No
Input Handlings and No Match Handlings. Whenever there is a change in those fields, press

December 2019 Avaya Engagement Designer Developer's Guide 152


Comments on this document? infodev@avaya.com
VXML Tasks

the Retrieve button to generate the new Input Schema . Click the Show checkbox to view
the generated input schema. The input schema allows you to do input mapping.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed.
Input schema
The Input schema includes two default variables below, and may have user defined variable(s) as
well.
• ucid – Universal Call Identifier (mandatory). The Call ID of the call where the speech is being
recognized.
• language – Refer to the Language section above for details.
Output schema
• userInput – The input from the user.
• tagOfInput – The Tag value of the input.
Prerequisites
Avaya Aura® Media Server must be installed and configured.
Use Case
The following workflows illustrate the use of the Interactive Voice task, but are not executable.
In this example workflow, the customers can call a service number to check an account balance.

In this example workflow, a customer selects a preferred language as prompted and then hears
greetings in that language (all IVR menus will be in the preferred language after the selection is
made).

December 2019 Avaya Engagement Designer Developer's Guide 153


Comments on this document? infodev@avaya.com
Tasks

Use VXML
Task description
The Use VXML task accepts the VoiceXML doc via direct file content input through the Use
VoiceXML property, input mapping, or using the REST Service call.
Use VXML is an asynchronous task.
Task properties
Complete the VoiceXML property to enter the VoiceXML doc to be executed as part of this task, or
complete the properties required for the REST Service call.
• Description – Text that describes what the workflow designer wants this appearance of the
task to accomplish in this WFD.
• VoiceXML – VoiceXML doc to be executed as part of this task. Enter the Voice XML doc in
this property if the doc is not provided through mapping or a REST Service call.
• Rest URI (mandatory if using the REST Service call) – The URI of the web service that is
being invoked
The path variable or the request parameter is in the curly brackets {}. Its name should contain
only alphanumeric characters “-” and “_”. For example:
- http://host:port/your-rest-resources/{pathVar1}/{pathVar2}/...
- http://host:port/your-rest-resources?
param1={requestParam1}&param2={requestParam2}
- http://host:port/your-rest-resources/ (There is no variable/parameter in the
URL. There could be some in the payload.)
For a REST resource URI, for example, http://www.thomas-bayer.com/sqlrest/
CUSTOMER/1,http://www.thomas-bayer.com/sqlrest/CUSTOMER/2 or http://
www.thomas-bayer.com/sqlrest/CUSTOMER/3, replace the exact customer number 1,
2, or 3 with a run-time parameter. Then, fill in the Rest URI value with http://
www.thomas-bayer.com/sqlrest/CUSTOMER/{pathVar1}.
• Request method (mandatory if using the REST Service call) – How the request is sent.
Select the HTTP Request method from the drop-down menu

December 2019 Avaya Engagement Designer Developer's Guide 154


Comments on this document? infodev@avaya.com
VXML Tasks

• TLS version (mandatory if the REST resource URI uses HTTPS) – Select the TLS version
from the drop-down menu.
• HTTP authentication (mandatory if using the REST Service call) – If HTTP authentication is
required. Select the HTTP Authentication type from the drop-down menu.
• User Name – Required if HTTP authentication is used, optional if not.
• Password – Required if HTTP authentication is used, optional if not
• OAuth Client ID – Required if OAuth 2.0 is used and the OAuth Token is not provided.
• OAuth Client Secret – Required if OAuth 2.0 is used and the OAuth Token is not provided.
• OAuth URL – The URL for users to log in to retrieve the OAuth Token. Required if OAuth 2.0
is used and the OAuth Token is not provided.
• OAuth Token – Required if OAuth 2.0 is used. When the OAuth Token is not available, the
OAuth Client ID, OAuth Client Secret and OAuth URL must be provided so that the OAuth
Token can be retrieved.
• Customized headers (optional) – Customized Headers in the HTTP Request. The customized
headers can be added in this box, separated by commas. For example, x-transactionid,x-
session-id,x-stylecode. The parameter name of the header value is automatically created in
the name of the header and added into the Input Schema when the Retrieve button is
clicked. You can see them in the input mapping.
• Content type (mandatory if using the REST Service call) – The format of the data being sent
in the HTTP request. It should be empty if there is no data (payload) in the request.
• Payload (mandatory if using the REST Service call) – The data being sent to the website.
The parameter in payloads is in the curly bracket {}. Its name should contain only
alphanumeric characters. For example, {"email":"{payloadParam1}",
"user":"{payloadParam2}"}
• Input schema (mandatory) – Click Retrieve to generate the input schema of the VXML task
based on the input in the VoiceXML, Rest URI, Customized Headers and Payload fields.
Ensure that all those fields are configured properly first. The schema is based on the input
from these fields and is not based on anything retrieved remotely. Click the Show checkbox
to view the generated input schema. The input schema allows you to do input mapping.
• Configure Output schema (mandatory) – Click Show to open a text entry box. Enter the
Output Schema you want generated for this task.
• Output schema (mandatory) – Click Retrieve to generate the output schema of this VXML
task. Ensure that the Configure Output schema field is configured properly as needed first,
before you click the Retrieve button. Click the Show checkbox to view the generated output
schema. The output schema allows you to do output mapping.
All mandatory fields should either be mapped or entered in the Properties window for validation to
succeed. Values entered in the Properties take precedence.
Input schema
The Input schema includes three default variables below, and may have user defined variable(s)
as well
• ucid – Universal Call Identifier (mandatory). The Call ID of the call where the speech is being
recognized.

December 2019 Avaya Engagement Designer Developer's Guide 155


Comments on this document? infodev@avaya.com
Tasks

• oauthToken – Required if OAuth 2.0 is used.


• voiceXML – VoiceXML doc to be executed as part of the VXML task.
Error handling
Errors can be handled by using Error Boundary Events.
Prerequisites
Avaya Aura® Media Server must be installed and configured.
The REST service is external to Engagement Designer. The Use VXML task interacts with any
REST service to get data. The REST service must be available.
The Use VXML task uses the HTTP configured on Avaya Breeze® platform. The HTTP Proxy is
configured during deployment of Avaya Breeze® platform and is enabled or disabled on Avaya
Breeze® platform. For additional information, see Deploying Avaya Breeze® platform.
Use Case
Use this task when you have an VoiceXML doc (which defines the grammar and various kinds of
prompts) that you created or that was generated by any third party application. This task can
retrieve the VXML doc through a REST call as well. VoiceXML is designed for creating audio
dialogs that feature synthesized speech, digitized audio, recognition of spoken and DTMF key
input, recording of spoken input, telephony, and mixed initiative conversations. Its major goal is to
bring the advantages of Web-based development and content delivery to interactive voice
response applications. For example, in a stock trading application, the user can respond with a
short phrase such as "buy ericsson" that sets both the company and the trade (buy or sell). If the
user fails to respond adequately, then the application tries a simpler approach, prompting first for
the company and then for the trade.

Salesforce CRM Tasks

Create Account
Task description
The Create Account task creates a new Customer Account record in your Salesforce account. You
must enter all the login information required by your Salesforce Account, and any mandatory field
in the Input Schema.
The Create Account task is a synchronous task.
Task properties
None.

December 2019 Avaya Engagement Designer Developer's Guide 156


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

Input schema
• CustomerAccount – The customer account you want to create on Salesforce. The Name field
is mandatory.
- Name (mandatory) – Account Name.
- AccountNumber – Account Number.
- Website – Customer Web site.
- PhotoUrl – Customer Photo URL.
- Phone – Phone Number.
- Fax – Fax number.
- MasterRecordId - Master Record ID.
- Type - The type of this account, can be one value of "Prospect","Customer-
Direct","Customer-Channel","Channel-partner/reseller","Installation Partner", "Technology
Partner", "Other".
- BillingStreet – Billing Address / Street.
- BillingCity – Billing Address / City.
- BillingState – Billing Address / State or Province.
- BillingPostalCode – Billing Address /Postal Code or ZIP Code.
- BillingCountry – Billing Address / Country.
- BillingLatitude – Billing Address / Latitude.
- BillingLongitude – Billing Address / Longitude.
- BillingGeocodeAccuracy – if the Billing address Geocode Accuracy.
- ShippingStreet – Shipping Address / Street.
- ShippingCity – Shipping Address / City.
- ShippingState – Shipping Address / State or Province.
- ShippingPostalCode – Shipping Address / Postal Code or ZIP Code.
- ShippingCountry – Shipping Address / Country
- ShippingLatitude – Shipping Address / Latitude.
- ShippingLongitude – Shipping Address / Longitude
- ShippingGeocodeAccuracy – If the Shipping address Geocode Accuracy.
- Sic – The SIC code of Customer.
- SicDesc – The SIC description.
- Industry – Industry that Customer belongs to.
- AnnualRevenue – Annual Revenue.
- NumberOfEmployees – Number Of Employees.
- Ownership – Ownership of this customer, can be one of "Public", "Private", "Subsidiary",
"Other".

December 2019 Avaya Engagement Designer Developer's Guide 157


Comments on this document? infodev@avaya.com
Tasks

- TickerSymbol – Ticker Symbol.


- Description – The Description.
- Rating – The Rating.
- Site – Account Site.
Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
• NewAccountId - The newly created customer account id if Status is true, empty if Status is
false.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to create a new Customer Account record on Salesforce CRM.

Account Authentication
Task description
The Account Authentication task authenticates the Customer Account on Salesforce CRM by
provided authentication fields. You must enter all the login information required by your Salesforce
account, and any mandatory field in the Input Schema.
The Account Authentication task is a synchronous task.
Task properties
None.
Input schema
• CustomerAuthenticationField – The Id is mandatory. Provide data for at least one field in
addition to the Id field.
- Id (mandatory) – the Account Id that must be authenticated on Salesforce.
- AccountNumber – The Account Number.
- BillingZipCode – The Account Billing Address / Postal Code or ZIP Code.
- Phone – The customer phone number.

December 2019 Avaya Engagement Designer Developer's Guide 158


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

- Fax – The customer fax number.


- Website – The customer Website.
Output schema
• Status - The status of this task execution – true if authentication is successful, false if any
error occurred.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use the task to authenticate a Customer Account record on Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

Get Account
Task description
The Get Account task gets one Customer Account record from your Salesforce account according
to the query condition. You must enter all the login information required by your Salesforce
account, and any mandatory field in the Input Schema.
Get Account is a synchronous task.
Task properties
None.
Input schema
• AccountQueryParam – The query parameter to get an account from Salesforce. At least one
field must have a value. If the Id field is provided, other fields are ignored. Only the first
record is returned if the result has multiple records.
- Id – Account Id.
- Name – Account Name.
- Phone – Phone number
- Email – Email.

December 2019 Avaya Engagement Designer Developer's Guide 159


Comments on this document? infodev@avaya.com
Tasks

Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
• CustomerAccount – The newly created contact id if Status is true, empty if Status is false.
- Id – Account ID
- Name – Account Name.
- AccountNumber – Account Number.
- Website – Customer Web site.
- PhotoUrl – Customer Photo URL.
- Phone – Phone Number.
- Fax – Fax number.
- MasterRecordId - Master Record ID.
- Type - The type of this account, can be one value of "Prospect","Customer-
Direct","Customer-Channel","Channel-partner/reseller","Installation Partner", "Technology
Partner", "Other".
- ParentId – Parent Account Id.
- BillingStreet – Billing Address / Street.
- BillingCity – Billing Address / City.
- BillingState – Billing Address / State or Province.
- BillingPostalCode – Billing Address /Postal Code or ZIP Code.
- BillingCountry – Billing Address / Country.
- BillingLatitude – Billing Address / Latitude.
- BillingLongitude – Billing Address / Longitude.
- BillingGeocodeAccuracy – if the Billing address Geocode Accuracy.
- ShippingStreet – Shipping Address / Street.
- ShippingCity – Shipping Address / City.
- ShippingState – Shipping Address / State or Province.
- ShippingPostalCode – Shipping Address / Postal Code or ZIP Code.
- ShippingCountry – Shipping Address / Country
- ShippingLatitude – Shipping Address / Latitude.
- ShippingLongitude – Shipping Address / Longitude
- ShippingGeocodeAccuracy – If the Shipping address Geocode Accuracy.
- Sic – The SIC code of Customer.
- SicDesc – The SIC description.
- Industry – Industry that Customer belongs to.
- AnnualRevenue – Annual Revenue.

December 2019 Avaya Engagement Designer Developer's Guide 160


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

- NumberOfEmployees – Number Of Employees.


- Ownership – Ownership of this customer, can be one of "Public", "Private", "Subsidiary",
"Other".
- TickerSymbol – Ticker Symbol.
- Description – The Description.
- Rating – The Rating.
- Site – Account Site.
- OwnerId - The User ID who owns this account.
- CreatedDate - Created Date.
- CreatedById - The User Id who created this account.
- LastModifiedDate - Last Modified Date.
- LastModifiedById - The User Id who Last Modified this account.
- SystemModstamp - System Modified Stamp.
- LastActivityDate - Last Activity Date.
- LastViewedDate - Last Viewed Date.
- LastReferencedDate - Last Referenced Date.
- CleanStatus - The clean status of this account, can be one of the following: "Matched",
"Different", "Acknowledged", "NotFound", Inactive", "Pending", "SelectMatch", or
"Skipped".
- AccountSource - The Account Source, can be one of the following: "Web", "Phone
Inquiry", "Partner Referral", "Purchased List", or "Other".
- DunsNumber - D-U-N-S Number of this account.
- Tradestyle - The trade style of the customer.
- NaicsCode - NAICS Code.
- NaicsDesc - NAICS Description
- YearStarted - Year Started.
- DandbCompanyId - DANDB Company ID.
- CustomerPriority_c - CustomerPriority, can be one of the following "High", Low", or
"Medium".
- Active__c - Whether this account is active.
- NumberofLocations__c - Number of Locations.
- UpsellOpportunity__c - Upsell Opportunity, can be one of the following "Yes", "No", or
"Maybe".
- SLA__c - The SLA of customer, can be one of the following "Gold", "Silver", "Platium", or
"Bronze".
- SLASerialNumber__c - SLA Serial Number.
- SLAExpirationDate__c - SLA Expiration Date.

December 2019 Avaya Engagement Designer Developer's Guide 161


Comments on this document? infodev@avaya.com
Tasks

Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to get a Customer Account record from Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

Update Billing Address


Task description
The Update Billing Address task updates the billing address specified by the Customer Account Id
on your Salesforce account. You must enter all the login information required by your Salesforce
account, and any mandatory field in the Input Schema.
The Update Billing Address task is a synchronous task.
Task properties
None.
Input schema
• AccountId (mandatory) – The Id of the Account Record that will be updated.
• BillingAddress (mandatory) – The Billing Address record you want to update on Salesforce.
The empty fields will be ignored and unchanged on the Salesforce Account record. Only
those fields with input will be updated.
- BillingStreet – Billing Address / Street.
- BillingCity – Billing Address / City.
- BillingState – Billing Address / State or Province.
- BillingPostalCode – Billing Address /Postal Code or ZIP Code.
- BillingCountry – Billing Address / Country.
- BillingLatitude – Billing Address / Latitude.
- BillingLongitude – Billing Address / Longitude.
- BillingGeocodeAccuracy – if the Billing address Geocode Accuracy.

December 2019 Avaya Engagement Designer Developer's Guide 162


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to update a Customer Account billing address on Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

Update Account
Task description
The Update Account task updates a Customer Account record, specified by the Account Id, on
your Salesforce account.
Update Account is a synchronous task.
Task properties
None.
Input schema
• AccountId – The Id of the Account that will be updated.
• Account – The Account Record that will be updated on Salesforce. Empty fields will be
ignored and unchanged. Only those fields with input will be updated.
- Name – Account Name.
- AccountNumber – Account Number.
- Website – Customer Web site.
- PhotoUrl – Customer Photo URL.
- Phone – Phone Number.
- Fax – Fax number.
- MasterRecordId - Master Record ID.

December 2019 Avaya Engagement Designer Developer's Guide 163


Comments on this document? infodev@avaya.com
Tasks

- Type - The type of this account, can be one value of "Prospect","Customer-


Direct","Customer-Channel","Channel-partner/reseller","Installation Partner", "Technology
Partner", "Other".
- BillingStreet – Billing Address / Street.
- BillingCity – Billing Address / City.
- BillingState – Billing Address / State or Province.
- BillingPostalCode – Billing Address /Postal Code or ZIP Code.
- BillingCountry – Billing Address / Country.
- BillingLatitude – Billing Address / Latitude.
- BillingLongitude – Billing Address / Longitude.
- BillingGeocodeAccuracy – if the Billing address Geocode Accuracy.
- ShippingStreet – Shipping Address / Street.
- ShippingCity – Shipping Address / City.
- ShippingState – Shipping Address / State or Province.
- ShippingPostalCode – Shipping Address / Postal Code or ZIP Code.
- ShippingCountry – Shipping Address / Country
- ShippingLatitude – Shipping Address / Latitude.
- ShippingLongitude – Shipping Address / Longitude
- ShippingGeocodeAccuracy – If the Shipping address Geocode Accuracy.
- Sic – The SIC code of Customer.
- SicDesc – The SIC description.
- Industry – Industry that Customer belongs to.
- AnnualRevenue – Annual Revenue.
- NumberOfEmployees – Number Of Employees.
- Ownership – Ownership of this customer, can be one of "Public", "Private", "Subsidiary",
"Other".
- TickerSymbol – Ticker Symbol.
- Description – The Description.
- Rating – The Rating.
- Site – Account Site.
Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
Error handling
N/A

December 2019 Avaya Engagement Designer Developer's Guide 164


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to update the Customer Account record on Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

Create Contact
Task description
The Create Contact task creates a new Contact record on your Salesforce account. You must
enter all the login information required by your Salesforce account, and any mandatory fields in
the Input Schema.
Create Contact is a synchronous task.
Task properties
None.
Input schema
• Contact – The contact record you want to create on Salesforce. The FirstName and Phone
fields are mandatory.
- AccountId – The Customer Account Id on Salesforce that this contact belongs to.
- LastName (mandatory) – Last name of the contact person.
- FirstName – First name of the contact person.
- Salutation – Salutation of the contact person.
- Birthdate – Birth Month and Day, does not include the Year, for example 12/30.
- Description – Description of the contact person.
- PhotoUrl – The URL of the person's photo.
- Phone (mandatory) – Phone Number of the contact.
- Fax – Fax of the contact.
- MobilePhone – Mobile phone number of the contact.
- HomePhone – Home Phone of the contact.
- OtherPhone – Other Phone numbers of the contact.

December 2019 Avaya Engagement Designer Developer's Guide 165


Comments on this document? infodev@avaya.com
Tasks

- Email – Email of the contact.


- ReportsToId – The contact id that this person reports to.
- Title – Title of this contact.
- Department – Department this contact person belongs to.
- AssistantName - The name of this contact person’s assistant.
- AssistantPhone - The phone number of this contact person’s assistant.
- Level__c - Contact level, may be primary, secondary , tertiary or empty.
- Languages__c - Languages of this contact person.
- MailingStreet - Mailing Address / Street.
- MailingCity - Mailing Address / City.
- MailingState - Mailing Address / State or Province.
- MailingPostalCode - Mailing Address / Postal Code or ZIP Code.
- MailingCountry - Mailing Address / Country.
- MailingLatitude - Latitude of the Mailing Address.
- MailingLongitude - Longitude of the Mailing Address.
- MailingGeocodeAccuracy - Whether this Mailing address is Geocode Accuracy, true or
false.
- OtherStreet - Other Address / Street.
- OtherCity - Other Address / City.
- OtherState - Other Address / State or Province.
- OtherPostalCode - Other Address / Postal Code or ZIP Code.
- OtherCountry - Other Address / Country.
- OtherLatitude - Longitude of the other address.
- OtherLongitude - Longitude of the other address.
- OtherGeocodeAccuracy - Whether this other address is GeocodeAccuracy, true or false.
- LeadSource - Source of this contact, may take value of "Web", "Phone Inquiry", "Partner
Referral", "Purchased List", "Other", or empty.
Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
• NewContactId - The newly created contact id if Status is true, empty if Status is false.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.

December 2019 Avaya Engagement Designer Developer's Guide 166


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to create a new Contact record on Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

Get Contact
Task description
The Get Contact task gets a Contact record from your Salesforce account according to the query
condition. You must enter all the login information required by your Salesforce account, and any
mandatory field in the Input Schema.
Get Contact is a synchronous task.
Task properties
None.
Input schema
• ContactQueryParam – The query parameter to get a Contact record from Salesforce. At least
one field must have a value. If the Id field is provided, other fields are ignored. Only the first
record is returned if the result has multiple records.
- Id – Contact Id.
- Name – First Name.
- Phone – Last Name.
- Email – Email.
Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
• Contact – The contact record you want to retrieve on Salesforce.
- AccountId – The Customer Account Id on Salesforce that this contact belongs to.
- LastName – Last name of the contact person.
- FirstName (mandatory) – First name of the contact person.
- Salutation – Salutation of the contact person.
- Birthdate – Birth Month and Day, does not include the Year, for example 12/30.
- Description – Description of the contact person.
- PhotoUrl – The URL of the person's photo.
- Phone (mandatory) – Phone Number of the contact.

December 2019 Avaya Engagement Designer Developer's Guide 167


Comments on this document? infodev@avaya.com
Tasks

- Fax – Fax of the contact.


- MobilePhone – Mobile phone number of the contact.
- HomePhone – Home Phone of the contact.
- OtherPhone – Other Phone numbers of the contact.
- Email – Email of the contact.
- ReportsToId – The contact id that this person reports to.
- Title – Title of this contact.
- Department – Department this contact person belongs to.
- AssistantName - The name of this contact person’s assistant.
- AssistantPhone - The phone number of this contact person’s assistant.
- Level__c - Contact level, may be primary, secondary , tertiary or empty.
- Languages__c - Languages of this contact person.
- MailingStreet - Mailing Address / Street.
- MailingCity - Mailing Address / City.
- MailingState - Mailing Address / State or Province.
- MailingPostalCode - Mailing Address / Postal Code or ZIP Code.
- MailingCountry - Mailing Address / Country.
- MailingLatitude - Latitude of the Mailing Address.
- MailingLongitude - Longitude of the Mailing Address.
- MailingGeocodeAccuracy - Whether this Mailing address is Geocode Accuracy, true or
false.
- OtherStreet - Other Address / Street.
- OtherCity - Other Address / City.
- OtherState - Other Address / State or Province.
- OtherPostalCode - Other Address / Postal Code or ZIP Code.
- OtherCountry - Other Address / Country.
- OtherLatitude - Longitude of the other address.
- OtherLongitude - Longitude of the other address.
- OtherGeocodeAccuracy - Whether this other address is GeocodeAccuracy, true or false.
- LeadSource - Source of this contact, may take value of "Web", "Phone Inquiry", "Partner
Referral", "Purchased List", "Other", or empty.
- EmailBouncedReason - The reason this contact email was bounced.
- EmailBouncedDate - Date this contact email was bounced.
- EmailBounced - True if this contact email was bounced.
- OwnerId - Id who owns this contact.

December 2019 Avaya Engagement Designer Developer's Guide 168


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

- CreatedDate - Date the contact was created.


- CreatedById - the Id that created this contact.
- LastModifiedDate - Last Modified Date.
- LastModifiedById - Id that last modified this contact.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to get a Contact record from Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

Update Contact
Task description
The Update Contact task updates a Contact record specified by the contact Id on your Salesforce
account. You must enter all the login information required by your Salesforce account, and any
mandatory field in the Input Schema.
Update Contact is a synchronous task.
Task properties
None.
Input schema
• ContactId – The ID of the Contact that will be updated. This Contact record must exist on
Salesforce.
• Contact – The contact record you want to update on Salesforce. The Id field is mandatory.
- AccountId – The Customer Account Id on Salesforce that this contact belongs to.
- LastName – Last name of the contact person.
- FirstName (mandatory) – First name of the contact person.
- Salutation – Salutation of the contact person.
- Birthdate – Birth Month and Day, does not include the Year, for example 12/30.

December 2019 Avaya Engagement Designer Developer's Guide 169


Comments on this document? infodev@avaya.com
Tasks

- Description – Description of the contact person.


- PhotoUrl – The URL of the person's photo.
- Phone (mandatory) – Phone Number of the contact.
- Fax – Fax of the contact.
- MobilePhone – Mobile phone number of the contact.
- HomePhone – Home Phone of the contact.
- OtherPhone – Other Phone numbers of the contact.
- Email – Email of the contact.
- ReportsToId – The contact id that this person reports to.
- Title – Title of this contact.
- Department – Department this contact person belongs to.
- AssistantName - The name of this contact person’s assistant.
- AssistantPhone - The phone number of this contact person’s assistant.
- Level__c - Contact level, may be primary, secondary , tertiary or empty.
- Languages__c - Languages of this contact person.
- MailingStreet - Mailing Address / Street.
- MailingCity - Mailing Address / City.
- MailingState - Mailing Address / State or Province.
- MailingPostalCode - Mailing Address / Postal Code or ZIP Code.
- MailingCountry - Mailing Address / Country.
- MailingLatitude - Latitude of the Mailing Address.
- MailingLongitude - Longitude of the Mailing Address.
- MailingGeocodeAccuracy - Whether this Mailing address is Geocode Accuracy, true or
false.
- OtherStreet - Other Address / Street.
- OtherCity - Other Address / City.
- OtherState - Other Address / State or Province.
- OtherPostalCode - Other Address / Postal Code or ZIP Code.
- OtherCountry - Other Address / Country.
- OtherLatitude - Longitude of the other address.
- OtherLongitude - Longitude of the other address.
- OtherGeocodeAccuracy - Whether this other address is GeocodeAccuracy, true or false.
- LeadSource - Source of this contact, may take value of "Web", "Phone Inquiry", "Partner
Referral", "Purchased List", "Other", or empty.

December 2019 Avaya Engagement Designer Developer's Guide 170


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to update a Contact record on Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

Create Case
Task description
The Create Case task creates a new Customer Case record on your Salesforce account. You
must enter all the login information required by your Salesforce account, and any mandatory fields
in the Input Schema.
Create Case is a synchronous task.
Task properties
None.
Input schema
• Case – The Case Record you want to create on Salesforce. The ContactId and Subject fields
are mandatory.
- CaseNumber – The Case Number.
- ContactId (mandatory) – The Contact Id.
- AccountId –Customer Account Id on Salesforce.
- AssetId – Asset Id.
- ParentId - The Parent Id.
- SuppliedName - Supplied Name.
- SuppliedEmail - Supplied email.
- SuppliedPhone - Supplied Phone.

December 2019 Avaya Engagement Designer Developer's Guide 171


Comments on this document? infodev@avaya.com
Tasks

- SuppliedCompany - SuppliedCompany.
- Type - Case Type, can be "Mechanical", "Electrical", "Electronic", "Structural", or "Other".
- Status - Case Status, can be "New", "Working", "Escalated", or "Closed".
- Reason - Case Reason, can be "Installation", "EquipmentComplexity", "Performance",
"BreakDown", "EquipmentDesign", "FeedBack", or "Other".
- Origin - the origin of the case, can be "Phone", "Email", or "Web".
- Subject (mandatory) - The Subject of this case.
- Description - Case description.
- Priority - The Priority of the case, can be "High", "Medium", or "Low".
- Closed - If this case is closed.
- Escalated - If this case is escalated.
- EngineeringReqNumber__c - Engineering ReqNumber.
- SLAViolation__c - SLA Violation, Yes or No.
- Product__c - Product Name.
- PotentialLiability__c - Potential Liability, Yes or No.
Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
• NewCaseId – The newly create Customer Case Id if status is true, empty if status is false.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to create a new Customer Case record on Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

December 2019 Avaya Engagement Designer Developer's Guide 172


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

Retrieve Open Case


Task description
The Retrieve Open Case task retrieves the Open Case record from your Salesforce Account
according to the query condition. You must enter all the login information required by your
Salesforce account, and any mandatory fields in the Input Schema.
Retrieve Open Case is a synchronous task.
Task properties
None.
Input schema
• CaseQueryParam – The query condition to retrieve the open Case Record from Salesforce.
At least one filed must have a value. If the Id field is provided, other fields are ignored. Only
the first record is returned if the result has multiple records.
- Id – The Case Id.
- ContactId – The Contact Id.
- AccountId –Customer Account Id on Salesforce.
- CaseNumber – The Case Number.
- ContactPhone - The Contact Phone.
- ContactMobile - The Contact Mobile Phone.
- ContactEmail - The Contact Email.
- ContactFax - The Contact Fax.
Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
• Case – The Case Record on Salesforce.
- Id – Case Id.
- CaseNumber – The Case Number.
- ContactId (mandatory) – The Contact Id.
- AccountId –Customer Account Id on Salesforce.
- AssetId – Asset Id.
- ParentId - The Parent Id.
- SuppliedName - Supplied Name.
- SuppliedEmail - Supplied email.
- SuppliedPhone - Supplied Phone.
- SuppliedCompany - SuppliedCompany.
- Type - Case Type, can be "Mechanical", "Electrical", "Electronic", "Structural", or "Other".

December 2019 Avaya Engagement Designer Developer's Guide 173


Comments on this document? infodev@avaya.com
Tasks

- Status - Case Status, can be "New", "Working", "Escalated", or "Closed".


- Reason - Case Reason, can be "Installation", "EquipmentComplexity", "Performance",
"BreakDown", "EquipmentDesign", "FeedBack", or "Other".
- Origin - the origin of the case, can be "Phone", "Email", or "Web".
- Subject (mandatory) - The Subject of this case.
- Description - Case description.
- Priority - The Priority of the case, can be "High", "Medium", or "Low".
- Closed - If this case is closed.
- ClosedDate – Date case was closed.
- Escalated - If this case is escalated.
- OwnerId - Id of owner.
- CreatedDate - Created date.
- CreatedById -Tthe user Id that created this case.
- LastModifiedDate - Last Modified Date.
- LastModifiedById - The User Id that last modified this case.
- SystemModstamp - System Modified stamp.
- ContactPhone - Contact phone.
- ContactMobile - Contact mobile phone.
- ContactEmail - Contact email.
- ContactFax - Contact fax.
- EngineeringReqNumber__c - Engineering ReqNumber.
- SLAViolation__c - SLA Violation, Yes or No.
- Product__c - Product Name.
- PotentialLiability__c - Potential Liability, Yes or No.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to retrieve a Open Case record from Salesforce CRM.

December 2019 Avaya Engagement Designer Developer's Guide 174


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

Related links
Configuring Salesforce CRM login attributes on page 176

Update Case
Task description
The Update Case task updates the Customer Case record specified by the Case Id on your
Salesforce account. You must enter all the login information required by your Salesforce account,
and any mandatory fields in the Input Schema.
Update Case is a synchronous task.
Task properties
None.
Input schema
• CaseId – The ID of the Case that will be updated. The Case record must exist before
updating.
• Case – The Case Record you want to update on Salesforce. The Id field is mandatory.
- CaseNumber – The Case Number.
- ContactId – The Contact Id.
- AccountId –Customer Account Id on Salesforce.
- AssetId – Asset Id.
- ParentId - The Parent Id.
- SuppliedName - Supplied Name.
- SuppliedEmail - Supplied email.
- SuppliedPhone - Supplied Phone.
- SuppliedCompany - SuppliedCompany.
- Type - Case Type, can be "Mechanical", "Electrical", "Electronic", "Structural", or "Other".
- Status - Case Status, can be "New", "Working", "Escalated", or "Closed".
- Reason - Case Reason, can be "Installation", "EquipmentComplexity", "Performance",
"BreakDown", "EquipmentDesign", "FeedBack", or "Other".
- Origin - the origin of the case, can be "Phone", "Email", or "Web".
- Subject (mandatory) - The Subject of this case.
- Description - Case description.
- Priority - The Priority of the case, can be "High", "Medium", or "Low".
- Closed - If this case is closed.
- Escalated - If this case is escalated.
- EngineeringReqNumber__c - Engineering ReqNumber.

December 2019 Avaya Engagement Designer Developer's Guide 175


Comments on this document? infodev@avaya.com
Tasks

- SLAViolation__c - SLA Violation, Yes or No.


- Product__c - Product Name.
- PotentialLiability__c - Potential Liability, Yes or No.
Output schema
• Status - The status of this task execution – true if successful, false if any error occurred.
Error handling
N/A
Prerequisites
Avaya Breeze® platform must be configured to access external websites, and the DNS configured
to resolve the Salesforce FQDNs to IP addresses. For additional information, see Avaya
Engagement Designer Reference and Deploying Avaya Breeze® platform.
You must have a configured Salesforce account. For additional information, see https://
developer.salesforce.com/.
Configure Salesforce CRM login attributes on System Manager.
Use Case
Use this task to update a Customer Case record on Salesforce CRM.
Related links
Configuring Salesforce CRM login attributes on page 176

Configuring Salesforce CRM login attributes


Procedure
1. On System Manager, click Elements > Avaya Breeze® > Configuration > Attributes.
2. Select the Service Globals tab.
3. From the Service drop-down menu, select the EngagementDesigner snap-in.
4. Enter or modify attributes.
a. Click Override Default by the attribute you want to change.
b. Enter the new value in the Effective Value field.
You can restore the default by clearing the Override Default box.
Enter attributes for:
• Salesforce Login UserName – User Name used to log into the Salesforce Account.
• Salesforce Login User Password – User Password used to log into the Salesforce
Account.
• Salesforce Login User Password Security Token – User Password Security Token used
to log into the Salesforce Account.

December 2019 Avaya Engagement Designer Developer's Guide 176


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

• Salesforce Login ClientId – The ClientId (Consumer Key) for the Connected App on the
Salesforce account.
• Salesforce Login Client Secret – The Client Secret (Consumer Secret) for the
Connected App on the Salesforce account.
5. To save your changes, click Commit.

How to use CRM tasks in a workflow

This sample workflow:


1. Creates a Customer Account record.
2. Creates a Contact record and assigns the Customer Account Id to the contact.
3. Creates a Case record and assigns the Customer Account Id and Contact Id to the Case
record.
4. Retrieves the open Case.
Each step is contingent on the success of the previous step as a result of the conditions set on the
Exclusive Gateways.
The following graphics show the mapping required to pass information through the workflow.

December 2019 Avaya Engagement Designer Developer's Guide 177


Comments on this document? infodev@avaya.com
Tasks

Create Account Input Data Mapping

Create Account Output Data Mapping

December 2019 Avaya Engagement Designer Developer's Guide 178


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

Create Contact Input Data Mapping

Create Contact Output Data Mapping

December 2019 Avaya Engagement Designer Developer's Guide 179


Comments on this document? infodev@avaya.com
Tasks

Create Case Input Data Mapping

Create Case Output Data Mapping

December 2019 Avaya Engagement Designer Developer's Guide 180


Comments on this document? infodev@avaya.com
Salesforce CRM Tasks

Retrieve Open Case Input Data Mapping

Retrieve Open Case Output Data Mapping

December 2019 Avaya Engagement Designer Developer's Guide 181


Comments on this document? infodev@avaya.com
Tasks

Work Assignment tasks

Work Assignment tasks overview


Work Assignment tasks require that you have installed the Avaya Work Assignment Snap-in on
Avaya Breeze® platform. If the snap-in is not installed, the task will appear grayed out on the
canvas. You will still be able to configure the task, but an attempt to deploy the Workflow Definition
will result in an error.
For more information about Work Assignment see Avaya Work Assignment Snap-in Reference.

Input mapping for Work Assignment tasks


Input mapping values
WorkId is the unique identifier of the Work Assignment resource request.
WorkRequestID can be used to associate multiple resource requests in a single flow (each with
their own unique Work ID) with a single customer session (e.g. a phone call). If multiple requests
for resources are not used in the flow, then Work ID and Work Request ID should have the same
value.
MatchType is used for selecting the level of resource matching required for this task:
• Full – All resources must be available for a match or the task returns immediately as
unfulfilled. This is the default value.
• Partial – The request for resources is filled even if only some of the resources are available.
The request will succeed if at least one resource is available.
If MatchType is set in both the Properties window and by input mapping, the value in the task
Properties takes precedence.
Note:
MatchType is required only for Request Multiple and Request Group.
Strategy tells Work Assignment which Resource Selection Strategy to use when selecting
resources. It must correspond to a known value defined in Work Assignment. These values are
listed in the Strategy field in the task properties.
ServiceMap is a list of Services that the Work Assignment Engine uses to locate the best
resource(s). It is a JSON object that is typically created by an external application that
characterizes the incoming work, and will be used by the Work Assignment Engine to find the best
available resource that matches these services.
Service Map example
The following is a Service Map example:

December 2019 Avaya Engagement Designer Developer's Guide 182


Comments on this document? infodev@avaya.com
Work Assignment tasks

Consider the following when assigning a rank:


• If resources are available in more than one ranked service, the resources from the highest
ranked service are used.
• Multiple resources must be available for a rank to be applied. If there is only one resource or
no resources are available, then the normal Strategy applies.
• If rank is assigned for some services but not for others, the services without a rank default to
the lowest rank. If a ranked service is not available, Strategy is used to select among the
unranked services.
The minProficiency and maxProficiency fields are optional. These fields are used to request a
preferred proficiency range for resource matches.

December 2019 Avaya Engagement Designer Developer's Guide 183


Comments on this document? infodev@avaya.com
Tasks

Input mapping example

Child-level mapping
You can skip top-level mapping and instead map only child objects from the Service Map.
Validation checks for either a top-level mapping, or at least one child-level mapping. If either is
present, validation succeeds. However, validation is also checked at run time. So, even if input
mapping validation succeeds, you can potentially still get a run-time error back from Work
Assignment if invalid data is provided to the workflow at run-time. The following is an example of
child-level mapping:

December 2019 Avaya Engagement Designer Developer's Guide 184


Comments on this document? infodev@avaya.com
Work Assignment tasks

Output mapping for Work Assignment tasks


Output mapping values
The following values can be mapped. For synchronous tasks (everything except Request
Resource and Update Request Resource), view the values by clicking Output Mapping on the
task. For the asynchronous task, Request Resource, click Output Mapping on the
WORK_OFFER, WORK_QUEUED or WORK_ERROR Message Boundary Events.
• WorkId – If a Work Correlator has been used, or if no WorkId has been supplied as input,
WorkID holds the updated Work Id.
• ActionType – An enumerated value representing the status of the Work. It can be used for
error checking and verification in a subsequent conditional expression. Allowed values:
WORK_QUEUED, WORK_OFFER, WORK_ERROR, WORK_UNFULFILLED,
RESOURCE_WORK_OFFER.
• ResourceList – An array containing the routable address of one or more resources,
depending on the task. The Resource List can be stored in the Variables node and used as
input to another task, such as Send Email, Send Text Msg, or Schedule Scopia.

December 2019 Avaya Engagement Designer Developer's Guide 185


Comments on this document? infodev@avaya.com
Tasks

• ServiceResponseMap – A map of objects containing data sent back from Work Assignment.
For a WORK_QUEUED Message Boundary Event, the data contains a metrics object with
information about the staffed resource count, the expected wait time etc. For a
WORK_OFFER Message Boundary Event, the data contains a resourceList object with
information about the channel, the native resource id (for example, the agent id), etc. Only
the service or services that had matching resources are populated.
Output mapping example

Work Assignment Message Boundary Events


A Work Assignment Message Boundary Event can be placed on any task for which an
asynchronous response is expected.
Important:
Select Instance+Task in the Criterion field on the Message Boundary Event Properties
window. Use a meaningful Message Boundary Event name in the Label field. For example,
enter QUEUEDReceived for the Work Assignment WORK_QUEUED Event type.
See the Avaya Engagement Designer Developer’s Guide for additional information about using
Message Boundary Events.

WORK_ERROR Message Boundary Event


Place the WORK_ERROR Message Boundary Event on a Create Process task in the main flow. If
Work Assignment encounters any internal error, it attempts to notify the workflow via an ERROR

December 2019 Avaya Engagement Designer Developer's Guide 186


Comments on this document? infodev@avaya.com
Work Assignment tasks

event. This event terminates the sub-process, and suitable cleanup or defaulting action can be
taken.
Important:
Select Instance+Task in the Criterion field, and use a meaningful task name, for example,
ERRORReceived.

December 2019 Avaya Engagement Designer Developer's Guide 187


Comments on this document? infodev@avaya.com
Tasks

WORK_OFFER Message Boundary Event


Place the WORK_OFFER Message Boundary Event on a Create Process task in the main flow.
When a resource becomes available, Work Assignment sends a WORK_OFFER event to the
workflow. This event cancels any wait treatment by terminating the sub-process. The resource
contained in the OFFER can be used in follow-on tasks in the main process. For example, it can
be used as input to an Forward Call or Send Email task.
Important:
Select Instance+Task in the Criterion field, and use a meaningful task name, for example,
OFFERReceived.

Output mapping
For Voice Elite flows, click the Output Mapping button to map the NativeResourceId (the
Communication Manager agent id) and the SourceAddress (the Communication Manager VDN)
as shown. For everything else (Email, SMS etc.), map the ResourceList value (the email address
for example).

December 2019 Avaya Engagement Designer Developer's Guide 188


Comments on this document? infodev@avaya.com
Work Assignment tasks

WORK_QUEUED Message Boundary Event


Place the WORK_QUEUED Message Boundary Event on a Request Resource task in the sub
flow. If no matching resource is available, Work Assignment sends a WORK_QUEUED event to
the workflow. This event is an indicator that everything is healthy (Work Assignment, the network,
etc.). It is an indicator that the workflow should begin wait treatment, for example, for Voice, use a
Play Announcement task to play music.
Important:
Select Instance+Task in the Criterion field, and use a meaningful task name, for example,
QUEUEDReceived.

December 2019 Avaya Engagement Designer Developer's Guide 189


Comments on this document? infodev@avaya.com
Tasks

Work Assignment sample Workflow Definitions


In a Call Center environment Work Assignment requires two Workflow Definitions (WFDs) – the
primary flow and the subflow. The following are typical of WFDs used with Work Assignment.

December 2019 Avaya Engagement Designer Developer's Guide 190


Comments on this document? infodev@avaya.com
Work Assignment tasks

Flow

Subflow
The following subflow demonstrates:
• The use of the Update Resource Request task after the Request Resource task fails to
provide resources after a specified time. For example, the failure could happen because all
resources are busy, or there are no resources logged in.
• The use of the Error Boundary Event to pass information to the Log Message task for display.

December 2019 Avaya Engagement Designer Developer's Guide 191


Comments on this document? infodev@avaya.com
Tasks

Request Resource
Task definition
The Request Resource task requests that Work Assignment finds the best possible single
resource based on one or multiple sets of attributes and properties identified in the task. Request
Resource can also be used to request a Specified Resource (required or preferred) by providing a
Resource Map in the request. The Resource Map is provided through the input mapping.
Request Resource is an asynchronous task. It will wait or queue the request and unblock only
when it receives a response from Work Assignment as determined by an attached Message
Boundary Event. The WFD can proceed with wait treatment and updates while waiting for a
resource to become available.
For more information about Request Resource, see Avaya Work Assignment Snap-in Reference.

December 2019 Avaya Engagement Designer Developer's Guide 192


Comments on this document? infodev@avaya.com
Work Assignment tasks

Task properties
• WA Cluster (required) – The IP/FQDN address of the Work Assignment cluster. Addresses
must be configured on the Service Globals tab of the Avaya Breeze® platform Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.
• Strategy – (required) Sets the Work Assignment strategy used when searching for matches.
Strategy must be populated either in the task properties or in the input mapping. It cannot be
empty when the task executes. If populated in both the task and the input mapping, the task
value takes precedence. If the value is supplied via input mapping, it must match exactly the
available values in the task. For example, Most Idle or Least Occupied. Select from the
following values:
- Least Occupied – This value uses resource occupancy as its key metric. Occupancy is
calculated and updated at regular intervals and the resource with the lowest occupancy is
selected.
- Most Idle – Work Assignment checks when matching resources were last assigned work,
and selects the resource that has been not processing any work for the longest period of
time.
• Remove Attributes (optional) – Removes the specified attributes from the set of attributes
provided as input parameters to the task. For example, you could remove the Region to
expand the possible matches. This field takes either a single attribute, for example,
Region.South, or a comma-separated list, for example, Media.WebRTC,
Product.Jeans. If the specified attribute(s) does not already exist, this field has no effect.
After removing attributes, the service map must have at least one attribute. Remove
Attributes cannot be used to empty a service map of all its attributes.
• Add Attributes (optional) – Adds the specified attributes to the set of attributes provided as
input parameters to the task. For example, you could add the Expertise of the desired
resource. This field takes either a single attribute, for example, Region.South, or a comma-
separated list, for example, Media.WebRTC, Product.Jeans. The specified attribute(s)
should already be defined in Work Assignment, otherwise this field results in resources not
being matched. If the attributes are not already defined in Work Assignment, Work
Assignment sends a WORK_ERROR response.
• Work Correlator (optional) – Allows the use of multiple Request tasks within the same
workflow. The correlator is appended to the base work ID to distinguish between each
request. The value must be an integer between 0 and 9999.
Note:
Mandatory task properties are marked with an asterisk (*) on the task in Engagement
Designer.
Specified Resource Mapping
Specified Resource is implemented in Engagement Designer by providing a Resource Map as
well as a Service Map in the input schema for the Request Resource task. The distinction between
Required Resource, Preferred Resource, and Service Match depends on the contents of the
Resource Map and Service Map for a particular request:
• Only Resource Map is used (empty Service Map) – Request is for a Required Resource (only
the resource in the Resource Map can satisfy the request)

December 2019 Avaya Engagement Designer Developer's Guide 193


Comments on this document? infodev@avaya.com
Tasks

• Both Resource Map and Service Map are used – Request is for a Preferred Resource (the
resource in the Resource Map is preferred, but if not available then match against the
service)
• Only Service Map is used (empty Resource map) – Request is a regular Service Match
In a typical flow, both the Resource Map and Service Map are mapped to input from the event that
instantiates the flow, and the actual behavior depends on which of the ResourceMap/ServiceMap
fields are populated in the incoming event.
Related Boundary Events
Use the Request Resource task in conjunction with a Message Boundary Event, Error Boundary
Event, or Timeout Boundary Event.
If an error occurs in the task, task_status is set to false. The false status turns the task red in the
instance of the flow on the Engagement Designer admin page. Such error states can be picked up
in an Error Boundary Event or Global Error Boundary Event if in place.
Use Case
Use the Request Resource task to find an agent in a contact center.

Update Request Resource


Task definition
The Update Request Resource task modifies a resource request that is already waiting for a
resource. The request must be queued for the update to be processed. Three types of changes
can be made to the existing request:
• Change the priority of a service already requested.
• Add or remove a requested service from the previous request.
• Change the attributes of a service.
Updates can be made only to requests for a single resource. Updates to multiple or group
resource requests are not supported.
Update Request Resource is an asynchronous task.
Task properties
• WA Cluster (required) – The IP/FQDN address of the Work Assignment cluster. Addresses
must be configured on the Service Globals tab of the Avaya Breeze® platform Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.
• Remove Attributes (optional) – Removes the specified attributes from the set of attributes
provided as input parameters to the task. For example, you could remove the Region to
expand the possible matches. This field takes either a single attribute, for example,
Region.South, or a comma-separated list, for example, Media.WebRTC,
Product.Jeans. If the specified attribute(s) does not already exist, this field has no effect.
• Add Attributes (optional) – Adds the specified attributes to the set of attributes provided as
input parameters to the task. For example, you could add the Expertise of the desired
resource. This field takes either a single attribute, for example, Region.South, or a comma-

December 2019 Avaya Engagement Designer Developer's Guide 194


Comments on this document? infodev@avaya.com
Work Assignment tasks

separated list, for example, Media.WebRTC, Product.Jeans. The specified attribute(s)


should already be defined in Work Assignment, otherwise this field results in resources not
being matched.
• Work Correlator (optional) – Allows the use of multiple tasks within the same workflow. The
correlator is appended to the base work ID to distinguish between each request. The value
must be an integer between 0 and 9999.
Note:
Mandatory task properties are marked with an asterisk (*) on the task in Engagement
Designer.
Input mapping
When updating a work-item, the client must provide a key for the service to be updated.
• If the service for a given key (or index) has changed, the service is updated. Updating a
service is in effect de-queuing from the previous service and en-queuing to the new service.
• If the service for a given key (or index) is removed, it is considered a request to remove this
service from the work item.
Related Boundary Events
Use the Update Request Resource task in conjunction with a Message Boundary Event, Error
Boundary Event, or Timeout Boundary Event.
If an error occurs in the task, task_status is set to false. The false status turns the task red in the
instance of the flow on the Engagement Designer admin page. Such error states can be picked up
in an Error Boundary Event or Global Error Boundary Event if in place.
Use case
In a Contact Center, use the Update Request Resource task to widen the pool of resources being
searched if the preferred experts do not become available when needed. For example, the initial
Request Resource task could request an agent with an expertise in a particular geographical area.
If an agent with that expertise did not become available, use the Update Request Resource task to
broaden the geographical area.

Reject Resource
Task definition
The Reject Resource task notifies Work Assignment that a resource is rejected, for example
because the provided resource was not valid, or did not accept the work. Additionally, it can then
request a new resource based on one or multiple sets of attributes and properties identified in the
task. A Reject Resource request that includes a service map generates a new request, but a
Reject Resource request which has an empty service map cancels the work request. Reject
Resource pertains only to requests for a single resource. Multiple and group resource requests
are not supported.
Reject Resource is an asynchronous task.

December 2019 Avaya Engagement Designer Developer's Guide 195


Comments on this document? infodev@avaya.com
Tasks

Task properties
• WA Cluster (required) – The IP/FQDN address of the Work Assignment cluster. Addresses
must be configured on the Service Globals tab of the Avaya Breeze® platform Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.
• Reason – The reason the resource was rejected.
• Use Top Priority – The property can be set to True or False.
- True: Sets the priority to Null (0 from Work Assignment perspective). Can be used to send
the RONA calls with highest priority.
- False: Sets the priority from the input mapping.
• Remove Attributes (optional) – Removes the specified attributes from the set of attributes
provided as input parameters to the task. For example, you could remove the Region to
expand the possible matches. This field takes either a single attribute, for example,
Region.South, or a comma-separated list, for example, Media.WebRTC,
Product.Jeans. If the specified attribute(s) does not already exist, this field has no effect.
• Add Attributes (optional) – Adds the specified attributes to the set of attributes provided as
input parameters to the task. For example, you could add the Expertise of the desired
resource. This field takes either a single attribute, for example, Region.South, or a comma-
separated list, for example, Media.WebRTC, Product.Jeans. The specified attribute(s)
should already be defined in Work Assignment, otherwise this field results in resources not
being matched.
• Work Correlator (optional) – The correlator is appended to the base work ID to distinguish
between each resource request. The value must be an integer between 0 and 9999.
Note:
Mandatory task properties are marked with an asterisk (*) on the task in Engagement
Designer.
Related Boundary Events
Use the Reject Resource task in conjunction with a Message Boundary Event, Error Boundary
Event, or Timeout Boundary Event.
If an error occurs in the task, task_status is set to false. The false status turns the task red in the
instance of the flow on the Engagement Designer admin page. Such error states can be picked up
in an Error Boundary Event or Global Error Boundary Event if in place.
Use Case
Use the Reject Resource task if the resource does not accept the work or the resource is not valid
for some other reason.

Request Multiple Resources


Task description
The Request Multiple Resources task requests that Work Assignment finds multiple resources
based on a single set of attributes and properties identified in the task.

December 2019 Avaya Engagement Designer Developer's Guide 196


Comments on this document? infodev@avaya.com
Work Assignment tasks

Request Multiple Resources is a synchronous task.


Task properties
• WA Cluster (required) – The IP/FQDN address of the Work Assignment cluster. Addresses
must be configured on the Service Globals tab of the Avaya Breeze® platform Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.
• Strategy – (required) Sets the Work Assignment strategy used by this task when searching
for matches. Strategy must be populated either in the task properties or in the input mapping.
It cannot be empty when the task executes. If populated in both the task and the input
mapping, the task value takes precedence. If the value is supplied via input mapping, it must
match exactly the available values in the task. For example, Most Idle or Least Occupied.
Select from the following values:
- Least Occupied – This value uses resource occupancy as its key metric. Occupancy is
calculated and updated at regular intervals and the resource with the lowest occupancy is
selected.
- Most Idle – Work Assignment checks when matching resources were last assigned work,
and selects the resource that has been not processing any work for the longest period of
time.
• Match Type (optional) – Select the level of resource matching required for this task:
- Full – All resources must be available for a match or the task returns immediately as
unfulfilled. This is the default value.
- Partial – The request for resources is filled even if only some of the resources are
available. The request will succeed if at least one resource is available.
If the Match Type is set in both the Properties window and by input mapping, the value in the
task Properties takes precedence.
• Remove Attributes (optional) – Removes the specified attributes from the set of attributes
provided as input parameters to the task. For example, you could remove the Region to
expand the possible matches. This field takes either a single attribute, for example,
Region.South, or a comma-separated list, for example, Media.WebRTC,
Product.Jeans. If the specified attribute(s) does not already exist, this field has no effect.
• Add Attributes (optional) – Adds the specified attributes to the set of attributes provided as
input parameters to the task. For example, you could add the Expertise of the desired
resource. This field takes either a single attribute, for example, Region.South, or a comma-
separated list, for example, Media.WebRTC, Product.Jeans. The specified attribute(s)
should already be defined in Work Assignment, otherwise this field results in resources not
being matched.
• Work Correlator (optional) – Allows the use of multiple Request tasks within the same
workflow. The correlator is appended to the base work ID to distinguish between each
request. The value must be an integer between 0 and 9999.
Note:
Mandatory task properties are marked with an asterisk (*) on the task in Engagement
Designer.

December 2019 Avaya Engagement Designer Developer's Guide 197


Comments on this document? infodev@avaya.com
Tasks

Related Boundary Events


Use the Request Multiple Resources task in conjunction with a Message Boundary Event, Error
Boundary Event, or Timeout Boundary Event.
If an error occurs in the task, task_status is set to false. The false status turns the task red in the
instance of the flow on the Engagement Designer admin page. Such error states can be picked up
in an Error Boundary Event or Global Error Boundary Event if in place.
Use Case
Use the Request Multiple Resources task to find several users in the same department for a
Scopia conference.

Request Group of Resources


Task description
The Request Group of Resources task requests that Work Assignment finds multiple resources
based on multiple sets of attributes and properties identified in the task.
Request Group of Resources is a synchronous task.
Task properties
• WA Cluster (required) – The IP/FQDN address of the Work Assignment cluster. Addresses
must be configured on the Service Globals tab of the Avaya Breeze® platform Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.
• Strategy – (required) Sets the Work Assignment strategy used by this task when searching
for matches. Strategy must be populated either in the task properties or in the input mapping.
It cannot be empty when the task executes. If populated in both the task and the input
mapping, the task value takes precedence. If the value is supplied via input mapping, it must
match exactly the available values in the task. For example, Most Idle or Least Occupied.
Select from the following values:
- Least Occupied – This value uses resource occupancy as its key metric. Occupancy is
calculated and updated at regular intervals and the resource with the lowest occupancy is
selected.
- Most Idle – Work Assignment checks when matching resources were last assigned work,
and selects the resource that has been not processing any work for the longest period of
time.
• Match Type (optional) – Select the level of resource matching required for this task:
- Full – All resources must be available for a match or the task returns immediately as
unfulfilled. This is the default value.
- Partial – The request for resources is filled even if only some of the resources are
available. The request will succeed if at least one resource is available.
If the Match Type is set in both the Properties window and by input mapping, the value in the
task Properties takes precedence.
• Remove Attributes (optional) – Removes the specified attributes from the set of attributes
provided as input parameters to the task. For example, you could remove the Region to

December 2019 Avaya Engagement Designer Developer's Guide 198


Comments on this document? infodev@avaya.com
Work Assignment tasks

expand the possible matches. This field takes either a single attribute, for example,
Region.South, or a comma-separated list, for example, Media.WebRTC,
Product.Jeans. If the specified attribute(s) does not already exist, this field has no effect.
• Add Attributes (optional) – Adds the specified attributes to the set of attributes provided as
input parameters to the task. For example, you could add the Expertise of the desired
resource. This field takes either a single attribute, for example, Region.South, or a comma-
separated list, for example, Media.WebRTC, Product.Jeans. The specified attribute(s)
should already be defined in Work Assignment, otherwise this field results in resources not
being matched.
• Work Correlator (optional) – Allows the use of multiple Request tasks within the same
workflow. The correlator is appended to the base work ID to distinguish between each
request. The value must be an integer between 0 and 9999.
Note:
Mandatory task properties are marked with an asterisk (*) on the task in Engagement
Designer.
Related Boundary Events
Use the Request Group of Resources task in conjunction with a Message Boundary Event, Error
Boundary Event, or Timeout Boundary Event.
If an error occurs in the task, task_status is set to false. The false status turns the task red in the
instance of the flow on the Engagement Designer admin page. Such error states can be picked up
in an Error Boundary Event or Global Error Boundary Event if in place.
Use Case
Use the Request Group of Resources task to assemble a team of people with different skill sets.

Cancel Request
Task description
The Cancel Request task sends a request to cancel an in-progress resource request.
It can be used in conjunction with all of the “Request” tasks.
Task properties
• WA Cluster (required) – The IP/FQDN address of the Work Assignment cluster. Addresses
must be configured on the Service Globals tab of the Avaya Breeze® platform Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.
• Reason – The reason the request was canceled.
Note:
Mandatory task properties are marked with an asterisk (*) on the task in Engagement
Designer.

December 2019 Avaya Engagement Designer Developer's Guide 199


Comments on this document? infodev@avaya.com
Tasks

Related Boundary Events


Use the Cancel Request task in conjunction with a Message Boundary Event, Error Boundary
Event, or Timeout Boundary Event.
If an error occurs in the task, task_status is set to false. The false status turns the task red in the
instance of the flow on the Engagement Designer admin page. Such error states can be picked up
in an Error Boundary Event or Global Error Boundary Event if in place.

Service Metrics
Task definition
The Service Metrics task retrieves metrics associated with an attribute set per Service or per
Service per priority. This task can be used to find the Expected Wait Time for a particular set of
attributes, or to check the number of Resources Ready for that set.
Task properties
• WA Cluster (required) – The IP/FQDN address of the Work Assignment cluster. Addresses
must be configured on the Service Globals tab of the Avaya Breeze® platform Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.
• Remove Attributes (optional) – Removes the specified attributes from the set of attributes
provided as input parameters to the task. For example, you could remove the Region to
expand the possible matches. This field takes either a single attribute, for example,
Region.South, or a comma-separated list, for example, Media.WebRTC,
Product.Jeans. If the specified attribute(s) does not already exist, this field has no effect.
• Add Attributes (optional) – Adds the specified attributes to the set of attributes provided as
input parameters to the task. For example, you could add the Expertise of the desired
resource. This field takes either a single attribute, for example, Region.South, or a comma-
separated list, for example, Media.WebRTC, Product.Jeans. The specified attribute(s)
should already be defined in Work Assignment, otherwise this field results in resources not
being matched.
Note:
Mandatory task properties are marked with an asterisk (*) on the task in Engagement
Designer.
Related Boundary Events
Use the Service Metrics task in conjunction with a Message Boundary Event, Error Boundary
Event, or Timeout Boundary Event.
If an error occurs in the task, task_status is set to false. The false status turns the task red in the
instance of the flow on the Engagement Designer admin page. Such error states can be picked up
in an Error Boundary Event or Global Error Boundary Event if in place.

December 2019 Avaya Engagement Designer Developer's Guide 200


Comments on this document? infodev@avaya.com
Work Assignment tasks

Query Resource
Task description
The Query Resource task sends a query for one or more resources based on the particular set of
attributes identified in the task.
All resources are considered, whether available or not. The selected resources are not reserved or
offered. The task just returns a list of resources that match the requested attributes. Although all
resources are considered, only 50 resources can be returned by a query. Therefore only 50
resources are returned and ordered, based on the ordering selected.
Task properties
• WA Cluster (required) – The IP/FQDN address of the Work Assignment cluster. Addresses
must be configured on the Service Globals tab of the Avaya Breeze® platform Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.
• Ordering (required) – Specifies the ordering rule applied to matched resources. Ordering
must be populated either in the task properties or in the input mapping. It cannot be empty
when the task executes. If populated in both the task and the input mapping, the task value
takes precedence. If the value is supplied via the input mapping, it must match exactly the
available values in the task. Values:
- Proficiency – The most proficient resource or resources found for the given attribute set,
the one with the highest proficiency rating.
- Occupancy – The least occupied resource or resources for the given attributes set.
- Availability – The resource or resources that are currently available for the given attribute
set.
• Remove Attributes (optional) – Removes the specified attributes from the set of attributes
provided as input parameters to the task. For example, you could remove the Region to
expand the possible matches. This field takes either a single attribute, for example,
Region.South, or a comma-separated list, for example, Media.WebRTC,
Product.Jeans. If the specified attribute(s) does not already exist, this field has no effect.
• Add Attributes (optional) – Adds the specified attributes to the set of attributes provided as
input parameters to the task. For example, you could add the Expertise of the desired
resource. This field takes either a single attribute, for example, Region.South, or a comma-
separated list, for example, Media.WebRTC, Product.Jeans. The specified attribute(s)
should already be defined in Work Assignment, otherwise this field results in resources not
being matched.
Note:
Mandatory task properties are marked with an asterisk (*) on the task in Engagement
Designer.
Related Boundary Events
Use the Query Resources task in conjunction with a Message Boundary Event, Error Boundary
Event, or Timeout Boundary Event.

December 2019 Avaya Engagement Designer Developer's Guide 201


Comments on this document? infodev@avaya.com
Tasks

If an error occurs in the task, task_status is set to false. The false status turns the task red in the
instance of the flow on the Engagement Designer admin page. Such error states can be picked up
in an Error Boundary Event or Global Error Boundary Event if in place.
Use Case
Use the Query Resources task to compile a list of subject experts for an upcoming business trip.

Context Store task

Context Store task overview


The Context Store task is an interface to the Context Store itself. This task requires that you have
installed the Avaya Context Store Snap-in on Avaya Breeze® platform. If the snap-in is not
installed, the task will appear grayed out on the canvas. You will still be able to configure the task,
but an attempt to deploy the Workflow Definition will result in an error.
For more information about Context Store, see Avaya Context Store Snap-in Reference and
Avaya Context Store Snap-in Developer Guide.

Context Store
Task description
The Context Store task adds, updates, retrieves or deletes data from Context Store. It enables all
the operations that the Context Store exposes to be run from within a Workflow Definition.
Each context must have a unique contextId that is supplied when the context is created, or that is
assigned by the system. The data is stored in key/value pairs.
Sample context:
{"contextId":"XXYYZZ","persistToEDM":"true","persistTo":"CS_PROVISION","groupId":"dem
o","tenantId":"demo","data":
{"key1_name":"value1_data","key2_name":"value2_data","key3_name":"value3_data"}}
For sample data input and output for all CS Task operations, see Avaya Context Store Snap-in
Developer Guide.
Task properties
Mandatory task properties are marked with an asterisk, for example ‘Operation’ and ‘CS Cluster’
• Operation* – The Context Store Operation to perform on the data.
- Add Context – Adds a new context to the Context Store.
- Add Context without Context Id – Adds a new context with an auto generated ID to the
Context Store.

December 2019 Avaya Engagement Designer Developer's Guide 202


Comments on this document? infodev@avaya.com
Context Store task

- Get Alias Ids by Context Id – Retrieves the aliasId(s) of a context from the Context Store
using the contextId associated with the Context.
- Get Context – Retrieves a previously stored Context from the Context Store using the
contextId associated with the Context.
- Get Context by Alias Id – Retrieves a previously stored Context from the Context Store
using the aliasId associated with the Context.
- Get Context Id By Alias Id – Retrieves the contextId of a context from the Context Store
using the aliasId associated with the Context
- Get Context Ids for Group Id – Retrieves the Context IDs of all Contexts belonging to a
group from the Context Store.
- Get Context Ids with Metadata for Group Id – Retrieves the Context IDs of all Contexts
belonging to a group and their associated metadata from the Context Store.
- Get Context Audit Data – Retrieves the audit data of a Context from the Context Store
using the contextId associated with the Context.
- Get Context Audit Data by Alias Id – Retrieves the audit data of a Context from the
Context Store using the aliasId associated with the Context.
- Get Context Store Status – Retrieves the status of the Context Store datagrid. The
response contains status information such as Context Store cluster is UP or an
error response, There is an issue with the Context Store cluster.
- Get Key – Retrieves the data associated with a key from the Context Store using the
contextId associated with the Context.
- Get Key by Alias Id – Retrieves the data associated with a key from the Context Store
using the aliasId associated with the Context.
- Get Metadata – Retrieves the metadata of a context from the Context Store using the
contextId associated with the Context.
- Get Metadata By Alias Id – Retrieves the metadata of a context from the Context Store
using the aliasId associated with the Context
- Update Context – Updates a Context in the Context Store using the contextId associated
with the Context.
- Update Context by Alias Id – Updates a Context in the Context Store using the aliasId
associated with the Context.
- Update Key – Updates the value of a key associated with a Context in Context Store using
the contextId associated with the Context.
- Update Key by Alias Id – Updates the value of a key associated with a Context in Context
Store using the aliasId associated with the Context.
- Update Alias Ids by Context Id – Updates the Aliases associated with a Context in Context
Store using the contextId associated with the Context.
- Update Alias Ids by Alias Id – Updates the Aliases associated with a Context in Context
Store using the aliasId associated with the Context.
- Upsert context by Context Id: Creates or updates a context in Context Store using the
Context Id associated with the context

December 2019 Avaya Engagement Designer Developer's Guide 203


Comments on this document? infodev@avaya.com
Tasks

- Upsert context by Alias Id: Creates or updates a context in Context Store using the Alias Id
associated with the context
- Delete Context – Deletes a Context in Context Store using the contextId associated with
the Context.
- Delete Context by Alias Id – Deletes a Context in Context Store using the aliasId
associated with the Context.
- Delete Alias – Deletes the aliasId of a Context in Context Store.
- Delete Key – Deletes the key in a Context in Context Store using the contextId associated
with the Context.
- Delete Key by Alias Id – Deletes the key in a Context in Context Store using the aliasId
associated with the Context.
• CS Cluster*– The Host IP address of the Context Store cluster.
The IP address is obtained from the Engagement Designer attribute, Context Store
Cluster(s).
• Lease time – The amount of time in seconds the data is stored in Context Store before it is
deleted. The clock starts when the data is saved and the data is then deleted when the time
expires. If you leave the field blank, the default lease time on the server is used. Must be
whole numbers.
• Key name (Optional) – The name of the key belonging to a context. If a value is entered here,
it overrides the keyinput value in the input mapping. The Key Name applies only to key
operations: Get Key, Update Key and Delete Key. It is ignored for other operations. Context
data keys can be defined using any of the following ASCII characters. It can not contain
spaces.
- Uppercase and lowercase English letters (a–z, A–Z) (ASCII: 65–90, 97–122)
- Digits 0 to 9 (ASCII: 48–57)
- Characters * - _ ~ (ASCII: 42, 45, 95, 126). Provided that they are not the first or last
character.
- Character . (dot, period, full stop) (ASCII: 46) Provided that it is not the first or last
character, and that it does not appear two or more times consecutively.
• Rules Enabled (optional) – Select the check box to enable the Context Store Operation to
trigger another Engagement Designer workflow through ContextStoreRules. You can only
use this option with the following Context Store Operations:
- Add Context – Adds a new context to the Context Store.
- Add Context without Context Id – Adds a new context with an auto generated ID to the
Context Store.
- Update Context – Updates a Context in the Context Store using the contextId associated
with the Context.
- Update Context by Alias Id – Updates a Context in the Context Store using the aliasId
associated with the Context.
- Upsert context by Alias Id: Creates or updates a context in Context Store using the Alias Id
associated with the context.

December 2019 Avaya Engagement Designer Developer's Guide 204


Comments on this document? infodev@avaya.com
Context Store task

- Upsert context by Context Id: Creates or updates a context in Context Store using the
Context Id associated with the context.
Note:
For more information about ContextStoreRules, see Avaya Context Store Snap-in
Developer Guide.
• Generate Short ID (optional) – Select the check box to create a context with a short auto-
generated Context Id less than 12 characters. You can only use this option with the following
Context Store Operation:
- Add Context without contextId – Adds a new context with an auto generated ID to the
Context Store.
• Output schema – The Context Store task outputs a csObjectOutput Output parameter that
contains an object that is described by the output schema entered on the properties window.
In this way, a context retrieved from the Context Store can be passed in object format to
another task. The output schema entered must contain the three output properties:
csStatusOutput, csMessageOutput and csDataOutput. Click Set output schema to populate
a default schema with these values. If you are entering a custom output schema, it must also
contain the value: csObjectOutput.
Input and output parameters
Nodes pass data to the Context Store task by way of eight input parameters:
csIdInput, cdRoutingIdInput, csAliasIdInput, csTouchpointInput, csKeyInput, csDataInput,
csGroupIdInput, and csTopicInput.
• csIdInput will only ever contain a contextId or groupId.
• cdRoutingIdInput will only ever contain the routing Id for the context.
• csAliasIdInput will only ever contain the alias Ids for a context.
• csTouchpointInput will only ever contain a string to define a touchpoint.
• csKeyInput will only ever contain a key name.
Note:
csKeyInput is only used for operations ‘Get Key’, ‘Get Key by Alias Id’, ‘Update Key’ and
‘Update Key by Alias Id’.
• csDataInput can contain slightly different data depending on the operation required.
Note:
Add Context and Add Context without Context Id operations accept “groupId”, tenantId” & ”topic” JSO
‘csDataInput’. For example
{"contextId":"XXYYZZ","groupId":"optionalGId","tenantId":"optionalTId","top
{"key1Name":"value1","key2Name":"value2"}}.
• csGroupIdInput will contain an input field for users to add or modify a groupId after a context
is created.
Note:
csGroupIdInput is only used for Update Context and Update Context by Alias Id
operations. In order to include a value for “groupId” in ’Add Context’,‘Add Context without

December 2019 Avaya Engagement Designer Developer's Guide 205


Comments on this document? infodev@avaya.com
Tasks

Context Id’, ‘Upsert context by Context Id’ or ‘Upsert context by Alias Id’ operations
please see the example under the description of ‘csDataInput’ above.
• csTopicInput will only contain an input field for users to add or modify a topic after a context is
created.
Note:
csTopicInput is only used for Update Context and Update Context by Alias Id operations.
In order to include a value for “topic” in ’Add Context’ or ‘Add Context without Context Id’,
‘Upsert context by Context Id’ or ‘Upsert context by Alias Id’ operations please see the
example under the description of ‘csDataInput’ above.
With csGroupIdInput and csTopicInput, you can add or modify a ‘groupId’ or ‘topic’ after a context
is created. However, previous entries in a context’s audit trail data are not updated.
Not every operation requires that all eight input values contain data.
Table 1: Required input mapping for each operation

Operation csIdInpu csRoutin csAliasI csTouch csKeyIn csDataIn csGroupI csTopicIn


t gIdInput dInput pointInp put put dInput put
ut
Add Context No Optional Optional Optional No Yes No No
Add Context No Optional Optional Optional No Yes No No
without Context
Id
Get Alias Ids by Yes Optional No Optional No No No No
Context Id
Get Context Yes Optional No Optional No No No No
Get Context Ids Yes Optional No No No No No No
for Group Id
Get Context Ids Yes Optional No No No No No No
with Metadata for
Group Id
Get Context by No Optional Yes Optional No No No No
Alias Id
Get Context Id No Optional Yes Optional No No No No
By Alias Id
Get Context Yes Optional No No No No No No
Audit Data
Get Context No Optional Yes No No No No No
Audit Data By
Alias Id
Get Context No No No No No No No No
Store Status
Get Key Yes Optional No Optional Yes No No No
Table continues…

December 2019 Avaya Engagement Designer Developer's Guide 206


Comments on this document? infodev@avaya.com
Context Store task

Get Key by Alias No Optional Yes Optional Yes No No No


Id
Get Metadata Yes Optional No Optional No No No No
Get Metadata By No Optional Yes Optional No No No No
Alias Id
Update Context Yes Optional No Optional No Yes Optional Optional
Update Context No Optional Yes Optional No Yes Optional Optional
by Alias Id
Update Key Yes Optional No Optional Yes Yes No No
Update Key by No Optional Yes Optional Yes Yes No No
Alias Id
Update Alias Ids Yes Optional No Optional No Yes No No
by Context Id
Update Alias Ids No Optional Yes Optional No Yes No No
by Alias Id
Delete Context Yes Optional No No No No No No
Delete Context No Optional Yes No No No No No
by Alias Id
Delete Key Yes Optional No Optional Yes No No No
Delete Key by No Optional Yes Optional Yes No No No
Alias Id
Delete Alias No Optional Yes Optional No No No No
Upsert context by Yes Optional No Optional No Yes No No
Context Id
Upsert context by No Optional Yes Optional No Yes No No
Alias Id

Table 2: Output parameters returned for each operation

Note:

The task_error_code and task_error values are only output if an error is encountered in the task.

Operation csStatusO csMessag csDataOut csObjectO task_statu task_error task_error


utput eOutput put utput s _code
Add Context Yes Yes No No Yes Yes Yes
Add Context Yes Yes Yes No Yes Yes Yes
without
Context Id
Get Alias Ids Yes Yes Yes Yes Yes Yes Yes
by Context Id
Get Context Yes Yes Yes Yes Yes Yes Yes
Table continues…

December 2019 Avaya Engagement Designer Developer's Guide 207


Comments on this document? infodev@avaya.com
Tasks

Get Context Yes Yes Yes No Yes Yes Yes


Ids for Group
Id
Get Context Yes Yes Yes Yes Yes Yes Yes
by Alias Id
Get Context Yes Yes Yes No Yes Yes Yes
Id By Alias Id
Get Context Yes Yes Yes No Yes Yes Yes
Ids with
Metadata for
Group Id
Get Context Yes Yes Yes No Yes Yes Yes
Audit Data
Get Context Yes Yes Yes No Yes Yes Yes
Audit Data By
Alias Id
Get Context Yes Yes Yes No Yes Yes Yes
Store Status
Get Key Yes Yes Yes Yes Yes Yes Yes
Get Key by Yes Yes Yes Yes Yes Yes Yes
Alias Id
Get Metadata Yes Yes Yes Yes Yes Yes Yes
Get Metadata Yes Yes Yes Yes Yes Yes Yes
By Alias Id
Update Yes Yes No No Yes Yes Yes
Context
Update Yes Yes No No Yes Yes Yes
Context by
Alias Id
Update Key Yes Yes No No Yes Yes Yes
Update Key Yes Yes No No Yes Yes Yes
by Alias Id
Update Alias Yes Yes No No Yes Yes Yes
Ids by
Context Id
Update Alias Yes Yes No No Yes Yes Yes
Ids by Alias Id
Delete Yes Yes No No Yes Yes Yes
Context
Delete Yes Yes No No Yes Yes Yes
Context by
Alias Id
Table continues…

December 2019 Avaya Engagement Designer Developer's Guide 208


Comments on this document? infodev@avaya.com
Context Store task

Delete Key Yes Yes No No Yes Yes Yes


Delete Key by Yes Yes No No Yes Yes Yes
Alias Id
Delete Alias Yes Yes No No Yes Yes Yes
Upsert Yes Yes No No Yes Yes Yes
context by
Alias Id
Upsert Yes Yes No No Yes Yes Yes
context by
Context Id

Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Context Store results in an error. If an error occurs in the task, the
Engagement Designer engine checks for an associated Error Boundary Event. If it finds one, the
engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from the
Error Boundary Event. An Error Boundary Event can be associated with the task by dragging and
dropping the event directly on to the task or by dropping a global error handler task onto the flow.
The output of the task will display the status of the request and the associated error message.
If an error in the task is encountered, ‘task_status’ is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place. If an error in the task is encountered, ‘task_error’ outputs the error message and
‘task_error_code’ outputs the status of the request. Note that the ‘task_error’ outputs the same
information as ‘csMessageOutput’ and 'task_error_code' outputs the same information as
'csStatusOutput'.

Creating a Context Store Workflow Definition


The following procedure describes the steps to create a sample Context Store Workflow Definition
(WFD). This example creates a WFD that saves a context with a context ID to the context store.
For example, during a call the caller could enter data or select certain options that this WFD
saves. The saved information forms part of a context about this particular caller. This context could
be used by a Work Assignment task in matching the caller to an agent.
To download an example workflow, please go to the Downloads section of the relevant Avaya
Context Store Snap-in release at Avaya Context Store DevConnect
Procedure
1. Link a Start event, Context Store task, and End event on the canvas.

December 2019 Avaya Engagement Designer Developer's Guide 209


Comments on this document? infodev@avaya.com
Tasks

2. Configure the Variables


a. Double-click the Variables node.
b. Click Add new variable.
c. In the Name field, enter myVar.
d. In the Variable field, enter the following JSON schema:
{title: ContextStoreSchema,type: object, properties: {csIdInput: {type:
string}, csRoutingIdInput: {type: string}, csAliasIdInput: {type: string},
csTouchpointInput: {type: string}, csGroupIdInput: {type: string},
csTopicInput: {type: string}, csKeyInput: {type: string}, csDataInput:
{type: string},csStatusOutput: {type: string},csMessageOutput: {type:
string},csDataOutput: {type: string}}}

3. Configure the Start event.


a. Double-click the Start event.
b. Click Show by the Output Schema field.
c. In the Output Schema field, enter the following JSON schema:
{title: ContextStoreInputSchema,type: object, properties: { csIdInput:
{type: string}, csRoutingIdInput: {type: string}, csAliasIdInput: {type:
string}, csTouchpointInput: {type: string}, csGroupIdInput: {type: string},
csTopicInput: {type: string}, csKeyInput: {type: string}, csDataInput:
{type: string} }

d. In the Start properties window, click Output Mapping.


e. Map the Context Store Schema properties to the properties in the Variable.

December 2019 Avaya Engagement Designer Developer's Guide 210


Comments on this document? infodev@avaya.com
Context Store task

4. Configure the Context Store task.


a. Double-click the Context Store task.
b. In the Context Store properties window select the required operation.
c. Select the Context Store cluster in the CS Cluster field and enter the Lease time.
d. Click Set output schema to enter the default Context Store schema, or click Show
by the Output Schema field to enter a custom schema.
e. Click Input Mapping.
f. Map the Variables to the Context Store Start Input Schema.

g. Click Output Mapping.


h. Map the Context Store Output Schema to the Variables properties.

5. Configure the End event and save the WFD.


Related links
Defining a Start event on page 35
Mapping Start event output variables on page 37
Adding a task on page 37
Completing the Workflow Definition on page 39

Output mapping with csObjectOutput


The following describes how to create a WFD with the csObjectOutput Output parameter
populated. The property contains an object that is populated with data retrieved from the Context
Store in the format supplied by the user on the properties window of the Context Store task. The
object contains data only when a get operation is run. If the data returned from the Context Store
is not valid JSON, the object is not populated.

December 2019 Avaya Engagement Designer Developer's Guide 211


Comments on this document? infodev@avaya.com
Tasks

Output schema
The csObjectOutput Output parameter contains an object that is described by the output schema
you enter. In this way a context retrieved from the Context Store can be passed in object format to
another task. The existing output parameter csDataOutput is not effected by this change and will
work as before.
For more information about output schema and example workflow, see Avaya Context Store
Snap-in Developer Guide.
Default Output Schema
The original output schema must be input even when the csObjectOutput is not required. If you
want to have only the three original output properties populated, clear the Output schema field of
all text and press Set output schema. This action will populate the Output schema field with the
schema below. When you press Set output schema the three original output properties display
on the left side of the dialog: csStatusOutput, csMessageOutput and csDataOutput.
{ title: ContextStoreOutputSchema, type: object, properties: { csStatusOutput: { type:
string }, csMessageOutput: { type: string }, csDataOutput: { type: string } } }

User-specified Output Schema


The output schema you enter must contain the three original output properties, csStatusOutput,
csMessageOutput and csDataOutput, as well as the csObjectOutput if you are going to enter a
custom output schema.
{title: ContextStoreSchema,type: object, properties:
{
csIdInput: {type: string},
csRoutingIdInput: {type: string},
csAliasIdInput: {type: string},
csTouchpointInput: {type: string},
csKeyInput: {type: string},
csDataInput: {type: string},
csStatusOutput: {type: string},
csMessageOutput: {type: string},
csDataOutput: {type: string},
csObjectOutput: {<schema of the data been retrieved from Context Store>}
}
}

Incomplete data
If the data returned from the Context Store is missing some keys as specified in the output
schema, the csObjectOutput will be populated as much as possible. In the following examples, the
context has only one sub key "1" whereas the output schema entered has "1" to "6". In this case
the csObjectOutput property output will have a serviceMap key that has one sub key "1".
Context store in Context Store:
{"serviceMap":{"1":{"attributes": ["Media.WebRTC",
"Product.Jeans"],"priority":"1","resourceCount":"1" } }}

Output from the Context Store task with the following output schema:
{"csObjectOutput":{"serviceMap":{"1":{"resourceCount":"1","priority":"1","attributes":
["Media.WebRTC","Product.Jeans"]}}},"csStatusOutput":"OK","csDataOutput":"{\"serviceMap
\":{\"1\":{\"attributes\":[\"Media.WebRTC\",\"Product.Jeans\"],\"priority\":\"1\",
\"resourceCount\":\"1\"}}}","csMessageOutput":""}

December 2019 Avaya Engagement Designer Developer's Guide 212


Comments on this document? infodev@avaya.com
Context Store task

If the data returned from the Context Store has additional keys not specified in the output schema,
these keys are ignored and not available in the csObjectOutput property that is linked to the next
task in the flow.
Example
A context is already stored in the Context Store with the following format:
{"workflowversion":"123456","alias":"null","imessage":
{"csIdInput":"","csRoutingIdInput":"","csAliasIdInput":"","csTouchpointInput":"","csKeyI
nput":"","csDataInput":"{"contextId":"WATEST","groupId":"XYZ","tenantId":"XYZ","data":
{"serviceMap":{"1":{"attributes": ["Media.WebRTC",
"Product.Jeans"],"priority":"1","resourceCount":"1" } }}}"},"iprocess":"waOutputFormat",
"customer":"customer"}

Set the data variable to the following, along with any other properties needed for the flow.
{title: ContextStoreSchema,type: object, properties: {csIdInput: {type: string},
csRoutingIdInput: {type: string}, csAliasIdInput: {type: string}, csTouchpointInput:
{type: string}, csKeyInput: {type: string },csDataInput: {type: string},csStatusOutput:
{type: string},csMessageOutput: {type: string},csDataOutput: {type: string},
csObjectOutput: { type:object,properties:{serviceMap:{type:object,properties:{"1":
{type:object,properties:{attributes:{type:array,items:{type:string}},priority:
{type:number},resourceCount:{type:number}}},"2":{type:object,properties:{attributes:
{type:array,items:{type:string}},priority:{type:number},resourceCount:
{type:number}}},"3":{type:object,properties:{attributes:{type:array,items:
{type:string}},priority:{type:number},resourceCount:{type:number}}},"4":
{type:object,properties:{attributes:{type:array,items:{type:string}},priority:
{type:number},resourceCount:{type:number}}},"5":{type:object,properties:{attributes:
{type:array,items:{type:string}},priority:{type:number},resourceCount:
{type:number}}},"6":{type:object,properties:{attributes:{type:array,items:
{type:string}},priority:{type:number},resourceCount:{type:number}}}}}}} }}

The Start output schema can be set as before, the csObjectOutput property is not required to be
set.
In the Context Store task properties, in the Output schema field, the same schema can be used
as above, even though the three input properties are not needed for the output schema. Click Set
output schema to apply the schema and click Output Mapping to confirm that the schema
displays correctly. Link the csObjectOutput on the left side to the csObjectOutput property on the
right side as shown below.
{title: ContextStoreSchema,type: object, properties: {csIdInput: {type: string},
csRoutingIdInput: {type: string}, csAliasIdInput: {type: string}, csTouchpointInput:
{type: string}, csKeyInput: {type: string },csDataInput: {type: string},csStatusOutput:
{type: string},csMessageOutput: {type: string},csDataOutput: {type: string},
csObjectOutput: { type:object,properties:{serviceMap:{type:object,properties:{"1":
{type:object,properties:{attributes:{type:array,items:{type:string}},priority:
{type:number},resourceCount:{type:number}}},"2":{type:object,properties:{attributes:
{type:array,items:{type:string}},priority:{type:number},resourceCount:
{type:number}}},"3":{type:object,properties:{attributes:{type:array,items:
{type:string}},priority:{type:number},resourceCount:{type:number}}},"4":
{type:object,properties:{attributes:{type:array,items:{type:string}},priority:
{type:number},resourceCount:{type:number}}},"5":{type:object,properties:{attributes:
{type:array,items:{type:string}},priority:{type:number},resourceCount:
{type:number}}},"6":{type:object,properties:{attributes:{type:array,items:
{type:string}},priority:{type:number},resourceCount:{type:number}}}}}}} }}

Output mapping dialog of the Context Store task after the user has entered a custom output
schema.

December 2019 Avaya Engagement Designer Developer's Guide 213


Comments on this document? infodev@avaya.com
Tasks

In the task that requires the object stored in the csObjectOutput property, link the object in the
input schema dialog.

Real-Time Speech Search tasks

Real-time Speech Search tasks overview


Use Real-time Speech Search tasks to search the contents of conversations for key words or
phrases.
These tasks require that you have installed the Avaya Real-Time Speech Snap-in on Avaya
Breeze® platform. If the snap-in is not installed, the task will appear grayed out on the canvas. You
will still be able to configure the task, but an attempt to deploy the Workflow Definition will result in
an error.
For more information about real-time speech searching, including the creation of speech search
queries, see Avaya Real-Time Speech Snap-in Reference and the Avaya Real-Time Speech
Snap-in SDK.

December 2019 Avaya Engagement Designer Developer's Guide 214


Comments on this document? infodev@avaya.com
Real-Time Speech Search tasks

Use case
As a fun and trivial example, you can use these tasks to find references to football team names
and trigger the playback of corresponding audio emoticons into the call when these are
encountered.
Real-time Speech Search events
In addition to using the Real-time Speech Search task types to control speech searching, it is also
possible to capture SPEECH_SEARCH_MATCH events within a workflow and take appropriate
action based on the content of the match events. This is achieved using either the Receive task or
a Message Boundary Event (MBE), as you would for catching other events from within a workflow.
Unlike many other types of events though, it is possible to receive zero to many
SPEECH_SEARCH_MATCH events during the course of any given call. The following Message
Boundary Event properties, when used together, allow you to handle multiple
SPEECH_SEARCH_MATCH events as they arrive:
• Multiple – Instructs the Event Framework to keep the event subscription alive indefinitely,
rather than tearing it down as soon as the first event matching the specified criteria is
encountered.
• Interrupting – Controls whether or not the task onto which the Message Boundary Event is
attached should be interrupted when an event matching the specified criteria is received. In
effect, separate threads of execution are created to handle incoming events when this
property is set to false, allowing the main thread to continue in parallel.
If your speech search use case requires that you catch more than just the first match event
generated by the speech search engine, use the Message Boundary Event and set the Multiple
property to true and the Interrupting property to false. If you need to catch only a single match
event, you can use either the Receive task or the Message Boundary Event, depending on which
best suits your needs.
To catch multiple match events, it is also necessary for the task onto which you attach your
Message Boundary Event to remain active indefinitely. There are two ways to achieve this:
1. If you do not need to perform any other specific activities (aside from handling match
events) after starting the speech search, attach the Message Boundary Event to a Receive
task immediately following the Start Speech Search task and configure it to catch either a
Call:CALL_ENDED or SpeechSearch:SPEECH_SEARCH_STOPPED event. Either event
will guarantee that no further match events may be received. (An exception is for the
SPEECH_SEARCH_STOPPED event if you launched a speech search operation on both
call parties but have only stopped searching on one party. In such cases, match events
may still be generated for the other party and you would not catch these due to exiting the
Receive task).
2. If you need to perform other activities after starting the speech search, either:
a. Place all subsequent logic to be executed while listening for match events into a
separate workflow. Invoke it using a Subprocess task to which you can then attach the
Message Boundary Event, or
b. Use a Parallel Gateway to create two paths of execution – the first containing the
Message Boundary Event and Receive task described in item 1 above, and the
second containing your additional logic to be executed in parallel.
Speech search queries are defined as a tree of arbitrarily defined concepts and specific phrase
utterances, where the phrases are always found at the leaf nodes of the tree. Concepts may

December 2019 Avaya Engagement Designer Developer's Guide 215


Comments on this document? infodev@avaya.com
Tasks

contain both phrases and other lower-level concepts and have an operator that defines which
children must match for the concept itself to be considered matched. Possible operators are ‘All’,
‘Any’ and ‘At Least’.
Speech search match events can describe an individual phrase match, or a higher-level concept
match. Details of the phrases and concepts are contained within the conceptMatches array
element of the event schema. In the case of an individual phrase match, the array will contain just
one element representing the phrase matched, along with temporal and confidence level
information regarding that match. In the case of concept matches, the array will contain all of the
contributing phrases and lower level concepts as well as the concept itself, all with associated
temporal and confidence level details.
How you use the data within the conceptMatches array is entirely dependent upon your use case.
Snap-in deployment considerations
It is not mandatory for the Engagement Designer and Real-Time Speech snap-ins to be deployed
on the same Avaya Breeze® platform cluster to employ speech searching from within a workflow.
In the Speech Search tasks you can indicate, via a property on the tasks, the location of the Avaya
Breeze® platform cluster (via FQDN or IP address) where the Real-Time Speech snap-in is
deployed.
These properties can be left blank and will default to the same cluster on which the workflow itself
is executing.
When using non-empty values in these parameters, the Avaya Breeze® platform clusters hosting
the Engagement Designer and Real-Time Speech snap-ins must both be managed by the same
System Manager instance. Furthermore, you must ensure that the Avaya Breeze® platform cluster
identified by the FQDN or IP address is serving a suitable SSL certificate for that address to allow
the Start Speech Search to be able to successfully invoke the Real-Time Speech snap-in Start
Search REST API over a HTTPS connection.
Note:
When invoking a Real Time Speech Search task on a separate Avaya Breeze® platform
cluster, it is not possible to catch related SPEECH_SEARCH_MATCH events from within the
workflow, since the Avaya Breeze® platform event framework does not deliver events across
clusters. In such instances, it is assumed that some other snap-in or application will be
expecting the match events and taking appropriate actions.
Application Sequencing and Service Profiles considerations
If your Engagement Designer and Real-Time Speech snap-ins are installed on different Avaya
Breeze® platform clusters, ensure that both clusters are included in the Application Sequence on
Session Manager that you are using to trigger your speech search enabled workflows.
The Avaya Breeze® platform cluster hosting Real-Time Speech must be sequenced after the
cluster hosting Engagement Designer to ensure that the Real-Time Speech snap-in is aware the
call is answered and ready to be searched upon prior to the workflow actually issuing the speech
search start request. This is on account of multiple sequenced Avaya Breeze® platform instances
becoming aware of call answering in the reverse order from which they are sequenced.
While it is necessary to include the Real-Time Speech snap-in on a Service Profile for it to be
triggered for a given call, the same is not strictly true for workflows created in Engagement
Designer. For example, if your workflow Start Event is set to trigger off CALL_ANSWERED

December 2019 Avaya Engagement Designer Developer's Guide 216


Comments on this document? infodev@avaya.com
Real-Time Speech Search tasks

events, the workflow is launched for all answered calls whether Real-Time Speech is included in a
Service Profile or not.

Start Speech Search


Task description
The Start Speech Search task invokes the real-time speech search engine to search the contents
of conversations in real-time for key phrases spoken by one or both parties on a call.
The specific phrases and concepts to search for must be pre-defined as speech search queries
using the Real-Time Speech Snap-in (for example, by using the Query Management pages of the
Real-time Speech Snap-in SDK sample application, or via a custom application that uses the
Query Management REST API). Tag values (for example ‘insurance claim’ or ‘tech support’) can
be attached to speech search queries when created. It is this mechanism that is used by the Start
Speech Search task to locate queries to be invoked. Speech search queries also have a
language/locale value assigned to them, so the combination of language and tags defined on the
Start Speech Search task properties or inputs together identify the specific queries to use.
The Start Speech Search task completes immediately when the speech search start request has
been processed by the Real-Time Speech Snap-in. To catch match events subsequently
generated by the search engine, do not attach a Message Boundary Event to this task but rather
attach it to a subsequent task.
Only a single speech search can be in operation for a given party on the call at any point in time. If
you attempt to start multiple searches in parallel for the same party, all requests beyond the first
will fail.
The SpeechSearchId outputs from this task need to be saved to variables only if you subsequently
intend to use the Stop Speech Search Task, which is not mandatory. Otherwise, you can safely
ignore these output values and leave them unmapped.
Task properties
• Language – The language of the search queries used for the search.
• Call party type – Designates which side of the conversation to search (calling, called, mixed
or both).
The Call party type property governs which party or parties of the call are searched upon:
- Calling – indicates only the calling party is searched
- Called – indicates only the called party is searched
- Mixed – indicates the combined audio of both parties is to be searched using a single
search engine instance. This option has the advantage of allowing you to locate phrases
uttered by either party without engaging multiple search engine instances, thereby saving
on costly media server resources, but has the disadvantage of not being able to indicate
which party made any given utterance. The match results are also likely to be somewhat
poorer, given the somewhat degraded quality of mixed audio content fed into the speech
search engine.
- Both – indicates two searches should be launched – one for each party. This option has
the advantage of identifying which party uttered any given phrase and will yield the highest

December 2019 Avaya Engagement Designer Developer's Guide 217


Comments on this document? infodev@avaya.com
Tasks

quality search results, but is more costly in terms of media server resources on account of
engaging to separate search engine instances for the purpose.
• Tags – The query tags that identify the set of pre-defined search queries to submit to the
speech search engine. Query tags are attached to queries when they are created via the
Real-Time Speech Snap-in. Separate tags with commas.
The combination of Language and Tags values you enter should match at least one speech
search query defined in the Avaya Real-Time Speech Snap-in query database.
• Avaya Breeze Cluster IP/FQDN (optional) – The location of the Avaya Breeze® platform
cluster where the Avaya Real-Time Speech Snap-in is installed. If left blank, this value
defaults to the cluster where the workflow is executing.
Inputs
• ucid – identifier of the call on which to invoke speech search.
• languageId (optional.) – Language of search queries to use in speech search. Overrides
Language property value if both are supplied.
• tags (optional.) – Array of query tags that identify the set of pre-defined search queries to
submit to the speech search engine. Overrides Tags property value if both are supplied.
Outputs
• callingSpeechSearchId – Id value of in-progress speech search operation for calling party.
Only returned if Call Party Type is either ‘Calling’ or ‘Both’.
• calledSpeechSearchId – Id value of in-progress speech search operation for called party.
Only returned if Call Party Type is either ‘Called’ or ‘Both’.
• mixedSpeechSearchID – Id value of in-progress search operation for mixed audio content of
both parties. Only returned if Call Party Type is ‘Mixed’.

Stop Speech Search


Task description
The Stop Speech Search task stops an in-progress real-time speech search session. A speech
search stops automatically when a call ends. Consequently, this task is necessary only to stop the
search before a call ends. For example, if you are searching for a very specific phrase or concept
match and do not require further match results when this match is received, you could use the
Stop Speech Search task to free up what are expensive speech search engine resources in
advance of the call ending.
If you are running a speech search on both parties on the call, you must use this task twice to stop
searching both parties.
Stop Speech Search is a synchronous task.
Task properties
• Avaya Breeze Cluster IP/FQDN (optional) – The location of the Avaya Breeze® platform
cluster where the Avaya Real-Time Speech Snap-in is installed. If left blank, this value
defaults to the cluster where the workflow is executing.

December 2019 Avaya Engagement Designer Developer's Guide 218


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Inputs
• ucid – identifier of the call on which to stop an active speech search.
• speechSearchId – identifier of the active speech search operation to stop. This can be the
speech search ID for either the calling or called parties. Both values are returned in the
outputs of the Start Speech Search task (as applicable to the Call Party Type setting on that
task).
Outputs
The Stop Speech Search task produces no outputs.

Avaya Oceana Solution tasks

Send Offer
Task definition
The Send Offer task sends to Avaya Oceana® Solution the routing details of the destination that
has been offered by Work Assignment. The task allows Avaya Oceana® Solution to pass routing
details back to the provider to route the contact to a suitable destination, for example an agent,
vector, mailbox, or attendant.
Send Offer is a synchronous task.
Task properties
• Destination Only – When this property is set to true, it means that the destination being sent
to the provider does not have an associated agent included; it is simply a routable destination
that is not an Avaya Oceana® Solution agent.
Input schema
The Send Offer task shares an input mapping schema with the Send Queued and Send Error
tasks but adds the following parameters:
• CallbackIp – assign to this internal parameter the same value received in the initial Start
event.
• RouteRequestId – assign to this internal parameter the same value received in the initial
Start event.
• WorkRequestId – the ID of the work request.
• ContactId – the ID of the contact.
• SourceName – the provider name as defined in ACM. For example, ‘OCP Chat’ for chat or
‘CM3434’ for voice.
• ChannelType – the channel type of the contact.
• SourceAddress – the destination that the provider routes the contact to.

December 2019 Avaya Engagement Designer Developer's Guide 219


Comments on this document? infodev@avaya.com
Tasks

• NativeResourceId – the ID of the agent selected for routing. This parameter is optional if the
Destination Only property is set to true.
• ResourceAddress – the routable address of the agent selected for routing. This parameter is
optional if the Destination Only property is set to true.
• RoutingAddress – the route point associated with this Oceana contact.
• WorkFlowType – a tag you can use for multimedia contacts to instantiate different workflows
for different customer scenarios.
• ContextData – additional data that can be attached to a contact. For example, UUI data
attached to a voice contact.
• Priority (optional) – set this to true to treat this call as a high-priority call. For example, this
can mean using priority ringing for voice calls.
Values for these parameters are available in a WORK_OFFER response from Work Assignment.
The remaining values for the input mapping are available from the schema of the initial routing
event for the relevant channel (for example ROUTE_CONTACT_VOICE for voice calls) and can
be mapped directly from the start schema.

Error handling
If the task completes successfully, the flow will take the default path. Any internal problem or
failure in communicating with Avaya Oceana® Solution will result in an error. If an error occurs in
the task, the Engagement Designer engine checks for an associated Error Boundary Event. If it
finds one, the engine directs the flow to the Error Boundary Event and proceeds to the outgoing
path from the Error Boundary Event. An Error Boundary Event can be associated with the task by
dragging and dropping the event directly on to the task or by dropping a global error handler task
onto the flow.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states

December 2019 Avaya Engagement Designer Developer's Guide 220


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured.
Related Boundary Events
Error Boundary Event (see Error handling above).
Use case
Send details of a resource offered by Work Assignment back to Avaya Oceana® Solution so that
the contact can be routed to the resource.

Send Queued
Task definition
The Send Queued task informs Avaya Oceana® Solution that a queued response has been
received from Work Assignment. The provider can then take action on the queued response, for
example, playing music for voice calls.
Send Queued is a synchronous task.
Task properties
None.
Input schema
The Send Queued task shares an input mapping schema with the Send Offer and Send Error
tasks but adds the following parameters:
• CallbackIp – assign to this internal parameter the same value received in the initial Start
event.
• RouteRequestId – assign to this internal parameter the same value received in the initial
Start event.
• WorkRequestId – the ID of the work request.
• ContactId – the ID of the contact.
• SourceName – the provider name as defined in ACM. For example, ‘OCP Chat’ for chat or
‘CM3434’ for voice.
• ChannelType – the channel type of the contact.
• RoutingAddress – the route point associated with this Oceana contact.
• WorkFlowType – a tag you can use for multimedia contacts to instantiate different workflows
for different customer scenarios.
• SourceAddress – the destination that the provider routes the contact to.
• Metrics (optional) – this parameter allows basic data to be sent from the task back to the
provider, for example Expected Wait Time.

December 2019 Avaya Engagement Designer Developer's Guide 221


Comments on this document? infodev@avaya.com
Tasks

• Treatment (optional) – this parameter allows a treatment to be specified to the provider, that
is then given to the customer while the customer waits for an agent.
The values for the input mapping are available from the schema of the initial routing event for the
relevant channel (for example ROUTE_CONTACT_VOICE for voice calls) and can be mapped
directly from the start schema.
Error handling
If the task completes successfully, the flow will take the default path. Any internal problem or
failure in communicating with Avaya Oceana® Solution will result in an error. If an error occurs in
the task, the Engagement Designer engine checks for an associated Error Boundary Event. If it
finds one, the engine directs the flow to the Error Boundary Event and proceeds to the outgoing
path from the Error Boundary Event. An Error Boundary Event can be associated with the task by
dragging and dropping the event directly on to the task.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured.
Related Boundary Events
Error Boundary Event (see Error handling above).
Use case
Inform Avaya Oceana® Solution that a Queued response has been received from Work
Assignment so that the provider can take the necessary action (for example, play wait treatment
for voice calls).

Send Error
Task definition
The Send Error task informs Avaya Oceana® Solution that an error has been encountered in the
workflow.
Send Error is a synchronous task.
Task properties
None.
Input schema
The Send Error task shares an input mapping schema with the Send Offer and Send Queued
tasks but adds the following parameters:
• CallbackIp – assign to this internal parameter the same value received in the initial Start
event.
• RouteRequestId – assign to this internal parameter the same value received in the initial
Start event.

December 2019 Avaya Engagement Designer Developer's Guide 222


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

• WorkRequestId – the ID of the work request.


• ContactId – the ID of the contact.
• SourceName – the provider name as defined in ACM. For example, ‘OCP Chat’ for chat or
‘CM3434’ for voice.
• ChannelType – the channel type of the contact.
• RoutingAddress – the route point associated with this Oceana contact.
• WorkFlowType – a tag you can use for multimedia contacts to instantiate different workflows
for different customer scenarios.
• SourceAddress – the destination that the provider routes the contact to.
• NativeResourceId – the ID of the agent selected for routing. This parameter is optional if the
Destination Only property is set to true.
• ResourceAddress – the routable address of the agent selected for routing. This parameter is
optional if the Destination Only property is set to true.
• Reason – indicates the reason for the error or failure, that you can send back to the provider
for troubleshooting.
The values for the input mapping are available from the schema of the initial routing event for the
relevant channel (for example ROUTE_CONTACT_VOICE for voice calls) and can be mapped
directly from the start schema.
Error handling
If the task completes successfully, the flow will take the default path. Any internal problem or
failure in communicating with Avaya Oceana® Solution will result in an error. If an error occurs in
the task, the Engagement Designer engine checks for an associated Error Boundary Event. If it
finds one, the engine directs the flow to the Error Boundary Event and proceeds to the outgoing
path from the Error Boundary Event. An Error Boundary Event can be associated with the task by
dragging and dropping the event directly on to the task or by dropping a global error handler task
onto the flow.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured.
Related Boundary Events
Error Boundary Event (see Error handling above).
Use case
Inform Avaya Oceana® Solution that an error has been encountered in the workflow so that the
provider can take the necessary action (for example, route the contact to a default destination).

December 2019 Avaya Engagement Designer Developer's Guide 223


Comments on this document? infodev@avaya.com
Tasks

Request AutoChat
Task description
The Request AutoChat task is used to integrate the Avaya BotConnector Snap-in in Avaya
Oceana® Solution. The task requests the BotConnector Snap-in for the automated chat request for
either a specified time or specified number of chat interactions based on the properties identified
in the task.
Request AutoChat is a synchronous task.
Task properties
• ChatBot Cluster IP – The IP/FQDN address of the BotConnector Snap-in cluster. Addresses
must be configured on the Service Clusters tab of the Avaya Breeze™ Attributes
Configuration page for Engagement Designer. You can enter a comma-separated string of
BotConnector Snap-in cluster IP addresses. You can select from the drop-down in the task to
set the value.
• Site Id– The Site ID to be used when starting the BotConnector Snap-in session. Site ID must
be configured on the Service Clusters tab of the Avaya Breeze™ Attributes Configuration
page for Engagement Designer. You can enter a comma-separated string of BotConnector
Snap-in Site ID(s) in the format Site Id:Friendly Name. You can select from the drop-down in
the task to set the value
• Max. Interactions – The maximum number of BotConnector Snap-in interactions before the
chat is automatically escalated to a real agent. Ensure that you provide a numerical value.
Each message exchanged between the customer and the agent is considered as an
interaction.
• Max. Chat Time (Secs) – The maximum amount of time, in seconds, before the chat is
automatically escalated to a real agent.
Mandatory task properties are marked with an asterisk (*) on the task in Engagement Designer.
Input schema
The remaining values for input mapping are available from the schema of the initial routing event
for the relevant channel (for example ROUTE_CONTACT_CHAT for chat sessions) and can be
mapped directly from the start schema
Error handling
If the task completes successfully, the flow will take the default path. Any internal problem or
failure in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the
task, the Engagement Designer engine checks for an associated Error Boundary Event. If it finds
one, the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path
from the Error Boundary Event. An Error Boundary Event can be associated with the task by
dragging and dropping the event directly on to the task or by dropping a global error handler task
onto the flow.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.

December 2019 Avaya Engagement Designer Developer's Guide 224


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Prerequisites
Avaya Oceana® Solution, Avaya BotConnector Snap-in, and the Automated Chat Server must be
installed and configured to use this task in a workflow.
Related Boundary Events
Error Boundary Event (see Error handling above).
Flows should subscribe to the CONTACT_AUTOMATION_COMPLETE event to be notified when
the ChatBot session has finished.
Use Case
In a Contact Center system, use the Request Auto Chat task in your workflow to integrate Avaya
Automated Chat. The task can be used to send the incoming chat messages from the customer to
the BotConnector Snap-in to generate Automated Response without any intervention from the live
agent. Based on the properties set in the Task, the BotConnector Snap-in responds to the
incoming requests and escalates to the live agent.

Create Element
Task description
Customer Journey interactions are logged in Context Store Audit Trails, which are persisted to the
Context Store External Datamart (EDM). The Create Element task adds an entry to the Context
Store Audit Trail. These Audit Trails can be retrieved later as source data for the Customer
Journey visualization.
This task is designed specifically for operating on Oceana schema data and not for use with the
regular context data.
Create Element is a synchronous task.
Task properties
• CS Cluster (required) – The IP address of the Context Store cluster. Addresses must be
configured in the Engagement Designer attributes.
All mandatory fields should either be mapped using the Input Mapping window or entered in the
Properties window for validation to succeed. Mandatory task properties are marked with an
asterisk (*) on the task in Engagement Designer.
Input schema
• ContextId (required) – Each Context must have a unique case-sensitive immutable identifier
called the contextId. The contextId is either supplied by the user when the Context is created
or can be generated by Context Store on create if the contextId is not supplied.
• JourneyElement (required) – The Journey Element provided is written in the Context Store
Audit trail. The Audit Trail shows a history of when, and by which Journey Element, the
Context was created, modified or retrieved. Journey Element is an alpha/numeric ID.

December 2019 Avaya Engagement Designer Developer's Guide 225


Comments on this document? infodev@avaya.com
Tasks

Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status shows, for example ERROR.
• Message – Returns 200 OK if the request was successful. If the request was not successful,
the message shows an Error Message. For example: Error occurred processing response
code.

Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the task,
the Engagement Designer engine checks for an associated Error Boundary Event. If it finds one,
the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from
the Error Boundary Event. An Error Boundary Event can be associated with the task by dragging
and dropping the event directly on to the task or by dropping a global error handler task onto the
flow. The output of the task will display the status of the request and the associated error
message.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured to use this task in a workflow.
And External Datamart (EDM) must be configured to store the Audit Trail information if it is
required after the Context has expired.
Use Case
In a Contact Center system, use the Create Element task in your workflow to add a Customer
Journey Element to an Avaya Context Store Context.
Related links
Configuring the Context Store cluster on page 241

December 2019 Avaya Engagement Designer Developer's Guide 226


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Create Data
Task description
The Create Data task creates a Context in Context Store and adds Avaya Oceana® Solution
schema data.
This task is designed specifically for operating on Oceana schema data and not for use with the
regular context data.
Create Data is a synchronous task.
Task properties
• CS Cluster (required) – The IP address of the Context Store cluster. Addresses must be
configured in the Engagement Designer attributes.
• Lease Time – Specifies the maximum time (in seconds) that data is to be stored in the data
cache. The lease parameter is common to POST and PUT and specifies the duration the
client wishes the Context to exist in Context Store.
• Persist to EDM – Context Store supports the ability to persist add and update operations to
an external data base. If the EDM feature is configured and enabled at a cluster level, you
can specify that a Context will be persisted to the External Database. A Context can only be
marked for persistence when it is created so the value can only be specified on a create, i.e.
POST, operation. All updates on this marked Context are persisted. Valid inputs are true or
false. If no input is specified, the default value is false.
All mandatory fields should either be mapped using the Input Mapping window or entered in the
Properties window for validation to succeed. Mandatory task properties are marked with an
asterisk (*) on the task in Engagement Designer.
Input schema
• ContextId – Each Context must have a unique case-sensitive immutable identifier called the
contextId. The contextId is either supplied by the user when the Context is created or can be
generated by Context Store on create if the contextId is not supplied.
• GroupId – A client has the option to associate several Contexts together using the
customerId. If a customer id is specified in this input and in the schema input, the customer id
input will take preference and will be stored in the context.
• Topic – An identifier that you can use to correlate intent across multiple channels. For
example, a customer enquiry about an insurance claim can traverse across multiple media
channels. You can use Topic to unify those interactions in the customer journey.
• Data (required) – The Context information to add. The input for this field should be in JSON
string format.
Example data JSON string:
{"key1_name": "value1_data","key2_name": "value2_data","key3_name": "value3_data"}

• JourneyElement – The Journey Element provided is written in the Context Store Audit trail.
The Audit Trail shows a history of when, and by which Journey Element, the Context was
created, modified or retrieved. Journey Element is an alpha/numeric ID.
• Schema – The Oceana schema information to add to the Context.

December 2019 Avaya Engagement Designer Developer's Guide 227


Comments on this document? infodev@avaya.com
Tasks

Resource map, Service Map and Transfer Service Map have six objects each. Only one of each is
shown here as an example.

December 2019 Avaya Engagement Designer Developer's Guide 228


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

December 2019 Avaya Engagement Designer Developer's Guide 229


Comments on this document? infodev@avaya.com
Tasks

Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status shows, for example ERROR.
• Message – Returns 200 OK if the request was successful. If the request was not successful,
the message shows an Error Message. For example: Error occurred processing response
code.
• GeneratedContextid – A generated context id returns if no context id was provided as an
input, and if the request is successful.

Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the task,
the Engagement Designer engine checks for an associated Error Boundary Event. If it finds one,
the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from
the Error Boundary Event. An Error Boundary Event can be associated with the task by dragging
and dropping the event directly on to the task or by dropping a global error handler task onto the
flow. The output of the task will display the status of the request and the associated error
message.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured to use this task in a workflow.
Use Case
In a Contact Center system, use the Create Data task to add a Context with Schema data to the
Avaya Context Store.
Related links
Configuring the Context Store cluster on page 241

Get Context
Task description
The Get Context task returns all Avaya Oceana® Solution Schema data and all Context data.

December 2019 Avaya Engagement Designer Developer's Guide 230


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

This task is designed specifically for operating on Oceana schema data and not for use with the
regular context data.
Get Context is a synchronous task.
Task properties
• CS Cluster (required) – The IP address of the Context Store cluster. Addresses must be
configured in the Engagement Designer attributes.
• CS Data Output (optional) – select the Show check box to enter the output schema for
Context Store data in JSON format. Context Store data is separate to the Avaya Oceana®
Solution Schema data. See the following example of CS Data Output in JSON format:
{ "value1": { "type": "string" }, "value2": { "type": "string" },
"value3": { "type": "object", "properties": { "value31": { "type":
"string" }, "value32": { "type": "string" }, "value33": { "type":
"string" } } } }
• OutputSchema (required) – The format that the retrieved Context data will take, the output of
the task.
Click the Retrieve button. This populates the Output schema box with the Output Mapping
for this task. This information is read-only. You can then click Output Mapping to view the
task outputs.
Mandatory task properties are marked with an asterisk (*) on the task in Engagement Designer.
Input schema
• ContextId (required) – Each Context must have a unique case-sensitive immutable identifier
called the contextId. The contextId is either supplied by the user when the Context is created
or can be generated by Context Store on create if the contextId is not supplied.
• JourneyElement – The Journey Element provided is written in the Context Store Audit trail.
The Audit Trail shows a history of when, and by which Journey Element, the Context was
created, modified or retrieved. Journey Element is an alpha/numeric ID.

Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status shows, for example ERROR.
• Message – Returns 200 OK if the request was successful. If the request was not successful,
the message shows an Error Message. For example: Error occurred processing response
code.
• Schema – Returns the requested schema object, if it is available.
• Data – Returns the requested Context Store data, if it is available.
The Resource Map, Service Map and Transfer Service Map objects are repeated six times.

December 2019 Avaya Engagement Designer Developer's Guide 231


Comments on this document? infodev@avaya.com
Tasks

December 2019 Avaya Engagement Designer Developer's Guide 232


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Note:
This Data object is an example of Data output, which is determined by the Data Output
specified by the user. From Release 3.6, ‘AccountId’ is available in the Schema output. To
view this output in existing flows, in the task properties click Retrieve > Output Mapping.
Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the task,
the Engagement Designer engine checks for an associated Error Boundary Event. If it finds one,
the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from
the Error Boundary Event. An Error Boundary Event can be associated with the task by dragging
and dropping the event directly on to the task or by dropping a global error handler task onto the
flow. The output of the task will display the status of the request and the associated error
message.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured to use this task in a workflow.
Use Case
In a Contact Center system, use the Get Context task to retrieve the Context and Oceana schema
data.
Related links
Configuring the Context Store cluster on page 241

Get Customer Id
Task description
The Get Customer Id task retrieves the unique customer ID from the Customer Table in the
Multimedia Database. The channel the contact has been received from is passed as a parameter
(for example, phone number, email address).
Get Customer Id is a synchronous task.
Task properties
• Cluster IP (required) – The IP address of the Customer Management cluster. This address
must be configured in the Engagement Designer attribute Customer Management
Cluster(s). See Configuring the Customer Management Cluster on page 242.
Mandatory task properties are marked with an asterisk (*) on the task in Engagement Designer.
Input schema
• Email – Search for Id of a customer using an email address.
• Phone – Search for Id of a customer using a phone number.

December 2019 Avaya Engagement Designer Developer's Guide 233


Comments on this document? infodev@avaya.com
Tasks

• Handle – Search for Id of a customer using a social media handle.


• Platform – Search for Id of a customer using a social media platform.
Note:
Both the Handle and Platform input parameters are required to retrieve the Customer Id
by social.
• ExternalId – Can be used to link an Oceana Customer record to an external system. For
example, a CRM application.
• AccountId – Search for Id of a customer using an account ID.
• AccountType – The type of account that this account Id represents.
• Note:
Both the AccountId and AccountType input parameters are required to retrieve the
Customer Id by account.

Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status shows, for example ERROR.
• Message – Returns 200 OK if the request was successful. If the request was not successful,
the message shows an Error Message. For example: Error occurred processing response
code.
• CustomerId – Returns the requested Customer Id.

Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the task,
the Engagement Designer engine checks for an associated Error Boundary Event. If it finds one,

December 2019 Avaya Engagement Designer Developer's Guide 234


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from
the Error Boundary Event. An Error Boundary Event can be associated with the task by dragging
and dropping the event directly on to the task or by dropping a global error handler task onto the
flow. The output of the task will display the status of the request and the associated error
message.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured to use this task in a workflow.
Use Case
In a Contact Center system, use the Get Customer Id task to retrieve the Customer Id.

Get Services
Task description
The Get Services task returns the Service-Map, the Transfer-Service Map, or the
PreferredResourceMap JSON required for Work Assignment requests.
This task is designed specifically for operating on Oceana schema data and not for use with the
regular context data.
Get Services is a synchronous task.
Task properties
• CS Cluster (required) – The IP address of the Context Store cluster. Addresses must be
configured in the Engagement Designer attributes.
• Select Output Type (required) – The type of output that will be returned. Select an option from
the drop-down menu.
Mandatory task properties are marked with an asterisk (*) on the task in Engagement Designer.
Input schema
• ContextId (required) – Each Context must have a unique case-sensitive immutable identifier
called the contextId. The contextId is either supplied by the user when the Context is created
or can be generated by Context Store on create if the contextId is not supplied.
• JourneyElement – The Journey Element provided is written in the Context Store Audit trail.
The Audit Trail shows a history of when, and by which Journey Element, the Context was
created, modified or retrieved. Journey Element is an alpha/numeric ID.

December 2019 Avaya Engagement Designer Developer's Guide 235


Comments on this document? infodev@avaya.com
Tasks

Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status shows, for example ERROR.
• Message – Returns 200 OK if the request was successful. If the request was not successful,
the message shows an Error Message. For example: Error occurred processing response
code.
• ResourceMap – Returns the ResourceMap if the Selected Output Type is Get
PreferredResourceMap.
• ServiceMap – Returns the ServiceMap if the Selected Output Type is Get ServiceMap.
• TransferServiceMap – Returns the TransferServiceMap if the Selected Output Type is Get
TransferServiceMap.
Resource map, Service Map and Transfer Service Map have six objects each. Only one of each is
shown here as an example.

December 2019 Avaya Engagement Designer Developer's Guide 236


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the task,
the Engagement Designer engine checks for an associated Error Boundary Event. If it finds one,
the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from
the Error Boundary Event. An Error Boundary Event can be associated with the task by dragging
and dropping the event directly on to the task or by dropping a global error handler task onto the
flow. The output of the task will display the status of the request and the associated error
message.

December 2019 Avaya Engagement Designer Developer's Guide 237


Comments on this document? infodev@avaya.com
Tasks

If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured to use this task in a workflow.
Use Case
In a Contact Center system, use the Get Services task to retrieve the ServiceMap,
TransferServiceMap or PreferredResourceMap (a combination of the ServiceMap and the
ResourceMap).
Related links
Configuring the Context Store cluster on page 241

Update Context
Task description
The Update Context task updates a Context in Context Store and adds the Avaya Oceana®
Solution schema data. You can update Context Store data only, Schema data only, or both
Context Store and Schema data. You can update either individual or multiple top-level Schema
keys, for example, AgentId. You can also update individual or multiple ResourceMap/ServiceMap/
TransferService Map objects. Updating ResourceMap/ServiceMap/TransferService Map objects
overwrites existing ResourceMap/ServiceMap/TransferService Map objects.
This task is designed specifically for operating on Oceana schema data and not for use with the
regular context data.
Update Context is a synchronous task.
Task properties
• CS Cluster (required) – The IP address of the Context Store cluster. Addresses must be
configured in the Engagement Designer attributes.
Mandatory task properties are marked with an asterisk (*) on the task in Engagement Designer.
Input schema
• ContextId (required) – Each Context must have a unique case-sensitive immutable identifier
called the contextId. The contextId is either supplied by the user when the Context is created
or can be generated by Context Store on create if the contextId is not supplied.
• GroupId – A client has the option to associate several Contexts together using the
customerId.
• Topic – An identifier that you can use to correlate intent across multiple channels. For
example, a customer enquiry about an insurance claim can traverse across multiple media
channels. You can use Topic to unify those interactions in the customer journey.
• Data – The Context information to add. The input for this field should be in JSON string
format.

December 2019 Avaya Engagement Designer Developer's Guide 238


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Example data JSON string:


{"key1_name": "value1_data","key2_name": "value2_data","key3_name": "value3_data"}

• Lease – Specifies the maximum time (in seconds) that data is to be stored in the data cache.
The lease parameter is common to POST and PUT and specifies the duration the client
wishes the Context to exist in Context Store.
• JourneyElement – The Journey Element provided is written in the Context Store Audit trail.
The Audit Trail shows a history of when, and by which Journey Element, the Context was
created, modified or retrieved. Journey Element is an alpha/numeric ID.
• Schema – The Oceana schema information to add to the Context.
Resource map, Service Map and Transfer Service Map have six objects each. Only one of each is
shown here as an example.

December 2019 Avaya Engagement Designer Developer's Guide 239


Comments on this document? infodev@avaya.com
Tasks

December 2019 Avaya Engagement Designer Developer's Guide 240


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status shows, for example ERROR.
• Message – Returns 200 OK if the request was successful. If the request was not successful,
the message shows an Error Message. For example: Error occurred processing response
code.

Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the task,
the Engagement Designer engine checks for an associated Error Boundary Event. If it finds one,
the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from
the Error Boundary Event. An Error Boundary Event can be associated with the task by dragging
and dropping the event directly on to the task or by dropping a global error handler task onto the
flow. The output of the task will display the status of the request and the associated error
message.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured to use this task in a workflow.
Use Case
In a Contact Center system, use the Update Context task to add Oceana schema to a pre-existing
Context, update Context data, or update Oceana Schema data.
Related links
Configuring the Context Store cluster on page 241

Configuring the Context Store cluster


About this task
Some tasks require the Context Store cluster as an input. Use this procedure to configure the
Context Store cluster on System Manager.
Procedure
1. On System Manager in Elements click Avaya Breeze® > Configuration > Attributes.

December 2019 Avaya Engagement Designer Developer's Guide 241


Comments on this document? infodev@avaya.com
Tasks

2. Select the Service Clusters tab.


3. From the Cluster menu, select the cluster where Engagement Designer is installed.
4. From the Service menu, select EngagementDesigner.
5. In Context Store Cluster(s), select the Context Store cluster from the drop-down list.
6. Click Commit to save your changes.
Next steps
In Engagement Designer, select (Primary Cluster) as the Cluster IP of the Oceana Task.

Configuring the Customer Management Cluster


About this task
Some tasks require the Customer Management Cluster as an input. Use this procedure to
configure the Customer Management Cluster IP address on System Manager.
Procedure
1. On System Manager in Elements click Avaya Breeze® > Configuration > Attributes.
2. Select the Service Clusters tab.
3. From the Cluster menu, select the cluster where Engagement Designer is installed.
4. From the Service menu, select EngagementDesigner.
5. In Customer Management Cluster(s), select the Customer Management Cluster from the
drop-down list.
6. Click Commit to save your changes.
Next steps
In Engagement Designer, select (Primary Cluster) as the Cluster IP of the Oceana Task.

Build Service
Task description
Build Service creates a service map from the input category and attribute pairs and other input
values.
Task properties
None
Input schema
• Attributes – Category and Attribute pairs.
• Channel – The channel the workflow is using. For example, ‘Voice’.

December 2019 Avaya Engagement Designer Developer's Guide 242


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

• Priority – Refer to the Work Assignment tasks help for more information about this property.
• Rank – Refer to the Work Assignment tasks help for more information about this property.
• ResourceCount – Refer to the Work Assignment tasks help for more information about this
property.
• MinProficiency – Refer to the Work Assignment tasks help for more information about this
property.
• MaxProficency – Refer to the Work Assignment tasks help for more information about this
property.

Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status can return ERROR.
• Message – Returns OK if the request was successful. If the request was not successful, the
message can return an error message.
• ServiceMap – Returns the ServiceMap for the input values.

December 2019 Avaya Engagement Designer Developer's Guide 243


Comments on this document? infodev@avaya.com
Tasks

Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the task,
the Engagement Designer engine checks for an associated Error Boundary Event. If it finds one,
the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from
the Error Boundary Event. An Error Boundary Event can be associated with the task by dragging
and dropping the event directly on to the task or by dropping a global error handler task onto the
flow. The output of the task will display the status of the request and the associated error
message.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured to use this task in a workflow.
Use Case
In a Contact Center system, use the Build Service Map task is used to create a ServiceMap from
input category and attribute pairs. This task is typically used in conjunction with the Extract
Attributes task.

Extract Attributes
Task description
The Extract Attributes task maps DTMF inputs into category and attribute pairs. This task is
designed specifically to operate on input from Call Center Elite. Extract Attributes is a synchronous
task.
Task properties
None
Input schema
• SchemaName – The name of the schema you use and store in the attribute "Work
Assignment Attributes".
• MenuSelections – An input string that is to be translated into category and attribute pairs.
Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status can return ERROR.
• Message – Returns OK if the request was successful. If the request was not successful, the
message can return an error message.
• Attributes – Returns a list of categories and attributes for the input DTMF selections.
• CustomerId – Returns the customer ID from the DTMF selections.

December 2019 Avaya Engagement Designer Developer's Guide 244


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Error handling
If the task completes successfully, the flow takes the default path. Any internal problem or failure
in communicating with Avaya Oceana® Solution results in an error. If an error occurs in the task,
the Engagement Designer engine checks for an associated Error Boundary Event. If it finds one,
the engine directs the flow to the Error Boundary Event and proceeds to the outgoing path from
the Error Boundary Event. An Error Boundary Event can be associated with the task by dragging
and dropping the event directly on to the task or by dropping a global error handler task onto the
flow. The output of the task will display the status of the request and the associated error
message.
If an error in the task is encountered, task_status is set to false, which turns the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can then be picked up in an Error Boundary Event or global Error Boundary Event if one is in
place.
Prerequisites
Avaya Oceana® Solution must be installed and configured to use this task in a workflow.
SchemaName and Menu Schema
The name defined in the schema must match the value supplied to the task.
The menu schema controls how the MenuSelections are parsed and translated into an array of
category or attribute pairs. The schema is XML data, and is stored in the attribute "Work
Assignment Attributes". There are 2 parts to the menu schema. The first part specifies the order
and number of digits collected from Call Center Elite using tags, and also the category the digits
represent. Segment tags must be in the order that the digits appear in the input string from Call
Center Elite. It is possible to have 2 different segments with the same category. For example, a
caller that can select 2 languages. The startposition indicates the starting position in the input
string of the menu selections. This is necessary as the location of the menu selections in the input
is not fixed. The category tags enumerate the possible values for an attribute and facilitate
translating a DTMF key press (1) into an attribute string (English). The order the categories appear
in the file and the order of the values within a category are of no significance.
You can add multiple schemas under the ‘recipe’ top-level. For example in the US, you want your
prompt to say “Press 1 for English, 2 for Spanish”, whereas in Brazil you want your prompt to say
“Press 1 for Portuguese, 2 for Spanish, 3 for English”. Your schema name defines which menu
structure within the XML to use.

December 2019 Avaya Engagement Designer Developer's Guide 245


Comments on this document? infodev@avaya.com
Tasks

Note:
The sample OceanaVoiceSelfService workflow includes the a MenuSchema by default with a
value of “SelfService1”.
Example:
<?xml version="1.0" encoding="UTF-8"?>
<recipe>
<schema name="SelfService1" startposition="1">
<segment type="customerid" digits="6"/>
<segment type="category" digits="1">
Service
</segment>
<segment type="category" digits="1">
Language
</segment>
<category name="Service">
<value name="SalesSupport" value="1"/>
<value name="CorporateAccounts" value="2"/>
<value name="TechnicalSupport" value="3"/>
</category>
<category name="Language">
<value name="English" value="1"/>
<value name="Spanish" value="2"/>
<value name="French" value="3"/>
<value name="Italian" value="4"/>
<value name="German" value="5"/>
<value name="Gaeilge" value="6"/>
</category>
</schema>
<schema name="SelfService2" startposition="1">
<segment type="customerid" digits="4"/>
<segment type="category" digits="1">
Department
</segment>
<segment type="category" digits="1">
Location
</segment>
<category name="Department">
<value name="Mortgages" value="1"/>
<value name="Deposits" value="2"/>
<value name="TermLoans" value="3"/>
</category>
<category name="Location">
<value name="North" value="1"/>
<value name="South" value="2"/>
<value name="East" value="3"/>
<value name="West" value="4"/>
</category>
</schema>
</recipe>

Use Case
In a Contact Center system, use the Select Attributes task to map DTMF values from Call Center
Elite menus to category and attribute pairs. For example, if the MenuSelections input string for
SelfService1 is ‘85694712’, the menu schema above translates the input as:
• Customerid = 856947
• Attributes[0] = Category=Service, Attribute=SalesSupport
• Attributes[1] = Category=Language, Attribute=Spanish

December 2019 Avaya Engagement Designer Developer's Guide 246


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Modify Attributes
Task description
The Modify Attributes task uses an Oceana Service Map as an input mapping and performs
modifications on the received Service Map. These modifications can be specified either using
dynamic properties UI or using JSON input to the task’s input mapping. The new Service Map is
then used to update the Context using the Oceana Core Data Service.
Task properties

You can add and remove Operations dynamically by using the ‘Add operation’ and ‘Delete Last
Operation’ buttons.
• Service ID – Specify which Service within the Service Map you want to select as a subject for
the operation, can also be set to ‘All’.
• Operation:
- Add - Adds the selected attribute to the selected category.
- Remove - Removes the selected attribute from the selected category.
- Change - Replaces the existing attributes with the selected attribute from the selected
category.
- Category - The Category on which to perform the operation.
- Attributes - The Attribute value to Change, Add or Remove.
- Action:
• ‘Edit existing service’ performs the operation on the Service ID specified.
• ‘Add new service’ creates a copy of the specified Service and performs the operation on
the copy, leaving the original Service unmodified.
Note:
Under Service ID the ‘All’ option is available. If you use the ‘All’ option with ‘Edit existing
service’, the operation is performed on all existing services within the Service Map. If you use
the ‘All’ option with ‘Add new service’, all existing services are copied and the operation is
performed on the copies; the original services are not changed.

December 2019 Avaya Engagement Designer Developer's Guide 247


Comments on this document? infodev@avaya.com
Tasks

Input schema
Operations can be fed to the Attribute Modification task by providing a JSON String to
‘Operations’.

• serviceIndex – The service on which to perform the operation. Accepted values: “1”, “2”, “3”,
“4”, “5”, “6”, “All”
• operation – The operation to perform. Accepted values: “ADD”, “CHANGE”, “REMOVE”
• category – The category that the operation is to be performed on.
• attribute – The attribute to CHANGE, ADD or REMOVE.
• mode – Add a new service or Update and existing service. Accepted values: “ADD”,
“UPDATE”.
Sample JSON input:
[{
"serviceIndex": "All",
"operation": "ADD",
"category": "Service",
"attribute": "sales",
“mode”:”ADD”
},
{
" serviceIndex ": "1",
"operation": "CHANGE",
"category": "Channel",
" attribute ": "SMS",
"mode": "UPDATE"
},
{
" serviceIndex ": "2",
"operation": "REMOVE",
"category": "Location",
" attribute ": "InHouse",
"mode": "UPDATE"
}]

December 2019 Avaya Engagement Designer Developer's Guide 248


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

• ContextId – ID of the context targeted for update using the Oceana Core Data Service.
• Journey Element – The operation to perform. Accepted values: “ADD”, “CHANGE”,
“REMOVE”.
• ServiceMap – The category that the operation is to be performed on.

December 2019 Avaya Engagement Designer Developer's Guide 249


Comments on this document? infodev@avaya.com
Tasks

Note:
If operations are set using the properties menu and the Modify Attributes task also receives
operations from input mapping, the operations set using task properties are performed only.
Configuration
The ‘Context Store Clusters’ attribute for Engagement Designer must be set as the cluster that
Context Store is installed on.
The ‘UCA Clusters’ attribute for Engagement Designer must be set as the cluster that UCA is
installed on. Misconfiguration results in the dynamic properties UI to malfunction and not load any
data.
The ‘Authorization Service Address’ must be set as the IP address or FQDN of the cluster the
Authorization Service is installed on.
Error handling
Errors are thrown when invalid operations are entered using task input. Errors are thrown when
the Modify Attributes task fails in contacting the Oceana Core Data Service, or the Service Map
generated by the operations provided is deemed invalid by the Oceana Core Data Service

Assign Attributes
Task description
You can use the Assign Attributes task to add or remove attributes for Avaya Oceana® Solution
agents. Use the Assign Attributes task in an emergency situation to make a resource available, for
example when a high priority customer has been queued for a long duration and needs immediate
attention. Define the attributes to add or remove using the task's dynamic UI or JSON input to the
task's input mapping. These operations are applied to the agent's attributes by a REST call to
UCA. The Assign Attributes task can also create a Journey Element in Context Store.

December 2019 Avaya Engagement Designer Developer's Guide 250


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Task properties

You can add and remove Operations dynamically by using the ‘Add operation’ and ‘Delete Last
Operation’ buttons.
• Operation:
- Add - Adds the selected attribute to the selected category.
- Remove - Removes the selected attribute from the selected category.
- Categories - The Category on which to perform the operation.
- Attributes - The Attribute value to Change, Add or Remove.
Input schema
Operations can be fed to the Attribute Assignment task by providing a JSON String to
‘Operations’.

December 2019 Avaya Engagement Designer Developer's Guide 251


Comments on this document? infodev@avaya.com
Tasks

• SourceName – the provider name as defined in ACM. For example, ‘OCP Chat’ for chat or
‘CM3434’ for voice.
• NativeResourceId – the ID of the agent selected for routing.
• ContextId – ID of the context targeted for update using the Oceana Core Data Service.
• Journey Element – the Journey Element provided is written in the Context Store Audit Trail.
The Audit Trail shows of history of when, and by which Journey Element, the Context was
created, modified, or retrieved. Journey Element is an alphanumeric ID.
• Reassignment – use this as a SET operation to set agent attributes. The attributes are set to
the value passed in this parameter. For example, set this as an existing Work Assignment
service that urgently requires more resources.
• operation – the operation to perform. Accepted values: “ADD”, “CHANGE”, “REMOVE”
• category – the category that the operation is to be performed on.
• attribute – the attribute to CHANGE, ADD or REMOVE.
Sample JSON input:
[{
"operation": "ADD",
"category": "Service",
"attribute": "sales"
},
{
"operation": "ADD",
"category": "Language",
" attribute ": "French"
},
{
"operation": "REMOVE",
"category": "Location",
" attribute ": "InHouse"
}]

December 2019 Avaya Engagement Designer Developer's Guide 252


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

Note:
If operations are set using the properties menu and the Assign Attributes task also receives
operations from input mapping, the operations set using task properties are performed only.
Output schema
• Status – Returns OK if the request was successful. If the request was not successful, the
status shows ERROR.
• Message – Returns 200 OK if the request was successful. If the request was not successful,
the message shows an Error Message. For example: Error occurred processing response
code.
• PreviousAssignment – this contains the details of the original agent attributes before the
Reassignment SET operation.

Configuration
The ‘Context Store Clusters’ attribute for Engagement Designer must be set as the cluster that
Context Store is installed on.
The ‘UCA Clusters’ attribute for Engagement Designer must be set as the cluster that UCA is
installed on. Misconfiguration results in the dynamic properties UI to malfunction and not load any
data. However, you can use the ‘UCA Cluster’ task property to direct outbound UCA requests to
any cluster.
The ‘Authorization Service Address’ must be set as the IP address or FQDN of the cluster the
Authorization Service is installed on.
Error handling
Errors are thrown when invalid operations are entered using task input. Errors are thrown when
the Assign Attributes task fails in contacting the UCA Service or the Oceana Core Data Service.

Route To Agent
Task description
The Route to Agent task combines aspects of the functionality of several of the existing Avaya
Oceana® Solution tasks. These tasks are:
• Request Resource
• Send Offer

December 2019 Avaya Engagement Designer Developer's Guide 253


Comments on this document? infodev@avaya.com
Tasks

• Update Context
• Reject Resource
The Route to Agent task does this by subscribing for and handling certain events internally, which
removes the need for Message Boundary Events. The events handled internally by Route to
Agent are:
• WORK_OFFER
• WORK_ERROR
• CONTACT_ANSWERED
• CONTACT_NOT_ANSWERED
• ROUTE_CONTACT_FAILED
The Route to Agent task requests that Work Assignment finds the best possible single resource
based on one or multiple sets of attributes and properties identified in the task.
Route to Agent can also be used to request a Specified Resource (required or preferred) by
providing a Resource Map in the request. The Resource Map is provided through the input
mapping.
Route to Agent is an asynchronous task. It waits or queues the request and unblocks only when it
receives a response from Work Assignment, as determined by Work Assignment events handled
internally within Route to Agent. The Workflow Definition can proceed with wait treatment and
updates while waiting for a resource to become available.
Upon receiving a WORK_OFFER event from Work Assignment the Route to Agent task proceeds
to send Avaya Oceana® Solution the routing details of the destination offered by Work
Assignment. This allows Avaya Oceana® Solution to pass routing details back to the provider to
route the contact to a suitable destination, for example an agent, vector, mailbox, or attendant.
When Send Offer is successful Route to Agent waits to handle any one of the following events:
• CONTACT_ANSWERED
• CONTACT_NOT_ANSWERED
• ROUTE_CONTACT_FAILED
Upon receiving the CONTACT_ANSWERED event Route to Agent updates the Context’s AgentId
using a REST request to the Oceana Core Data Service, and exits the task execution.
If the ‘Handle Not Answered’ task property is set to true and Route to Agent receives a
CONTACT_NOT_ANSWERED event, Route to Agent sends a Reject Resource request to Work
Assignment and generates a new request with the original service map provided.
If the ‘Use Top Priority’ task property is set to true and the above scenario occurs, all services
within the provided service map are updated to top priority for the new request.
If ‘Handle Not Answered’ is set to false, you must implement your own logic to handle a
CONTACT_NOT_ANSWERED scenario using a Message Boundary Event to handle that event.
Task Properties
• WA Cluster (required) – The IP address or FQDN of the Work Assignment cluster. You must
configure Addresses on the Service Globals tab of the Avaya Breeze™ Attributes
Configuration page. For additional information, see Avaya Work Assignment Snap-in
Reference.

December 2019 Avaya Engagement Designer Developer's Guide 254


Comments on this document? infodev@avaya.com
Avaya Oceana Solution tasks

• CS Cluster (required) – The IP address of the Context Store cluster. You must configure
Addresses in the Engagement Designer attributes.
• Strategy (required) – Sets the Work Assignment strategy used when searching for matches.
Strategy must be populated either in the task properties or in the input mapping. It cannot be
empty when the task executes. If populated in both the task and the input mapping, the task
value takes precedence. If the value is supplied using input mapping, it must match exactly
the available values in the task. Select from the following values:
- Least Occupied: This value uses resource occupancy as its key metric. Occupancy is
calculated and updated at regular intervals and the resource with the lowest occupancy is
selected.
- Most Idle: Work Assignment checks when matching resources were last assigned work,
and selects the resource that has been not processing any work for the longest period of
time.
• Remove Attributes (optional) – Removes the specified attributes from the set of attributes
provided as input parameters to the task. For example, you can remove the Region to
expand the possible matches. This field accepts either a single attribute, for example,
Region.South, or a comma-separated list, for example, Media.WebRTC, Product.Jeans. If the
specified attributes do not already exist, this field has no effect. After removing attributes, the
service map must have at least one attribute. Remove Attributes cannot be used to empty a
service map of all its attributes.
• Add Attributes (optional) – Adds the specified attributes to the set of attributes provided as
input parameters to the task. For example, you could add the Expertise of the desired
resource. This field accepts either a single attribute, for example, Region.South, or a comma-
separated list, for example, Media.WebRTC, Product.Jeans. The specified attributes must
already be defined in Work Assignment, otherwise this field results in resources not being
matched. If the attributes are not already defined in Work Assignment, Work Assignment
sends a WORK_ERROR response.
• Work Correlator (optional) – Allows the use of multiple Request tasks within the same
workflow. The correlator is appended to the base work ID to distinguish between each
request. The value must be an integer between 0 and 9999.
Mandatory task properties are marked with an asterisk (*) on the task in Engagement Designer.
Handle Not Answered:
Set to ‘true’ if CONTACT_NOT_ANSWERED events are to be handled by Route to Agent through
a reject resource request. When set to ‘false’, you must handle the
‘CONTACT_NOT_ANSWERED’ event using a Message Boundary Event.
Use Top Priority:
Used in conjunction with ‘Handle Not Answered’ being set to ‘true’. When Route to Agent is
handling a ‘CONTACT_NOT_ANSWERED’ event and Use Top Priority is set to true, all services
within the provided service map are updated to top priority for the new request.
Error handling
Any internal problem or failure in communicating with Avaya Oceana® Solution results in an error.
Receiving the following events results in an error:
• WORK_ERROR

December 2019 Avaya Engagement Designer Developer's Guide 255


Comments on this document? infodev@avaya.com
Tasks

• ROUTE_CONTACT_FAILED
If an error in the task is encountered, task_status is set to false, which marks the task red in the
instance of the workflow on the Engagement Designer Administration Console. These error states
can be picked up in an Error Boundary Event, or global Error Boundary Event if one is in place.

ZangCloud Tasks

ZangCloud Snap-in description


To use ZangCloud tasks you must install the ZangCloud Snap-in and configure the ZangCloud
Snap-in attributes. For additional snap-in installation information, see Avaya Engagement
Designer Reference.
Use the ZangCloud Snap-in to request information from Zang carrier services based on your
customer’s phone number. Add Avaya Engagement Designer Zang tasks to your workflow to
request:
• Billing address
• Name
• Carrier name and ID
• Whether the phone is mobile or a landline
• Transcription of an audio file accessed by way of a URL
To use the ZangCloud tasks, you must install the following certificates:
• AddTrust certificate
• Baltimore certificate
• CloudFlare certificate

Configuring ZangCloud Snap-in attributes


Before you begin
Before configuring attributes, you must install the ZangCloud Snap-in. The Zang certificate must
be installed on the same node as the ZangCloud Snap-in. The certificate can be obtained from
Zang support.
Procedure
1. On System Manager, click Elements > Avaya Breeze® > Configuration > Attributes.
2. Select the Service Globals tab.

December 2019 Avaya Engagement Designer Developer's Guide 256


Comments on this document? infodev@avaya.com
ZangCloud Tasks

3. From the Service drop-down menu, select the ZangCloud snap-in.


4. Enter or modify attributes.
a. Click Override Default by the attribute you want to change.
b. Enter the new value in the Effective Value field.
You can restore the default by clearing the Override Default box.
Enter attributes for:
• Account SID – The Zang account SID
• Authentication Token – The Zang Auth Token
• Zang API URL – The Zang Cloud URL
5. To save your changes, click Commit.
Next steps
After you have deployed the ZangCloud Snap-in and configured its attributes, you must deploy the
ZangCloud tasks on the Engagement Designer Admin Console. For additional information, see
Avaya Engagement Designer Reference.

Carrier Lookup
Task description
The Carrier Lookup task provides the carrier name and carrier ID of the input phone number. The
number must be for a Country Code supported by Zang.
This is a synchronous task.
Task properties
• Phone number (mandatory) – The format for the input phone number is <Country Code>
+<Area Code>+<Phone Number>. For example, 13234567890. The number must be for a
Country Code supported by Zang.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped using the Input Mapping window or entered in the
Properties window for validation to succeed.
Input schema
• phonenumber – Input number to be looked up for carrier name and ID.

December 2019 Avaya Engagement Designer Developer's Guide 257


Comments on this document? infodev@avaya.com
Tasks

Output schema
• network – The carrier name for the input phone number.
• carrier_id – The carrier ID corresponding to the network.

December 2019 Avaya Engagement Designer Developer's Guide 258


Comments on this document? infodev@avaya.com
ZangCloud Tasks

Error handling
Errors can be handled by using Error Boundary Events.
Prerequisites
The ZangCloud Snap-in must be installed. The Zang account SID, authentication token and
ZangUrl must be configured in the ZangCloud Snap-in attributes. For additional information, see
Avaya Engagement Designer Developer’s Guide.
Related Boundary Events
Error boundary events are used with the Carrier Lookup task.
Use Case
Retrieve the network provider for an intercepted number and customize the greeting
announcement.

Mobile Lookup
Task description
The Mobile Lookup task reports whether an input phone number is mobile or is a landline. The
number must be for a Country Code supported by Zang.

December 2019 Avaya Engagement Designer Developer's Guide 259


Comments on this document? infodev@avaya.com
Tasks

This is a synchronous task.


Task properties
• Phone number (mandatory) – The format for the input phone number is <Country Code>
+<Area Code>+<Phone Number>. For example, 13234567890. The number must be for a
Country Code supported by Zang.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped using the Input Mapping window or entered in the
Properties window for validation to succeed.
Input schema
• phonenumber – Input number to be looked up for mobile or landline.

Output schema
• country_code – The country code for the input phone number.
• mobile – Whether the input phone number is mobile or not.

December 2019 Avaya Engagement Designer Developer's Guide 260


Comments on this document? infodev@avaya.com
ZangCloud Tasks

Error handling
Errors can be handled by using Error Boundary Events.
Prerequisites
The ZangCloud Snap-in must be installed. The Zang account SID, authentication token and
ZangUrl must be configured in the ZangCloud Snap-in attributes. For additional information, see
Avaya Engagement Designer Developer’s Guide.
Related Boundary Events
Error boundary events are used with the Mobile Lookup task.
Use Case
Provide different offers to customers based on whether they are mobile users or landline users.

Billing Address Lookup


Task description
The Billing Address Lookup task provides the billing address registered with an input phone
number. The number must be for a Country Code supported by Zang.
This is a synchronous task.

December 2019 Avaya Engagement Designer Developer's Guide 261


Comments on this document? infodev@avaya.com
Tasks

Task properties
• Phone number (mandatory) – The format for the input phone number is <Country Code>
+<Area Code>+<Phone Number>. For example, 13234567890. The number must be for a
Country Code supported by Zang.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped using the Input Mapping window or entered in the
Properties window for validation to succeed.
Input schema
• phonenumber – Input number to be looked up for billing address information.

Output schema
• city – The city of the input phone number.
• state – The state of the input phone number.
• zip_code – The zip code for the input phone number.
• country_code – The country code for the input phone number.

December 2019 Avaya Engagement Designer Developer's Guide 262


Comments on this document? infodev@avaya.com
ZangCloud Tasks

Error handling
Errors can be handled by using Error Boundary Events.
Prerequisites
The ZangCloud Snap-in must be installed. The Zang account SID, authentication token and
ZangUrl must be configured in the ZangCloud Snap-in attributes. For additional information, see
Avaya Engagement Designer Developer’s Guide.
Related Boundary Events
Error boundary events are used with the Billing Address Lookup task.
Use Case
Provide local offers based on the caller’s billing address.

Caller Lookup
Task description
The Caller Lookup task provides the caller name for the input phone number. The number must be
for a Country Code supported by Zang.

December 2019 Avaya Engagement Designer Developer's Guide 263


Comments on this document? infodev@avaya.com
Tasks

This is a synchronous task.


Task properties
• Phone number (mandatory) – The format for the input phone number is <Country Code>
+<Area Code>+<Phone Number>. For example, 13234567890. The number must be for a
Country Code supported by Zang.
If a value for a parameter is provided by both input mapping and the Properties window, input
mapping takes precedence.
All mandatory fields should either be mapped using the Input Mapping window or entered in the
Properties window for validation to succeed.
Input schema
• phonenumber – Input number to be looked up for caller name.

Output schema
• name – The caller name for the input phone number.

December 2019 Avaya Engagement Designer Developer's Guide 264


Comments on this document? infodev@avaya.com
ZangCloud Tasks

Error handling
Errors can be handled by using Error Boundary Events.
Prerequisites
The ZangCloud Snap-in must be installed. The Zang account SID, authentication token and
ZangUrl must be configured in the ZangCloud Snap-in attributes. For additional information, see
Avaya Engagement Designer Developer’s Guide.
Related Boundary Events
Error boundary events are used with the Caller Lookup task.
Use Case
Retrieve the caller name for an intercepted number and customize the greeting announcement.

Transcribe Audio URL


Task description
Transcribe Audio URL calls a Zang REST API to transcribe an audio file on the designated URL.
When the transcription has finished processing, it is sent to the Transcribe Callback URL. If no
callback URL is specified, the transcription can be accessed in the Zang transcription logs on the
Zang site.
Transcribe Audio URI is a synchronous task.
Task properties
• Audio URL (mandatory) – The URL where the audio to be transcribed is located.

December 2019 Avaya Engagement Designer Developer's Guide 265


Comments on this document? infodev@avaya.com
Tasks

• Transcribe Callback (Optional) – The URL that will be requested when the transcription has
finished processing.
• Callback Method (mandatory when Transcribe Callback is configured) – The HTTP method to
use when requesting the Transcribe Callback URL. Options are GET or POST.
• Slice Start (secs) (Optional) – The start point for the slice transcription in seconds. The place
in the recording where transcription should start.
• Slice Duration (secs) (Mandatory when Slice Start is configured) – The duration of the slice
transcription in seconds. The length of the audio to transcribe from the selected starting point
• Quality (Optional) – Specifies the transcription quality. Transcription prices differ for each
quality. See the pricing page for details. Select one of the following quality options:
- auto – A machine-generated transcription.
- hybrid – Transcription is reviewed by a human for accuracy.
- keywords – Topics and keywords are returned for the audio file.
Input schema
• audioURL – The URL where the audio to be transcribed is located.
• transcribeCallback – The URL where the transcription will be sent
• callbackMethod – The HTTP method to use when requesting the Transcribe Callback URL.
• sliceStart – The place in the recording to start the transcription.
• sliceDuration – The length of the transcription from the designated starting point.
• quality – The specified transcription quality.
Error handling
Errors can be handled by Error Boundary Events.
Prerequisites
The Zang REST service is external to Engagement Designer. This task interacts with the Zang
REST service by way of the ZangCloud snap-in. The ZangCloud snap-in must be configured and
installed on the same cluster as Engagement Designer.
Related Boundary Events
Timeout and Error Boundary Events are used with the Transcribe Audio URL task.

December 2019 Avaya Engagement Designer Developer's Guide 266


Comments on this document? infodev@avaya.com
Chapter 21: Additional Resources

Documentation
See the following related documents at https://support.avaya.com.
Title Description Audience
Avaya Engagement Designer Provides a functional description of Avaya Sales engineers
Reference Engagement Designer as well as
Developers
administration, deployment, security and
maintenance. Includes interoperability, System
performance, and design considerations. administrators
Services and support
personnel
Getting Started with Avaya A guide through the core steps to create a WFD developers
Engagement Designer Workflow Definition.
Avaya Engagement Designer Describes detailed steps and concepts to WFD developers
Developer’s Guide create and deploy different types of
Workflow Definitions.
Creating Dynamic Tasks for Avaya Describes how to create user-defined tasks WFD developers
Engagement Designer for Avaya Engagement Designer.
Quick Start to deploying the Walks through the steps to install and Developers
HelloWorld Snap-in administer the Hello World snap-in.
System
administrators
Administering Avaya Breeze® Provides the procedures to administer and System
platform configure Avaya Breeze® platform and Administrators
snap-ins.
Services and Support
personnel
Maintaining and Troubleshooting Contains the list of alarms and errors System
Avaya Breeze® platform related to Avaya Breeze® platform and the Administrators
procedures to troubleshoot and fix the
Services and Support
problems.
personnel
Implementing and Administering Provides the procedures to install, System
Avaya Aura® Media Server configure, use, and troubleshoot Avaya administrators
Aura® Media Server.
Services and support
personnel

December 2019 Avaya Engagement Designer Developer's Guide 267


Comments on this document? infodev@avaya.com
Additional Resources

Avaya DevConnect
Avaya DevConnect provides additional resources for Engagement Designer developers. You can
access documentation, videos, webinar recordings, tier 1 and tier 2 support as well as a developer
forum. You can also download the Engagement Designer SDK from the DevConnect website.
View the Engagement Designer DevConnect website at: DevConnect: Avaya Engagement
Designer.

Support
Go to the Avaya Support website at https://support.avaya.com for the most up-to-date
documentation, product notices, and knowledge articles. You can also search for release notes,
downloads, and resolutions to issues. Use the online service request system to create a service
request. Chat with live agents to get answers to questions, or request an agent to connect you to a
support team if an issue requires additional expertise.

December 2019 Avaya Engagement Designer Developer's Guide 268


Comments on this document? infodev@avaya.com
Index
A copying nodes ......................................................................15
create account task ............................................................156
abstract task ........................................................................ 91 create case task .................................................................171
account authentication task ............................................... 158 create contact task .............................................................165
add participant task ............................................................ 119 create data task ................................................................. 227
administration console create element task ........................................................... 225
bundles ......................................................................... 18 create instance .................................................................... 53
create instance ............................................................. 18 create process task ........................................................20, 90
description .................................................................... 18 creating a workflow .............................................................. 35
event catalog ................................................................ 18 creating routing rules ........................................................... 62
instances ...................................................................... 18 CRM tasks ......................................................................... 176
routing ...........................................................................18 csObjectOutput .................................................................. 211
allow call task .....................................................................109
announce and block call task ............................................. 110
archive attributes ................................................................. 58
D
archive workflow instances .................................................. 59 data manipulation task .......................................................145
array to loop .........................................................................39 data mapper .........................................................................23
assign attributes task ......................................................... 250 data transformation ........................................................24, 26
assign task .........................................................................145 input mapping ............................................................... 24
asynchronous task ...............................................................39 output mapping .............................................................26
attributes .................................................................... 176, 256 debugging a workflow definition .....................................50, 51
CRM tasks .................................................................. 176 deleting a workflow definition ...............................................41
ZangCloud .................................................................. 256 deleting a workflow instance ................................................42
autosave ........................................................................ 15, 35 DevConnect ....................................................................... 268
Avaya support website .......................................................268 developer resources .......................................................... 268
diff tool ........................................................................... 43, 46
B drop call task ...................................................................... 112
drop participant task ...........................................................118
billing address lookup task .................................................261
block call task .................................................................... 109
BPMN ...................................................................................11
E
build service task ............................................................... 242 end event ............................................................................. 39
error pane ............................................................................ 15
C error task ............................................................................101
event catalog
caller lookup task ............................................................... 263 creating .........................................................................61
call rest service task ............................................................ 88 description .............................................................. 35, 60
cancel request task ............................................................199 field descriptions ...........................................................61
cancel task ...........................................................................91 selections ......................................................................35
canvas ................................................................................. 15 events .................................................................................. 12
carrier lookup task ............................................................. 257 described ...................................................................... 69
comment task .................................................................... 100 end ................................................................................70
conditional assign task .........................................................96 error boundary .............................................................. 75
conditions on connectors ..................................................... 67 intermediate timer .........................................................73
connectors ........................................................................... 12 interrupt ........................................................................ 71
adding conditions ..........................................................67 message boundary ....................................................... 73
corner shape .................................................................67 start ...............................................................................69
described ...................................................................... 67 terminate .......................................................................71
line type ........................................................................ 67 timeout boundary ..........................................................75
line width .......................................................................67 example workflow .............................................................. 177
context store ...................................................................... 202 exclusive gateway ................................................................77
context store task ....................................................... 202 exporting workflow definition ................................................55
sample workflow definition ..........................................209 externally provided global variables .....................................65

December 2019 Avaya Engagement Designer Developer's Guide 269


Comments on this document? infodev@avaya.com
Index

externally provided global variables (continued) J


creating .........................................................................66
extract attributes task .........................................................244 JSON editor ......................................................................... 37

F L
field descriptions leave call task .................................................................... 126
event catalog ................................................................ 61 legend view ..........................................................................15
fork call task ....................................................................... 112 log message task ...............................................................107
formatting nodes .................................................................. 15 loop execution ......................................................................39
forward call task ................................................................. 113
M
G
make call task .................................................................... 115
gateways ..............................................................................12 manipulating data ................................................................ 37
described ...................................................................... 77 mapping
exclusive .......................................................................77 input ..............................................................................37
inclusive ........................................................................79 output ............................................................................37
parallel .......................................................................... 80 task data ....................................................................... 24
get account task .................................................................159 validation ...................................................................... 27
get call context task ........................................................... 125 variables node .............................................................. 37
get called party task ...........................................................123 mapping multiple object strings ........................................... 31
get calling party task .......................................................... 122 message boundary event .................................................... 73
get contact task ..................................................................167 work_error .................................................................. 186
get context task ..................................................................230 work_offer ................................................................... 188
get customer id task ...........................................................233 work_queued .............................................................. 189
get last agent task ..............................................................102 message boundary events
get services task ................................................................ 235 work assignment .........................................................186
get user data task .............................................................. 127 mobile lookup task ............................................................. 259
global variables ....................................................................65 modify attributes task .........................................................247
grids ..................................................................................... 15 multiple object strings mapping ........................................... 31

I N
IFTTT task ......................................................................... 148 node
importing workflow definition properties ................................................................83, 84
svar ...............................................................................56 variables ................................................................. 37, 82
XML .............................................................................. 56
inclusive gateway .................................................................79
input mapping ...................................................................... 37
O
work assignment .........................................................182 output mapping .................................................................... 37
instance viewer .................................................................... 20 context store ............................................................... 211
interactive voice task ......................................................... 149 csObjectOutput ........................................................... 211
interface work assignment .........................................................185
canvas .......................................................................... 15
legend view ...................................................................15
palette ...........................................................................15 P
toolbar ...........................................................................15
palette .................................................................................. 15
interrupt event ......................................................................71
parallel gateway ...................................................................80
IP address
play and collect task .......................................................... 128
context store ....................................................... 241, 242
play announcement task ....................................................134
context store IP address .....................................241, 242
pools and lanes
ip addresses
adding ...........................................................................33
resolving ....................................................................... 13
description .................................................................... 33
properties
adding ...........................................................................84

December 2019 Avaya Engagement Designer Developer's Guide 270


Comments on this document? infodev@avaya.com
Index

properties (continued) settings ................................................................................ 15


changing values ............................................................84 start engagement designer .................................................. 13
viewing ..........................................................................84 start event ............................................................................ 35
properties node ..............................................................83, 84 scheduling .................................................................... 36
publish event task .............................................................. 100 start speech search task ....................................................217
static global variables .......................................................... 65
creating .........................................................................65
Q status ................................................................................... 54
query resource task ........................................................... 201 workflow definition ........................................................ 53
stop speech search task .................................................... 218
sub-process task ..................................................................99
R support ...............................................................................268
suspend call task ................................................................114
read from db task .................................................................93
svar import ........................................................................... 56
read spreadsheet file task ....................................................92
synchronous task .................................................................39
real-time speech search .................................................... 214
receive task ..........................................................................85
recognize speech task ....................................................... 139 T
record participant task ....................................................... 142
reject resource task ........................................................... 195 task bundles .........................................................................18
related documentation ....................................................... 267 tasks .................................................................................... 12
repeated execution .............................................................. 39 abstract .........................................................................91
request autochat task ........................................................ 224 account authentication ................................................158
request group of resources task ........................................ 198 adding ...........................................................................37
request multiple resources task ......................................... 196 add participant ............................................................ 119
request resource task ........................................................ 192 allow call ..................................................................... 109
resolving ip addresses ......................................................... 13 announce and block call ............................................. 110
retrieve open case task ......................................................173 assign ......................................................................... 145
route to agent task ............................................................. 253 assign attributes ......................................................... 250
routing rules ......................................................................... 62 billing address lookup ................................................. 261
creating .........................................................................62 block call .....................................................................109
rules build service ................................................................242
activating ...................................................................... 64 caller lookup ............................................................... 263
deactivating .................................................................. 64 call rest service .............................................................88
event .............................................................................62 cancel request ............................................................ 199
routing ...........................................................................62 cancel task ....................................................................91
carrier lookup ..............................................................257
Comment .................................................................... 100
S conditional assign ......................................................... 96
context store ............................................................... 202
saving a workflow ................................................................ 35
create account ............................................................ 156
schedule a start event ..........................................................36
create case ................................................................. 171
schedule scopia task ......................................................... 140
create contact ............................................................. 165
schema
create data ..................................................................227
start event .....................................................................35
create element ............................................................225
variables node .............................................................. 37
create process .............................................................. 90
send alarm task ................................................................. 107
data manipulation ....................................................... 145
send DTMF task ................................................................ 133
drop call ...................................................................... 112
send email task ..................................................................104
drop participant ........................................................... 118
send error task ...................................................................222
error ............................................................................ 101
send offer task ................................................................... 219
extract attributes ......................................................... 244
send queued task .............................................................. 221
fork call ........................................................................112
send text msg task .............................................................105
forward call ..................................................................113
service metrics task ........................................................... 200
get account ................................................................. 159
set call context task ........................................................... 124
get call context ............................................................125
set called party task ........................................................... 120
get called party ........................................................... 123
set calling party task .......................................................... 121
get calling party .......................................................... 122
set call policy task .............................................................. 116
get contact .................................................................. 167

December 2019 Avaya Engagement Designer Developer's Guide 271


Comments on this document? infodev@avaya.com
Index

tasks (continued) toolbar ..................................................................................15


get context .................................................................. 230 transcribe audio URL task ................................................. 265
get customer id ........................................................... 233
get last agent .............................................................. 102
get services ................................................................ 235
U
get user data ...............................................................127 update account task ...........................................................163
IFTTT ..........................................................................148 update billing address task ................................................ 162
interactive voice ..........................................................149 update case task ................................................................175
leave call .....................................................................126 update contact task ............................................................169
log message ............................................................... 107 update context ................................................................... 238
make call .....................................................................115 update db task ..................................................................... 94
mobile lookup ............................................................. 259 update last agent task ........................................................103
modify attributes ......................................................... 247 update request resource task ............................................ 194
play and collect ...........................................................128 user task .............................................................................. 96
play announcement .................................................... 134 use VXML task ...................................................................154
publish event .............................................................. 100
query resource ............................................................201
read from db ................................................................. 93 V
read spreadsheet file .................................................... 92
variables node ......................................................... 12, 37, 82
receive .......................................................................... 85
recognize Speech .......................................................139
record participant ........................................................142 W
reject resource ............................................................195
request autochat .........................................................224 work_error ..........................................................................186
request group of resources .........................................198 work_offer .......................................................................... 188
request multiple resources ......................................... 196 work_queued ..................................................................... 189
request resource .........................................................192 work assignment ................................................................182
retrieve open case ...................................................... 173 input mapping ............................................................. 182
route to agent ............................................................. 253 message boundary events ......................... 186, 188, 189
schedule scopia ..........................................................140 output mapping ...........................................................185
send alarm ..................................................................107 sample workflow definitions ........................................190
send DTMF .................................................................133 workflow
send email .................................................................. 104 creating .........................................................................35
send error ................................................................... 222 saving ........................................................................... 35
send offer ....................................................................219 workflow data
send queued ...............................................................221 archiving ....................................................................... 59
send text msg ............................................................. 105 workflow definition
service metrics ............................................................200 components .................................................................. 12
set call context ............................................................124 defined ..........................................................................12
set called party ........................................................... 120 deleting ......................................................................... 41
set calling party ...........................................................121 deploying ...................................................................... 40
set call policy ...............................................................116 editing ........................................................................... 41
start speech search .................................................... 217 exporting .......................................................................55
stop speech search .................................................... 218 importing svar ............................................................... 56
sub-process .................................................................. 99 importing XML .............................................................. 56
suspend call ................................................................ 114 saving ........................................................................... 39
transcribe audio URL ..................................................265 status ............................................................................ 53
update account ........................................................... 163 testing ........................................................................... 53
update billing address .................................................162 validating ...................................................................... 39
update case ................................................................ 175 workflow engine ................................................................... 12
update contact ............................................................ 169 workflow instance ................................................................ 54
update context ............................................................ 238 defined ..........................................................................12
update db ......................................................................94 deleting ......................................................................... 42
update last agent ........................................................ 103 status ............................................................................ 54
update request resource .............................................194
user task ....................................................................... 96
use VXML ................................................................... 154

December 2019 Avaya Engagement Designer Developer's Guide 272


Comments on this document? infodev@avaya.com
Index

X
XML import .......................................................................... 56

Z
ZangCloud ......................................................................... 256
ZangCloud snap-in ............................................................ 256
zoom .................................................................................... 15

December 2019 Avaya Engagement Designer Developer's Guide 273


Comments on this document? infodev@avaya.com

You might also like