Download as pdf or txt
Download as pdf or txt
You are on page 1of 442

Avaya Proactive Outreach Manager

Developer Guide

Release 4.0
Issue 1.0
December 2020
© 2019-2020, CHANNEL PARTNER (AS APPLICABLE), THE TERMS OF USE FOR
HOSTED SERVICES ARE AVAILABLE ON THE AVAYA WEBSITE,
Avaya Inc. All HTTPS://SUPPORT.AVAYA.COM/LICENSEINFO UNDER THE LINK
Rights Reserved. “Avaya Terms of Use for Hosted Services” OR SUCH
SUCCESSOR SITE AS DESIGNATED BY AVAYA, AND ARE
Notice APPLICABLE TO ANYONE WHO ACCESSES OR USES THE
While reasonable efforts have been made to ensure that the HOSTED SERVICE. BY ACCESSING OR USING THE HOSTED
information in this document is complete and accurate at the SERVICE, OR AUTHORIZING OTHERS TO DO SO, YOU, ON
time of printing, Avaya assumes no liability for any errors. BEHALF OF YOURSELF AND THE ENTITY FOR WHOM YOU ARE
Avaya reserves the right to make changes and corrections to DOING SO (HEREINAFTER REFERRED TO INTERCHANGEABLY
the information in this document without the obligation to AS “YOU” AND “END USER”), AGREE TO THE TERMS OF USE. IF
notify any person or organization of such changes. YOU ARE ACCEPTING THE TERMS OF USE ON BEHALF A
COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT
Documentation disclaimer YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY TO THESE
“Documentation” means information published in varying TERMS OF USE. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF
mediums which may include product information, operating YOU DO NOT WISH TO ACCEPT THESE TERMS OF USE, YOU
instructions and performance specifications that are generally MUST NOT ACCESS OR USE THE HOSTED SERVICE OR
made available to users of products. Documentation does not AUTHORIZE ANYONE TO ACCESS OR USE THE HOSTED
include marketing materials. Avaya shall not be responsible SERVICE.
for any modifications, additions, or deletions to the original
published version of Documentation unless such License types
modifications, additions, or deletions were performed by or Designated System(s) License (DS). End User may install and
on the express behalf of Avaya. End User agrees to indemnify use each copy or an Instance of the Software only on a
and hold harmless Avaya, Avaya's agents, servants and number of Designated Processors up to the number indicated
employees against all claims, lawsuits, demands and in the order. Avaya may require the Designated Processor(s)
judgments arising out of, or in connection with, subsequent to be identified in the order by type, serial number, feature
modifications, additions or deletions to this documentation, key, Instance, location or other specific designation, or to be
to the extent made by End User. provided by End User to Avaya through electronic means
Link disclaimer established by Avaya specifically for this purpose. Concurrent
User License (CU). End User may install and use the Software
Avaya is not responsible for the contents or reliability of any on multiple Designated Processors or one or more Servers, so
linked websites referenced within this site or Documentation long as only the licensed number of Units are accessing and
provided by Avaya. Avaya is not responsible for the accuracy using the Software at any given time. A “Unit” means the unit
of any information, statement or content provided on these on which Avaya, at its sole discretion, bases the pricing of its
sites and does not necessarily endorse the products, services, licenses and can be, without limitation, an agent, port or user,
or information described or offered within them. Avaya does an e-mail or voice mail account in the name of a person or
not guarantee that these links will work all the time and has corporate function (e.g., webmaster or helpdesk), or a
no control over the availability of the linked pages. directory entry in the administrative database utilized by the
Warranty Software that permits one user to interface with the
Software. Units may be linked to a specific, identified Server
Avaya provides a limited warranty on Avaya hardware and or an Instance of the Software.
software. Refer to your sales agreement to establish the
terms of the limited warranty. In addition, Avaya’s standard Licenses
warranty language, as well as information regarding support THE SOFTWARE LICENSE TERMS AVAILABLE ON THE AVAYA
for this product while under warranty is available to Avaya WEBSITE, HTTPS://SUPPORT.AVAYA.COM/LICENSEINFO,
customers and other parties through the Avaya Support UNDER THE LINK “AVAYA SOFTWARE LICENSE TERMS (Avaya
website: https://support.avaya.com/helpcenter/ Products)” OR SUCH SUCCESSOR SITE AS DESIGNATED BY
getGenericDetails?detailId=C20091120112456651010 under AVAYA, ARE APPLICABLE TO ANYONE WHO DOWNLOADS,
the link “Warranty & Product Lifecycle” or such successor site USES AND/OR INSTALLS AVAYA SOFTWARE, PURCHASED
as designated by Avaya. Please note that if You acquired the FROM AVAYA INC., ANY AVAYA AFFILIATE, OR AN AVAYA
product(s) from an authorized Avaya Channel Partner outside CHANNEL PARTNER (AS APPLICABLE) UNDER A COMMERCIAL
of the United States and Canada, the warranty is provided to AGREEMENT WITH AVAYA OR AN AVAYA CHANNEL PARTNER.
You by said Avaya Channel Partner and not by Avaya. UNLESS OTHERWISE AGREED TO BY AVAYA IN WRITING, AVAYA
“Hosted Service” means an Avaya hosted service subscription DOES NOT EXTEND THIS LICENSE IF THE SOFTWARE WAS
that You acquire from either Avaya or an authorized Avaya OBTAINED FROM ANYONE OTHER THAN AVAYA, AN AVAYA
Channel Partner (as applicable) and which is described further AFFILIATE OR AN AVAYA CHANNEL PARTNER; AVAYA RESERVES
in Hosted SAS or other service description documentation THE RIGHT TO TAKE LEGAL ACTION AGAINST YOU AND
regarding the applicable hosted service. If You purchase a ANYONE ELSE USING OR SELLING THE SOFTWARE WITHOUT A
Hosted Service subscription, the foregoing limited warranty LICENSE. BY INSTALLING, DOWNLOADING OR USING THE
may not apply but You may be entitled to support services in SOFTWARE, OR AUTHORIZING OTHERS TO DO SO, YOU, ON
connection with the Hosted Service as described further in BEHALF OF YOURSELF AND THE ENTITY FOR WHOM YOU ARE
your service description documents for the applicable Hosted INSTALLING, DOWNLOADING OR USING THE SOFTWARE
Service. Contact Avaya or Avaya Channel Partner (as (HEREINAFTER REFERRED TO INTERCHANGEABLY AS “YOU”
applicable) for more information. AND “END USER”), AGREE TO THESE TERMS AND CONDITIONS
AND CREATE A BINDING CONTRACT BETWEEN YOU AND
Hosted Service AVAYA INC. OR THE APPLICABLE AVAYA AFFILIATE (“AVAYA”).
THE FOLLOWING APPLIES ONLY IF YOU PURCHASE AN AVAYA Avaya grants You a license within the scope of the license
HOSTED SERVICE SUBSCRIPTION FROM AVAYA OR AN AVAYA types described below, with the exception of Heritage Nortel
Software, for which the scope of the license is detailed below. “Third Party Components” mean certain software programs or
Where the order documentation does not expressly identify a portions thereof included in the Software or Hosted Service
license type, the applicable license will be a Designated may contain software (including open source software)
System License as set forth below in the Designated System(s) distributed under third party agreements (“Third Party
License (DS) section as applicable. The applicable number of Components”), which contain terms regarding the rights to use
licenses and units of capacity for which the license is granted certain portions of the Software (“Third Party Terms”). As
will be one (1), unless a different number of licenses or units required, information regarding distributed Linux OS source
of capacity is specified in the documentation or other code (for those products that have distributed Linux OS source
materials available to You. “Software” means computer code) and identifying the copyright holders of the Third Party
programs in object code, provided by Avaya or an Avaya Components and the Third Party Terms that apply is available in
Channel Partner, whether as stand-alone products, pre- the products, Documentation or on Avaya’s website at: https://
installed on hardware products, and any upgrades, updates, support.avaya.com/Copyright or such successor site as
patches, bug fixes, or modified versions thereto. “Designated designated by Avaya. The open source software license terms
Processor” means a single stand-alone computing device. provided as Third Party Terms are consistent with the license
“Server” means a set of Designated Processors that hosts rights granted in these Software License Terms, and may
(physically or virtually) a software application to be accessed contain additional rights benefiting You, such as modification
by multiple users. “Instance” means a single copy of the and distribution of the open source software. The Third Party
Software executing at a particular time: (i) on one physical Terms shall take precedence over these Software License
machine; or (ii) on one deployed software virtual machine Terms, solely with respect to the applicable Third Party
(“VM”) or similar deployment. Components to the extent that these Software License Terms
impose greater restrictions on You than the applicable Third
Heritage Nortel Software
Party Terms.
“Heritage Nortel Software” means the software that was The following applies only if the H.264 (AVC) codec is distributed
acquired by Avaya as part of its purchase of the Nortel with the product. THIS PRODUCT IS LICENSED UNDER THE AVC
Enterprise Solutions Business in December 2009. The Heritage PATENT PORTFOLIO LICENSE FOR THE PERSONAL USE OF A
Nortel Software is the software contained within the list of CONSUMER OR OTHER USES IN WHICH IT DOES NOT RECEIVE
Heritage Nortel Products located at REMUNERATION TO (i) ENCODE VIDEO IN COMPLIANCE WITH
https://support.avaya.com/LicenseInfo under the link THE AVC STANDARD (“AVC VIDEO”) AND/OR (ii) DECODE AVC
“Heritage Nortel Products” or such successor site as VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A
designated by Avaya. For Heritage Nortel Software, Avaya PERSONAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO
grants Customer a license to use Heritage Nortel Software PROVIDER LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS
provided hereunder solely to the extent of the authorized GRANTED OR SHALL BE IMPLIED FOR ANY OTHER USE.
activation or authorized usage level, solely for the purpose ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA,
specified in the Documentation, and solely as embedded in, L.L.C. SEE HTTP://WWW.MPEGLA.COM.
for execution on, or for communication with Avaya
equipment. Charges for Heritage Nortel Software may be Service Provider
based on extent of activation or use authorized as specified in
an order or invoice. THE FOLLOWING APPLIES TO AVAYA CHANNEL PARTNER’S
HOSTING OF AVAYA PRODUCTS OR SERVICES. THE PRODUCT OR
Copyright HOSTED SERVICE MAY USE THIRD PARTY COMPONENTS
SUBJECT TO THIRD PARTY TERMS AND REQUIRE A SERVICE
Except where expressly stated otherwise, no use should be
PROVIDER TO BE INDEPENDENTLY LICENSED DIRECTLY FROM
made of materials on this site, the Documentation, Software,
THE THIRD PARTY SUPPLIER. AN AVAYA CHANNEL PARTNER’S
Hosted Service, or hardware provided by Avaya. All content
HOSTING OF AVAYA PRODUCTS MUST BE AUTHORIZED IN
on this site, the documentation, Hosted Service, and the
WRITING BY AVAYA AND IF THOSE HOSTED PRODUCTS USE
product provided by Avaya including the selection,
arrangement and design of the content is owned either by OR EMBED CERTAIN THIRD PARTY SOFTWARE, INCLUDING
Avaya or its licensors and is protected by copyright and other BUT NOT LIMITED TO MICROSOFT SOFTWARE OR CODECS,
intellectual property laws including the sui generis rights THE AVAYA CHANNEL PARTNER IS REQUIRED TO
relating to the protection of databases. You may not modify, INDEPENDENTLY OBTAIN ANY APPLICABLE LICENSE
copy, reproduce, republish, upload, post, transmit or AGREEMENTS, AT THE AVAYA CHANNEL PARTNER’S EXPENSE,
distribute in any way any content, in whole or in part, DIRECTLY FROM THE APPLICABLE THIRD PARTY SUPPLIER.
including any code and software unless expressly authorized
by Avaya. Unauthorized reproduction, transmission, WITH RESPECT TO CODECS, IF THE AVAYA CHANNEL PARTNER
dissemination, storage, and or use without the express IS HOSTING ANY PRODUCTS THAT USE OR EMBED THE H.264
written consent of Avaya can be a criminal, as well as a civil CODEC OR H.265 CODEC, THE AVAYA CHANNEL PARTNER
offense under the applicable law. ACKNOWLEDGES AND AGREES THE AVAYA CHANNEL
PARTNER IS RESPONSIBLE FOR ANY AND ALL RELATED FEES
Virtualization AND/OR ROYALTIES. THE H.264 (AVC) CODEC IS LICENSED
The following applies if the product is deployed on a virtual UNDER THE AVC PATENT PORTFOLIO LICENSE FOR THE
machine. Each product has its own ordering code and license PERSONAL USE OF A CONSUMER OR OTHER USES IN WHICH
types. Unless otherwise stated, each Instance of a product IT DOES NOT RECEIVE REMUNERATION TO: (I) ENCODE VIDEO
must be separately licensed and ordered. For example, if the IN COMPLIANCE WITH THE AVC STANDARD (“AVC VIDEO”)
end user customer or Avaya Channel Partner would like to AND/OR (II) DECODE AVC VIDEO THAT WAS ENCODED BY A
install two Instances of the same type of products, then two CONSUMER ENGAGED IN A PERSONAL ACTIVITY AND/OR
products of that type must be ordered. WAS OBTAINED FROM A VIDEO PROVIDER LICENSED TO
PROVIDE AVC VIDEO. NO LICENSE IS GRANTED OR SHALL BE
Third Party Components IMPLIED FOR ANY OTHER USE. ADDITIONAL INFORMATION
FOR H.264 (AVC) AND H.265 (HEVC) CODECS MAY BE
OBTAINED FROM MPEG LA, L.L.C. SEE HTTP:// Contact Avaya Support
WWW.MPEGLA.COM.
See the Avaya Support website: https://support.avaya.com
Compliance with Laws for product or Hosted Service notices and articles, or to report
a problem with your Avaya product or Hosted Service. For a
You acknowledge and agree that it is Your responsibility for
list of support telephone numbers and contact addresses, go
complying with any applicable laws and regulations, including,
to the Avaya Support website: https://support.avaya.com (or
but not limited to laws and regulations related to call
such successor site as designated by Avaya), scroll to the
recording, data privacy, intellectual property, trade secret,
bottom of the page, and select Contact Avaya Support.
fraud, and music performance rights, in the country or
territory where the Avaya product is used. Trademarks
Preventing Toll Fraud The trademarks, logos and service marks (“Marks”) displayed
in this site, the Documentation, Hosted Service(s), and
“Toll Fraud” is the unauthorized use of your
product(s) provided by Avaya are the registered or
telecommunications system by an unauthorized party (for
unregistered Marks of Avaya, its affiliates, its licensors, its
example, a person who is not a corporate employee, agent,
suppliers, or other third parties. Users are not permitted to
subcontractor, or is not working on your company's behalf).
use such Marks without prior written consent from Avaya or
Be aware that there can be a risk of Toll Fraud associated with
such third party which may own the Mark. Nothing contained
your system and that, if Toll Fraud occurs, it can result in
in this site, the Documentation, Hosted Service(s) and
substantial additional charges for your telecommunications
product(s) should be construed as granting, by implication,
services.
estoppel, or otherwise, any license or right in and to the
Avaya Toll Fraud intervention Marks without the express written permission of Avaya or the
applicable third party.
If You suspect that You are being victimized by Toll Fraud and
You need technical assistance or support, call Technical Avaya is a registered trademark of Avaya Inc.
Service Center Toll Fraud Intervention Hotline at +1-800-643-
2353 for the United States and Canada. For additional support
telephone numbers, see the Avaya Support website:
https://support.avaya.com or such successor site as
designated by Avaya. All non-Avaya trademarks are the property of their
Security Vulnerabilities respective owners. Linux® is the registered trademark of
Linus Torvalds in the U.S. and other countries.
Information about Avaya’s security support policies can be
found in the Security Policies and Support section of https:// Java is a registered trademark of Oracle and/or its affiliates.
support.avaya.com/security.
Suspected Avaya product security vulnerabilities are handled
per the Avaya Product Security Support Flow (https://
support.avaya.com/css/P8/documents/100161515).
Downloading Documentation
For the most current versions of Documentation, see the
Avaya Support website: https://support.avaya.com, or such
successor site as designated by Avaya.
Table of Contents
Chapter 1: Introduction ......................................................................................................................... 1
Intended Audience ............................................................................................................................ 1
What’s New / What’s Changed ....................................................................................................... 1
Chapter 2: REST Web services .......................................................................................................... 3
Service Version V3 (Non - secure) ................................................................................................. 3
Get System Contact ID of Contact .................................................................................. 3
Get Contact from List ...................................................................................................... 4
Delete Contact from List.................................................................................................. 5
Get Contact Attribute Value from List .............................................................................. 6
Update Contact Attribute Value to List ............................................................................ 8
Is Callable ....................................................................................................................... 9
Get Contact Batch from Contact List ............................................................................. 10
Get All Callbacks........................................................................................................... 12
Service Version : V4 ....................................................................................................................... 17
Get List of Contact Lists ................................................................................................ 17
Get Contact Batch from Contact List ............................................................................. 18
Fetch Contact List ID .................................................................................................... 20
Search and Sort List of Contact Lists ............................................................................ 21
Create Contact List ....................................................................................................... 23
Edit Contact List ............................................................................................................ 23
Delete Contact List........................................................................................................ 24
Get System Contact ID of Contact ................................................................................ 25
Get Attributes Associated with Contact List ................................................................... 26
Empty Contact List ........................................................................................................ 29
Get Contact List Empty Status ...................................................................................... 30
Get Contact from List .................................................................................................... 31
Save Contact to List ...................................................................................................... 33
Delete Contact from List................................................................................................ 36
Get Contact Attribute Value from List ............................................................................ 37
Update Contact Attribute Value to List .......................................................................... 38
Create Campaign .......................................................................................................... 40
Edit Campaign .............................................................................................................. 49
Edit Linked Campaign ................................................................................................... 58
Get Campaign Details ................................................................................................... 60
Clone Campaign ........................................................................................................... 67
Delete Campaign .......................................................................................................... 68
Search Campaign ......................................................................................................... 68
Schedule Campaign...................................................................................................... 70
Schedule Recurring Campaign ..................................................................................... 71
Run Campaign .............................................................................................................. 73
Pause Campaign Job .................................................................................................... 74
Resume Paused Campaign Job.................................................................................... 75
Stop Campaign Job ...................................................................................................... 75
Get Job Status .............................................................................................................. 76
Get Campaign ID .......................................................................................................... 77
Is Contact Exists in Active Job ...................................................................................... 78
Add Contact from Contact List to Job ............................................................................ 79
Remove Contact from Job ............................................................................................ 80
Add Contact List to Job ................................................................................................. 81
Remove Contact List from Job ...................................................................................... 82
Get Campaign Job Details ............................................................................................ 83
Get Campaign Jobs ...................................................................................................... 85
Get Active Campaign Jobs and Tasks .......................................................................... 86
Get Active Campaign Job TaskID for Task.................................................................... 87
Set Max Attempts Count for Task ................................................................................. 88
Get Campaign List for Org ............................................................................................ 89
Get Contact List Name for Campaign............................................................................ 89
Get All Data Sources for List ......................................................................................... 90
Get Details of Data Source ........................................................................................... 91
Create Data Source ...................................................................................................... 95
Edit Data Source ........................................................................................................... 99
Delete Data Source..................................................................................................... 103
Check Data Source ..................................................................................................... 103
Schedule Data Source ................................................................................................ 104
Schedule Recurring Data Source ................................................................................ 105
Is Callable ................................................................................................................... 107
Mark Callable .............................................................................................................. 107
Mark UnCallable ......................................................................................................... 108
Mark Contact List Callable .......................................................................................... 109
Mark Contact List UnCallable ...................................................................................... 110
Get List of All DNC Lists.............................................................................................. 111
Create DNC List .......................................................................................................... 111
Edit DNC List .............................................................................................................. 112
Is DNC ........................................................................................................................ 113
Add to DNC List .......................................................................................................... 114
Remove from DNC List ............................................................................................... 115
Delete DNC List .......................................................................................................... 116
List All DNC Groups .................................................................................................... 117
Search and Sort DNC Groups ..................................................................................... 118
Get DNC Group Details............................................................................................... 119
Add DNC Group .......................................................................................................... 120
Edit DNC Group .......................................................................................................... 120
Delete DNC Group ...................................................................................................... 121
Get List of Available DNC lists For Group ................................................................... 122
Associate DNC Lists to Group..................................................................................... 123
Dissociate DNC Lists from Group ............................................................................... 124
Get Default DNC List ID for Group .............................................................................. 125
Update Default DNC List for Group ............................................................................. 126
Add Address To DNC List using List ID ....................................................................... 127
Remove Address from DNC List using List ID ............................................................. 127
Is Address Existence in DNC List using List ID ........................................................... 128
Get Import Job Status ................................................................................................. 129
Get All Attributes ......................................................................................................... 131
Search Contact Attribute ............................................................................................. 137
Create Contact Attribute.............................................................................................. 140
Create Contact Attributes in Bulk ................................................................................ 142
Edit Contact Attribute .................................................................................................. 143
Generate CSV File for Contact Attributes .................................................................... 144
Delete Contact Attribute .............................................................................................. 145
Schedule Callback ...................................................................................................... 146
Get Callback Details ................................................................................................... 151
Extend Active Callback ............................................................................................... 152
Reschedule Expired Callback ..................................................................................... 153
Get All Callbacks......................................................................................................... 155
Edit Callback ............................................................................................................... 158
Bulk Edit Callback ....................................................................................................... 161
Delete Callback ........................................................................................................... 162
Terminate Callback ..................................................................................................... 163
Get Campaign Attributes List ...................................................................................... 164
Update Campaign Attribute ......................................................................................... 165
Get Agent Attributes List ............................................................................................. 166
Update Agent Attribute ................................................................................................ 167
Get All Completion Codes ........................................................................................... 168
Get All Completion Codes for Campaign ..................................................................... 169
Add Completion Code ................................................................................................. 170
Delete Completion Code ............................................................................................. 171
Edit Completion Code ................................................................................................. 172
Update Completion Code for Attempt.......................................................................... 173
Get All List of Campaign Strategies............................................................................. 174
Get List of Campaign Strategy Templates ................................................................... 178
Get Campaign Strategy XML ...................................................................................... 179
Add Campaign Strategy Using Template .................................................................... 179
Import or Update Campaign Strategy .......................................................................... 180
Delete Campaign Strategy by Name ........................................................................... 181
Delete Campaign Strategy By ID ................................................................................ 182
Clone Campaign Strategy by Name ............................................................................ 182
Clone Campaign Strategy By ID ................................................................................. 183
Get Completion Code ID ............................................................................................. 184
Get List of Organizations............................................................................................. 185
Get Organization Info by Name ................................................................................... 186
List Global Configuration ............................................................................................. 186
Get Global Config Parameter Value by Name ............................................................. 189
Update Global Config Parameter Value by Name ....................................................... 189
Update Global Config Parameter Values in Bulk ......................................................... 190
Get Global Config Parameter Value By ID .................................................................. 191
Update Global Config Parameter Value By ID ............................................................. 192
Get Jobs List ............................................................................................................... 192
Get Completion Code detail ........................................................................................ 195
Get Completion Code Trend ....................................................................................... 196
Get Agent State Summary .......................................................................................... 199
Get Agents List ........................................................................................................... 200
Set Agent Not Ready .................................................................................................. 205
Force Agent Logout .................................................................................................... 206
Release agent from Outbound .................................................................................... 207
Get Available Jobs for Agent ....................................................................................... 207
Move Agent to another Job ......................................................................................... 209
Get CCElite Outbound Skills List ................................................................................. 209
Get Job Parameters .................................................................................................... 211
Update Job Parameters .............................................................................................. 216
Add Holiday ................................................................................................................ 222
Edit Holiday................................................................................................................. 224
Get Holiday ................................................................................................................. 226
Get All Holidays .......................................................................................................... 228
Delete Holiday ............................................................................................................ 230
Holiday Association to Campaign ................................................................................ 230
Remove Holiday Association from Campaign ............................................................. 231
Set IgnoreAll Holiday to True/False for Campaign....................................................... 232
Get Agent Statistics View for Active Job ..................................................................... 233
Get Stats for Job and attached Contact Lists .............................................................. 236
Get Completion Code details for the Job and attached Contact lists ........................... 242
Get the RPC-Success-Closure counts for the Job and attached Contact lists ............. 246
Get the nuisance call info for the Job and attached Contact lists ................................. 249
Get the completion code details for the Agent at Contact List level ............................. 250
Get the RPC-Success-Closure counts for the Agent at Contact List level ................... 253
Add Filter Template..................................................................................................... 255
Edit Filter Template ..................................................................................................... 256
Get Filter Template Details ......................................................................................... 257
Get Filter Template List ............................................................................................... 258
Clone Filter Template .................................................................................................. 260
Delete Filter Template ................................................................................................. 261
Get Contact List Filter Template Associations for Campaign ....................................... 262
Get Contact List Filter Template Associations for Job ................................................. 263
Get Details of Filter Template Associated to a Job ...................................................... 264
Update Contact List Filter Template Associations for Campaign ................................. 265
Update Contact List Filter Template Associations for Job ........................................... 266
Update Filter Template Definition for Job .................................................................... 268
Get Filtered Contact Count for Contact List and Filter Template Association .............. 269
Get Filtered Contact Records for Contact List and Filter Template Association ........... 270
Create File Splitter ...................................................................................................... 275
Edit File Splitter ........................................................................................................... 279
Get List Of File Splitters .............................................................................................. 284
Get Details Of File Splitter ........................................................................................... 286
Delete File Splitter....................................................................................................... 290
Get List Of Schedules For File Splitter ........................................................................ 291
Schedule File Splitter .................................................................................................. 292
Schedule Recurring File Splitter .................................................................................. 293
Delete File Splitter Schedule ....................................................................................... 295
Analyze File Splitter .................................................................................................... 295
Save Contact Through Splitter .................................................................................... 296
Run File Splitter .......................................................................................................... 298
Download File Generated by Splitter ........................................................................... 299
Run Data Source ........................................................................................................ 300
Get Datasource ID From Name................................................................................... 300
Associate Organizations to Contact List ...................................................................... 301
Get Contact Attribute Details ....................................................................................... 302
Get Organization and Zone Mapping .......................................................................... 304
Agent Group Authorization .......................................................................................... 308
Get Agents Group ....................................................................................................... 309
Get Agents Group By Page ......................................................................................... 310
Get Agents Group By Search and Sort Page .............................................................. 311
Add Agent Group ........................................................................................................ 312
Delete Agent Group .................................................................................................... 313
Get Agent Group ......................................................................................................... 314
Update Agent Group ................................................................................................... 315
Get Agents for Agent Group ........................................................................................ 316
Add Agents to Group Association ............................................................................... 317
Delete Agents to Group Association............................................................................ 318
Get Agent Group For Organization.............................................................................. 320
Get Agent Group For User .......................................................................................... 321
Add Agent Group To User Association ........................................................................ 322
Remove Agent Group From User Association ............................................................. 323
Get Agent Group Configuration Param ....................................................................... 324
Get Agent List ............................................................................................................. 325
Get Authorization Details ............................................................................................ 326
Get Agent Configuration PollingTime .......................................................................... 326
Get Agents By Search Sort Page ................................................................................ 327
Get Agents .................................................................................................................. 329
Get Agent By ID .......................................................................................................... 330
Add Agent ................................................................................................................... 330
Delete Agent ............................................................................................................... 331
Delete Agents ............................................................................................................. 332
Get AACC Outbound Skills ......................................................................................... 333
Get Organization Agents ............................................................................................. 334
Add Organization Agents ............................................................................................ 336
Remove Organization Agents ..................................................................................... 337
Import Agents From AACC ......................................................................................... 338
Import Agents From CCelite ........................................................................................ 339
Get Import Agents Status ............................................................................................ 339
Get Import Details ....................................................................................................... 340
Stop Import ................................................................................................................. 341
Upload File To Import Agents...................................................................................... 342
Refresh Skills for All Agents ........................................................................................ 343
Refresh Skills for Set of Agents ................................................................................... 344
Upload File To Import Agents From Local ................................................................... 344
Get Connector Mode ................................................................................................... 345
Get Users.................................................................................................................... 346
Get Users For Organization ........................................................................................ 347
Get Supervisor Role .................................................................................................... 348
Get Purge List ............................................................................................................. 349
Get Purge List For Organization .................................................................................. 351
Get Purge Definitions .................................................................................................. 353
Update Purge Configurations ...................................................................................... 354
Purge Data Now.......................................................................................................... 357
Get Monitor Authorities ............................................................................................... 358
Get List of Agents assigned to the Supervisor ............................................................. 360
Get Attribute Based Parameters ................................................................................. 361
Get Topic Names for Org ............................................................................................ 362
REST API errors codes ................................................................................................................ 363
Chapter 3: Custom Connectors, Interface Definitions and Class Files ..................................... 385
Creating a Custom Data Import Connector ............................................................................... 385
Creating a Custom Class for Post Processing of Jobs ........................................................... 391
Creating a Custom Application Class for Custom Action ........................................................ 394
Creating a Custom Application Class for Custom Application Node ..................................... 395
Creating a Result Processor Custom class For Result Processor Node ............................. 396
Creating a Custom Class for Selector - Conditions Node ....................................................... 398
Creating a Custom Application Class for Custom Attempt Listener ...................................... 400
Creating a Custom Class for Custom Rule ............................................................................... 402
Creating a Custom Restrictions Class for Restrict Node ........................................................ 404
Creating a Custom Restrictions Class for Global Restriction Rule........................................ 406
Creating a Custom Connector Class for ActiveMQ Publish ................................................... 408
pomInfo Class Information ........................................................................................................... 413
pomResultInfo Class Information................................................................................................ 414
PomRuleInfo Class Information .................................................................................................. 415
PomRuleInputParameterInfo Class Information ....................................................................... 415
PomRuleResult Class Information.............................................................................................. 416
Chapter 4: Pluggable Data Connector ........................................................................................... 417
POM PDC Overview ..................................................................................................................... 417
Installing PDC ............................................................................................................. 417
Upgrading PDC ........................................................................................................... 417
Configuring PDC ......................................................................................................... 418
Using PDC Nodes ....................................................................................................... 420
Project Variables ......................................................................................................... 420
PDC nodes ..................................................................................................................................... 422
Get Contact Info .......................................................................................................... 422
Add Contact Info ......................................................................................................... 422
Get Phone Number ..................................................................................................... 424
Get Contact Attribute .................................................................................................. 424
Update Contact Attribute ............................................................................................. 425
Update Phone Number ............................................................................................... 425
Add Contact To Running Job ...................................................................................... 426
Add to DNC list ........................................................................................................... 427
Remove from DNC list ................................................................................................ 427
Update Disposition ...................................................................................................... 428
Chapter 1: Introduction
This guide includes REST API reference along with real time POM PDC and various custom
classes of Avaya Proactive Outreach Manager.

Intended Audience
This document is intended for users and development engineers who are involved in
customizing Avaya Proactive Outreach Manager through the web services, orchestration
designer, engagement designer applications and custom classes. This guide intends to give
further insight to developers implementing applications interacting with Proactive Outreach
Manager directly, in addition to what is explained in Reference guides.

What’s New / What’s Changed


Below sections are changed:
• Configuring PDC
• Creating a custom connector class for ActiveMQ Publish
• Below is the list of sections or APIs added or modified in POM 4.0 release:

REST API Name Existing (modified) or New

Get Attributes Associated with Contact List Modification

Get All Attributes Modification


Search Contact Attribute Modification
Create Contact Attribute Modification

Create Contact Attributes in Bulk Modification


Edit Contact Attribute Modification

Get Contact Attribute Details Modification


Update Job parameters Modification

Get Agent Statistics View for Active Job Modification


Save Contact To List Modification
Create File Splitter Modification
Edit File Splitter Modification
Create Data Source Modification
Edit Data Source Modification
Create Campaign Modification
Edit Campaign Modification
Get Campaign Details Modification
Schedule Campaign Modification

Avaya Proactive Outreach Manager Developer Guide 1


REST API Name Existing (modified) or New

Schedule Recurring Campaign Modification


Update Contact List Filter Template Associations for
Modification
Campaign
Save Contact Through Splitter New
Get Job Parameters New
Get Monitor Authorities New
Get Attribute Based Dialling Parameters New
Search and Sort List of Contact Lists Modified
Search Contact Attribute Modified
Refresh Skills for All Agents New
Refresh Skills for Set of Agents New

Get Contact from List Modified


Get Contact Batch from Contact List Modified
Save Contact to List Modified

Get Contact Attribute Value from List Modified


Update Contact Attribute Value to list Modified

Get Agents List Modified


Get Details of Data Source Modified

Get List of Agents assigned to the Supervisor New


Get Topic Names for Org New

Avaya Proactive Outreach Manager Developer Guide 2


Chapter 2: REST Web services
You can use REST Web services to perform POM configuration related activities. From POM
4.0 release, SOAP APIs are not supported. Only the REST web services will be supported for
existing or new POM functionalities. It is recommended to use RESTful APIs along with JSON
data format instead of axis2 and SOAP web services. Existing SOAP APIs may continue to
work, however they will not receive any updates and no fixes will be provided for them. If you
need to continue to use SOAP APIs until custom applications are changed to use REST APIs,
you will need to rebuild the SOAP clients using new axis2 1.7.9 for them to work with POM 4.0.

Note:
The configured EP user used for calling web services must have access to the entities like
contacts, campaigns, contact lists, campaign and attributes. The user created with predefined
POM Campaign manager role have access to most of the operations available through web
services.
With this release all services are now v4. All the services provided in previous releases with v3
URLs will still continue to function and will be supported.
Most of the services in v4 are same as in v3 having same url, body and response. Only the
non secure v3 services listed in the following section have different url and body in v4.

Service Version V3 (Non - secure)


Following services in v3 are non-secure, and hence it is advisable to use their v4 alternative

Get System Contact ID of Contact


GET /v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/id
The API retrieves system generated unique identifier of contact in specific contact list.

URL
https://<EP Server
IP>/VP_POM_Service/v3/contactlists/{contact_list_id}/contacts/{user_contact
_id/id/

Parameters
path
Parameter Required Description Data
Type
contact_list_id Yes The contact list ID int
user_contact_id Yes The user contact ID String

payload None

JSON response
Field name Description
systemContactID The system contact ID
Example

Avaya Proactive Outreach Manager Developer Guide 3


The example provided in this section is based on fetching system contact ID of contact having
user contact ID as acc10123 from contact list ID 3.
HTTP: GET /VP_POM_Service/v3/contactlists/3/contacts/acc10123/id
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"systemContactID":994}

__________________________________________________________________________________________
Get Contact from List
GET /v3/contactlists/{contact_list_id}/contacts/{user_contact_id}
The API provide contact record details for each attribute of the requested contact.

URL
https://<EP Server
IP>/VP_POM_Service/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID int
user_contact_id true The use contact ID for contact. string

payload None

JSON response
Field name Data Type
userContactID string
title string
firstName string
lastName string
phoneNumber1 string
phoneNumber1CtryCode int
phoneNumber1TimeZone string
phoneNumber2 string
phoneNumber2CtryCode int
phoneNumber2TimeZone string
email string
language string
addressLine1 to addressLine5 string
country string
zipcode string
contactStatusFlag string

Avaya Proactive Outreach Manager Developer Guide 4


Field name Data Type
lastAttemptTime string
lastSuccessfulAttemptTime string
createdBy string
lastModifiedOn string
lastModifiedBy string
lastContactCompletionCode string
lastContactCompletionCodeID int
counter int
lastAttrDialedAttrName string
lastHandledByAgentId string
lastNuisanceCallTime string
agentId string
customAttributeList List of CustomContactAttribute type
Member for each CustomContactAttribute contains below 3 fields:
attributeName - The name of custom contact attribute.
attributeType - The data type of attribute.
attributeValue - The value of custom contact attribute.
Example
The example provided in this section is based on fetching of contact record with user contact
ID 21030 of contact list ID 2 from POM server.
HTTP: GET /VP_POM_Service/v3/contactlists/2/contacts/21030 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"userContactID": "21030","systemContactID": 38167,"contactListID":
2,"contactListName": "dashboardCampRemLink01","title": null,"firstName":
"Mr","lastName": "Test","phoneNumber1": "2121215000","phoneNumber1CtryCode":
1,"phoneNumber1TimeZone": "Asia/Calcutta","phoneNumber2":
null,"phoneNumber2CtryCode": null,"phoneNumber2TimeZone": null,"phoneNumber1State":
null,"phoneNumber2State": null,"phoneNumber1Wireless": null,"phoneNumber2Wireless":
null,"email": "autopomreceiver1@pomdevmail.com","language": null,"addressLine1":
null,"addressLine2": null,"addressLine3": null,"addressLine4": null,"addressLine5":
null,"country": "pune","zipcode": null,"contactStatusFlag": null,"lastAttemptTime":
1601270706252,"lastSuccessfulAttemptTime":1601270720001,"createdBy":
"admin","lastModifiedOn": 1601270605794,"lastModifiedBy":
"admin","lastContactCompletionCode": "Answer_Human","lastContactCompletionCodeID":
13,"counter":
2,"lastAddrDialedAttrName":"phoneNumber1","lastHandledByAgentId":null,"lastNuisanceC
allTime":null,"sysAgentId":null,"customAttributeList":[{"attributeName":
"custom01","attributeType":"STRING","attributeValue":"custom0121030"},{"attributeNam
e":"phonenumber3","attributeType":"PHONE","attributeValue":"2121225139"}]}

__________________________________________________________________________________________
Delete Contact from List
POST
/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/delete

Avaya Proactive Outreach Manager Developer Guide 5


The API permanently delete a contact record from the POM database. lt supports deletion of
un-attempted in-queue contacts and processed contacts which are marked as done while the
campaign job is running. This web service might throw fault error “Cannot delete contact as
the attempt is in progress” even though contact list is not associated with campaign job. This
error appears only during campaign job initialization for few seconds. In such cases if retries
for 3 to 5 times are performed the fault error should allow contact deletion successfully.

URL
https://<EP Server
IP>/VP_POM_Service/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/dele
te

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID int
user_contact_id true The use contact ID for contact. string

payload None

JSON response
Field name Description
contactDeleted Returned true if contact deletion is successful.
Example
The example provided in this section is based on contact list ID 4 and user contact ID is 114
for the contact. The contact having user contact ID is being deleted.
HTTP: POST /VP_POM_Service/v3/contactlists/4/contacts/114/delete
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
RESPONSE JSON:
{"contactDeleted": true}

__________________________________________________________________________________________
Get Contact Attribute Value from List
GET
/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/attrib
utes/{attribute_name}
The API provides attribute value for provided contact ID and attribute name.

URL

Avaya Proactive Outreach Manager Developer Guide 6


https://<EP Server
IP>/VP_POM_Service/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/attr
ibutes/{attribute_name}

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID. int
user_contact_id true The user contact ID for contact. String
attribute_name true The attribute name for system or custom type of String
attribute. Valid values for system type of contact
attributes is below:
UserContactId
FirstName
LastName
PhoneNumber1
PhoneNumber1CtryCode
TimeZone
PhoneNumber2
PhoneNumber2CtryCode
PhoneNumber2Tz
Email
Language
TitlePredefined
AddrLine1Predefined
AddrLine2Predefined
AddrLine3Predefined
AddrLine4Predefined
AddrLine5Predefined
CountryPredefined
ZipcodePredefined
SysAgentId

payload None

JSON response
Field name Description
attributeValue The value for contact attribute.

Note:
The oracle system treats blank values (“”) in attributes as null. So the values provided in
request json may be stored as NULL in case of Oracle. While retrieving the attribute value
API will return blank (“”) for all type of supported databases.

Example
The example provided in this section is based on ZipCode system contact attribute for contact
list ID as 1 and user contact ID 1.
HTTP: GET
/VP_POM_Service/v3/contactlists/1/contacts/1/attributes/ZipCode
HTTP/1.1

Avaya Proactive Outreach Manager Developer Guide 7


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
RESPONSE JSON:
{"attributeValue":"300"}

__________________________________________________________________________________________
Update Contact Attribute Value to List
POST
/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/attrib
utes/{attribute_name}
The API updates value for given contact attribute for the contact record in specific contact list.

URL
https://<EP Server
IP>/VP_POM_Service/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/attr
ibutes/{attribute_name}

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID string
user_contact_id true The user contact ID for contact. string
attribute_name true The attribute name for custom or system type of string
attribute. Valid values for system type of contact
attributes is below:
UserContactId
FirstName
LastName
PhoneNumber1
PhoneNumber1CtryCode
TimeZone
PhoneNumber2
PhoneNumber2CtryCode
PhoneNumber2Tz
Email
Language
TitlePredefined
AddrLine1Predefined
AddrLine2Predefined
AddrLine3Predefined
AddrLine4Predefined
AddrLine5Predefined
CountryPredefined
ZipcodePredefined
SysAgentId
payload
Parameter Required Description Data
Type
contactAttributeValue true The new value for contact attribute. string

Avaya Proactive Outreach Manager Developer Guide 8


JSON response
Field name Description
updatedAttribute Returns true if update for contact attribute is successful.
Example
The example provided in this section is based on updating ZipCode custom attribute for contact
with user contact ID 1 for contact list ID 1.
HTTP: POST
/VP_POM_Service/v3/contactlists/1/contacts/1/attributes/ZipCode /
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"contactAttributeValue":"411013"}

RESPONSE JSON:
{"updatedAttribute":true}

__________________________________________________________________________________________
Is Callable
GET
/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/callab
le
The API allows to check contact callable status. It is suggested to use this API before marking
contact callable or uncallable.

URL
https://<EP Server
IP>/VP_POM_Service/v3/contactlists/{contact_list_id}/contacts/{user_contact_id}/call
able

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID. int
user_contact_id true The user contact ID for contact. string

payload None

JSON response
Field name Description
callable Returns true if contact found callable.
Example

Avaya Proactive Outreach Manager Developer Guide 9


The example provided in this section is based on contact list ID 1 and user contact ID 1, the
contact found callable as received in JSON response.
HTTP: GET /VP_POM_Service/v3/contactlists/1/contacts/1/callable
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"callable":true}

__________________________________________________________________________________________
Get Contact Batch from Contact List
GET /v3/contactlists/{contact_list_id}/contacts/list
The API provide list of contact in batches for specific contact list. The contact list ID needs to
be provided as input.

URL
https://<EP ServerIP>/VP_POM_Service/v3/contactlists/{contact_list_id}/contacts/list

Parameters
Path
Parameter Required Description Data
Type
contact_list_id Yes The contact list ID int

Query
Parameter Required Description Data
Type
pageSize No Default page size value is 10 contact records if not int
provided in request.
pageNumber No Default page number value is 1 if not provided in int
request.
sortBy No Default contactId (system contact ID) is used to sort the String
records fetched in response. Valid values include
contact attribute names associated with mentioned
contact list ID like predefined attributes firstName,
lastName, phoneNumber1, userContactId, etc and
custom attribute names.
sortDirection No By default, asc value is used. Valid values include asc String
and desc .
searchBy No Valid values include contact attribute names associated String
with mentioned contact list ID like predefined attributes
firstName, lastName, phoneNumber1, userContactId,
etc and custom attribute names.
searchOperator No Valid values in includes =, String
!=,>=,<=,>,<,in,between,notbetween,isnull,isnotnull,like,
notlike according to data type of the provided attribute.
searchValue No Any valid value according to selected search attribute. String

Avaya Proactive Outreach Manager Developer Guide 10


payload None

JSON response
Field name Description
contactBatch List of contacts according to criteria specified in request. Each contact
record in the batch has values for both predefined and custom attributes.
totalPage Total pages count according to pageSize and total contact present in
contact list.
Example
The example provided in this section is based on fetching contacts with search criteria based
on custom attribute callpending and true value.
HTTP: GET
/VP_POM_Service/v3/contactlists/1/contacts/list?searchBy=callpending
&searchOperator==&searchValue=true&sortBy=userContactId&sortDirectio
n=DESC&pageNumber=1
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
RESPONSE JSON:
{"contactBatch":[{"userContactID":"2001","systemContactID":1995,"contactListID":1,"c
ontactListName":"test","title":null,"firstName":"Brian","lastName":"Hillis",
"phoneNumber1":"7204809261","phoneNumber1CtryCode":1,"phoneNumber1TimeZone":"Asia/Ca
lcutta","phoneNumber2":"2134321434","phoneNumber2CtryCode":1,"phoneNumber2Ti
meZone":"MST","email":null,"language":null,"addressLine1":null,"addressLine2":null,"
addressLine3":null,"addressLine4":null,"addressLine5":null,"country":null,"zip
code":null,"contactStatusFlag":null,"lastAttemptTime":null,"lastSuccessfulAttemptTim
e":null,"createdBy":null,"lastModifiedOn":null,"lastModifiedBy":null,"lastCont
actCompletionCode":null,"lastContactCompletionCodeID":null,”counter”:null,”lastAddrD
ialedAttrName”:null,”lastHandledByAgentId”:null,”lastNuisanceCallTime”:null,
”sysAgentId”:”5819”,"customAttributeList":[{"attributeName":"company","attributeType
":"STRING","attributeValue":"99999"},{"attributeName":"test","attributeType":"LONG",
"attributeValue":"34234"},{"attributeName":"callpending","attributeType":"BOOLEAN","
attributeValue":"true"}]},{"userContactID":"1006","systemContactID":1000,
"contactListID":1,"contactListName":"test","title":null,"firstName":"KRISHNA","lastN
ame":"GOVINDARAJAN","phoneNumber1":"50005","phoneNumber1CtryCode":1,"phoneNumb
er1TimeZone":"Asia/Calcutta","phoneNumber2":"3298","phoneNumber2CtryCode":1,"phoneNu
mber2TimeZone":"Asia/Calcutta","email":"sadavarte@avaya.com","language":null,
"addressLine1":null,"addressLine2":null,"addressLine3":null,"addressLine4":null,"add
ressLine5":null,"country":null,"zipcode":null,"contactStatusFlag":null,
"lastAttemptTime":null,"lastSuccessfulAttemptTime":null,"createdBy":null,"lastModifi
edOn":null,"lastModifiedBy":null,"lastContactCompletionCode":null,"lastContact
CompletionCodeID":null,”counter”:null,”lastAddrDialedAttrName”:null,”lastHandledByAg
entId”:null,”lastNuisanceCallTime”:null,”sysAgentId”:”5819”,"customAttributeList"
:[{"attributeName":"callpending","attributeType":"BOOLEAN","attributeValue":"true"},
{"attributeName":"test","attributeType":"LONG","attributeValue":null},
{"attributeName":"company","attributeType":"STRING","attributeValue":"AVAYA"}]},{"us
erContactID":"10","systemContactID":10,"contactListID":1,"contactListName":

Avaya Proactive Outreach Manager Developer Guide 11


"test","title":null,"firstName":"ALAN","lastName":"BEIAGI","phoneNumber1":"50009","p
honeNumber1CtryCode":1,"phoneNumber1TimeZone":"America/Atka","phoneNumber2":
"3298","phoneNumber2CtryCode":1,"phoneNumber2TimeZone":"Asia/Calcutta","email":"sada
varte@avaya.com","language":null,"addressLine1":null,"addressLine2":null,
"addressLine3":null,"addressLine4":null,"addressLine5":null,"country":null,"zipcode"
:null,"contactStatusFlag":null,"lastAttemptTime":null,
"lastSuccessfulAttemptTime":null,"createdBy":null,"lastModifiedOn":null,"lastModifie
dBy":null,"lastContactCompletionCode":null,"lastContactCompletionCodeID":null,
”counter”:null,”lastAddrDialedAttrName”:null,”lastHandledByAgentId”:null,”lastNuisan
ceCallTime”:null,”sysAgentId”:”5819”,"customAttributeList":[{"attributeName":
"test","attributeType":"LONG","attributeValue":null},{"attributeName":"callpending",
"attributeType":"BOOLEAN","attributeValue":"true"},{"attributeName":"company",
"attributeType":"STRING","attributeValue":"AVAYA"}]}],"totalPage":1}

__________________________________________________________________________________________
Get All Callbacks
GET /v3/callbacks
The API provides list of callbacks present in the system.

URL
https://<EP Server IP>/VP_POM_Service/v3/callbacks

Parameters
Query
Parameter Required Description Data Type
pageSize (optional) No Number of records to be fetched from String
callback list. Max 100 callbacks per
request is allowed. If value is not provided
default page size used for calculating total
pages will be 10.
pageNumber (optional) No The page number for which records needs String
to be fetched. If value is not provided
default 1 will be used.
sortBy (optional) No Field name to be used for sorting the String
records. Possible values include below
names and datatypes:
"callback_id", "integer"
"contact_id", "integer
"status", "integer"
"callback_type", "integer"
"campaign_name", "string"
"created_by", "string"
"start_time", "date"
"end_time", "date"
"next_attempt_after", "date"
"select", "select"
sortDirection (optional) No Either asc and desc values are allowed for String
ascending and descending sort
respectively. If value is not provided DESC
will be used as default value.

Avaya Proactive Outreach Manager Developer Guide 12


searchBy (optional) No Field name to be used for searching the String
records. Possible values include below
names and datatypes:
"callback_id", "integer"
"contact_id", "integer
"status", "integer"
"callback_type", "integer"
"campaign_name", "string"
"created_by", "string"
"created_for", "string"
"start_time", "date"
"end_time", "date"
"next_attempt_after", "date"
"select", "select"
“address”,”string”
searchOperator (optional) No Below operator will be allowed according String
to type of field selected in SearchBy:
Callback ID, contact ID: =,!=,>=,<=,<,>,in,
between, not between, is null, is not null.
Campaign Name, Created By, Address :
=, !=, in, contains, begins with, ends with
is null, is
not null.
Type, State: =, !=, in, is null, is not null.
Next Attempt After, Start Time, End Time:
=,!=,>=,<=,<,>, is null, is not null.
searchValue (optional) No Value to be searched. Ensure to provide String
valid value according to data type of field
selected in Search By operator. Wild chars
like * , ~ are not valid.
timeZone (optional) No Required for dateTime type of fields. For String
example start time, end time, next attempt
after fields.
addressCountryCode No The address country code to be used String
(optional) when searching the records with address.
It should be numeric and without any
spaces or special characters.
advsearch(optional) No This new parameter is introduced to String
support multiple search criteria as existing
parameter “searchBy” supports only one.

This parameter value is JSON structure


string where multiple search criteria can
be provided. Refer example 2 for json
structure string. Each search criterion
consists of three parameters searchBy,
searchOperator and searchValue. Refer
the description of these fields(searchBy,
searchOperator and searchValue) in this
table.

In order to maintain the backward


compatibility existing “searchBy” in query
parameter is also supported.

Maximum 6 search criteria are supported


including existing search.
Duplicate search criteria is not supported.

Avaya Proactive Outreach Manager Developer Guide 13


Payload None

JSON response
Field name Description
callbackList List of items is returned; each item has fields listed below: Following
callback details will be returned by API.
The firstName and lastName is fetched only from predefined system
attributes of matched contact. The custom attributes for customer name
are not supported. The callbacks for deleted contacts will show firstName
and lastName as blank.

"callback_id": 20051,
"contact_id": 466,
"campaign_name": "callbackCampaign",
"callback_type": "Agent",
"status": "WaitingForJob",
"next_attempt_after": 1501662564000,
"start_time": 1500203400000,
"end_time": 1501669706000,
"created_by": "admin",
"created_for": "67011",
"user_contact_id": "2",
"contact_attribute_name": "phoneNumber1",
"address": "212121",
"agent_notes": "--- Wed Aug 07 16:22:13 IST 2019 --- Call-back Notes \n",
"contact_list_id": 108,
"contact_list_name": "externalSelectionCallback01",
"firstName": "ExtFN2",
"lastName": "ExtLN2"
totalPage Total Pages of callbackList response
Example
The example provided in this section gives the list of callbacks in system.
HTTP: GET /VP_POM_Service/v3/callbacks HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"callbackList": [
{
"callback_id": 18,
"contact_id": 6998,
"campaign_name": "CallbackCampaign",
"callback_type": "Agent",
"status": "Expired",
"next_attempt_after": null,
"start_time": 1501645680000,
"end_time": 1501648098000,

Avaya Proactive Outreach Manager Developer Guide 14


"created_by": "5850",
"user_contact_id": "51",
"contact_attribute_name": "phoneNumber1",
"address": "787890",
"agent_notes": "Default callback notes from sample desktop",
"contact_list_id": 2,
"contact_list_name": "ContactList2",
"firstName": "abdFN1",
"lastName": "abdLN1"
},
{
"callback_id": 20051,
"contact_id": 466,
"campaign_name": "Notification",
"callback_type": "Campaign",
"status": "WaitingForJob",
"next_attempt_after": 1501662564000,
"start_time": 1500203400000,
"end_time": 1501669706000,
"created_by": "admin",
"user_contact_id": "53",
"contact_attribute_name": "phoneNumber1",
"address": "878790",
"agent_notes": "Default callback notes from sample desktop",
"contact_list_id": 3,
"contact_list_name": "ContactList3",
"firstName": "abdFN1",
"lastName": "abdLN1"
} ],
"totalPage": 1
}

Example 2
This example explains how to provide multiple search criteria in URL

advsearch={
"searchList": [
{
"searchBy": "callback_type",
"searchOperator": "=",
"searchValue": "Strict Agent"
},
{
"searchBy": "address",
"searchOperator": "=",
"searchValue": "90000023"
},
{
"searchBy": "status",
"searchOperator": "in",
"searchValue": "Expired,Completed"
},
{
"searchBy": "status",
"searchOperator": "in",
"searchValue": "Expired"
}
]
}

Avaya Proactive Outreach Manager Developer Guide 15


IN URL:

https:// <EP Server


IP>/VP_POM_Service/v3/callbacks?pageSize=10&pageNumber=1&sortBy=callback_id&sortDirection=Desc&tim
eZone=GMT%2B05%3A30&advsearch={"searchList":[{"searchBy":"callback_type","searchOperator":
"=","searchValue":"Agent"},{"searchBy":"address","searchOperator":"=","searchValue":"90000023"},{"searchBy
":"status","searchOperator":"in","searchValue":"Expired,Completed"}]}

RESPONSE JSON:
{
"callbackList": [
{
"callback_id": 8,
"contact_id": 6998,
"campaign_name": "CallbackCampaign",
"callback_type": "Agent",
"status": "Expired",
"next_attempt_after": null,
"start_time": 1501645680000,
"end_time": 1501648098000,
"created_by": "5850",
"user_contact_id": "51",
"contact_attribute_name": "phoneNumber1",
"address": "90000023",
"agent_notes": "Default callback notes from sample desktop",
"contact_list_id": 2,
"contact_list_name": "ContactList2",
"firstName": "abdFN1",
"lastName": "abdLN1"
},
{
"callback_id": 3,
"contact_id": 466,
"campaign_name": "Notification",
"callback_type": "Agent",
"status": "Completed",
"next_attempt_after": 1501662564000,
"start_time": 1500203400000,
"end_time": 1501669706000,
"created_by": "admin",
"user_contact_id": "53",
"contact_attribute_name": "phoneNumber1",
"address": "90000023",
"agent_notes": "Default callback notes from sample desktop",
"contact_list_id": 3,
"contact_list_name": "ContactList3",
"firstName": "abdFN1",
"lastName": "abdLN1"
} ],
"totalPage": 1
}

Avaya Proactive Outreach Manager Developer Guide 16


Service Version : V4

For the non-secure services in V3, there is secure version in V4 and urls and payload data
for those secure services is changed in V4. For all other services, V4 has same urls, request
payloads and response as in V3.

Versioning and Supported Settings:

1. METHOD TYPE : GET/POST


2. Standard URL:
Must be “https” and use version v4 for 4.0 release
https://<POM IP address>/VP_POM_Service/v4/<resource-names>
3. AUTHORIZATION:
Type: Basic Auth
Username: admin or org users (EP user having role to access the resource and
specific operation)
Password: xxxxxx
4. HEADER:
Content-Type: application/json
X-Requested-With: RESTWeb (or rest)

__________________________________________________________________________________________
Get List of Contact Lists
GET /v4/contactlists
The API provides list of contact list created on POM system for given user organization. For non-org
user details for all contact list will be provided.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists

Parameters
path None
payload None

JSON response
List of items getListOfContactListDto is returned, each item has fields listed below:
Field name Description
contactListName The name of the contact list.
lastUpdated The last time run for import or empty of the contact data was completed.

Avaya Proactive Outreach Manager Developer Guide 17


Field name Description
totalContacts The total number of contacts in the contact list
availableContacts The contacts that are available for dialing. When you delete contacts from
excluded contacts list, they become available for dialing. So, Available
Contacts = Total Contacts - Excluded Contacts
excludedContacts The total number of contacts that are skipped for dialing after you mark them
as not callable.
allowedOrg The list of associated organizations with the contact list.
Example
The example provided in this section is based on the admin user.
HTTP: GET /VP_POM_Service/v4/contactlists HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"contactListName":"testCL","lastUpdated":1491385868367,"totalContacts":26,"availab
leContacts":0,"excludedContacts":0,"allowedOrg":[]},{"contactListName":"testCL1","la
stUpdated":1491453481677,"totalContacts":1000000,"availableContacts":0,"excludedCont
acts":0,"allowedOrg":[]},{"contactListName":"RestContactList","lastUpdated":14957890
50772,"totalContacts":18,"availableContacts":0,"excludedContacts":0,"allowedOrg":["h
r","sales"]},{"contactListName":"new","lastUpdated":1498543337908,"totalContacts":0,
"availableContacts":0,"excludedContacts":0,"allowedOrg":[]}]

__________________________________________________________________________________________

Get Contact Batch from Contact List


GET /v4/contactlists/{contact_list_id}/contacts/list
The API provide list of contact in batches for specific contact list. The contact list ID needs to
be provided as input.

URL
https://<EP ServerIP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts/list

Parameters
Path
Parameter Required Description Data
Type
contact_list_id Yes The contact list ID int

Payload
Parameter Type Description
pageSize String Default page size value is 10 contact records if not provided in
request.
pageNumber String Default page number value is 1 if not provided in request.
sortBy String Default contactId (system contact ID) is used to sort the records
fetched in response. Valid values include contact attribute names
associated with mentioned contact list ID like predefined

Avaya Proactive Outreach Manager Developer Guide 18


attributes firstName, lastName, phoneNumber1, userContactId,
etc and custom attribute names.
sortDirection String By default, asc value is used. Valid values include asc and desc
.
searchBy String Valid values include contact attribute names associated with
mentioned contact list ID like predefined attributes firstName,
lastName, phoneNumber1, userContactId, etc and custom
attribute names.
searchOperator String Valid values in includes =,
!=,>=,<=,>,<,in,between,notbetween,isnull,isnotnull,like, notlike
according to data type of the provided attribute.
searchValue String Any valid value according to selected search attribute.

JSON response
Field name Description
contactBatch List of contacts according to criteria specified in request. Each contact
record in the batch has values for both predefined and custom attributes.
totalPage Total pages count according to pageSize and total contact present in
contact list.
Example
The example provided in this section is based on fetching contacts with search criteria based
on custom attribute callpending and true value.
HTTP: GET /VP_POM_Service/v4/contactlists/1/contacts/list
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"searchBy" : "callpending",
"searchOperator" : "=",
"searchValue" : "true",
"sortBy" : "userContactId",
"sortDirection" : "DESC",
"pageNumber" : "1"

RESPONSE JSON:
{"contactBatch":[{"userContactID":"2001","systemContactID":1995,"contactListID":1,"c
ontactListName":"test","title":null,"firstName":"Brian","lastName":"Hillis",
"phoneNumber1":"7204809261","phoneNumber1CtryCode":1,"phoneNumber1TimeZone":"Asia/Ca
lcutta","phoneNumber2":"2134321434","phoneNumber2CtryCode":1,"phoneNumber2Ti
meZone":"MST","email":null,"language":null,"addressLine1":null,"addressLine2":null,"
addressLine3":null,"addressLine4":null,"addressLine5":null,"country":null,"zip

Avaya Proactive Outreach Manager Developer Guide 19


code":null,"contactStatusFlag":null,"lastAttemptTime":null,"lastSuccessfulAttemptTim
e":null,"createdBy":null,"lastModifiedOn":null,"lastModifiedBy":null,"lastCont
actCompletionCode":null,"lastContactCompletionCodeID":null,”counter”:null,”lastAddrD
ialedAttrName”:null,”lastHandledByAgentId”:null,”lastNuisanceCallTime”:null,
”sysAgentId”:”5819”,"customAttributeList":[{"attributeName":"company","attributeType
":"STRING","attributeValue":"99999"},{"attributeName":"test","attributeType":"LONG",
"attributeValue":"34234"},{"attributeName":"callpending","attributeType":"BOOLEAN","
attributeValue":"true"}]},{"userContactID":"1006","systemContactID":1000,
"contactListID":1,"contactListName":"test","title":null,"firstName":"KRISHNA","lastN
ame":"GOVINDARAJAN","phoneNumber1":"50005","phoneNumber1CtryCode":1,"phoneNumb
er1TimeZone":"Asia/Calcutta","phoneNumber2":"3298","phoneNumber2CtryCode":1,"phoneNu
mber2TimeZone":"Asia/Calcutta","email":"sadavarte@avaya.com","language":null,
"addressLine1":null,"addressLine2":null,"addressLine3":null,"addressLine4":null,"add
ressLine5":null,"country":null,"zipcode":null,"contactStatusFlag":null,
"lastAttemptTime":null,"lastSuccessfulAttemptTime":null,"createdBy":null,"lastModifi
edOn":null,"lastModifiedBy":null,"lastContactCompletionCode":null,"lastContact
CompletionCodeID":null,”counter”:null,”lastAddrDialedAttrName”:null,”lastHandledByAg
entId”:null,”lastNuisanceCallTime”:null,”sysAgentId”:”5819”,"customAttributeList"
:[{"attributeName":"callpending","attributeType":"BOOLEAN","attributeValue":"true"},
{"attributeName":"test","attributeType":"LONG","attributeValue":null},
{"attributeName":"company","attributeType":"STRING","attributeValue":"AVAYA"}]},{"us
erContactID":"10","systemContactID":10,"contactListID":1,"contactListName":
"test","title":null,"firstName":"ALAN","lastName":"BEIAGI","phoneNumber1":"50009","p
honeNumber1CtryCode":1,"phoneNumber1TimeZone":"America/Atka","phoneNumber2":
"3298","phoneNumber2CtryCode":1,"phoneNumber2TimeZone":"Asia/Calcutta","email":"sada
varte@avaya.com","language":null,"addressLine1":null,"addressLine2":null,
"addressLine3":null,"addressLine4":null,"addressLine5":null,"country":null,"zipcode"
:null,"contactStatusFlag":null,"lastAttemptTime":null,
"lastSuccessfulAttemptTime":null,"createdBy":null,"lastModifiedOn":null,"lastModifie
dBy":null,"lastContactCompletionCode":null,"lastContactCompletionCodeID":null,
”counter”:null,”lastAddrDialedAttrName”:null,”lastHandledByAgentId”:null,”lastNuisan
ceCallTime”:null,”sysAgentId”:”5819”,"customAttributeList":[{"attributeName":
"test","attributeType":"LONG","attributeValue":null},{"attributeName":"callpending",
"attributeType":"BOOLEAN","attributeValue":"true"},{"attributeName":"company",
"attributeType":"STRING","attributeValue":"AVAYA"}]}],"totalPage":1}

To use this service with no data in request payload, then empty json request body should be
used

Example
REQUEST JSON:
{
}

__________________________________________________________________________________________
Fetch Contact List ID
POST /v4/contactlists/id
The API provides system generated unique identifier of contact list. The ID fetched using this
API can be used for saving, update, fetch or delete contacts, updating attributes values,
exclude, empty contact list related REST apis.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/id

Parameters

Avaya Proactive Outreach Manager Developer Guide 20


path None
payload
Parameter Required Data Type
contactListName String The name of contact list for which ID needs to be
retrieved.
JSON response
Field name Description
contactListID The unique identifier of contact list name provided by user
Example
The example provided in this section is based on extracting contact list unique ID for existing
list list_Campaign_Callback_Preserve_02
HTTP: POST /VP_POM_Service/v4/contactlists/id HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{ "contactListName": "list_Campaign_Callback_Preserve_02" }

RESPONSE JSON:
{"contactListID":104}
__________________________________________________________________________________________
Search and Sort List of Contact Lists
GET
/v4/contactlists?sortBy={sort_by}&sortDirection={ASC}&searchBy={sear
ch_by}&searchOperator={operator}&searchValue={value}
The API fetches list of contact list according to search and sort criteria mentioned in the
request.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists?sortBy={sort_by}&sortDirection={ASC}&searchBy={se
arch_by}&searchOperator={operator}&searchValue={value}

Parameters
Query
Parameter Required Description Data
Type
sortBy No Valid values include contactListId, contactListName, String
zoneName, lastUpdateOn, organizationName,
totalContacts and totalExcludedContacts. By
default, contactListId is used.
sortDirection No Valid values include asc and desc. String
searchBy No Valid values include contactListId, contactListName, String
zoneName, lastUpdateOn, organizationName,

Avaya Proactive Outreach Manager Developer Guide 21


totalContacts and totalExcludedContacts. By
default, contactListId is used.
searchOperator No Valid operator are =,!=,in,like,notlike,is null,is not String
null,>,<
searchValue No Valid value according to type of attribute used in String
search by parameter.

The searchValue will be ignored in backend if using


is null or is not null as operator. Provide blank as
searchValue.

SearchOperator supported for searchBy


searchBy searchOperator
contactListId =,!=,in,>,<
contactListName =,!=, in,like,notlike
zoneName =,!=, in,like,notlike
lastUpdateOn =,!=,is null, is not null,>,<
organizationName =,!=,in,like,notlike,is null, is not null
totalContacts =,!=,in,>,<
totalExcludedContacts =,!=,in,>,<

payload None

JSON response
Field name Description
List of contact lists Each contact list will have contactListId, contactListName, lastUpdateOn,
totalContacts, availableContacts, totalExcludedContacts, organizationName
and zoneName.
Example
The example provided in this section is based searching contact list equals specific name and
sorted by name in asending order.
HTTP: GET
/VP_POM_Service/v4/contactlists?sortBy=contactListName&sortDirection
=ASC&searchBy=contactListName&searchOperator=in&searchValue=SearchLi
st
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
RESPONSE JSON:
[{
"contactListId":69,
"contactListName":"SearchList",
"lastUpdateOn":"2018-07-01 18:18:14.8650000 +05:30",
"totalContacts":5,

Avaya Proactive Outreach Manager Developer Guide 22


"availableContacts":5,
"totalExcludedContacts":0,
"organizationName":null,
"zoneName":"Default"
}]
__________________________________________________________________________________________
Create Contact List
POST /v4/contactlists
It creates new contact list on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists

Parameters
path None
payload
Parameter Required Data Type
name Yes String
description No String
zoneName Yes String
JSON response
Field name Description
contactListID ID of new contact list.
Example
The example provided in this section is based creating contact list with name
newRestContactList for Default zone
HTTP: POST /VP_POM_Service/v4/contactlists HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"name": "newResContactList",
"description": "This is a description for a new contact list created",
"zoneName": "Default"
}

RESPONSE JSON:
{"contactListID":3}
__________________________________________________________________________________________
Edit Contact List
POST /v4/contactlists/{contact_list_id}
It updates existing contact list on POM system.

URL

Avaya Proactive Outreach Manager Developer Guide 23


https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}

Parameters
path
Parameter Required Description Data
Type
contact_list_id Yes The contact list ID int

payload
Parameter Required Data Type
description No String
zoneName Yes String
JSON response
Field name Description
result Returns true on success
Example
The example provided in this section will change zone of contact list with ID 3 to Pune zone
and new description
HTTP: POST /VP_POM_Service/v4/contactlists/3 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"description": "Changed description",
"zoneName": "Pune"
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Delete Contact List
POST /v4/contactlists/{contact_list_id}/delete
It deletes existing contact list from POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/delete

Parameters
path
Parameter Required Description Data
Type
contact_list_id Yes The contact list ID int

payload None

Avaya Proactive Outreach Manager Developer Guide 24


JSON response
Field name Description
result Returns true on success
Example
The example provided in this section will delete contact list with ID 3 from POM system.
HTTP: POST /VP_POM_Service/v4/contactlists/3/delete HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Get System Contact ID of Contact
GET /v4/contactlists/{contact_list_id}/contacts/id
The API retrieves system generated unique identifier of contact in specific contact list.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts/id/

Parameters
path
Parameter Required Description Data
Type
contact_list_id Yes The contact list ID int

Payload
Parameter Required Description Data
Type
userContactId true The user contact ID for contact. string

JSON response
Field name Description
systemContactID The system contact ID
Example
The example provided in this section is based on fetching system contact ID of contact having
user contact ID as acc10123 from contact list ID 3.
HTTP: GET /VP_POM_Service/v4/contactlists/3/contacts/id HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json

Avaya Proactive Outreach Manager Developer Guide 25


X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"userContactId":"acc10123"}

RESPONSE JSON:
{"systemContactID":994}
________________________________________________________________________________________

Get Attributes Associated with Contact List


GET /v4/contactlists/{contact_list_id}/contactattributes
The API provides list of contact attributes associated with provided contact list.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contactattributes

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID int

payload None

JSON response
Field name Description
attributeID The system generated unique ID for the attribute.
attributeName The name of contact attribute.
attributeDataType The data type of the attribute.
The minimum and the maximum values for each data type are:
INTEGER: The minimum value is -2,147,483,648, and the maximum value
is 2,147,483,647 (both values inclusive).

LONG: The minimum value is -9,223,372,036,854,775,808, and the


maximum value is 9,223,372,036,854,775,807 (both values inclusive).

SHORT: The minimum value is -32,768, and the maximum value is 32,767
(both values inclusive).

CHARACTER: A single character is allowed.

FLOAT: 28 precisions and 10 scale. This means 28 characters before the


decimal and 10 characters after the decimal point.

Note:
You cannot enter a float value as a combination on numbers and
alphabets. For example, 123.4f is not a valid float value.

Avaya Proactive Outreach Manager Developer Guide 26


Field name Description
BOOLEAN: The allowed values are TRUE and FALSE, or YES and NO,
or T and F, or Y and N, or 0 and 1.

STRING: Any string up to 3990 characters.

PHONE: Valid phone number up to 80 characters. The system has two


predefined attributes; Phone 1 and Phone 2, for specifying the phone
number. Use this to specify an alternate phone number. When you add a
phone attribute, POM adds 2 child attributes, xxx_ctry_code and xxx_tz,
where xxx is name of the phone attribute.

EMAIL: Any string up to 80 characters.

DATE: Date in the valid format.


Note:
The date format must match the date part specified in the Global Date
Format field on the Manage Global Configuration page under POM Home
> Configurations > Global Configurations.

For example, to specify a custom attribute, Date_Of_Birth, then use the


Date data type.

TIME: Time in the valid format.


Note:
The time format must match the time part specified in the Global Date
Format field on the Manage Global Configuration page under POM Home
> Configurations > Global Configurations.

For example, to specify a custom attribute, Delivery_Time, then use the


Time data type.

TIMESTAMP: Timestamp in the valid format.


Note:
The timestamp must match with the timestamp part specified in the Global
Date Format field on the Manage Global Configuration page under POM
Home > Configurations > Global Configurations.

For example, to specify a custom attribute, Schedule, then use the


Timestamp field.

If you specify the Global Date Format as DD-MM-YYYY hh:mm:ss, then


the valid date format considers DD-MM-YYYY, the valid time format
considers hh:mm:ss, and the valid timestamp considers DD:MM:YYYY
hh:mm:ss.
attributeType The attribute is system defined or user defined.(Custom/Predefined)
displayName The display name of contact attribute. For custom type of attribute, it is
same as attribute name.
masked The masked attribute not visible to agent. Returned true in case contact
attribute is not visible to agent.
readonly The contact attribute is not editable for logged in agent if true is returned.
sensitive True/false. Defines if the attribute is private.
maskedForAllUsers The attribute is masked and not visible to users. Returned true in case
contact attribute is not visible to users.
Example
Avaya Proactive Outreach Manager Developer Guide 27
The example provided in this section is based on contact list ID 1 and configured with custom
and system contact attributes.
HTTP: GET /v4/contactlists/1/contactattributes HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"attributeID":"47","attributeName":"phonenumber3_tz","attributeDataType":"STRING",
"attributeType":"Custom","displayName":"phonenumber3_tz","masked":false,"readonly":f
alse,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"50","attributeName":"phonenumber3_wireless","attributeDataType":"B
OOLEAN","attributeType":"Custom","displayName":"phonenumber3_wireless","masked":fals
e,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"45","attributeName":"phonenumber3","attributeDataType":"PHONE","at
tributeType":"Custom","displayName":"phonenumber3","masked":false,"readonly":false,"
sensitive":false, "maskedForAllUsers": false
},{"attributeID":"2","attributeName":"user_contact_id","attributeDataType":"STRING",
"attributeType":"Predefined","displayName":"ID","masked":false,"readonly":true,"sens
itive":false, "maskedForAllUsers": false
},{"attributeID":"46","attributeName":"phonenumber3_ctry_code","attributeDataType":"
INTEGER","attributeType":"Custom","displayName":"phonenumber3_ctry_code","masked":fa
lse,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"5","attributeName":"last_name","attributeDataType":"STRING","attri
buteType":"Predefined","displayName":"Last
Name","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"20","attributeName":"language","attributeDataType":"STRING","attri
buteType":"Predefined","displayName":"Language","masked":false,"readonly":false,"sen
sitive":false, "maskedForAllUsers": false
},{"attributeID":"28","attributeName":"phone_number2_state","attributeDataType":"STR
ING","attributeType":"Predefined","displayName":"Phone 2
State","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"49","attributeName":"phonenumber3_state","attributeDataType":"STRI
NG","attributeType":"Custom","displayName":"phonenumber3_state","masked":false,"read
only":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"13","attributeName":"time_zone","attributeDataType":"STRING","attr
ibuteType":"Predefined","displayName":"Time
Zone","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"15","attributeName":"phone_number2","attributeDataType":"PHONE","a
ttributeType":"Predefined","displayName":"Phone
2","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"16","attributeName":"phone_number2_ctry_code","attributeDataType":
"INTEGER","attributeType":"Predefined","displayName":"Phone 2 Country
Code","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"27","attributeName":"phone_number1_state","attributeDataType":"STR
ING","attributeType":"Predefined","displayName":"Phone 1
State","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"29","attributeName":"phone_number1_wireless","attributeDataType":"
STRING","attributeType":"Predefined","displayName":"Phone 1
Wireless","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers":
false
},{"attributeID":"3","attributeName":"title_predefined","attributeDataType":"STRING"
,"attributeType":"Predefined","displayName":"Title
Predefined","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers":
false

Avaya Proactive Outreach Manager Developer Guide 28


},{"attributeID":"12","attributeName":"phone_number1_ctry_code","attributeDataType":
"INTEGER","attributeType":"Predefined","displayName":"Phone 1 Country
Code","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"4","attributeName":"first_name","attributeDataType":"STRING","attr
ibuteType":"Predefined","displayName":"First
Name","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"17","attributeName":"phone_number2_tz","attributeDataType":"STRING
","attributeType":"Predefined","displayName":"Phone 2 Time Zone
","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"19","attributeName":"email","attributeDataType":"EMAIL","attribute
Type":"Predefined","displayName":"E-
Mail","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"6","attributeName":"addr_line1_predefined","attributeDataType":"ST
RING","attributeType":"Predefined","displayName":"Address Line 1
Predefined","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers":
false
},{"attributeID":"11","attributeName":"phone_number1","attributeDataType":"PHONE","a
ttributeType":"Predefined","displayName":"Phone
1","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers": false
},{"attributeID":"30","attributeName":"phone_number2_wireless","attributeDataType":"
STRING","attributeType":"Predefined","displayName":"Phone 2
Wireless","masked":false,"readonly":false,"sensitive":false, "maskedForAllUsers":
false }]
__________________________________________________________________________________________
Empty Contact List
POST /v4/contactlists/{contact_list_id}/empty
The API starts job on POM server to empty the contact list.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/empty

Parameters
Path
Parameter Required Description Data Type
contact_list_id true The contact list ID int
Query
Parameter Data Default Required Description
Type Value
pauseAssociatedCampaigns String false No If pauseAssociatedCampaigns is
(optional) set to “true”, all the running
campaigns associated with the
contact list will be paused, contact
list will be emptied and the paused
campaigns will be resumed again.

Note: Use this option with caution. It


is recommended that the use of this
option should be prohibited when
dialing is in progress. If the
campaign jobs fail to pause within a
stipulated timeout interval, then they
might remain in PAUSING/PAUSED
state until they are manually
resumed.

Avaya Proactive Outreach Manager Developer Guide 29


ignoreActiveExcludeContacts String false No If ignoreActiveExcludeContacts is
(optional) set to “true”, contact list will be
emptied ignoring all the active
exclude contacts in the contact list.
ignoreCallbackOnContacts String false No If ignoreCallbackOnContacts is set
(optional) to “true”, contact list will be emptied
ignoring all the callbacks on the
contacts in the contact list.
payload None

JSON response
Field name Description
result The result for empty operation. Returns true if job for emptying contact list
is created successfully.
totalContacts The total number of contacts in the contact list.
Example
The following example is based on emptying the contact list ID 3 without specifying any query
parameter.
HTTP: POST /VP_POM_Service/v4/contactlists/3/empty HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true,"totalContacts":1000000}

The following example is based on on emptying the contact list ID 5 with query parameters
specified.
HTTP: POST /VP_POM_Service/v4/contactlists/5/empty
?pauseAssociatedCampaigns=true&ignoreActiveExcludeContacts=true&igno
reCallbackOnContacts=true HTTP/1.1

Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true,"totalContacts":2000000}

_________________________________________________________________________________________
Get Contact List Empty Status
GET /v4/contactlists/{contact_list_id}/emptystatus
The API provides status for running empty job for provided contact list ID.

URL

Avaya Proactive Outreach Manager Developer Guide 30


https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/emptystatus

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID Int

payload None

JSON response
Field name Description
contactListStatus The current status for empty job created for contact list. For example:
LIST_BEING_EMPTIED is returned if empty job is in progress. Else
LIST_BEING_IDLE is assigned for status.
remainingContacts The number of contacts remaining in the contact list.
Example
The example provided in this section is based on getting empty job status for contact list ID 2.
HTTP: GET /VP_POM_Service/v4/contactlists/2/emptystatus/ HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"contactListStatus":"LIST_BEING_EMPTIED","remainingContacts":988000}

__________________________________________________________________________________________
Get Contact from List
GET /v4/contactlists/{contact_list_id}/contacts
The API provide contact record details for each attribute of the requested contact.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID int

Payload
Parameter Required Description Data
Type
userContactId true The user contact ID for contact. string

Avaya Proactive Outreach Manager Developer Guide 31


JSON response
Field name Data Type
userContactID string
title string
firstName string
lastName string
phoneNumber1 string
phoneNumber1CtryCode int
phoneNumber1TimeZone string
phoneNumber2 string
phoneNumber2CtryCode int
phoneNumber2TimeZone string
email string
language string
addressLine1 to addressLine5 string
country string
zipcode string
contactStatusFlag string
lastAttemptTime string
lastSuccessfulAttemptTime string
createdBy string
lastModifiedOn string
lastModifiedBy string
lastContactCompletionCode string
lastContactCompletionCodeID int
counter int
lastAttrDialedAttrName string
lastHandledByAgentId string
lastNuisanceCallTime Date
agentId string
customAttributeList List of CustomContactAttribute type
Member for each CustomContactAttribute contains below 3 fields:
attributeName - The name of custom contact attribute.
attributeType - The data type of attribute.
attributeValue - The value of custom contact attribute.
Example
The example provided in this section is based on fetching of contact record with user contact
ID 21030 of contact list ID 2 from POM server.
HTTP: GET /VP_POM_Service/v4/contactlists/2/contacts HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"userContactId":"21030"}

Avaya Proactive Outreach Manager Developer Guide 32


RESPONSE JSON:
{"userContactID": "21030",
"systemContactID": 38167,
"contactListID": 2,
"contactListName": "dashboardCampRemLink01",
"title": null,
"firstName": "Mr",
"lastName": "Test",
"phoneNumber1": "2121215000",
"phoneNumber1CtryCode": 1,
"phoneNumber1TimeZone": "Asia/Calcutta",
"phoneNumber2": null,
"phoneNumber2CtryCode": null,
"phoneNumber2TimeZone": null,
"phoneNumber1State": null,
"phoneNumber2State": null,
"phoneNumber1Wireless": null,
"phoneNumber2Wireless": null,
"email": "autopomreceiver1@pomdevmail.com",
"language": null,
"addressLine1": null,
"addressLine2": null,
"addressLine3": null,
"addressLine4": null,
"addressLine5": null,
"country": "pune",
"zipcode": null,
"contactStatusFlag": null,
"lastAttemptTime":1601270706252,
"lastSuccessfulAttemptTime":1601270720001,
"createdBy": "admin",
"lastModifiedOn": 1601270605794,
"lastModifiedBy": "admin",
"lastContactCompletionCode": "Answer_Human",
"lastContactCompletionCodeID": 13,
"counter":2,
"lastAddrDialedAttrName":"phoneNumber1",
"lastHandledByAgentId":null,
"lastNuisanceCallTime":null,
"sysAgentId":null,
"customAttributeList":[{"attributeName":"custom01","attributeType":"STRING","attribu
teValue":"custom0121030"},{"attributeName":"phonenumber3","attributeType":"PHONE","a
ttributeValue":"2121225139"}]}
__________________________________________________________________________________________

Save Contact to List


POST /v4/contactlists/{contact_list_id}/contacts
The API to add a new contact, or update an existing contact for provided contact list ID.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts

Parameters
path

Avaya Proactive Outreach Manager Developer Guide 33


Parameter Required Description Data Type
contact_list_id true The contact list ID String
payload
Parameter Required Data Type
userContactID true String
title No String
firstName No String
lastName No String
phoneNumber1 No String
phoneNumber1CtryCode No Int
phoneNumber1TimeZone No String
phoneNumber2 No String
phoneNumber2CtryCode No Int
phoneNumber2TimeZone No String
email No String
language No String
addressLine1 to addressLine5 No String
country No String
zipcode No String
lastAttemptTime No String
lastSuccessfulAttemptTime No String
lastContactCompletionCodeID No Int
Please note this value could get overwritten during
campaign execution on completion code updates.
automaticUpdateTimezone No Boolean
updateExistingContact true Boolean
checkRejectPattern No Boolean
checkPhoneFormatRule No Boolean
checkDNC No Boolean
customAttributeList No List of CustomContactAttribute
Member for each custom attribute contains below 2
fields:
attributeName - The name of custom contact attribute.
attributeValue - The value of custom contact attribute.
cleanupPhoneNumber No Boolean
If enabled, POM will clean up non numeric characters
from provided phone number values.
emptyPhOnRuleMatch No Boolean
If enabled, POM will empty phone on match with reject
patterns or phone formats rule.
emptyInvalidEmail No Boolean
If enabled, POM will empty invalid email addresses.
counter No int
lastAddrDialedAttrName No String
lasthandledByAgentID No String
lastNuisanceCallTime No Date
sysAgentId No String
JSON response
Field name Description
SystemContactID Returns system contact ID of the added or modified contact.
emptiedAttributes List of phone numbers / emails that are emptied out by POM.
For example-

Avaya Proactive Outreach Manager Developer Guide 34


Field name Description

"emptiedAttributes": [

{"attrName": "PHONE2", "importStatus":


"phone_format_failed", "failDesc": null },
{"attrName": "EMAIL", "importStatus": "validation_failed",
"failDesc": "Import/Add/Update for Contact ID 647 failed.
Potential cause for failure column E-Mail contains invalid
value"
}

Note:
The oracle system treats blank values (“”) in attributes as null. So the values provided in
request json may be stored as NULL in case of Oracle.

Example
The example provided in this section is based on saving user contact ID 1126 to contact list ID
2.
HTTP: POST /VP_POM_Service/v4/contactlists/2/contacts HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"userContactID": "1126",
"title": "MR",
"firstName": "FName",
"lastName": "LName",
"phoneNumber1": null,
"phoneNumber1CtryCode": null,
"phoneNumber1TimeZone": null,
"phoneNumber2": null,
"phoneNumber2CtryCode": null,
"phoneNumber2TimeZone": null,
"email": "test@test.com",
"language": null,
"addressLine1": null,
"addressLine2": null,
"addressLine3": null,
"addressLine4": null,
"addressLine5": null,
"country": null,
"zipcode": null,
"customAttributeList": [{
"attributeName": "City",
"attributeValue": "Mumbai" },
{
"attributeName": "BloodGroup",

Avaya Proactive Outreach Manager Developer Guide 35


"attributeValue": "" },
{
"attributeName": "customEmail",
"attributeValue": "abc@pom.com"
} ],
"automaticUpdateTimezone":false,
"updateExistingContact": true,
"checkRejectPattern": false,
"checkPhoneFormatRule": false,
"checkDNC": false,
"sysAgentId": 65001
}

RESPONSE JSON:
{"SystemContactID":242,"emptiedAttributes": null }
_________________________________________________________________________________________

Delete Contact from List


POST /v4/contactlists/{contact_list_id}/contacts/delete
The API permanently delete a contact record from the POM database. lt supports deletion of
un-attempted in-queue contacts and processed contacts which are marked as done while the
campaign job is running. This web service might throw fault error “Cannot delete contact as
the attempt is in progress” even though contact list is not associated with campaign job. This
error appears only during campaign job initialization for few seconds. In such cases if retries
for 3 to 5 times are performed the fault error should allow contact deletion successfully.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts/delete

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID int

Payload
Parameter Required Description Data
Type
userContactId true The user contact ID for contact. string

JSON response
Field name Description
contactDeleted Returned true if contact deletion is successful.
Example
The example provided in this section is based on contact list ID 4 and user contact ID is 114
for the contact. The contact having user contact ID is being deleted.
HTTP: POST /VP_POM_Service/v4/contactlists/4/contacts/delete HTTP/1.1

Avaya Proactive Outreach Manager Developer Guide 36


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"userContactId":"114"}

RESPONSE JSON:
{"contactDeleted": true}

__________________________________________________________________________________________
Get Contact Attribute Value from List
GET
/v4/contactlists/{contact_list_id}/contacts/attributes/{attribute_na
me}
The API provides attribute value for provided contact ID and attribute name.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts/attributes/{attribute_
name}

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID. int
attribute_name true The attribute name for system or custom type of String
attribute. Valid values for system type of contact
attributes is below:
UserContactId
FirstName
LastName
PhoneNumber1
PhoneNumber1CtryCode
TimeZone
PhoneNumber2
PhoneNumber2CtryCode
PhoneNumber2Tz
Email
Language
TitlePredefined
AddrLine1Predefined
AddrLine2Predefined
AddrLine3Predefined
AddrLine4Predefined
AddrLine5Predefined
CountryPredefined
ZipcodePredefined
SysAgentId

Avaya Proactive Outreach Manager Developer Guide 37


Payload
Parameter Required Description Data
Type
userContactId true The user contact ID for contact. string

JSON response
Field name Description
attributeValue The value for contact attribute.

Note:
The oracle system treats blank values (“”) in attributes as null. So the values provided in
request json may be stored as NULL in case of Oracle. While retrieving the attribute value
API will return blank (“”) for all type of supported databases.

Example
The example provided in this section is based on ZipCode system contact attribute for contact
list ID as 1 and user contact ID 1.
HTTP: GET
/VP_POM_Service/v4/contactlists/1/contacts/attributes/ZipCode
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"userContactId":"1"}

RESPONSE JSON:
{"attributeValue":"300"}

__________________________________________________________________________________________
Update Contact Attribute Value to List
POST
/v4/contactlists/{contact_list_id}/contacts/attributes/{attribute_na
me}
The API updates value for given contact attribute for the contact record in specific contact list.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts/attributes/{attribute_
name}

Parameters
path

Avaya Proactive Outreach Manager Developer Guide 38


Parameter Required Description Data Type
contact_list_id true The contact list ID string
attribute_name true The attribute name for custom or system type of string
attribute. Valid values for system type of contact
attributes is below:
UserContactId
FirstName
LastName
PhoneNumber1
PhoneNumber1CtryCode
TimeZone
PhoneNumber2
PhoneNumber2CtryCode
PhoneNumber2Tz
Email
Language
TitlePredefined
AddrLine1Predefined
AddrLine2Predefined
AddrLine3Predefined
AddrLine4Predefined
AddrLine5Predefined
CountryPredefined
ZipcodePredefined
SysAgentId
payload
Parameter Required Description Data
Type
userContactId true The user contact ID for contact. string
contactAttributeValue true The new value for contact attribute. string
JSON response
Field name Description
updatedAttribute Returns true if update for contact attribute is successful.
Example
The example provided in this section is based on updating ZipCode custom attribute for contact
with user contact ID 1 for contact list ID 1.
HTTP: POST
/VP_POM_Service/v4/contactlists/1/contacts/attributes/ZipCode
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"userContactId":"1",
"contactAttributeValue":"411013"}

RESPONSE JSON:
{"updatedAttribute":true}

Avaya Proactive Outreach Manager Developer Guide 39


__________________________________________________________________________________________
Create Campaign
POST /v4/campaigns
This web service creates a campaign with the properties provided.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns

Parameters
Path – None

Payload
Parameter Type Description
A unique identifier for the
campaignName String campaign

A short description of the


campaign or purpose of the
campaignDesc String campaign.
Contact List Name(s) for finite
Campaign or infinite campaign with
contactLists List contact list

Campaign types available are


Finite, InfiniteWithContacts,
campaignType String InfiniteWithoutContacts.

The Campaign Strategies that are


campaignStrategy String in "Completed" state only

Select to filter the contact record


based on attribute and Agent ID.
Valid values are Attributes and
contactRecordAssignmentToAgent Array AgentID
If Attributes is selected for
contactRecordAssignmentToAgent
attributesForContactRecordAssignme then list of custom attributes are
ntToAgent List required.

If AgentID is selected for


contactRecordAssignmentToAgent
agentIDForContactRecordAssignment then provide custom attribute
ToAgent String which contains Agent ID

applyDNC Boolean To Apply DNC at Campaign level.


List of all DNC groups for applying
dncGroupsForCampaign List to Campaign
Default DNC group when Agent
defaultDNCGroup String mark any contact as DNC

Avaya Proactive Outreach Manager Developer Guide 40


Publish the contact attempt data to
Context Store. Valid values are
publishAttemptDataToContextStore Boolean True/False.
Mapping of zones and EPM to be
zoneEPMList List used
Prefix to dial such as the country
dialingPrefix String code or area code.
Specify when the Call
Classification Analysis (CCA) can
start. Valid values are
CCA_START_ON_CONNECT and
ccaStartType String CCA_START_ON_PROGRESS
Use to specify the CCA timeout
value. This value depends on the
On Connect and On Progress
values. You can set CCA timeout
value in the range 5000 and 20000
milliseconds for CCA On Connect
and 5000 to 45000 milliseconds for
ccaTimeout Integer CCA On Progress.
Enable or disable the compliance
enableComplianceTimers Boolean timers.
Start Of Voice timer. The combined
value of the Start of Voice Timeout
(milliseconds) and Live Voice
Timeout (milliseconds) cannot be
startOfVoiceTimeOut Integer more than the CCA Timeout value.

Live Voice timer. The combined


value of the Start of Voice Timeout
(milliseconds) and Live Voice
Timeout (milliseconds) cannot be
liveVoiceTimeOut Integer more than the CCA Timeout value.

smsPrefix String Prefix before sending out the SMS.


Use AMD False Positive Rate to
specify the false positives and is
used in the nuisance rate
falsePositiveRateAMD Double calculation.
When Consider Answer Machine
By Agent is True, such calls are
considered in the Nuisance rate
considerAnswerMachineByAgent Boolean calculations.
Specify the attributes to sort the
data either in ascending or
descending order.
{
"attrName": "ContactId",
sortCriteriaAttributeList List "sortOrder": "desc"

Avaya Proactive Outreach Manager Developer Guide 41


}
Valid attrName values are contact
attributes
Valid sortOrder values are -
asc/desc
If true, POM starts dialing only
after it finishes filtering all records
based on the filter criteria
pauseDialingDuringRecordSelection Boolean specified.
If you specify more than one filter
condition, provide value for this
field. Valid values are – ALL, ANY
filterCriteriaConditonType String or CUSTOM

Used when CUSTOM is condition


type is given. A combination of
contact attributes to filter the
records. Eg. If you have 4
conditions, 1, 2, 3, and 4, then you
cannot write custom criteria as: (1
filterConditions String and 2) OR (1 and 3).
Provide Filter Criteria Attributes in
JSON format.
{
"filterAttributeName": "DateAttr",
"filterAttributeValue":"03132018",
"filterOperator": "=",
"filterDateFormat": "MMDDYYYY"
}
filterAttributeName have valid
values “classPropertyName” field
for system pre defined attributes
and attributename for custom
attributes from "Get All Attributes"
Rest API Response.
Note: Attributes changes for each
filterCriteriaAttributeList List Individual contactlist.
Provide list of custom completion
completionCodes List codes with a campaign.

Provide list of all the completion


codes (System and Custom) not to
completionCodesExcludedForAttempt be considered while calculating
Calculation List attempts.
Provide list of agent Address Book
agentAddressBook List entries with a Campaign.
Provide Time based finish criteria
in json format.
timeBasedFinishCriteria Object {

Avaya Proactive Outreach Manager Developer Guide 42


"abortAfterHrs": 22,
"abortAfterMins": 44
}

checkTimeBasedFinishCriteriaForPau Check Time Based Finish Criteria


sedCampaign for Paused Campaign
If you specify more than one finish
completion code condition, provide
value for this field. Valid values are
finishCompletionCodeConditonType String – ALL, ANY or CUSTOM
Used when CUSTOM is condition
type is given. A combination of
contact attributes to filter the
records. Eg. If you have 4
conditions, 1, 2, 3, and 4, then you
cannot write custom criteria as: (1
finishCompletionCodeConditions String and 2) OR (1 and 3).
Completion Code based finish
criteria. Completion Codes to be
used in setting Finish Criteria and
accordingly type your criteria.
JSON format,
[{
"completionCodeName": "c12",
"completionCodeValue": "12"
finishCompletionCodeCriteriaList List }]
If you specify more than one finish
completion code condition, provide
value for this field. Valid values are
finishGoalConditonType String – ALL, ANY or CUSTOM

Used when CUSTOM is condition


type is given. A combination of
contact attributes to filter the
records. Eg. If you have 4
conditions, 1, 2, 3, and 4, then you
cannot write custom criteria as: (1
finishGoalConditions String and 2) OR (1 and 3).
Goal Based finish Criteria. Contact
Attributes to be used in setting
Finish Criteria and accordingly type
your criteria. JSON format,
{
"contactAttributeName": "b_int",
"contactAttributeValue": "33"
finishGoalCriteriaList List }

exportContacts Boolean Enable to export the Contact


Valid values include,
exportDataColumns List “classPropertyName” field for

Avaya Proactive Outreach Manager Developer Guide 43


system pre defined attributes and
attributename for custom attributes
from "Get All Attributes" Rest API
Response.
Below list of additional values:
ALL, ContactListName,
ContactAttemptTime,
CompletionCode, AttemptedField,
AttemptedAddress,
NuisanceCallFlag, POMSessionId,
AttemptType, CallStartTime,
RingbackStartTime,
CallConnectTime,
CallCompletionTime,
StartOfVoiceOffset,
FirstPromptOffset,
LastNetworkDispositionTime,
UCID, POMAgentLoginID
Note: Attributes changes for
conatctlists.

List of Completion Codes for


export. Valid values includes value
“ALL” and values of “name” field
from "Get All Completion Codes"
exportDataCompletionCodes List Rest API Response.
Provide fully resolved class Name
(e.g.
com.avaya.pom.custom.myPostPr
ocessor) implementing the custom
postProcessorClass String post processing interface.

Attributes for Event SDK or


recorderAttributes List Recorder
Enable it in case recorder
sendAttributesToEventSDKRecorder Boolean attributes are required.
Optional parameter. If given valid
campaign id, it will be linked to the
linkedCampaignId Integer campaign, otherwise taken as null.
Outbound skill ID of the agent to
whome the call should be
assigned.

This is not applicable for Agentless


agtOutboundSkillMapId Integer campaigns.
The From Address to be displayed
fromAddress String to the Customer

The Sender’s display name for the


fromDisplayName String customer.
Mapping of contact list, filter
filterTemplateAssocList List template and dialing allocation

Avaya Proactive Outreach Manager Developer Guide 44


Set true if you want to apply the
filter template from first association
applySameFilterTemplateToAll Boolean to all the associations
Set true if you want to disable the
disableDiallingAllocation Boolean dialing allocation.
External transfer option, it can be
‘ContextStoreID’ or
externalTransferData String ‘UserContactID’

Optional parameter. Specifies


export frequency. Valid values
includes EXPORT_AT_JOB_END,
HOURLY, EVERY_N_MINS,
exportFrequencyType String DAILY_AT

Optional parameter.Specifies
export frequency value.For
example valid value for
exportFrequencyValue is 02:00 if
exportFrequencyType is
DAILY_AT. Or if
exportFrequencyType is
EVERY_N_MINS valid value for
exportFrequencyValue is for
example ,15.For
exportFrequencyType
EXPORT_AT_JOB_END or
HOURLY exportFrequencyValue
exportFrequencyValue String should be null.

JSON response
Field name Description
campaignID The unique ID of new campaign.
Example
The example provided in this section is to create a campaign with provided JSON.
HTTP: POST /VP_POM_Service/v4/campaigns
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"campaignName": "RestCampaign",
"campaignDesc": null,
"contactLists": [
"list1"
],
"campaignType": "Finite",
"campaignStrategy": "Preview",
"contactRecordAssignmentToAgent": [

Avaya Proactive Outreach Manager Developer Guide 45


"Attributes",
"AgentID"
],
"publishAttemptDataToContextStore": false,
"attributesForContactRecordAssignmentToAgent": [
"city",
"State",
"company"
],
"agentIDForContactRecordAssignmentToAgent": "BloodGroup",
"applyDNC": true,
"dncGroupsForCampaign": [
"Common DNC List Group",
"CC DNC List Group",
"DNCGroup2",
"HR DNC List Group"
],
"defaultDNCGroup": "CC DNC List Group",
"zoneEPMList": [
{
"zoneName": "Default",
"epmServersForZone": [
"EPM(DC1)"
]
}
],
"dialingPrefix": "91",
"ccaStartType": "CCA_START_ON_CONNECT",
"ccaTimeout": 7500,
"enableComplianceTimers": true,
"startOfVoiceTimeOut": 2000,
"liveVoiceTimeOut": 1800,
"smsPrefix": null,
"falsePositiveRateAMD": 3,
"considerAnswerMachineByAgent": true,
"sortCriteriaAttributeList": [
{
"attrName": "ContactId",
"sortOrder": "desc"
},
{
"attrName": "FirstName",
"sortOrder": "asc"
},
{
"attrName": "attr",
"sortOrder": "desc"
}
],
"pauseDialingDuringRecordSelection": true,
"filterCriteriaConditonType": "ALL",
"filterConditions": null,
"filterCriteriaAttributeList": [
{
"filterAttributeName": "BG",
"filterOperator": "isnull"
},
{

Avaya Proactive Outreach Manager Developer Guide 46


"filterAttributeName": "DateAttr",
"filterAttributeValue":"03132018",
"filterOperator": "=",
"filterDateFormat": "MMDDYYYY"
},
{
"filterAttributeName": "FirstName",
"filterAttributeValue": "Ramkrishna",
"filterOperator": "!="
}
],
"completionCodes": [
"cc16",
"c13",
"cc9",
"cc7",
"c11",
"c12",
"cc6",
"cc10",
"c14",
"cc15",
"cc8"
],
"completionCodesExcludedForAttemptCalculation": [
"BgrndAMD_Nuisance_Call",
"bbbbb",
"Answer_Human",
"Attempt_Timeout",
"All_Contact_Addresses_Empty",
"c12",
"Desktop_Error",
"Attempt_Skip_By_Agent",
"c11",
"AMD_Application_Played",
"Attempt_In_Progress",
"Answer_Machine",
"Application_Error"
],
"agentAddressBook": [
"agentAddress1",
"agentAddress3",
"agentAddress2"
],
"timeBasedFinishCriteria": {
"abortAfterHrs": 22,
"abortAfterMins": 44
},
"checkTimeBasedFinishCriteriaForPausedCampaign": true,
"finishCompletionCodeConditonType": "ALL",
"finishCompletionCodeConditions": null,
"finishCompletionCodeCriteriaList": [
{
"completionCodeName": "c12",
"completionCodeValue": "12"
},
{
"completionCodeName": "Answer_Human",

Avaya Proactive Outreach Manager Developer Guide 47


"completionCodeValue": "34"
}
],
"finishGoalConditonType": "ANY",
"finishGoalConditions": null,
"finishGoalCriteriaList": [
{
"contactAttributeName": "b_int",
"contactAttributeValue": "33"
},
{
"contactAttributeName": "b_long",
"contactAttributeValue": "55"
}
],
"exportContacts": true,
"exportDataColumns": [
"AttemptedField",
"BloodGroup",
"CallCompletionTime",
"CallConnectTime",
"AttemptedAddress",
"attr"
],
"exportDataCompletionCodes": [
"Answer_Machine",
"AMD_Application_Played",
"Answer_Human",
"Application_Error",
"All_Contact_Addresses_Empty",
"Desktop_Error"
],
"postProcessorClass": "com.avaya.pom.custom.myPostProcessor",
"sendAttributesToEventSDKRecorder": true,
"recorderAttributes": [
"DateAttr",
"BloodGroup",
"Email",
"emailCust",
"city",
"FirstName",
"company",
"landline",
"UserContactId"
],
"linkedCampaignId": 99,
"agtOutboundSkillMapId": null,
"fromAddress": "123",
"fromDisplayName": "123",
"externalTransferData": "ContextStoreID",
"exportFrequencyType": "DAILY_AT",
"exportFrequencyValue": "02:00"

RESPONSE JSON:
{

Avaya Proactive Outreach Manager Developer Guide 48


"campaignID": 2579
}
Note:
If Advanced List and Campaign Management feature is enabled, do not use any of
contactLists, filterConditions, filterCriteriaConditonType, filterCriteriaAttributeList or
sortCriteriaAttributeList parameters in request, instead use filterTemplateAssocList which
specifies mapping of contact list, filter template and dialing allocation.
Do not set disableDiallingAllocation if applySameFilterTemplateToAll is not set.

If Advanced List and Campaign Management feature is disabled, do not use any of
filterTemplateAssocList, applySameFilterTemplateToAll or disableDiallingAllocation in
request.

Example for extra parameters if Advanced List and Campaign Management feature is
enabled :
{
"filterTemplateAssocList": [
{
"contactList": "contactList1",
"filterTemplateName": "filterTemplate1",
"dialingAllocation": 100
}
{
"contactList": "contactList2",
"filterTemplateName": "filterTemplate2",
"dialingAllocation": 100
}
],
"applySameFilterTemplateToAll": true,
"disableDiallingAllocation": true
}
__________________________________________________________________________________________

Edit Campaign
POST /v4/campaigns/{campaignId}
This web service edits a campaign with the properties provided. Campaign Name is non-
editable.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaignId}

Parameters
Path – None

Payload
Parameter Type Description
A short description of the
campaign or purpose of the
campaignDesc String campaign.

Avaya Proactive Outreach Manager Developer Guide 49


Contact List Name(s) for finite
Campaign or infinite campaign with
contactLists List contact list
Campaign types available are
Finite, InfiniteWithContacts,
campaignType String InfiniteWithoutContacts.

The Campaign Strategies that are


campaignStrategy String in "Completed" state only

Select to filter the contact record


based on attribute and Agent ID.
Valid values are Attributes and
contactRecordAssignmentToAgent Array AgentID
If Attributes is selected for
contactRecordAssignmentToAgent
attributesForContactRecordAssignme then list of custom attributes are
ntToAgent List required.
If AgentID is selected for
contactRecordAssignmentToAgent
agentIDForContactRecordAssignment then provide custom attribute
ToAgent String which contains Agent ID

applyDNC Boolean To Apply DNC at Campaign level.


List of all DNC groups for applying
dncGroupsForCampaign List to Campaign
Default DNC group when Agent
defaultDNCGroup String mark any contact as DNC
Publish the contact attempt data to
Context Store. Valid values are
publishAttemptDataToContextStore Boolean True/False.
Mapping of zones and EPM to be
zoneEPMList List used

Prefix to dial such as the country


dialingPrefix String code or area code.
Specify when the Call
Classification Analysis (CCA) can
start. Valid values are
CCA_START_ON_CONNECT and
ccaStartType String CCA_START_ON_PROGRESS
Use to specify the CCA timeout
value. This value depends on the
On Connect and On Progress
values. You can set CCA timeout
value in the range 5000 and 20000
milliseconds for CCA On Connect
and 5000 to 45000 milliseconds for
ccaTimeout Integer CCA On Progress.

Avaya Proactive Outreach Manager Developer Guide 50


Enable or disable the compliance
enableComplianceTimers Boolean timers.
Start of Voice timer. The combined
value of the Start of Voice Timeout
(milliseconds) and Live Voice
Timeout (milliseconds) cannot be
startOfVoiceTimeOut Integer more than the CCA Timeout value.
Live Voice timer. The combined
value of the Start of Voice Timeout
(milliseconds) and Live Voice
Timeout (milliseconds) cannot be
liveVoiceTimeOut Integer more than the CCA Timeout value.

smsPrefix String Prefix before sending out the SMS.


Use AMD False Positive Rate to
specify the false positives and is
used in the nuisance rate
falsePositiveRateAMD Double calculation.
When Consider Answer Machine
By Agent is True, such calls are
considered in the Nuisance rate
considerAnswerMachineByAgent Boolean calculations.

Specify the attributes to sort the


data either in ascending or
descending order.
{
"attrName": "ContactId",
"sortOrder": "desc"
}
Valid attrName values are contact
attributes
Valid sortOrder values are -
sortCriteriaAttributeList List asc/desc
If true, POM starts dialing only
after it finishes filtering all records
based on the filter criteria
pauseDialingDuringRecordSelection Boolean specified.
If you specify more than one filter
condition, provide value for this
field. Valid values are – ALL, ANY
filterCriteriaConditonType String or CUSTOM
Used when CUSTOM is condition
type is given. A combination of
contact attributes to filter the
records. Eg. If you have 4
conditions, 1, 2, 3, and 4, then you
cannot write custom criteria as: (1
filterConditions String and 2) OR (1 and 3).

Avaya Proactive Outreach Manager Developer Guide 51


Provide Filter Criteria Attributes in
JSON format.
{
"filterAttributeName": "DateAttr",
"filterAttributeValue":"03132018",
"filterOperator": "=",
"filterDateFormat": "MMDDYYYY"
filterCriteriaAttributeList List }
Provide list of custom completion
completionCodes List codes with a campaign.
Provide list of all the completion
codes (System and Custom) not to
completionCodesExcludedForAttempt be considered while calculating
Calculation List attempts.
Provide list of agent Address Book
agentAddressBook List entries with a Campaign.
Provide Time based finish criteria
in json format.
{
"abortAfterHrs": 22,
"abortAfterMins": 44
timeBasedFinishCriteria Object }

checkTimeBasedFinishCriteriaForPau Check Time Based Finish Criteria


sedCampaign for Paused Campaign
If you specify more than one finish
completion code condition, provide
value for this field. Valid values are
finishCompletionCodeConditonType String – ALL, ANY or CUSTOM
Used when CUSTOM is condition
type is given. A combination of
contact attributes to filter the
records. Eg. If you have 4
conditions, 1, 2, 3, and 4, then you
cannot write custom criteria as: (1
finishCompletionCodeConditions String and 2) OR (1 and 3).

Completion Code based finish


criteria. Completion Codes to be
used in setting Finish Criteria and
accordingly type your criteria.
JSON format,
[{
"completionCodeName": "c12",
"completionCodeValue": "12"
finishCompletionCodeCriteriaList List }]
If you specify more than one finish
finishGoalConditonType String completion code condition, provide

Avaya Proactive Outreach Manager Developer Guide 52


value for this field. Valid values are
– ALL, ANY or CUSTOM
Used when CUSTOM is condition
type is given. A combination of
contact attributes to filter the
records. Eg. If you have 4
conditions, 1, 2, 3, and 4, then you
cannot write custom criteria as: (1
finishGoalConditions String and 2) OR (1 and 3).
Goal Based finish Criteria. Contact
Attributes to be used in setting
Finish Criteria and accordingly type
your criteria. JSON format,
{
"contactAttributeName": "b_int",
"contactAttributeValue": "33"
}
finishGoalCriteriaList List

exportContacts Boolean Enable to export the Contact

exportDataColumns List List of contact attributes for export


List of Completion Codes for
exportDataCompletionCodes List export
Provide fully resolved class Name
(e.g.
com.avaya.pom.custom.myPostPr
ocessor) implementing the custom
postProcessorClass String post processing interface.

Attributes for Event SDK or


recorderAttributes List Recorder

Enable it in case recorder


sendAttributesToEventSDKRecorder Boolean attributes are required.
Optional parameter. If given valid
campaign id, it will be linked to the
linkedCampaignId Integer campaign, otherwise taken as null.
Mapping of contact list, filter
filterTemplateAssocList List template and dialing allocation

Outbound skill ID of the agent to


whome the call should be
assigned.
This is not applicable for Agentless
agtOutboundSkillMapId Integer campaigns.
The From Address to be displayed
fromAddress String to the Customer
The Sender’s display name for the
fromDisplayName String customer.

Avaya Proactive Outreach Manager Developer Guide 53


Set true if you want to apply the
filter template from first association
applySameFilterTemplateToAll Boolean to all the associations
Set true if you want to disable the
disableDiallingAllocation Boolean dialing allocation.
External transfer option, it can be
‘ContextStoreID’ or
externalTransferData String ‘UserContactID’

Optional parameter. Specifies


export frequency. Valid values
includes EXPORT_AT_JOB_END,
HOURLY, EVERY_N_MINS,
exportFrequencyType String DAILY_AT

Optional parameter.Specifies
export frequency value.For
example valid value for
exportFrequencyValue is 02:00 if
exportFrequencyType is
DAILY_AT. Or if
exportFrequencyType is
EVERY_N_MINS valid value for
exportFrequencyValue is for
example ,15.For
exportFrequencyType
EXPORT_AT_JOB_END or
HOURLY exportFrequencyValue
exportFrequencyValue String should be null.

JSON response
Field name Description
result It returns true on success.
Example
The example provided in this section is to edit a campaign with provided JSON.
Note:
When campaign is in paused state, edit campaign web service does not allow to change
parameters on record selection page
Following parameters will not be changed after edit campaign web service :
sortCriteriaAttributeList, pauseDialingDuringRecordSelection, filterCriteriaConditonType,
filterConditions, filterCriteriaAttributeList

HTTP: POST /VP_POM_Service/v4/campaigns/{campaignId} HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{

Avaya Proactive Outreach Manager Developer Guide 54


"campaignDesc": null,
"contactLists": [
"list1"
],
"campaignType": "Finite",
"campaignStrategy": "Preview",
"contactRecordAssignmentToAgent": [
"Attributes",
"AgentID"
],
"publishAttemptDataToContextStore": false,
"attributesForContactRecordAssignmentToAgent": [
"city",
"State",
"company"
],
"agentIDForContactRecordAssignmentToAgent": "BloodGroup",
"applyDNC": true,
"dncGroupsForCampaign": [
"Common DNC List Group",
"CC DNC List Group",
"DNCGroup2",
"HR DNC List Group"
],
"defaultDNCGroup": "CC DNC List Group",
"zoneEPMList": [
{
"zoneName": "Default",
"epmServersForZone": [
"EPM(DC1)"
]
}
],
"dialingPrefix": "91",
"ccaStartType": "CCA_START_ON_CONNECT",
"ccaTimeout": 7500,
"enableComplianceTimers": true,
"startOfVoiceTimeOut": 2000,
"liveVoiceTimeOut": 1800,
"smsPrefix": null,
"falsePositiveRateAMD": 3,
"considerAnswerMachineByAgent": true,
"sortCriteriaAttributeList": [
{
"attrName": "ContactId",
"sortOrder": "desc"
},
{
"attrName": "FirstName",
"sortOrder": "asc"
},
{
"attrName": "attr",
"sortOrder": "desc"
}
],
"pauseDialingDuringRecordSelection": true,
"filterCriteriaConditonType": "ALL",

Avaya Proactive Outreach Manager Developer Guide 55


"filterConditions": null,
"filterCriteriaAttributeList": [
{
"filterAttributeName": "BG",
"filterOperator": "isnull"
},
{
"filterAttributeName": "DateAttr",
"filterAttributeValue":"03132018",
"filterOperator": "=",
"filterDateFormat": "MMDDYYYY"
},
{
"filterAttributeName": "FirstName",
"filterAttributeValue": "Ramkrishna",
"filterOperator": "!="
}
],
"completionCodes": [
"cc16",
"c13",
"cc9",
"cc7",
"c11",
"c12",
"cc6",
"cc10",
"c14",
"cc15",
"cc8"
],
"completionCodesExcludedForAttemptCalculation": [
"BgrndAMD_Nuisance_Call",
"bbbbb",
"Answer_Human",
"Attempt_Timeout",
"All_Contact_Addresses_Empty",
"c12",
"Desktop_Error",
"Attempt_Skip_By_Agent",
"c11",
"AMD_Application_Played",
"Attempt_In_Progress",
"Answer_Machine",
"Application_Error"
],
"agentAddressBook": [
"agentAddress1",
"agentAddress3",
"agentAddress2"
],
"timeBasedFinishCriteria": {
"abortAfterHrs": 22,
"abortAfterMins": 44
},
"checkTimeBasedFinishCriteriaForPausedCampaign": true,
"finishCompletionCodeConditonType": "ALL",
"finishCompletionCodeConditions": null,

Avaya Proactive Outreach Manager Developer Guide 56


"finishCompletionCodeCriteriaList": [
{
"completionCodeName": "c12",
"completionCodeValue": "12"
},
{
"completionCodeName": "Answer_Human",
"completionCodeValue": "34"
}
],
"finishGoalConditonType": "ANY",
"finishGoalConditions": null,
"finishGoalCriteriaList": [
{
"contactAttributeName": "b_int",
"contactAttributeValue": "33"
},
{
"contactAttributeName": "b_long",
"contactAttributeValue": "55"
}
],
"exportContacts": true,
"exportDataColumns": [
"AttemptedField",
"BloodGroup",
"CallCompletionTime",
"CallConnectTime",
"AttemptedAddress",
"attr"
],
"exportDataCompletionCodes": [
"Answer_Machine",
"AMD_Application_Played",
"Answer_Human",
"Application_Error",
"All_Contact_Addresses_Empty",
"Desktop_Error"
],
"postProcessorClass": "com.avaya.pom.custom.myPostProcessor",
"sendAttributesToEventSDKRecorder": true,
"recorderAttributes": [
"DateAttr",
"BloodGroup",
"Email",
"emailCust",
"city",
"FirstName",
"company",
"landline",
"UserContactId"
] ,
"linkedCampaignId": 99,
"agtOutboundSkillMapId": null,
"fromAddress": "123",
"fromDisplayName": "123",
"externalTransferData": "ContextStoreID",
"exportFrequencyType": "EXPORT_AT_JOB_END",

Avaya Proactive Outreach Manager Developer Guide 57


"exportFrequencyValue": null

RESPONSE JSON:
{
"result": true
}
Note:
If Advanced List and Campaign Management feature is enabled, do not use any of
contactLists, filterConditions, filterCriteriaConditonType, filterCriteriaAttributeList or
sortCriteriaAttributeList parameters in request, instead use filterTemplateAssocList which
specifies mapping of contact list, filter template and dialing allocation.
Do not set disableDiallingAllocation if applySameFilterTemplateToAll is not set.

If Advanced List and Campaign Management feature is disabled, do not use any of
filterTemplateAssocList, applySameFilterTemplateToAll or disableDiallingAllocation in
request.

Example for extra parameters if Advanced List and Campaign Management feature is
enabled :
{
"filterTemplateAssocList": [
{
"contactList": "contactList1",
"filterTemplateName": "filterTemplate1",
"dialingAllocation": 100
}
{
"contactList": "contactList2",
"filterTemplateName": "filterTemplate2",
"dialingAllocation": 100
}
],
"applySameFilterTemplateToAll": true,
"disableDiallingAllocation": true
}
__________________________________________________________________________________________

Edit Linked Campaign


POST /v4/campaigns/edit/link
This web service edits linked campaign of a campaign or of a job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/edit/link?campaignId={campaign_ID}&jobId={job_ID}&li
nkedCampaignId={linked_campaign_id}

Parameters
Path

Avaya Proactive Outreach Manager Developer Guide 58


Parameter Required Type Description
campaignId No Integer Campaign Id

jobId No Integer Job Id

linkedCampaignId No String Linked Campaign Id

Payload - None

JSON response
Field name Description
result It returns true on success.

Note:

• At least one of the input parameters campaignId or jobId is required.


• If both the input parameters campaignId and jobId are given, then linked campaign will
be changed for both of it.
• For removing linked campaign, set linkedCampaignId=null
• For changing linked campaign of a campaign, set only campaignId and
linkedCampaignId
• For changing linked campaign of a job, set only jobId and linkedCampaignId
• For changing linked campaign of both campaign and of job, set campaignId, jobId and
linkedCampaignId

Example
The example provided in this section is based on editing linked campaign of Campaign with
campaign ID 9 and of Job with Job ID 12 and setting linked campaign ID 15 for both.

HTTP: POST
/VP_POM_Service/v4/campaigns/edit/link?campaignId=9&linkedCampaignId
=15&jobId=12 HTTP/1.1

Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"result": true
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 59


Get Campaign Details
GET /v4/campaigns/{campaignId}
This web service gets a campaign details for the campaign id provided in path parameter.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaignId}

Parameters
Path
Parameter Required Description Data Type
campaignId true The Campaign ID int

Payload - None

JSON response
Field name Description

campaignName A unique identifier for the campaign


A short description of the campaign or purpose of the
campaignDesc campaign.
Contact List Name(s) for finite Campaign or infinite
contactLists campaign with contact list

Campaign types available are Finite,


campaignType InfiniteWithContacts, InfiniteWithoutContacts.

The Campaign Strategies that are in "Completed" state


campaignStrategy only

Select to filter the contact record based on attribute and


contactRecordAssignmentToAgent Agent ID. Valid values are Attributes and AgentID

If Attributes is selected for


attributesForContactRecordAssignment contactRecordAssignmentToAgent then list of custom
ToAgent attributes are required.
If AgentID is selected for
agentIDForContactRecordAssignmentT contactRecordAssignmentToAgent then provide custom
oAgent attribute which contains Agent ID

applyDNC To Apply DNC at Campaign level.

dncGroupsForCampaign List of all DNC groups for applying to Campaign


Default DNC group when Agent mark any contact as
defaultDNCGroup DNC
Publish the contact attempt data to Context Store. Valid
publishAttemptDataToContextStore values are True/False.

zoneEPMList Mapping of zones and EPM to be used

dialingPrefix Prefix to dial such as the country code or area code.

Avaya Proactive Outreach Manager Developer Guide 60


Specify when the Call Classification Analysis (CCA) can
start. Valid values are CCA_START_ON_CONNECT
ccaStartType and CCA_START_ON_PROGRESS
Use to specify the CCA timeout value. This value
depends on the On Connect and On Progress values.
You can set CCA timeout value in the range 5000 and
20000 milliseconds for CCA On Connect and 5000 to
ccaTimeout 45000 milliseconds for CCA On Progress.

enableComplianceTimers Enable or disable the compliance timers.


Start Of Voice timer. The combined value of the Start of
Voice Timeout (milliseconds) and Live Voice Timeout
(milliseconds) cannot be more than the CCA Timeout
startOfVoiceTimeOut value.

Live Voice timer. The combined value of the Start of


Voice Timeout (milliseconds) and Live Voice Timeout
(milliseconds) cannot be more than the CCA Timeout
liveVoiceTimeOut value.

smsPrefix Prefix before sending out the SMS.

Use AMD False Positive Rate to specify the false


falsePositiveRateAMD positives and is used in the nuisance rate calculation.

When Consider Answer Machine By Agent is True, such


considerAnswerMachineByAgent calls are considered in the Nuisance rate calculations.
Specify the attributes to sort the data either in
ascending or descending order.
{
"attrName": "ContactId",
"sortOrder": "desc"
}
Valid attrName values are contact attributes
sortCriteriaAttributeList Valid sortOrder values are - asc/desc

If true, POM starts dialing only after it finishes filtering all


pauseDialingDuringRecordSelection records based on the filter criteria specified.
If you specify more than one filter condition, provide
value for this field. Valid values are – ALL, ANY or
filterCriteriaConditonType CUSTOM
Used when CUSTOM is condition type is given. A
combination of contact attributes to filter the records.
Eg. If you have 4 conditions, 1, 2, 3, and 4, then you
filterConditions cannot write custom criteria as: (1 and 2) OR (1 and 3).

Provide Filter Criteria Attributes in JSON format.


{
"filterAttributeName": "DateAttr",
"filterAttributeValue":"03132018",
filterCriteriaAttributeList "filterOperator": "=",

Avaya Proactive Outreach Manager Developer Guide 61


"filterDateFormat": "MMDDYYYY"
}
Provide list of custom completion codes with a
completionCodes campaign.
Provide list of all the completion codes (System and
completionCodesExcludedForAttemptC Custom) not to be considered while calculating
alculation attempts.
Provide list of agent Address Book entries with a
agentAddressBook Campaign.
Provide Time based finish criteria in json format.
{
"abortAfterHrs": 22,
"abortAfterMins": 44
timeBasedFinishCriteria }
checkTimeBasedFinishCriteriaForPaus
edCampaign Check Time Based Finish Criteria for Paused Campaign
If you specify more than one finish completion code
condition, provide value for this field. Valid values are –
finishCompletionCodeConditonType ALL, ANY or CUSTOM
Used when CUSTOM is condition type is given. A
combination of contact attributes to filter the records.
Eg. If you have 4 conditions, 1, 2, 3, and 4, then you
finishCompletionCodeConditions cannot write custom criteria as: (1 and 2) OR (1 and 3).
Completion Code based finish criteria. Completion
Codes to be used in setting Finish Criteria and
accordingly type your criteria. JSON format,
[{
"completionCodeName": "c12",
"completionCodeValue": "12"
finishCompletionCodeCriteriaList }]

sendAttributesToEventSDKRecorder Enable it in case recorder attributes are required.


If you specify more than one finish completion code
condition, provide value for this field. Valid values are –
finishGoalConditonType ALL, ANY or CUSTOM
Used when CUSTOM is condition type is given. A
combination of contact attributes to filter the records.
Eg. If you have 4 conditions, 1, 2, 3, and 4, then you
finishGoalConditions cannot write custom criteria as: (1 and 2) OR (1 and 3).
Goal Based finish Criteria. Contact Attributes to be used
in setting Finish Criteria and accordingly type your
criteria. JSON format,
{
"contactAttributeName": "b_int",
finishGoalCriteriaList "contactAttributeValue": "33"

Avaya Proactive Outreach Manager Developer Guide 62


}

exportContacts Enable to export the Contact

exportDataColumns List of contact attributes for export

exportDataCompletionCodes List of Completion Codes for export


Provide fully resolved class Name (e.g.
com.avaya.pom.custom.myPostProcessor)
postProcessorClass implementing the custom post processing interface.

recorderAttributes Attributes for Event SDK or Recorder

If linked campaign is set, its campaign Id will be


linkedCampaignId returned otherwise null will be returned

Mapping of contact list, filter template and dialing


filterTemplateAssocList allocation

True if filter template from first association is applied to


applySameFilterTemplateToAll all the associations

disableDiallingAllocation True if dialing allocation is disabled


External transfer option, it can be ‘ContextStoreID’ or
externalTransferData ‘UserContactID’

Specifies Export Frequency.It can be


EXPORT_AT_JOB_END, HOURLY, EVERY_N_MINS,
exportFrequencyType DAILY_AT

exportFrequencyValue Specifies Export frequency value.

Example
The example provided in this section is to get a campaign with provided JSON.
HTTP: GET /VP_POM_Service/v4/campaigns/{campaignId}
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"campaignName": GetCampaignDetails,
"campaignDesc": null,
"contactLists": [
"list1"
],
"campaignType": "Finite",
"campaignStrategy": "Preview",
"contactRecordAssignmentToAgent": [
"Attributes",

Avaya Proactive Outreach Manager Developer Guide 63


"AgentID"
],
"publishAttemptDataToContextStore": false,
"attributesForContactRecordAssignmentToAgent": [
"city",
"State",
"company"
],
"agentIDForContactRecordAssignmentToAgent": "BloodGroup",
"applyDNC": true,
"dncGroupsForCampaign": [
"Common DNC List Group",
"CC DNC List Group",
"DNCGroup2",
"HR DNC List Group"
],
"defaultDNCGroup": "CC DNC List Group",
"zoneEPMList": [
{
"zoneName": "Default",
"epmServersForZone": [
"EPM(DC1)"
]
}
],
"dialingPrefix": "91",
"ccaStartType": "CCA_START_ON_CONNECT",
"ccaTimeout": 7500,
"enableComplianceTimers": true,
"startOfVoiceTimeOut": 2000,
"liveVoiceTimeOut": 1800,
"smsPrefix": null,
"falsePositiveRateAMD": 3,
"considerAnswerMachineByAgent": true,
"sortCriteriaAttributeList": [
{
"attrName": "ContactId",
"sortOrder": "desc"
},
{
"attrName": "FirstName",
"sortOrder": "asc"
},
{
"attrName": "attr",
"sortOrder": "desc"
}
],
"pauseDialingDuringRecordSelection": true,
"filterCriteriaConditonType": "ALL",
"filterConditions": null,
"filterCriteriaAttributeList": [
{
"filterAttributeName": "BG",
"filterOperator": "isnull"
},
{
"filterAttributeName": "DateAttr",

Avaya Proactive Outreach Manager Developer Guide 64


"filterAttributeValue":"03132018",
"filterOperator": "=",
"filterDateFormat": "MMDDYYYY"
},
{
"filterAttributeName": "FirstName",
"filterAttributeValue": "Ramkrishna",
"filterOperator": "!="
}
],
"completionCodes": [
"cc16",
"c13",
"cc9",
"cc7",
"c11",
"c12",
"cc6",
"cc10",
"c14",
"cc15",
"cc8"
],
"completionCodesExcludedForAttemptCalculation": [
"BgrndAMD_Nuisance_Call",
"bbbbb",
"Answer_Human",
"Attempt_Timeout",
"All_Contact_Addresses_Empty",
"c12",
"Desktop_Error",
"Attempt_Skip_By_Agent",
"c11",
"AMD_Application_Played",
"Attempt_In_Progress",
"Answer_Machine",
"Application_Error"
],
"agentAddressBook": [
"agentAddress1",
"agentAddress3",
"agentAddress2"
],
"timeBasedFinishCriteria": {
"abortAfterHrs": 22,
"abortAfterMins": 44
},
"checkTimeBasedFinishCriteriaForPausedCampaign": true,
"finishCompletionCodeConditonType": "ALL",
"finishCompletionCodeConditions": null,
"finishCompletionCodeCriteriaList": [
{
"completionCodeName": "c12",
"completionCodeValue": "12"
},
{
"completionCodeName": "Answer_Human",
"completionCodeValue": "34"

Avaya Proactive Outreach Manager Developer Guide 65


}
],
"finishGoalConditonType": "ANY",
"finishGoalConditions": null,
"finishGoalCriteriaList": [
{
"contactAttributeName": "b_int",
"contactAttributeValue": "33"
},
{
"contactAttributeName": "b_long",
"contactAttributeValue": "55"
}
],
"exportContacts": true,
"exportDataColumns": [
"AttemptedField",
"BloodGroup",
"CallCompletionTime",
"CallConnectTime",
"AttemptedAddress",
"attr"
],
"exportDataCompletionCodes": [
"Answer_Machine",
"AMD_Application_Played",
"Answer_Human",
"Application_Error",
"All_Contact_Addresses_Empty",
"Desktop_Error"
],
"postProcessorClass": "com.avaya.pom.custom.myPostProcessor",
"sendAttributesToEventSDKRecorder": true,
"recorderAttributes": [
"DateAttr",
"BloodGroup",
"Email",
"emailCust",
"city",
"FirstName",
"company",
"landline",
"UserContactId"
] ,
"linkedCampaignId": 99,
"externalTransferData": "ContextStoreID",
"exportFrequencyType": "EVERY_N_MINS",
"exportFrequencyValue": "15"

Extra parameters if Advanced List and Campaign Management feature is enabled :


{
"filterTemplateAssocList": [
{
"contactList": "contactList1",
"filterTemplateName": "filterTemplate1",

Avaya Proactive Outreach Manager Developer Guide 66


"dialingAllocation": 100
}
{
"contactList": "contactList2",
"filterTemplateName": "filterTemplate2",
"dialingAllocation": 100
}
],
"applySameFilterTemplateToAll": true,
"disableDiallingAllocation": true
}
__________________________________________________________________________________________

Clone Campaign
POST /v4/campaigns/clone
This web service clones a campaign fromCampaign to toCampaign.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/clone

Parameters
Path - None
Payload
Parameter Type Description
fromCampaign String A unique identifier for the campaign to be cloned
toCampaign String A unique identifier for the campaign new Campaign

JSON response
Field name Description
isCampaignCloned true
Example
The example provided in this section is to clone a campaign with provided JSON.
HTTP: POST /VP_POM_Service/v4/campaigns/clone HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"fromCampaign":"RestCamp1",
"toCampaign":"RestCamp2"
}

RESPONSE JSON:
{
"isCampaignCloned":"true"
}

Avaya Proactive Outreach Manager Developer Guide 67


__________________________________________________________________________________________

Delete Campaign
POST /v4/campaigns/{campaignId}/delete
This web service deletes the campaign. After calling the web service campaign deletion starts.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaignId}/delete

Parameters
Path - None
Parameter Required Description Data Type
campaignId true The Campaign ID int

Payload – None

JSON response
Field name Description
isCampaignDeleteStarted true
Example
The example provided in this section is to delete a campaign with Campaign ID 1.
HTTP: POST /VP_POM_Service/v4/campaigns/1/delete
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
" isCampaignDeleteStarted":"true"
}
__________________________________________________________________________________________

Search Campaign
GET /v4/campaigns/search
This web service searches and sorts the campaign based on provided criterias.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/search

Parameters
Path – None
Query
Parameter Type Description

Avaya Proactive Outreach Manager Developer Guide 68


pageSize (optional) Integer Number of records to be fetched from campaign
list. Max 100 campaigns per request is allowed. If
value is not provided default page size used for
calculating total pages will be 10.
pageNumber (optional) Integer The page number for which records needs to be
fetched. If value is not provided default 1 will be
used.
sortBy (optional) String Field name to be used for sorting the records.
Possible values include below names and
datatypes:
“Name”
“Strategy”
“List”
sortDirection (optional) String Either asc and desc values are allowed for
ascending and descending sort respectively. If
value is not provided DESC will be used as default
value.
searchBy String Field name to be used for searching the records.
Possible values include below names and
datatypes:
“Name”
“Strategy”
“List”
searchOperator String Below operator will be allowed according to type
of field selected in SearchBy:
=, !=, in, like, notlike
searchValue String Value to be searched. Ensure to provide valid
value. Wild chars like *, ~ are not valid.

Payload – None

JSON response
Field name Description
campaignList List of campaigns.
Following campaign details will be returned by API.

"campaignID": 5,
"campaignName": "abd3",
"contactStrategyName": "Preview",
"infiniteStatus": "Finite",
"contactListName": [
"list2",
"list3",
"list4"
]
totalPage Total Pages of campaignList response

Example
The example provided in this section is to search a campaign with provided Query Params.

Avaya Proactive Outreach Manager Developer Guide 69


HTTP: GET /VP_POM_Service/v4/campaigns/search
?sortBy=Name&sortDirection=DESC&searchBy=Name&searchOperator=!=&sear
chValue=asd&pageSize=10&pageNumber=1
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"campaignList": [
{
"campaignID": 5,
"campaignName": "abd3",
"contactStrategyName": "Preview",
"infiniteStatus": "Finite",
"contactListName": [
"list2",
"list3",
"list4"
]
}
],
"totalPage": 1
}
__________________________________________________________________________________________

Schedule Campaign
POST /v4/campaigns/{campaign_id}/schedule
The API provides ability to schedule jobs to run once for finite or infinite type of campaign.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaign_id}/schedule

Parameters
path
Parameter Required Description Data Type
campaign_id true The ID for the campaign int
payload
Parameter Required Description Data Type
startTime true Specify the start date and time for the string
triggering campaign. Ensure that the start date
and format is yyyy/MM/dd HH:mm:ss.
timeZone true Specify the time zone you want to use for string
scheduling the jobs.
archivalFrequencyType true Specify the archival frequency for the string
(deprecated) campaign. It can be either Hourly, or
RunEveryNHours, or DailyAt
archivalEveryNHours true Archival of the contact attempt information string
(deprecated) related to the campaign after a specified time

Avaya Proactive Outreach Manager Developer Guide 70


interval in hours. For example, if you specify
the value as 5, then the archival schedule runs
5 hours after the campaign starts and every 5
hours until the campaign ends.
archivalTimeInHrsMins true Specify the archival frequency in hours and string
(deprecated) minutes.

Note:
The parameters archivalFrequencyType, archivalEveryNHours and archivalTimeInHrsMins
are deprecated. Even if the value is specified it would be neglected.

JSON response
Field name Description
campaignSchedule Returns true on success
Example
The example provided in this section is based on scheduling a campaign job for campaign ID
1 with run once frequency at 10:05:05 along with DailyAt frequency for archival job at time
09:00 AM
HTTP: POST /VP_POM_Service/v4/campaigns/1/schedule HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"startTime":"2018/04/02 10:5:5",
"timeZone": "GMT+05:30",
"archivalFrequencyType": "DailyAt",
"archivalEveryNHours": null,
"archivalTimeInHrsMins": "09:00"
}

RESPONSE JSON:
{"campaignSchedule":true}

__________________________________________________________________________________________
Schedule Recurring Campaign
POST /v4/campaigns/{campaign_id}/schedule/recurring
The API provides ability to schedule jobs to run finite or infinite type of campaign on recurrent
basis.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaign_id}/schedule/recurring

Parameters

Avaya Proactive Outreach Manager Developer Guide 71


path
Parameter Required Description Data Type
campaign_id true The ID for the campaign int
payload
Parameter Required Description Data Type
startTime true Specify the start date and time for the string
triggering campaign. Ensure that the start
date and format is yyyy/MM/dd HH:mm:ss.
timeZone true Specify the time zone you want to use for string
scheduling the jobs.
archivalFrequencyType true Specify the archival frequency for the string
(deprecated) campaign. It can be either Hourly, or
RunEveryNHours, or DailyAt
archivalEveryNHours true Specify the archival frequency in hours. string
(deprecated)
archivalTimeInHrsMins true Specify the archival frequency in hours string
(deprecated) and minutes.
recurring true Set to true for recurring type of schedules. boolean
recurringFrequency true The frequency for finite campaign. You string
can specify any one of the values:

RunEveryNMins: This option creates a job


for the campaign every N specified
minutes.

Daily : This option creates a job daily at the


start time you mention during scheduling
and continues till the end datetime.

Weekly :This option creates jobs on


specified days and weekly recurring jobs
are automatically created. You can select
the days of the week. For example, if you
select Monday and Friday, then it creates
the weekly jobs on Monday and Friday at
the start time mentioned during schedule.

Monthly: This option creates the jobs


monthly depending on the start date till the
finish date.

Yearly: This option creates the jobs yearly


depending on the start date till the finish
date.
weekDaysOnly true Valid for Daily type of schedule frequency. boolean
If set to true the schedule will be created
only for weekdays. all days of the week
except the weekend days you mention in
the POM Home >Configurations > Global
Configurations.
selectedDays true Creates a job on all days of the week string
except the weekend days you mention in
global configuration page. Valid values
include Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday and Sunday.

Avaya Proactive Outreach Manager Developer Guide 72


Used for Weekly type of schedule
frequency.
runEveryMinutes true To specify value in minutes for string
RunEveryNMins schedule.
recurringEndTime true The end date and the time for terminating string
the campaign. Ensure that the end date
and the format is yyyy/MM/dd HH:mm:ss.
Note:
The parameters archivalFrequencyType, archivalEveryNHours and archivalTimeInHrsMins
are deprecated. Even if the value is specified it would be neglected.

JSON response
Field name Description
recurringCampaignSchedule Returns true on success
Example
The example provided in this section is based on creating recurring schedule for campaign ID
2 with weekly frequency. It will run on two selected days Monday and Friday every week. The
Archival frequency is hourly.
HTTP: POST /VP_POM_Service/v4/campaigns/2/schedule/recurring HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"startTime":"2018/03/08 10:23:10",
"timeZone": "GMT+05:30",
"archivalFrequencyType": "Hourly",
"archivalEveryNHours": null,
"archivalTimeInHrsMins": null,
"recurring":"True",
"recurringFrequency":"Weekly",
"weekDaysOnly":"false",
"selectedDays":["Monday","Friday"],
"runEveryMinutes":null,
"recurringEndTime":"2018/04/09 10:23:10"
}

RESPONSE JSON:
{"recurringCampaignSchedule":true}

__________________________________________________________________________________________
Run Campaign
POST /v4/campaigns/{campaign_id}/job/start
The API start new instance of job for specified campaign ID. The archival schedule and export
will run hourly basis for the campaign.

Avaya Proactive Outreach Manager Developer Guide 73


URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaign_id}/job/start

Parameters
path
Parameter Required Description Data Type
campaign_id true The ID of campaign. string

payload None

JSON response
Field name Description
isQueued Returns true on successful campaign start.
Example
The example provided in this section is based on campaign ID 1 for which new campaign job
is created.
HTTP: POST /VP_POM_Service/v4/campaigns/1/job/start/ HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
RESPONSE JSON:
{"isQueued": true}

__________________________________________________________________________________________
Pause Campaign Job
POST /v4/campaigns/job/{job_id}/pause
The API pauses campaign job which is active or running on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/job/{job_id}/pause

Parameters
path
Parameter Required Description Data Type
job_id true The job ID of campaign int

payload None

JSON response
Field name Description
isPaused Returns true on success.
Example
Avaya Proactive Outreach Manager Developer Guide 74
The example provided in this section is based on pausing campaign job ID 11 which was active
or running on POM monitor.
HTTP: POST /VP_POM_Service/v4/campaigns/job/11/pause HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"isPaused": true}

__________________________________________________________________________________________
Resume Paused Campaign Job
POST /v4/campaigns/job/{job_id}/resume
The API resumes campaign job which is currently in paused state on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/job/{job_id}/resume

Parameters
path
Parameter Required Description Data Type
job_id true The job ID of campaign int

payload None

JSON response
Field name Description
isResumed Returns true on success.
Example
The example provided in this section is based on resuming campaign job ID 11 which was in
paused state on POM monitor.
HTTP: POST /VP_POM_Service/v4/campaigns/job/11/resume HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"isResumed": true}
________________________________________________________________________________________
Stop Campaign Job
POST /v4/campaigns/job/{job_id}/stop

Avaya Proactive Outreach Manager Developer Guide 75


The API stops campaign job which is currently in paused or running state on POM system. If
campaign job has pending callbacks the campaign job will first transition into Stopped, Callback
state. If stop job is invoked on same job id again the job will move to completed state.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/job/{job_id}/stop?stopLink={stop_link}

Parameters
path
Parameter Required Description Data Type
job_id true The campaign job ID Int
stop_link false If set to true, the linked campaign Boolean
won't start after the job

payload None

JSON response
Field name Description
isStopped Returns true on success.
Example
The example provided in this section is based on stopping campaign job ID 11 which was in
running or paused state on POM monitor.
HTTP: POST /VP_POM_Service/v4/campaigns/job/11/stop HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"isStopped": true}
__________________________________________________________________________________________
Get Job Status
GET /v4/campaigns/job/{job_id}/status
The API provides current status of campaign job.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/job/{job_id}/status

Parameters
path
Parameter Required Description Data Type
job_id true The ID of campaign job int

payload None

Avaya Proactive Outreach Manager Developer Guide 76


JSON response
Field name Description
jobStatus The current status for job. The int value showing job state meaning listed below:

1, "JOB_QUEUED"
2, "JOB_ACTIVE"
4, "JOB_COMPLETED"
8, "JOB_PAUSE"
16, "JOB_PAUSED"
32, "JOB_FILTER_IN_PROGRESS"
64, "JOB_RESUME"
128, "JOB_STOP"
256, "JOB_STOPPING"
512, "JOB_STOPPED"
1024, "JOB_PAUSING"
2048, "JOB_CREATING_HISTORY"
4096, "JOB_SHADOW" (Callback state)
8192, "JOB_STOPPED_IN_SHADOW" (Stopped, callback
state)
Example
The example provided in this section is based on fetching status for campaign job 1 which was
completed.
HTTP: GET /VP_POM_Service/v4/campaigns/job/1/status HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"jobStatus":4}

__________________________________________________________________________________________
Get Campaign ID
POST /v4/campaigns/id
The API provides system generated unique identifier of campaign. The ID retrieved from here
can be used while invoking run campaign, getting campaign details/jobs, scheduling campaign
related apis.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/id

Parameters
path None

payload
Parameter Required Description Data Type

Avaya Proactive Outreach Manager Developer Guide 77


campaignName true The name of the campaign. string

JSON response
Field name Description
campaignID The unique identifier for the campaign.
Example
The example provided in this section is based on fetching ID for campaign “testCampaign”
which exists on campaign manager page.
HTTP: POST /VP_POM_Service/v4/campaigns/id HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"campaignName":"testCampaign"}

RESPONSE JSON:
{"campaignID":1}
_________________________________________________________________________________________
Is Contact Exists in Active Job
POST /v4/campaigns/contact/check
The API provides ability to check contact existence in campaign job based on user contact ID.
for example user will have to import account id from CRM and import it into POM contact list
as user contact id, then account id can be used as input for this rest api.
The response will have job ids and list of system contact ids matching to user_contact_id given
as input.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/contact/check

Parameters
path None
payload
Parameter Required Description Data Type
userContactID true The user contact ID of the contact. string
JSON response
Field name Description
result Returns true if given user contact ID found part of active campaign job.
jobIDSystemContactIDList List of items giving campaign job ID and system contact ID for given
user contact ID.
Example

Avaya Proactive Outreach Manager Developer Guide 78


The example provided in this section is based on user contact ID 1, the response returned true
as the contact found part of job ID 42 and system contact ID is 1 too for the contact as shown
in response json.

HTTP: POST /VP_POM_Service/v4/campaigns/contact/check HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{ "userContactID": "1"}

RESPONSE JSON:
{"result":true,"jobIDSystemContactIDList":[{"42":"[1]"}]}
__________________________________________________________________________________________
Add Contact from Contact List to Job
POST /v4/campaigns/job/contact/add
Use this API to add a contact record to the running campaign job. The configured EP user must
have access to the contact lists and campaign jobs.
When you add a contact by using this web service, the contact will not adhere to the filter
criteria specified. However, the sort criteria specified will be applicable to the added contact.
The invocation of web service this web service is optional. Saving contact to contact list using
rest api will ensure that the newly added contact will be picked for dialing, if it meets filter criteria
of the campaign.

This web service can still be invoked to change the priority of an existing contact which is not
yet dialed by POM or add contacts to campaign job at HIGH/TOP priority even if it does not
meet the filter criteria.
Further to this, once the campaign job moves to a Callback state and any new contacts added
to the job will be considered for dialing. The campaign job state will be changed to Running
state.
Addition contact through web service is not allowed if campaign job status is filter in progress.
URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/job/contact/add/

Parameters
path None

payload
Parameter Required Description Data Type
jobID true The campaign job ID int
contactListID true The contact list ID int
userContactID true The user contact ID for the contact string
contactPriority No Value of priority to be assigned to contact record. String
The possible values are LOW, TWO, THREE,
FOUR, MEDIUM, SIX, SEVEN, EIGHT, NINE,
HIGH, TOP and BOTTOM.

Avaya Proactive Outreach Manager Developer Guide 79


recycleContact No If enabled the contact can be added to same boolean
campaign job multiple times.
JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on adding user contact ID 1 of contact list 1 to
campaign job 37.
HTTP: POST /VP_POM_Service/v4/campaigns/job/contact/add HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"jobID": "37",
"contactListID": "1",
"userContactID": "1",
"contactPriority": "LOW"
}

RESPONSE JSON:
{"result": true}

Note:
For recycleContact:
• If the existing contact in job is either done or unattempted, this web service will allow
adding contact to same job multiple times. At the time of addition the existing entry of
dialing will be removed.
• In cases if contact state is in progress (callback, retry, locked,etc) the web service will
throw error.
__________________________________________________________________________________________
Remove Contact from Job
POST /v4/campaigns/job/contact/remove
The API removes contact from running active job on POM system.
For example:
POM would receive the user contact ID from the CRM system as an attribute in the contact list.
In case of an incoming call the inbound ACD (or Oceana, or the desktop) would use the calling
number (ANI) of the caller to query the CRM system to find a match of the calling number and
receive the user contact ID in return. With the received user contact ID it could query POM
using this web service to check whether such contact is part of running campaign job on POM.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/job/contact/remove/

Avaya Proactive Outreach Manager Developer Guide 80


Parameters
path None

payload
Parameter Required Description Data Type
jobID true The campaign job ID int
contactListID true The contact list ID int
userContactID true The user contact ID for the contact. This should string
be used as a link between external customer
database and POM database
JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on removing user contact ID 1 from campaign
job 37.
HTTP: POST /VP_POM_Service/v4/campaigns/job/contact/remove HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"jobID": "37",
"contactListID": "1",
"userContactID": "1",
}

RESPONSE JSON:
{"result": true}

__________________________________________________________________________________________
Add Contact List to Job
POST
/v4/campaigns/job/{job_id}/contactlist/{contact_list_id}/priority/{p
riority}/applyfilter/{apply_filter}/add
The API adds contact list to running campaign job on POM system.
If Advanced List and Campaign Management is enabled, then this web service should not be
used, else the user will get an exception. Instead, use the web service as mentioned under
heading “Update Contact List Filter Template Associations for Job”.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/job/{job_id}/contactlist/{contact_list_id}/priority/
{priority}/applyfilter/{apply_filter}/add

Avaya Proactive Outreach Manager Developer Guide 81


Parameters
path
Parameter Required Description Data Type
job_id true The campaign job ID int
contact_list_id true The contact list ID int
priority true Value of priority to be assigned to contact record. string
The possible values are LOW, TWO, THREE,
FOUR, MEDIUM, SIX, SEVEN, EIGHT, NINE, HIGH,
TOP and BOTTOM.
apply_filter true By default, set to false. If ApplyFilter is set to true, boolean
POM applies the filter criteria specified during
campaign creation.

payload None

JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on adding contact list with ID 2 to running
campaign job 106 with HIGH priority and apply filter enabled.
HTTP: POST
/VP_POM_Service/v4/campaigns/job/106/contactlist/2/priority/HIGH/app
lyfilter/true/add HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result": true}
__________________________________________________________________________________________
Remove Contact List from Job
POST /v4/campaigns/job/{job_id}/contactlist/{contact_list_id}/remove
The API removes contact list from running campaign job on POM system.
If Advanced List and Campaign Management is enabled, then this web service should not be
used, else the user will get an exception. Instead, use the web service as mentioned under
heading “Update Contact List Filter Template Associations for Job”.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/job/{job_id}/contactlist/{contact_list_id}/remove

Parameters
path

Avaya Proactive Outreach Manager Developer Guide 82


Parameter Required Description Data Type
job_id true The campaign job ID int
contact_list_id true The contact list ID int

payload None

JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on removing contact list with ID 2 from running
campaign job 106.
HTTP: POST /VP_POM_Service/v4/campaigns/job/106/contactlist/2/remove
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result": true}
__________________________________________________________________________________________
Get Campaign Job Details
GET /v4/campaigns/joblist #returns jobs with JOB_ACTIVE status
GET /v4/campaigns/joblist?jobStates=JOB_COMPLETED,JOB_ACTIVE
The API provides campaign name, job id and state for each campaign or job found matching
with the used organization and specified states.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/joblist/

Parameters
path
Parameter Required Description Data Type
jobStates false The comma separated values for job states criteria. string
Valid values include JOB_QUEUED, JOB_ACTIVE,
JOB_COMPLETED, JOB_PAUSE, JOB_PAUSED,
JOB_FILTER_IN_PROGRESS, JOB_RESUME,
JOB_STOP, JOB_STOPPING, JOB_PAUSING,
JOB_CREATING_HISTORY or JOB_SHADOW. You
can use these names to filter the job IDs matching the
corresponding state. The default value is JOB_ACTIVE.
There can be multiple job states. The valid values are:

JOB_QUEUED: The job is queued for running. The job


does not perform any dialing operations.

Avaya Proactive Outreach Manager Developer Guide 83


JOB_ACTIVE: The job is running and is performing
dialing operations.
JOB_COMPLETED: The job has completed dialing all
records and there are no more records for dialing.
JOB_PAUSE: The user initiated a pause action on the
job. After this state, the job moves to the Pausing state.
JOB_PAUSING: The job is pausing the dialing. After this
state, the job moves to the Paused state.
JOB_PAUSED: The job is paused and is not dialing any
records. In case of agent-based campaigns, all agents
are released from the job.
JOB_FILTER_IN_PROGRESS: The job is filtering the
records as per the selection criteria mentioned in the
Campaign Creation Wizard and Campaign Strategy.
JOB_RESUME: The user initiated a resume action on the
job. After this state, the job moves to the Active state.
JOB_STOP: The user stopped the job and the job does
not perform any dialing operations.
JOB_STOPPING: The job is stopping the dialing. After
this state, the job moves to the Stopped state.
JOB_CREATING_HISTORY: The job is either completed
or stopped and there are no more records for dialing. In
this state, the job moves the records to the archival state.
JOB_SHADOW (Callback): The job is either completed
or stopped and the job is waiting for callback records to
complete. The callback state is saved as Job Shadow in
the database.
JOB_STOPPED_IN_SHADOW: The Job is in stopped,
callback state

payload None

JSON response
List of items is returned, each item has fields listed below:
Field name Description
campaignName The name of the campaign.
jobID The job ID for the campaign.
jobState The current job state for campaign job.
Example
The example provided in this section is based on getting campaign job list found in active and
pause state from POM system.
HTTP: GET /VP_POM_Service/v4/campaigns/joblist?jobStates=JOB_ACTIVE,
JOB_PAUSE HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:

Avaya Proactive Outreach Manager Developer Guide 84


[{"campaignName":"testCampaign","jobID":42,"jobState":"JOB_ACTIVE"}]

__________________________________________________________________________________________
Get Campaign Jobs
GET /v4/campaigns/{campaign_id}/joblist
#returns jobs with all available states.

GET /v4/campaign/{campaign_id}/joblist?jobStates={job states}


#returns job matching to states of the job.

The API provides list of job matching with requested job states for the specific campaign.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaign_id}/joblist

Parameters
path
Parameter Required Description Data Type
campaign_id true The unique identifier for campaign. string
jobStates true The comma separated values for job states criteria. string
Valid values include JOB_QUEUED, JOB_ACTIVE,
JOB_COMPLETED, JOB_PAUSE, JOB_PAUSED,
JOB_FILTER_IN_PROGRESS, JOB_RESUME,
JOB_STOP, JOB_STOPPING, JOB_PAUSING,
JOB_CREATING_HISTORY or JOB_SHADOW. You
can use these names to filter the job IDs matching the
corresponding state.
There can be multiple job states. The valid values are:

JOB_QUEUED: The job is queued for running. The job


does not perform any dialing operations.
JOB_ACTIVE: The job is running and is performing
dialing operations.
JOB_COMPLETED: The job has completed dialing all
records and there are no more records for dialing.
JOB_PAUSE: The user initiated a pause action on the
job. After this state, the job moves to the Pausing state.
JOB_PAUSING: The job is pausing the dialing. After
this state, the job moves to the Paused state.
JOB_PAUSED: The job is paused and is not dialing any
records. In case of agent-based campaigns, all agents
are released from the job.
JOB_FILTER_IN_PROGRESS: The job is filtering the
records as per the selection criteria mentioned in the
Campaign Creation Wizard and Campaign Strategy.
JOB_RESUME: The user initiated a resume action on
the job. After this state, the job moves to the Active
state.
JOB_STOP: The user stopped the job and the job does
not perform any dialing operations.
JOB_STOPPING: The job is stopping the dialing. After
this state, the job moves to the Stopped state.

Avaya Proactive Outreach Manager Developer Guide 85


JOB_CREATING_HISTORY: The job is either
completed or stopped and there are no more records
for dialing. In this state, the job moves the records to
the archival state.
JOB_SHADOW (Callback): The job is either completed
or stopped and the job is waiting for callback records to
complete. The callback state is saved as Job Shadow
in the database.
JOB_STOPPED_IN_SHADOW: The Job is in stopped,
callback state
payload None

JSON response
List of items is returned; each item has fields listed below:
Field name Description
jobID The campaign job ID
jobState The campaign job state.
Example
The example provided in this section is based on fetching active and completed job for
campaign ID 1 from POM system.
HTTP: GET
/VP_POM_Service/v4/campaigns/1/joblist?jobStates=JOB_COMPLETED,
JOB_ACTIVE HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"jobID":1,"jobState":"JOB_COMPLETED"},{"jobID":10,"jobState":"JOB_COMPLETED"},{"jo
bID":32,"jobState":"JOB_COMPLETED"},{"jobID":34,"jobState":"JOB_COMPLETED"},{"jobID"
:42,"jobState":"JOB_ACTIVE"}]

__________________________________________________________________________________________
Get Active Campaign Jobs and Tasks
GET /v4/campaigns/{campaign_id}/tasks
The API provides list of active job and action ids found for provided campaign ID.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaign_id}/tasks

Parameters
path
Parameter Required Description Data Type
campaign_id True The campaign ID string

Avaya Proactive Outreach Manager Developer Guide 86


payload None

JSON response
Field name Description
jobID The campaign job ID
actionIDs The list of action IDs found for running job.
Example
The example provided in this section is based on.
HTTP: GET /VP_POM_Service/v4/campaigns/1/tasks/ HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"jobID":2,"actionIDs":[100,101]}

__________________________________________________________________________________________
Get Active Campaign Job TaskID for Task
POST /v4/campaigns/{campaign_id}/taskid
The API provides task or action ID for specific task or action name specified in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaign_id}/taskid

Parameters
path
Parameter Required Description Data Type
campaign_id true The ID for the campaign. string
payload
Parameter Required Description Data Type
taskName true The task name specified in campaign strategy. string
JSON response
Field name Description
taskID The ID of task or action
Example
The example provided in this section is based on campaign with ID 1 and task name as
Call_100 which is default name of call action from strategy.
HTTP: POST /VP_POM_Service/v4/campaigns/1/taskid HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

Avaya Proactive Outreach Manager Developer Guide 87


REQUEST JSON:
{"taskName":"Call_100"}

RESPONSE JSON:
{"taskID":100}

__________________________________________________________________________________________
Set Max Attempts Count for Task
POST /v4/campaigns/{job_id}/task/{task_id}/count/{count_number}
The API provides option to set the maximum number of simultaneous calls. A campaign with
tasks having custom call pacing enabled always starts with 0 as the value for the Count
parameter, and so does not place calls till the count is set to a nonzero positive value.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/{job_id}/task/{task_id}/count/{count_number}

Parameters
path
Parameter Required Description Data Type
job_id true The job ID of campaign int
task_id true The task ID of action specified in strategy int
count_number true The max number of attempts. POM uses the nonzero int
value specified in the call attempts and then launches
the maximum attempts. POM keeps running with this
value and guarantees that the attempts do not exceed
the specified value at any point.
payload None

JSON response
Field name Description
IsSet Returns true on success
Example
The example provided in this section is based on campaign job ID 12 with action ID is 100 and
count set to 5 meaning max 5 attempts can be launched by campaign manager for the specified
action.
HTTP: POST /VP_POM_Service/v4/campaigns/12/task/100/count/5 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"IsSet":true}

Avaya Proactive Outreach Manager Developer Guide 88


__________________________________________________________________________________________
Get Campaign List for Org
GET /v4/campaigns
The API provides list of campaigns for organization selected from the user.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns

Parameters
path None
payload None

JSON response
List of items is returned; each item has fields listed below:
Field name Description
campaignName The name of the campaign.
contactStrategyName The contact strategy name assigned for the campaign.
infiniteStatus Return either finite or infinite based on type of the campaign.
contactListName The list of contact list names assigned for the campaign.
Example
The example provided in this section is based on retrieving list of campaigns for admin (non-
org) user.
HTTP: GET /VP_POM_Service/v4/campaigns HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"campaignID":6,"campaignName":"forTest","contactStrategyName":"notificationCamp","
infiniteStatus":"Finite","contactListName":["new"]},{"campaignID":5,"campaignName":"
hrCamp","contactStrategyName":"preview","infiniteStatus":"Infinite","contactListName
":[]},{"campaignID":4,"campaignName":"infiniteCamp","contactStrategyName":"progressi
veCS","infiniteStatus":"Infinite","contactListName":[]},{"campaignID":2,"campaignNam
e":"testCamp","contactStrategyName":"progressiveCS","infiniteStatus":"Finite","conta
ctListName":["testCL1"]},{"campaignID":3,"campaignName":"testCamp1","contactStrategy
Name":"progressiveCS","infiniteStatus":"Finite","contactListName":["testCL","RestCon
tactList","testCL1"]},{"campaignID":1,"campaignName":"testCampaign","contactStrategy
Name":"preview","infiniteStatus":"Finite","contactListName":["testCL"]}]

__________________________________________________________________________________________
Get Contact List Name for Campaign
GET /v4/campaigns/{campaign_id}/contactlist
The API provides name of the contact lists associated with campaign.

URL

Avaya Proactive Outreach Manager Developer Guide 89


https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaign_id}/contactlist

Parameters
path
Parameter Required Description Data Type
campaign_id true The ID for the campaign. int

payload None

JSON response
Field name Description
contactListNames Comma separated list of contact list names.
Example
The example provided in this section is based on campaign ID 3, the campaign is associated
with 3 contact lists as shown in JSON response.
HTTP: GET /VP_POM_Service/v4/campaigns/3/contactlist HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"contactListNames":["testCL","RestContactList","testCL1"]}
__________________________________________________________________________________________
Get All Data Sources for List
GET /v4/datasources/contactlists/{contact_list_name}
The API provides list of data sources exists for specific contact list.

URL
https://<EP Server
IP>/VP_POM_Service/v4/datasources/contactlists/{contact_list_name}

Parameters
path
Parameter Required Description Data Type
contact_list_name Yes The name of the contact list. String
payload None

JSON response
List of items dataSourceDtoList is returned, each item has fields listed below:
Field name Description
id The system generated unique ID for data source
name The name of list data source
description Description text provided for the data source

Avaya Proactive Outreach Manager Developer Guide 90


Field name Description
dataSourceType The data source type. Possible values are:
File
Database
Custom
Upload File
Add DNC File
Remove DNC File
Exclude Contacts
Reset Excluded Contacts
Local
FTP
SFTP
Import Type Not Supported
lastExecuted The last executed import job date and time
Example
The example provided in this section is based retrieving list of all datasources for contact list
‘test’.
HTTP: GET /VP_POM_Service/v4/datasources/contactlists/test HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[
{
"id": 36,
"name": "restDBTest1",
"dataSourceType": "Database",
"description": "DS DB test",
"lastExecuted": null
},
{
"id": 37,
"name": "LocalFTPFileREST",
"dataSourceType": "UNSUPPORTED Import",
"description": "test CL Desc",
"lastExecuted": null
}
]
__________________________________________________________________________________________
Get Details of Data Source
GET /v4/datasources/{data_source_id}
The API retrieves details of specific data source existing on POM.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/{data_source_id}

Parameters
path

Avaya Proactive Outreach Manager Developer Guide 91


Parameter Required Description Data Type
data_source_id Yes The data source ID Int
Payload None

JSON response
Field name Description
dataSourceID The data source ID
dataSourceType Type of the data source. Valid values are:
contact_file,
database_sql,
custom,
upload_contact_file,
dnc_file_for_add,
dnc_file_for_remove,
not_supported,
exclude_contacts,
reset_excluded_contacts,
EXCLUDE_CONTACTS_FILE,
EXCLUDE_CONTACTS_DB,
EXCLUDE_CONTACTS_CUSTOM,
EXCLUDE_CONTACTS_UPLOAD_FILE
name Name of the data source,
description Description of the data source,
listName Contact list name for which datasource is created.
emptyContactListBeforeI Empty of contact list enabled or disabled. Valid values are true and false
mport
pauseAssociatedCampaig If the parameter is set to “true”, all the running campaigns associated
nsIfEmptyingContactList with the contact list will be paused, contact list will be emptied and the
paused campaigns will be resumed again, provided that the parameter
“emptyContactListBeforeImport” is set to true.

Note: Use this option with caution. It is recommended that the use of this
option should be prohibited when dialing is in progress. If the campaign
jobs fail to pause within a stipulated timeout interval, then they might
remain in PAUSING/PAUSED state until they are manually resumed.
Valid Values are true and false. Default Value is false.
ignoreActiveExcludeConta If the parameter is set to “true”, contact list will be emptied ignoring all
ctsIfEmptyingContactList the active exclude contacts in the contact list, provided that the
parameter “emptyContactListBeforeImport” is set to true.
Valid Values are true and false. Default Value is false.
ignoreCallbackOnContact If the parameter is set to “true”, contact list will be emptied ignoring all
sIfEmptyingContactList the callbacks on the contacts in the contact list, provided that the
parameter “emptyContactListBeforeImport” is set to true.
Valid Values are true and false. Default Value is false.
automaticUpdateTimezon Value of automatic update time zone flag. Valid values are true and false
e
automaticUpdateState Value of automatic update of state flag. Valid values are true and false.
This will be useful only if new global configuration setting is enabled.
automaticUpdateWireless Value of automatic update of wireless flag. Valid values are true and
false. This will be useful only if new global configuration setting is
enabled.
automaticTriggerImport Value of automatic import setting. Valid values are true and false. This
will be used only for local-file type of datasource.

Avaya Proactive Outreach Manager Developer Guide 92


Field name Description
checkRejectPattern Set to true if reject pattern checks are enabled for the datasource.
checkPhoneFormatRule Set to true if phone format checks are enabled for the datasource.
checkDNC Set to true if DNC checking is enabled for the datasource.
updateExistingContact Set to true if updating of existing contacts is enabled for the
datasource.
e.g.
0 meaning updateExisting
1 meaning ignoreNew
ifContactExists Set to updateExisting or ignoreNew.
lastExecuted Last date and time when datasource was executed.
File Type Data Source
fieldSeparator The separators used in the file for separating fields. The separators can
be Comma (,) or Tab (\t) or Colon (:) or Semi colon (;) or Pipe (|) or Other
isFtpFileType Set to true if file is at remote location.
isFtpSecured Set to true if SFTP is enabled for the data import. If the contact data
source type is FTP, it is set to false.
ftpIPHostName IP or hostname of the server where file is located.
ftpRemoteFilePath The path of file on remote server. It is used for ftp/sftp type of
datasource.
ftpUserName The user name configured for ftp/sftp transfer
localFilePathOnServer The path of file on local server.
Custom Type Data Source
customDataSourceClassN The class name uses for importing of the data source.
ame
Database Type Data Source
databaseDataSourceIPHo The IP or hostname of database server from which contacts will get
stName imported.
databaseDataSourcePort The port number used to connect to the database
databaseDataSourceSche The schema name of the database.
maName
databaseDataSourceQuer The query used to populate the records.
y
databaseType The database you use. For example, Postgres or Oracle.
databaseDataSourceUser The user name used to connect to the database
Name
systemAttributeMappingLi Mapping for system attributes with columns mentioned in select query.
st
customAttributeMappingLi Mapping for custom attributes with columns mentioned in select query.
st
retainCallBack Will be shown only in case of
EXCLUDE_CONTACTS_FILE,EXCLUDE_CONTACTS_DB,EXCLUD
E_CONTACTS_CUSTOM,EXCLUDE_CONTACTS_UPLOAD_FILE
type of datasources.Valid values are true or false.
False means if a particular contact has callback set and if that contact
gets marked as excluded after running the datasource,callback won’t be
retained.True means callback will be retained even if contact is marked
as excluded.
Example
The example provided in this section is based retrieving details of upload file type of datasource
for data_source_id 21.
HTTP: GET /VP_POM_Service/v4/datasources/21 HTTP/1.1

Avaya Proactive Outreach Manager Developer Guide 93


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"dataSourceID":3,"dataSourceType":"upload_contact_file","name":"Upload From File
3","description":"Upload From File
58258462","listName":"rulelistcall02","emptyContactListBeforeImport":true,"pauseAsso
ciatedCampaignsIfEmptyingContactList": false,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,
"automaticUpdateTimezone":true,"automaticUpdateState":false,"automaticUpdateWireless
":false,"checkRejectPattern":false,"checkPhoneFormatRule":false,"checkDNC":false,"up
dateExistingContact":0,"ifContactExists":"Update
existing","lastExecuted":"06/04/2018 02:07:38
AM","fieldSeparator":null,"ftpIPHostName":null,"ftpRemoteFilePath":"ruleeditor2.csv"
,"ftpUserName":null,"localFilePathOnServer":null,"ftpFileType":false,"ftpSecured":fa
lse}

The example provided in this section is based retrieving details of


EXCLUDE_CONTACTS_FILE type of datasource for data_source_id 113.
HTTP: GET /VP_POM_Service/v4/datasources/113 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"dataSourceID": 113,
"dataSourceType": "EXCLUDE_CONTACTS_FILE",
"name": "ExcludeDSWS2",
"description": null,
"listName": "12Test",
"emptyContactListBeforeImport": false,
"pauseAssociatedCampaignsIfEmptyingContactList": true,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,
"automaticUpdateTimezone": false,
"automaticUpdateState": false,
"automaticUpdateWireless": false,
"checkRejectPattern": false,
"automaticTriggerImport": false,
"checkPhoneFormatRule": false,
"checkDNC": false,
"cleanupPhoneNumber": false,
"emptyPhOnRuleMatch": false,
"emptyInvalidEmail": false,
"updateExistingContact": 0,
"ifContactExists": "Update existing",
"lastExecuted": "-",
"fieldSeparator": "Comma(,)",
"ftpIPHostName": null,

Avaya Proactive Outreach Manager Developer Guide 94


"ftpRemoteFilePath": null,
"ftpUserName": null,
"localFilePathOnServer": "/opt/sample01.csv",
"ftpFileType": false,
"ftpSecured": false,
"retainCallBack": true
}
______________________________________________
Create Data Source
POST /v4/datasources
The API creates data source of file, database and custom type for specific contact list.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources

Parameters
path None
payload
Parameter Require Data Type
d
Name Yes The data source unique name.
dataSourceType Yes Type of the data source. Valid
values are:
contact_file,
database_sql,
custom,
dnc_file_for_add,
dnc_file_for_remove,
not_supported,
exclude_contacts,
reset_excluded_contacts,
EXCLUDE_CONTACTS_FILE,
EXCLUDE_CONTACTS_DB,
EXCLUDE_CONTACTS_CUSTO
M
listName Yes Name of the contact list for which
data source needs to be created,
Description No Description of the data source,
emptyContactListBeforeImport No Empty of contact list enabled or
disabled. Valid values are true and
false
pauseAssociatedCampaignsIfEmptyingContactList No If the parameter is set to “true”, all
the running campaigns associated
with the contact list will be paused,
contact list will be emptied and the
paused campaigns will be resumed
again, provided that the parameter
“emptyContactListBeforeImport” is
set to true.

Note: Use this option with caution.


It is recommended that the use of
this option should be prohibited

Avaya Proactive Outreach Manager Developer Guide 95


when dialing is in progress. If the
campaign jobs fail to pause within
a stipulated timeout interval, then
they might remain in
PAUSING/PAUSED state until they
are manually resumed.
Valid Values are true and false.
Default Value is false.
ignoreActiveExcludeContactsIfEmptyingContactLi No If the parameter is set to “true”,
st contact list will be emptied ignoring
all the active exclude contacts in
the contact list, provided that the
parameter
“emptyContactListBeforeImport” is
set to true.
Valid Values are true and false.
Default Value is false.
ignoreCallbackOnContactsIfEmptyingContactList No If the parameter is set to “true”,
contact list will be emptied ignoring
all the callbacks on the contacts in
the contact list, provided that the
parameter
“emptyContactListBeforeImport” is
set to true.
Valid Values are true and false.
Default Value is false.
automaticUpdateTimezone No Value of automatic update
timezone flag. Valid values are true
and false
automaticUpdateState No Value of automatic update of state
flag. Valid values are true and
false. This will be useful only if new
global configuration setting is
enabled.
automaticUpdateWireless No Value of automatic update of
wireless flag. Valid values are true
and false. This will be useful only if
new global configuration setting is
enabled.
automaticTriggerImport No Value of automatic import setting.
Valid values are true and false.
This will be used only for local-file
type of datasource.
checkRejectPattern No Set to true if reject pattern checks
are enabled for the datasource.
checkPhoneFormatRule No Set to true if phone format checks
are enabled for the datasource.
checkDNC No Set to true if DNC checking is
enabled for the datasource.
updateExistingContact No Set to true if updating of existing
contacts is enabled for the
datasource.
e.g.
0 meaning updateExisting
1 meaning ignoreNew

Avaya Proactive Outreach Manager Developer Guide 96


ifContactExists No Set to updateExisting or
ignoreNew.
fieldSeparator No The separators used in the file for
separating fields. The separators
can be Comma (,) or Tab (\t) or
Colon (:) or Semi colon (;) or Pipe
(|) or Other
isFtpFileType No Set to true if file is at remote
location.
isFtpSecured No Set to true if SFTP is enabled for
the data import. If the contact data
source type is FTP, it is set to false.
ftpIPHostName No IP or hostname of the server where
file is located.
ftpRemoteFilePath No The path of file on remote server. It
is used for ftp/sftp type of
datasource.
ftpUserName No The user name configured for
ftp/sftp transfer
localFilePathOnServer No The path of file on local server.
customDataSourceClassName No The class name used for importing
of the data source.
databaseDataSourceIPHostName No The IP or hostname of database
server from which contacts will get
imported.
databaseDataSourcePort No The port number used to connect to
the database
databaseDataSourceSchemaName No The schema name of the database.
databaseDataSourceQuery No The query used to populate the
records.
databaseType No The database you use. For
example, MSSQL, Postgres or
Oracle.
databaseDataSourceUserName No The user name used to connect to
the database
systemAttributeMappingList No Mapping for system attributes with
columns mentioned in select query.
customAttributeMappingList No Mapping for custom attributes with
columns mentioned in select query.
retainCallBack No If dataSourceType is either of the 3
EXCLUDE_CONTACTS_FILE,
EXCLUDE_CONTACTS_DB or
EXCLUDE_CONTACTS_CUSTO
M and if callback set on contact
should be retained then set this
parameter to true.By default this
parameter will take value
false,which means if a particular
contact has callback set and if that
contact gets marked as excluded
after running the
datasource,callback won’t be
retained.
JSON response

Avaya Proactive Outreach Manager Developer Guide 97


Field name Description
dataSourceID The unique ID of created datasource.
Example
The example provided in this section is based creating new data source of database type for
existing contact list with name rulelistpreview.
HTTP: POST /VP_POM_Service/v4/datasources HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dataSourceType":"database_sql",
"name":"databaseDS",
"description":"filedsRest21",
"listName":"rulelistpreview",
"emptyContactListBeforeImport":true,
"pauseAssociatedCampaignsIfEmptyingContactList": false,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,
"automaticUpdateTimezone":true,
"checkRejectPattern":false,
"automaticUpdateState":false,
"automaticUpdateWireless":false,
"automaticTriggerImport":false,
"checkPhoneFormatRule":true,
"checkDNC":true,
"ifContactExists":"ignoreNew",
"fieldSeparator":",",
"ftpFileType":false,
"ftpSecured":false,
"ftpIPHostName":"null",
"ftpPassword":"null",
"ftpRemoteFilePath":"null",
"ftpUserName":"null",
"localFilePathOnServer":"null",
"customDataSourceClassName":"",
"databaseDataSourceIPHostName":"148.147.173.68","databaseDataSourcePort":"5432","dat
abaseDataSourceSchemaName":"dbtest","databaseDataSourcePassword":"postgres01","datab
aseDataSourceQuery":"select
contact_id,phone_number1,phone_number2,first_name,last_name,email from pim_contact
where
PIM_contact_store_id=1","databaseType":"POSTGRES","databaseDataSourceUserName":"post
gres",
"systemAttributeMappingList":[{"pomAttributeName":"id","remoteDatabaseFieldName":"co
ntact_id"}],"customAttributeMappingList":[{"pomAttributeName":"company","remoteDatab
aseFieldName":"email"}]}

RESPONSE JSON:
{"dataSourceID":220}

Avaya Proactive Outreach Manager Developer Guide 98


The example provided in this section is based creating new data source of
EXCLUDE_CONTACTS_FILE type for existing contact list with name 12Test with
retainCallback parameter set to true.
HTTP: POST /VP_POM_Service/v4/datasources HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"name": "ExcludeDSWS2",
"dataSourceType": "EXCLUDE_CONTACTS_FILE",
"listName": "12Test",
"description": null,
"emptyContactListBeforeImport": false,
"pauseAssociatedCampaignsIfEmptyingContactList": false,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,
"automaticUpdateTimezone": false,
"automaticUpdateState": false,
"automaticUpdateWireless": false,
"checkRejectPattern": false,
"automaticTriggerImport": false,
"checkPhoneFormatRule": false,
"checkDNC": false,
"cleanupPhoneNumber": false,
"emptyPhOnRuleMatch": false,
"emptyInvalidEmail": false,
"ifContactExists": "Update existing",
"fieldSeparator": ",",
"localFilePathOnServer": "/opt/sample01.csv",
"ftpFileType": false,
"ftpSecured": false,
"retainCallBack":true
}

RESPONSE JSON:
{"dataSourceID":221}
___________________________________________________________________________

Edit Data Source


POST /v4/datasources/{data_source_id}
The API edits the existing datasource.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/{data_source_id}

Parameters
path
Parameter Required Description Data Type
data_source_id Yes The ID of data source. Int

Avaya Proactive Outreach Manager Developer Guide 99


payload
Parameter Require Data Type
d
description No Description of the data source,
emptyContactListBeforeImport No Empty of contact list enabled or disabled. Valid
values are true and false
pauseAssociatedCampaignsIfEmp No If the parameter is set to “true”, all the running
tyingContactList campaigns associated with the contact list will be
paused, contact list will be emptied and the paused
campaigns will be resumed again, provided that the
parameter “emptyContactListBeforeImport” is set to
true.

Note: Use this option with caution. It is


recommended that the use of this option should be
prohibited when dialing is in progress. If the
campaign jobs fail to pause within a stipulated
timeout interval, then they might remain in
PAUSING/PAUSED state until they are manually
resumed.
Valid Values are true and false. Default Value is
false.
ignoreActiveExcludeContactsIfEm No If the parameter is set to “true”, contact list will be
ptyingContactList emptied ignoring all the active exclude contacts in
the contact list, provided that the parameter
“emptyContactListBeforeImport” is set to true.
Valid Values are true and false. Default Value is
false.
ignoreCallbackOnContactsIfEmpty No If the parameter is set to “true”, contact list will be
ingContactList emptied ignoring all the callbacks on the contacts in
the contact list, provided that the parameter
“emptyContactListBeforeImport” is set to true.
Valid Values are true and false. Default Value is
false.
automaticUpdateTimezone No Value of automatic update timezone flag. Valid
values are true and false
automaticUpdateState No Value of automatic update of state flag. Valid values
are true and false. This will be useful only if new
global configuration setting is enabled.
automaticUpdateWireless No Value of automatic update of wireless flag. Valid
values are true and false. This will be useful only if
new global configuration setting is enabled.
automaticTriggerImport No Value of automatic import setting. Valid values are
true and false. This will be used only for local-file
type of datasource.
checkRejectPattern No Set to true if reject pattern checks are enabled for
the datasource.
checkPhoneFormatRule No Set to true if phone format checks are enabled for
the datasource.
checkDNC No Set to true if DNC checking is enabled for the
datasource.
updateExistingContact No Set to true if updating of existing contacts is enabled
for the
datasource.
e.g.

Avaya Proactive Outreach Manager Developer Guide 100


0 meaning updateExisting
1 meaning ignoreNew
ifContactExists No Set to updateExisting or ignoreNew.
fieldSeparator No The separators used in the file for separating fields.
The separators can be Comma (,) or Tab(\t) or
Colon (:) or Semi colon (;) or Pipe (|) or Other
isFtpFileType No Set to true if file is at remote location.
isFtpSecured No Set to true if SFTP is enabled for the data import. If
the contact data source type is FTP, it is set to false.
ftpIPHostName No IP or hostname of the server where file is located.
ftpRemoteFilePath No The path of file on remote server. It is used for
ftp/sftp type of datasource.
ftpUserName No The user name configured for ftp/sftp transfer
localFilePathOnServer No The path of file on local server.
customDataSourceClassName No The class name usee for importing of the data
source.
databaseDataSourceIPHostName Yes The IP or hostname of database server from which
contacts will get imported.
databaseDataSourcePort Yes The port number used to connect to the database
databaseDataSourceSchemaNam Yes The schema name of the database.
e
databaseDataSourcePassword Yes Passward of database.
databaseDataSourceQuery Yes The query used to populate the records.
databaseType No The database you use. For example, MSSQL,
Postgres or Oracle.
databaseDataSourceUserName Yes The user name used to connect to the database
systemAttributeMappingList No Mapping for system attributes with columns
mentioned in select query.
customAttributeMappingList No Mapping for custom attributes with columns
mentioned in select query.
retainCallBack No If dataSourceType is either of the 3
EXCLUDE_CONTACTS_FILE,EXCLUDE_CONTA
CTS_DB or EXCLUDE_CONTACTS_CUSTOM
and if callback set on contact should be retained
then set this parameter to true.
By default this parameter will take value false,which
means if a particular contact has callback set and if
that contact gets marked as excluded after running
the datasource,callback won’t be retained.
JSON response
Field name Description
Result Return true on successful modification.
Example
The example provided in this section is based on editing existing data source with id 21.
HTTP: POST /VP_POM_Service/v4/datasources/21 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

Avaya Proactive Outreach Manager Developer Guide 101


REQUEST JSON:
{
"description":"filedsRest21",
"emptyContactListBeforeImport":true,
"pauseAssociatedCampaignsIfEmptyingContactList": false,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,
"automaticUpdateTimezone":true,
"checkRejectPattern":false,
"checkPhoneFormatRule":false,
"automaticUpdateState":false,
"automaticUpdateWireless":false,
"automaticTriggerImport":false,
"checkDNC":true,
"ifContactExists":"ignoreNew",
"fieldSeparator":",",
"ftpFileType":false,
"ftpSecured":false,
"ftpIPHostName":"null",
"ftpPassword":"null",
"ftpRemoteFilePath":"null",
"ftpUserName":"null",
"localFilePathOnServer":"null",
"customDataSourceClassName":"",
"databaseDataSourceIPHostName":"148.147.173.68","databaseDataSourcePort":"5432","dat
abaseDataSourceSchemaName":"dbtest","databaseDataSourcePassword":"postgres01","datab
aseDataSourceQuery":"select
contact_id,phone_number1,phone_number2,first_name,last_name,email from pim_contact
where PIM_contact_store_id=1","databaseDataSourceUserName":"postgres",
"systemAttributeMappingList":[{"pomAttributeName":"ID","remoteDatabaseFieldName":"co
ntact_id"}],"customAttributeMappingList":[{"pomAttributeName":"phone_number1","remot
eDatabaseFieldName":"phone_number2"}]}

RESPONSE JSON:
{"result":true}

The example provided in this section is based on editing existing data source with id 35 which
is of type EXCLUDE_CONTACTS_CUSTOM.
HTTP: POST /VP_POM_Service/v4/datasources/35 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"description": null,
"emptyContactListBeforeImport": false,
"pauseAssociatedCampaignsIfEmptyingContactList": false,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,
"automaticUpdateTimezone": false,
"automaticUpdateState": false,
"automaticUpdateWireless": false,
"checkRejectPattern": false,
"automaticTriggerImport": false,

Avaya Proactive Outreach Manager Developer Guide 102


"checkPhoneFormatRule": false,
"checkDNC": false,
"cleanupPhoneNumber": false,
"emptyPhOnRuleMatch": false,
"emptyInvalidEmail": false,
"ifContactExists": "Update existing",
"customDataSourceClassName": "test",
"retainCallBack": true
}

RESPONSE JSON:
{"result":true}
________________________________________________________________________
Delete Data Source
POST /v4/datasources/{data_source_id}/delete
The API deletes specified data source.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/{data_source_id}/delete

Parameters
path
Parameter Required Description Data Type
data_source_id Yes The ID of data source. Int
payload None

JSON response
Field name Description
result Return true on successful deletion.
Example
The example provided in this section is based on deletion of data source with id 220 existing
on the POM system.
HTTP: POST /VP_POM_Service/v4/datasources/220/delete HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
RESPONSE JSON:
{"result":true}

Check Data Source


GET /v4/datasources/check?data_source_filePath=””&triggerImport=””
The API provides list of datasourceIDs based on provided Datasource filePath and
triggerImport.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/check

Avaya Proactive Outreach Manager Developer Guide 103


Parameters
Path None
Query
Parameter Required Description Data
Type
data_source_filePath Yes Absolute path on local server String
triggerImport No Default value is true if not provided in request. Boolean
JSON response
Field name Description
dataSourceIDList List of datasource IDs matched for provided filePath
Example
The example provided in this section is based on checking data source ID on the POM system.
HTTP: GET
/VP_POM_Service/v4/datasources/check?filePath=/opt/Avaya/avpom/POMan
ager/splitterdir/default/DNSP1/splitcl1.csv&triggerImport=false
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
RESPONSE JSON:
{"dataSourceIDList":[220,227]}
__________________________________________________________________________________________
Schedule Data Source
POST /v4/datasources/schedule/runonce
The API provides ability to schedule jobs of run once type for Contact and DNC data import
existing on POM server.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/schedule/runonce

Parameters
path None
payload
Parameter Required Description Data Type
dataSourceName true The name of data source. string
startTime true Specify the start date and time for the string
triggering data import. Ensure that the start
date and format is yyyy/MM/dd HH:mm:ss.
timeZone true Specify the time zone you want to use for string
scheduling the jobs.
JSON response

Avaya Proactive Outreach Manager Developer Guide 104


Field name Description
dataSourceSchedule Returns true on success
Example
The example provided in this section is based on scheduling a data import with data source
name LocalFileDS to for run once at 09:00 AM
HTTP: POST /VP_POM_Service/v4/datasources/schedule/runonce HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested
-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dataSourceName":"LocalFileDS",
"startTime":"2018/06/06 09:00:00",
"timeZone": "GMT+05:30"
}

RESPONSE JSON:
{"dataSourceSchedule":true}

__________________________________________________________________________________________
Schedule Recurring Data Source
POST /v4/datasources/schedule/recurring
The API provides ability to schedule jobs of run daily/recurring for Contact and DNC data import
existing on POM server.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/schedule/recurring

Parameters
path None
payload
Parameter Required Description Data Type
dataSourceName true The name of data source. string
startTime true Specify the start date and time for the string
triggering data import. Ensure that the start
date and format is yyyy/MM/dd HH:mm:ss.
timeZone true Specify the time zone you want to use for string
scheduling the jobs.
recurringFrequency true The frequency for the import. You can specify string
any one of the values:
RunEveryNMins: This option creates import
job for every N specified minutes.
Daily : This option creates import job daily at
the start time you mention during scheduling
and continues till the end date time.

Avaya Proactive Outreach Manager Developer Guide 105


Weekly : This option creates import jobs on
specified days and weekly recurring jobs are
automatically created. You can select the
days of the week. For example, if you select
Monday and Friday, then it creates the weekly
import jobs on Monday and Friday at start time
mentioned during schedule.
Monthly: This option creates import jobs
monthly depending on the start date till the
finish date.
Yearly : This option creates import jobs yearly
depending on the start date till the finish date.
weekDaysOnly true Creates an import job on all days of the week boolean
except the weekend days you mention in the
POM Home > Configurations > Global
Configurations.
selectedDays true To select specific days only for weekly string[]
recurring schedule.
runEveryMinutes true To specify value in minutes for string
RunEveryNMins schedule.
recurringEndTime true The end date and the time for terminating the string
import. Ensure that the end date and the
format is yyyy/MM/dd HH:mm:ss.
JSON response
Field name Description
dataSourceSchedule Returns true on success
Example
The example provided in this section is based on scheduling a data import for data source
name LocalFile to run every Tuesday and Wednesday starting on 2020/07/05 to 2030/07/06.
HTTP: POST /VP_POM_Service/v4/datasources/schedule/recurring HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dataSourceName":"LocalFile",
"startTime":"2020/07/05 17:24:00",
"timeZone": "IST",
"recurringFrequency":"Weekly",
"weekDaysOnly": false,
"selectedDays": ["Tuesday","Wednesday"],
"runEveryMinutes": null,
"recurringEndTime":"2030/07/06 23:00:00"
}

RESPONSE JSON:
{"recurringDataSourceSchedule":true}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 106


Is Callable
GET /v4/contactlists/{contact_list_id}/contacts/callable
The API allows to check contact callable status. It is suggested to use this API before marking
contact callable or uncallable.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts/callable

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID. int

Payload
Parameter Required Description Data
Type
userContactId true The user contact ID for contact. string

JSON response
Field name Description
callable Returns true if contact found callable.
Example
The example provided in this section is based on contact list ID 1 and user contact ID 1, the
contact found callable as received in JSON response.
HTTP: GET /VP_POM_Service/v4/contactlists/1/contacts/callable
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"userContactId":"1"}

RESPONSE JSON:
{"callable":true}

__________________________________________________________________________________________
Mark Callable
POST /v4/contactlists/{contact_list_id}/contacts/markcallable
The API marks the list of excluded contacts as callable.

Avaya Proactive Outreach Manager Developer Guide 107


URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts/
markcallable

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID string
payload
Parameter Required Description Data Type
userContactId true The list of user contact IDs. ArrayList
JSON response
Field name Description
result Returns true if all provided user contact IDs are valid and marked
callable successfully.
failedContactIdList List of user contact IDs which found invalid or incorrect.
Example
The example provided in this section is based on three user contact IDs, the user contact ID
13 is marked callable successfully but the user contact IDs 11 and 12 found invalid for the
provided contact list ID 1
HTTP: POST /VP_POM_Service/v4/contactlists/1/contacts/markcallable
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
REQUEST JSON:
{
"userContactId":[11,12,13]
}

RESPONSE JSON:
{"result":false,"failedContactIdList":["11","12"]}

__________________________________________________________________________________________
Mark UnCallable
POST /v4/contactlists/{contact_list_id}/contacts/markuncallable
The API marks the list of available (non-excluded) contacts as not callable.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts/
markuncallable

Avaya Proactive Outreach Manager Developer Guide 108


Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID string
payload
Parameter Required Description Data Type
userContactId true The list of user contact IDs. ArrayList
JSON response
Field name Description
result Returns true if all provided user contact IDs are valid and marked callable
successfully.
failedContactIdList List of user contact IDs which found invalid or incorrect.
Example
The example provided in this section is based on three user contact IDs, the user contact ID
13 is marked not callable successfully but the user contact IDs 11 and 12 found invalid for the
provided contact list ID 1
HTTP: POST /VP_POM_Service/v4/contactlists/1/contacts/markuncallable
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
REQUEST JSON:
{
"userContactId":[11,12,13]
}

RESPONSE JSON:
{"result":false,"failedContactIdList":["11","12"]}

__________________________________________________________________________________________
Mark Contact List Callable
POST /v4/contactlists/{contact_list_id}/markcallable
The API marks all the excluded contacts in specified contact list as callable. If contact list has
more than 500 excluded contacts, POM will start job to clear the exclusions.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/markcallable

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID string

Avaya Proactive Outreach Manager Developer Guide 109


payload None

JSON response
Field name Description
Result Returns true on success
Example
The example provided in this section is based on contact list ID 3 which is marked callable
successfully.
HTTP: POST /VP_POM_Service/v4/contactlists/3/markcallable HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Mark Contact List UnCallable
POST /v4/contactlists/{contact_list_id}/markuncallable
The API marks all the available (non-excluded) contacts in specified contact list as uncallable.
If contact list has more than 500 available contacts, POM will start exclude job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/markuncallable

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID string

payload None

JSON response
Field name Description
result Returns true on success
Example
The example provided in this section is based on contact list ID 3 which is marked uncallable
successfully.
HTTP: POST /VP_POM_Service/v4/contactlists/3/markuncallable HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json

Avaya Proactive Outreach Manager Developer Guide 110


X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}

__________________________________________________________________________________________
Get List of All DNC Lists
GET /v4/dnclists
The API retrieves all DNC lists created on the system.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists

Parameters
path None
payload None

JSON response
List of DNC list items, each item consists:

Field name Description


DNCListId The DNC list unique identifier.
DNCListName The DNC list unique name.
lastUpdated The date and time when last update happened on DNC list.
totalAddresses The total number of addresses existing in DNC list.
listType The type of DNC list like System or Custom
Example
The example provided in this section is based on listing of DNC lists created on system using
admin user.
HTTP: GET /VP_POM_Service/v4/dnclists HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"lastUpdated":"2018-06-03
22:25:18.955","totalAddresses":0,"listType":"Predefined","dnclistId":2,"dnclistName"
:"agentorg DNC List"},{"lastUpdated":"2018-06-03
22:25:19.036","totalAddresses":0,"listType":"Predefined","dnclistId":3,"dnclistName"
:"CC DNC List"},{"lastUpdated":"2018-06-03
23:49:44.367","totalAddresses":2,"listType":"Predefined","dnclistId":1,"dnclistName"
:"Common DNC List"}]
__________________________________________________________________________________________
Create DNC List
POST /v4/dnclists

Avaya Proactive Outreach Manager Developer Guide 111


The API creates DNC list of custom type on POM server.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists

Parameters
path None
payload
Parameter Required Data Type
name Yes String
description No String
JSON response
Field name Description
dncListID The unique identifier of new DNC list.
Example
The example provided in this section is based on creating DNC list of custom type.
HTTP: POST /VP_POM_Service/v4/dnclists HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"name": "restDNCList",
"description": "This is description for a new DNC list created"
}

RESPONSE JSON:
{"dncListID":31}
__________________________________________________________________________________________
Edit DNC List
POST /v4/dnclists/{dnc_list_id}
The API modifies description of existing DNC list.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/{dnc_list_id}

Parameters
path
Parameter Required Description Data Type
dnc_list_id Yes The ID of DNC lists Int
payload
Parameter Required Data Type
description No String
JSON response
Avaya Proactive Outreach Manager Developer Guide 112
Field name Description
result Returns true on success.
Example
The example provided in this section is based editing description of existing DNC list.
HTTP: POST /VP_POM_Service/v4/dnclists/12 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"description": "REST DNC List"
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Is DNC
POST /v4/dnclists/{dnc_list_id}/check
The API checks if a given phone number, or e-mail address, or SIP address exist in the DNC
list.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/{dnc_list_id}/check

Parameters
path
Parameter Required Description Data Type
dnc_list_id true The DNC list ID int

payload
Parameter Required Description Data Type
dncAddress true Phone number, or email address, or SIP string
address.
checkForPhoneRejection true By default set to false. If set to true, POM boolean
applies global and country specific
rejection patterns for phone number.
checkForPhoneFormats true By default, set to false. If set to true, POM boolean
applies country specific phone format
patterns for phone number.
JSON response
Field name Description
dnc Returns true if address found existing in the DNC list.
Example

Avaya Proactive Outreach Manager Developer Guide 113


The example provided in this section is based on checking specified DNC list with ID 12 for
phone number 98456009234, as received in response the address is not existing in the DNC
list so false is returned.
HTTP: POST /VP_POM_Service/v4/dnclists/12/check HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dncAddress": "98456009234",
"checkForPhoneRejection": "false",
"checkForPhoneFormats": "false"
}

RESPONSE JSON:
{"dnc":false}

__________________________________________________________________________________________
Add to DNC List
POST /v4/dnclists/{dnc_list_id}/addresses
The API adds the given phone number, or e-mail address, or SIP address in the DNC list. You
can add contact numbers from common DNC list only if admin (non- Org user) is used.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/{dnc_list_id}/addresses

Parameters
path
Parameter Required Description Data Type
dnc_list_id true The DNC list ID int

payload
Parameter Required Description Data Type
dncAddress true Phone number, or email address, or SIP string
address. For Phone number # can be used
as country code separator.
checkForPhoneRejection true By default, set to false. If set to true, POM boolean
applies global and country specific rejection
patterns for phone number.
checkForPhoneFormats true By default, set to false. If set to true, POM boolean
applies country specific phone format
patterns for phone number.
JSON response
Field name Description
result Returns true on success

Avaya Proactive Outreach Manager Developer Guide 114


Example
The example provided in this section is based on adding phone number to DNC list ID 12, as
received in response the address successfully added in the mentioned DNC list ID so true is
returned. The part before # considered as country code and used for validating address against
phone format and reject patterns. If country code is not provided default values from global
configuration are used.
HTTP: POST /VP_POM_Service/v4/dnclists/12/addresses HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dncAddress": "91#1231123",
"checkForPhoneRejection": "false",
"checkForPhoneFormats": "false"
}

RESPONSE JSON:
{"result":true}

__________________________________________________________________________________________
Remove from DNC List
POST /v4/dnclists/{dnc_list_id}/addresses/delete
The API deletes the given phone number, or e-mail address, or SIP address from DNC list.
You can delete contact numbers from common DNC list only if admin (non- Org user) is used.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/{dnc_list_id}/addresses/delete

Parameters
path
Parameter Required Description Data Type
dnc_list_id true The DNC list ID int

payload
Parameter Required Description Data Type
dncAddress true Phone number, or email address, or SIP string
address. For Phone number # can be
used as country code separator.
checkForPhoneRejection true By default, set to false. If set to true, boolean
POM applies global and country specific
rejection patterns for phone number.
checkForPhoneFormats true By default, set to false. If set to true, boolean
POM applies country specific phone
format patterns for phone number.

Avaya Proactive Outreach Manager Developer Guide 115


JSON response
Field name Description
result Returns true on success
Example
The example provided in this section is based on removing phone number from DNC List ID
12, as received in response the address successfully deleted from the mentioned DNC list so
true is returned. The part before # considered as country code and used for validating address
against phone format and reject patterns. If country code is not provided default values from
global configuration are used.
HTTP: POST /v4/VP_POM_Service/dnclists/12/addresses/delete HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dncAddress": "91#1231123",
"checkForPhoneRejection": "false",
"checkForPhoneFormats": "false"
}

RESPONSE JSON:
{"result":true}

__________________________________________________________________________________________
Delete DNC List
POST /v4/dnclists/{dnc_list_id}/delete
The API deletes existing custom type of DNC list.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/{dnc_list_id}/delete

Parameters
path
Parameter Required Description Data Type
dnc_list_id Yes The DNC list ID Int
payload None

JSON response
Field name Description
result Returns true on successful deletion.
Example

Avaya Proactive Outreach Manager Developer Guide 116


The example provided in this section is based deleting existing DNC list with ID 23 of custom
type.
HTTP: POST /VP_POM_Service/v4/dnclists/23/delete HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
List All DNC Groups
GET /v4/dnclists/groups
The API lists all DNC groups created on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/groups

Parameters
path None
payload None

JSON response
List of DNC group items, each item contains below:
Field name Description
DNCListsGroupId The ID of DNC list group.
name Name of DNC group.
description Description of DNC group.
organizationId The organization ID of DNC group.
organizationName The organization name of DNC group.
createdBy The user name which created the DNC group.
lastUpdated The last updated date and time of DNC group.
lastModifiedBy The user name who modified the DNC group recently.
Example
The example provided in this section is based on listing all DNC groups.
HTTP: GET /VP_POM_Service/v4/dnclists/groups HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"totalPage":1,"dnclistsGroupList":[{"name":"ater","description":"","organizationId"
:-1,"organizationName":"Default","createdBy":"admin","lastUpdated":"2018-06-28
20:41:56.929","lastModifiedBy":"admin","dnclistsGroupId":1}]}
__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 117


Search and Sort DNC Groups
GET /v4/dnclists/groups
The API search and sort list of DNC groups as per provided criteria from POM system.

URL
https://<EP Server
IP>/VP_POM_Service/v4/dnclists/groups?pageSize={page_size}&pageNumber={page_number}&
searchBy={search_by}&searchOperator={search_operator}&searchValue={value}

Parameters
Query
Parameter Required Description Data Type
pageSize No Number of records to be int
fetched per batch. Default
value is 10.
pageNumber No The page number for which int
recrods will be fetched. Default
value is 1.
sortBy No Possible values include ID, String
name and organizationName
sortDirection No Possible values include ASC or String
DESC
searchBy No It allows to serach by ID or String
name or organizationName
searchOperator No Valid search operators include String
=, !=, in, contains, begins with,
ends with, is null, is not null
searchValue No Valid search value according to String
selected searchBy parameter
and selected operator.
payload None

JSON response
List of DNC group items, each item contains below:
Field name Description
DNCListsGroupId The ID of DNC list group.
name Name of DNC group.
description Description of DNC group.
organizationId The organization ID of DNC group.
organizationName The organization name of DNC group.
createdBy The user name which created the DNC group.
lastUpdated The last updated date and time of DNC group.
lastModifiedBy The user name who modified the DNC group recently.
Example
The example provided in this section is based on listing DNC groups using search and sort
criteria to fetch DNC lists containing test in their names.

Avaya Proactive Outreach Manager Developer Guide 118


HTTP: GET
/VP_POM_Service/v4/dnclists/groups?pageSize=10&pageNumber=1&searchBy=
name&searchOperator=contains&searchValue=test HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"totalPage":1,"dnclistsGroupList":[{"name":"test2","description":"","organizationId
":-1,"organizationName":"Default","createdBy":"admin","lastUpdated":"2018-05-28
19:51:21.398","lastModifiedBy":"admin","dnclistsGroupId":10},{"name":"test1","descri
ption":"","organizationId":-
1,"organizationName":"Default","createdBy":"admin","lastUpdated":"2018-05-28
19:31:09.981","lastModifiedBy":"admin","dnclistsGroupId":9},{"name":"test","descript
ion":"","organizationId":-
1,"organizationName":"Default","createdBy":"admin","lastUpdated":"2018-05-21
15:02:24.261","lastModifiedBy":"admin","dnclistsGroupId":8}]}
__________________________________________________________________________________________
Get DNC Group Details
GET /v4/dnclists/groups/{dnc_list_group_id}
The API retrieves DNC group details for provided dnc group ID.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/groups/{dnc_list_group_id}

Parameters
path
Parameter Required Description Data Type
DNCListGroupID Yes Valid DNC group ID to be int
retrieved from POM system
payload None

JSON response
Field name Description
dnclistGroupId The ID of DNC list group.
name Name of DNC group.
description Description of DNC group.
organizationId The organization ID of DNC group.
defaultDNCListId The organization name of DNC group.
createdBy The user name which created the DNC group.
lastModifiedOn The last updated date and time of DNC group.
lastModifiedBy The user name who modified the DNC group recently.
Example
The example provided in this section is based on retrieving details of DNC group having ID 25.
HTTP: GET /VP_POM_Service/v4/dnclists/groups/25 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx

Avaya Proactive Outreach Manager Developer Guide 119


Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"name":"AgentDNCGroup04","description":"AgentDNCGroup04","organizationId":-
1,"defaultDNCListId":29,"createdBy":"admin","lastModifiedOn":1530468236180,"lastModi
fiedBy":"admin","dnclistGroupId":25}
__________________________________________________________________________________________
Add DNC Group
POST /v4/dnclists/groups
The API create new DNC group on POM system with provided details.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/groups

Parameters
path None
payload
Parameter Required Data Type
name Yes The new DNC group name
description No The description of new DNC group
JSON response
Field name Description
dncListGroupID The ID of DNC group created on system.
Example
The example provided in this section is based creating DNC group with provided name and
description.
HTTP: POST /VP_POM_Service/v4/dnclists/groups HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"name": "DNCGroup1",
"description": "for all campaigns"
}

RESPONSE JSON:
{"dncListGroupID":3}
__________________________________________________________________________________________
Edit DNC Group
POST /v4/dnclists/groups/{dnc_list_group_id}
The API edits description of existing DNC group on POM system with provided details.

Avaya Proactive Outreach Manager Developer Guide 120


URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/groups/{dnc_list_group_id}

Parameters
path
Parameter Required Description Data Type
DNCListGroupID Yes The DNC group ID which int
needs to be modified
payload
Parameter Required Data Type
Description No The changed description value for existing DNC group
JSON response
Field name Description
result Returns true on success
Example
The example provided in this section is based on changing description of existing DNC group
with ID 3.
HTTP: POST /VP_POM_Service/v4/dnclists/groups/3 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"description": "changed description"
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Delete DNC Group
POST /v4/dnclists/groups/{dnc_list_group_id}/delete
The API deletes existing DNC group from POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/groups/{dnc_list_group_id}/delete

Parameters
path
Parameter Required Description Data Type
DNCListGroupID Yes The DNC group ID which int
needs to be modified
payload None

JSON response
Avaya Proactive Outreach Manager Developer Guide 121
Field name Description
result Returns true on successful deletion
Example
The example provided in this section is based on deletion of existing DNC group with ID 3.
HTTP: POST /VP_POM_Service/v4/dnclists/groups/3/delete HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Get List of Available DNC lists For Group
GET /v4/dnclists?DNCGroupId={dnc_group_id}
The API retrieves list of DNC lists associated with DNC group.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists?DNCGroupId={dnc_group_id}

Parameters
path
Parameter Required Description Data Type
DNCGroupId true The DNC group ID for which list string
of associated DNC lists needs
to be fetched
payload None

JSON response
Field name Description
DNCListId The DNC list unique identifier.
DNCListName The DNC list unique name.
lastUpdated The date and time when last update happened on DNC list.
totalAddresses The total number of addresses existing in DNC list.
listType The type of DNC list like System or Custom
Example
The example provided in this section is based on retrieving list of DNC lists associated with
DNC group with ID 20.
HTTP: GET /VP_POM_Service/v4/dnclists? DNCGroupId=20 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:

Avaya Proactive Outreach Manager Developer Guide 122


[{"lastUpdated":"2018-07-01
22:44:41.041","totalAddresses":0,"listType":"Custom","dnclistId":19,"dnclistName":"D
NCDeleteList3"},{"lastUpdated":"2018-07-01
22:45:04.912","totalAddresses":0,"listType":"Custom","dnclistId":20,"dnclistName":"E
mptyGroup"},{"lastUpdated":"2018-07-01
22:57:46.889","totalAddresses":2,"listType":"Custom","dnclistId":21,"dnclistName":"d
ncList"},{"lastUpdated":"2018-07-01
23:05:39.748","totalAddresses":2,"listType":"Custom","dnclistId":24,"dnclistName":"d
ncList03"},{"lastUpdated":"2018-07-01
23:22:09.571","totalAddresses":0,"listType":"Custom","dnclistId":25,"dnclistName":"d
ncList04"},{"lastUpdated":"2018-07-01
23:33:53.425","totalAddresses":0,"listType":"Custom","dnclistId":26,"dnclistName":"d
ncList06"},{"lastUpdated":"2018-07-01
23:14:55.706","totalAddresses":1,"listType":"Custom","dnclistId":27,"dnclistName":"c
opydncList06"},{"lastUpdated":"2018-07-01
23:21:55.086","totalAddresses":0,"listType":"Custom","dnclistId":28,"dnclistName":"A
gentDNCList"},{"lastUpdated":"2018-07-01
23:33:46.593","totalAddresses":0,"listType":"Custom","dnclistId":29,"dnclistName":"A
gentDNCList04"},{"lastUpdated":"2018-07-01
23:10:53.49","totalAddresses":2,"listType":"Predefined","dnclistId":1,"dnclistName":
"Common DNC List"}]
__________________________________________________________________________________________
Associate DNC Lists to Group
POST /v4/dnclists/groups/{dnc_list_group_id}/dnclists
The API adds association of multiple DNC lists with DNC group.

URL
https://<EP Server
IP>/VP_POM_Service/v4/dnclists/groups/{dnc_list_group_id}/dnclists

Parameters
path
Parameter Required Description Data Type
DNCGroupId Yes DNC group ID for which DNC int
lists needs to be associated
payload
Parameter Required Data Type
dnclistIds Yes Array of list IDs which need to be associated with DNC
group.
JSON response
It will have below fields against each DNC list ID provided in the request.

Field name Description


status Valid values are ADDED, ADDFAILED, ADDACCESSDENIED or
EXCEPTION
errorCode The errorcode value in case of failure. In success it will be set to
null
errorMessage The detailed error message in case of failure. In success it will be
set to null
Example

Avaya Proactive Outreach Manager Developer Guide 123


The example provided in this section is based adding association of 3 DNC lists(1,2 and 25) to
specified DNC group with ID 20.
HTTP: POST /VP_POM_Service/v4/dnclists/groups/20/dnclists HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dnclistIds":[1,2,25]
}

RESPONSE JSON:
{"1":{"status":"ADDED","errorCode":null,"errorMessage":null},"2":{"status":"ADDED","
errorCode":null,"errorMessage":null},"25":{"status":"ADDED","errorCode":null,"errorM
essage":null}}
__________________________________________________________________________________________
Dissociate DNC Lists from Group
POST /v4/dnclists/groups/{dnc_list_group_id}/dnclists/remove
The API removes association of multiple DNC lists from DNC group.

URL
https://<EP Server
IP>/VP_POM_Service/v4/dnclists/groups/{dnc_list_group_id}/dnclists/remove

Parameters
path
Parameter Required Description Data Type
DNCGroupId Yes DNC group ID for which DNC int
lists needs to be disassociated
payload
Parameter Required Data Type
dnclistIds Yes Array of list IDs which need to be removed from DNC
group’s associated DNC lists.
JSON response
It will have below fields against each DNC list ID provided in the request.

Field name Description


status Valid values are REMOVED, REMOVEFAILED or EXCEPTION
errorCode The errorcode value in case of failure. In success it will be set to
null
errorMessage The detailed error message in case of failure. In success it will be
set to null
Example
The example provided in this section is based removing association of 3 DNC lists (1,21, and
25) from specified DNC group with ID 20.

Avaya Proactive Outreach Manager Developer Guide 124


HTTP: POST /VP_POM_Service/v4/dnclists/groups/20/dnclists/remove
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dnclistIds":[1,21,25]
}

RESPONSE JSON:
{"1":{"status":"REMOVED","errorCode":null,"errorMessage":null},"25":{"status":"REMOV
ED","errorCode":null,"errorMessage":null},"21":{"status":"REMOVEFAILED","errorCode":
1334,"errorMessage":"DNC list to DNC group assignment not present."}}
__________________________________________________________________________________________
Get Default DNC List ID for Group
GET /v4/dnclists/groups/{dnc_list_group_id}/defaultdnclist
The API retrieves default DNC list ID for the specific DNC group.

URL
https://<EP Server
IP>/VP_POM_Service/v4/dnclists/groups/{dnc_list_group_id}/defaultdnclist

Parameters
path None
payload None

JSON response
Field name Description
dnclistId The ID of DNC list
dnclistName The name of DNC list
listType The type of DNC list, it could be custom of system.
totalAddresses The number of addresses existing in DNC list
lastUpdated The date and time stamp of last update made on DNC list
Example
The example provided in this section is based on retrieving default DNC list ID for DNC group
having ID as 20.
HTTP: GET /VP_POM_Service/v4/dnclists/groups/20/defaultdnclist
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:

Avaya Proactive Outreach Manager Developer Guide 125


{"lastUpdated":"2018-07-01
22:47:51.234","totalAddresses":0,"listType":"Predefined","dnclistId":2,"dnclistName"
:"CC DNC List"}
__________________________________________________________________________________________
Update Default DNC List for Group
POST
/v4/dnclists/groups/{dnc_list_group_id}/defaultdnclist?DNCListId={DN
C_list_id}
The API updates default DNC list ID to the specific DNC group.

URL
https://<EP Server
IP>/VP_POM_Service/v4/dnclists/groups/{dnc_list_group_id}/defaultdnclist?DNCListId={
DNC_list_id}

Parameters
Path
Parameter Required Description Data Type
DNCGroupId Yes The ID of DNC group. int

Query
Parameter Required Description Data Type
DNCListId No The ID of DNC list out of int
already associated DNC lists
which needs to be updated as
default DNC list for the group. If
not provided the default DNC
list will be set to NONE
payload None

JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on assigning DNC list ID 3 as default DNC list
for DNC group having ID as 20.
HTTP: POST
/VP_POM_Service/v4/dnclists/groups/20/defaultdnclist?DNCListId=3
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 126


Add Address To DNC List using List ID
POST /v4/dnclists/{dnc_list_id}/addresses
The API add address to specific DNC list ID specified in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/{dnc_list_id}/addresses

Parameters
path
Parameter Required Description Data Type
DNCListID Yes The DNC list ID in which int
address needs to be added
payload
Parameter Required Data Type
dncAddress Yes String
checkForPhoneRejection No boolean
checkForPhoneFormats No boolean
JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on adding address to specific DNC list ID 1.
HTTP: POST /VP_POM_Service/v4/dnclists/1/addresses HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dncAddress": "21213",
"checkForPhoneRejection": "false",
"checkForPhoneFormats":"false"
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Remove Address from DNC List using List ID
POST /v4/dnclists/{dnc_list_id}/addresses/delete
The API deletes address from specific DNC list ID specified in the request.

URL
https://<EP Server
IP>/VP_POM_Service/v4/dnclists/{dnc_list_id}/addresses/delete

Avaya Proactive Outreach Manager Developer Guide 127


Parameters
path
Parameter Required Description Data Type
DNCListID Yes The DNC list ID from which int
address needs to be removed
payload
Parameter Required Data Type
dncAddress Yes String
checkForPhoneRejection No boolean
checkForPhoneFormats No boolean
JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on deletion of address from specific DNC list
ID 1.
HTTP: POST /VP_POM_Service/v4/dnclists/1/addresses HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dncAddress": "21213",
"checkForPhoneRejection": "false",
"checkForPhoneFormats":"false"
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Is Address Existence in DNC List using List ID
POST /v4/dnclists/{dnc_list_id}/check
The API check existence of address in specific DNC list ID specified in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/dnclists/{dnc_list_id}/check

Parameters
path
Parameter Required Description Data Type
DNCListID Yes The DNC list ID from which int
address needs to be checked
payload
Parameter Required Data Type

Avaya Proactive Outreach Manager Developer Guide 128


dncAddress Yes String
checkForPhoneRejection No boolean
checkForPhoneFormats No boolean
JSON response
Field name Description
dnc Returns true if found existing in the specified DNC list.
Example
The example provided in this section is based on checking existence of address from specific
DNC list ID 1.
HTTP: POST /VP_POM_Service/v4/dnclists/1/check HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"dncAddress": "21213",
"checkForPhoneRejection": "true",
"checkForPhoneFormats": "true"
}

RESPONSE JSON:
{"dnc":false}
__________________________________________________________________________________________
Get Import Job Status
POST /v4/datasources/import/jobstatus
The API provides current job status for data import jobs for both contact and DNC type of data
sources.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/import/jobstatus

Parameters
path None
payload
Parameter Required Description Data Type
dataSourceName true The data source name string
jobStates true There can be multiple job states. The valid values are: string
• COMPLETED
• QUEUED
• RUNNING
• ERROR
• FILE_COPYING
• PAUSING
• PAUSED
• STOPPING

Avaya Proactive Outreach Manager Developer Guide 129


• WAITING_TO_RESUME
• DELETING_CONTACTS
• CREATING_HISTORY
The COMPLETED state could return lot of import job if
purging is disabled. So it recommended to be used with
purging enabled on the system.
JSON response
Field name Description
importName The name of the import data source.
listName The name of contact list.
importJobId The job id of import data source job.
status There can be multiple import job states. The valid values are:
• COMPLETED
• QUEUED
• RUNNING
• ERROR
• FILE_COPYING
• PAUSING
• PAUSED
• STOPPING
• WAITING_TO_RESUME
• DELETING_CONTACTS
• CREATING_HISTORY
successCount Total number of successfully imported records.
updateCount Total number of updated records.
runTimeErrorCount Total number of records rejected due to run time error.
ValidationFailedCount Total number of records rejected due to invalid values.
duplicateIgnoredCount Total number of records rejected due to duplicate entries found in
the list.
matchPhoneRejectPatternCount Total number of records rejected due to matched reject pattern for
contact phone numbers.
deleteCount Total number of contacts deleted in the import job.
matchesDncCount Total number records rejected due to matching addresses in the
DNC list.
phoneFormatFailedCount Total number of contacts rejected due to matched phone format
for contact phone numbers
processedRecordCount Total number of contacts processed during data import job.
Example
The example provided in this section is based on retrieving import jobs in COMPLETED or RUNNING
states.

HTTP: POST /VP_POM_Service/v4/datasources/import/jobstatus HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{

Avaya Proactive Outreach Manager Developer Guide 130


"dataSourceName":"LocalFile",
"jobStates": "COMPLETED,RUNNING"
}

RESPONSE JSON:
[{"importName":"LocalFile","listName":"testCL1","importJobId":13,"status":"completed
","successCount":999985,"updateCount":4000015,"runTimeErrorCount":0,"duplicateIgnore
dCount":0,"matchPhoneRejectPatternCount":0,"deleteCount":0,"matchesDncCount":0,"phon
eFormatFailedCount":0,"processedRecordCount":5000000,"validationFailedCount":0},{"im
portName":"LocalFile","listName":"testCL1","importJobId":17,"status":"completed","su
ccessCount":0,"updateCount":0,"runTimeErrorCount":0,"duplicateIgnoredCount":0,"match
PhoneRejectPatternCount":0,"deleteCount":0,"matchesDncCount":0,"phoneFormatFailedCou
nt":0,"processedRecordCount":0,"validationFailedCount":0},{"importName":"LocalFile",
"listName":"testCL1","importJobId":26,"status":"completed","successCount":0,"updateC
ount":0,"runTimeErrorCount":0,"duplicateIgnoredCount":0,"matchPhoneRejectPatternCoun
t":0,"deleteCount":0,"matchesDncCount":0,"phoneFormatFailedCount":0,"processedRecord
Count":0,"validationFailedCount":0},{"importName":"LocalFile","listName":"testCL1","
importJobId":33,"status":"completed","successCount":0,"updateCount":0,"runTimeErrorC
ount":0,"duplicateIgnoredCount":0,"matchPhoneRejectPatternCount":0,"deleteCount":0,"
matchesDncCount":0,"phoneFormatFailedCount":0,"processedRecordCount":0,"validationFa
iledCount":0}]
__________________________________________________________________________________________
Get All Attributes
GET /v4/contactattributes
The API provides list of contact attributes for the organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactattributes

Parameters
path None
payload None

JSON response
List of items is returned; each item has fields listed below:
Field name Description
attributeID Unique ID for each attribute
attributeName The name of contact attribute.
fileAttributeName Name we define in file while uploading contacts.
attributeDataType The data type of the attribute.
The minimum and the maximum values for each data type are:
INTEGER: The minimum value is -2,147,483,648, and the maximum
value is 2,147,483,647 (both values inclusive).

LONG: The minimum value is -9,223,372,036,854,775,808, and the


maximum value is 9,223,372,036,854,775,807 (both values inclusive).

SHORT: The minimum value is -32,768, and the maximum value is


32,767 (both values inclusive).

CHARACTER: A single character is allowed.

Avaya Proactive Outreach Manager Developer Guide 131


FLOAT: 28 precisions and 10 scale. This means 28 characters before
the decimal and 10 characters after the decimal point.

Note:
You cannot enter a float value as a combination on numbers and
alphabets. For example, 123.4f is not a valid float value.

BOOLEAN: The allowed values are TRUE and FALSE, or YES and NO,
or T and F, or Y and N, or 0 and 1.

STRING: Any string up to 3990 characters.

PHONE: Valid phone number up to 80 characters. The system has two


predefined attributes; Phone 1 and Phone 2, for specifying the phone
number. Use this to specify an alternate phone number. When you add
a phone attribute, POM adds 2 child attributes, xxx_ctry_code and
xxx_tz, where xxx is name of the phone attribute.

EMAIL: Any string up to 80 characters.

DATE: Date in the valid format.


Note:
The date format must match the date part specified in the Global Date
Format field on the Manage Global Configuration page under POM Home
> Configurations > Global Configurations.

For example, to specify a custom attribute, Date_Of_Birth, then use the


Date data type.

TIME: Time in the valid format.


Note:
The time format must match the time part specified in the Global Date
Format field on the Manage Global Configuration page under POM Home
> Configurations > Global Configurations.

For example, to specify a custom attribute, Delivery_Time, then use the


Time data type.

TIMESTAMP: Timestamp in the valid format.


Note:
The timestamp must match with the timestamp part specified in the
Global Date Format field on the Manage Global Configuration page under
POM Home > Configurations > Global Configurations.

For example, to specify a custom attribute, Schedule, then use the


Timestamp field.

If you specify the Global Date Format as DD-MM-YYYY hh:mm:ss, then


the valid date format considers DD-MM-YYYY, the valid time format
considers hh:mm:ss, and the valid timestamp considers DD:MM:YYYY
hh:mm:ss.
attributeType If the attribute is system defined or user defined.(Custom/Predefined)
displayName The display name of contact attribute. For custom type of attribute, it is
same as attribute name.
classPropertyName Class property name is used as input name for attributes in other api’s.
The value is empty for custom contact attributes.

Avaya Proactive Outreach Manager Developer Guide 132


Masked The masked attribute not visible to agent. Returned true in case contact
attribute is not visible to agent.
Readonly The contact attribute is not editable for logged in agent if true is returned.
sensitive Indicate if the attribute is private and for internal organization use only.
maskedForAllUsers The attribute is masked and not visible to users. Returned true in case
contact attribute is not visible to users.
Example
The example provided in this section is based on admin user (non - org user).
HTTP: GET /VP_POM_Service/v4/contactattributes HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"attributeID":"76","attributeName":"home_ctry_code","fileAttributeName":"home_ctry_code","attributeDat
aType":"INTEGER","attributeType":"Custom","displayName":"home_ctry_code","classPropertyName":"","mask
ed":false,"readonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"49","attributeName":"Product","fileAttributeName":"Product","attributeDataType":"STRING",
"attributeType":"Custom","displayName":"Product","classPropertyName":"","masked":false,"readonly":false,"s
ensitive":false,"maskedForAllUsers":false
},{"attributeID":"20","attributeName":"language","fileAttributeName":"language","attributeDataType":"STRIN
G","attributeType":"Predefined","displayName":"Language","classPropertyName":"language","masked":false,"
readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"45","attributeName":"salary","fileAttributeName":"salary","attributeDataType":"INTEGER","at
tributeType":"Custom","displayName":"salary","classPropertyName":"","masked":false,"readonly":false,"sensit
ive":false,"maskedForAllUsers":false
},{"attributeID":"55","attributeName":"Phone3_wireless","fileAttributeName":"Phone3_wireless","attributeDat
aType":"BOOLEAN","attributeType":"Custom","displayName":"Phone3_wireless","classPropertyName":"","mas
ked":false,"readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"64","attributeName":"Phone5_tz","fileAttributeName":"Phone5_tz","attributeDataType":"STR
ING","attributeType":"Custom","displayName":"Phone5_tz","classPropertyName":"","masked":false,"readonly"
:false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"3","attributeName":"title_predefined","fileAttributeName":"titlepredefined","attributeDataTy
pe":"STRING","attributeType":"Predefined","displayName":"Title
Predefined","classPropertyName":"titlePredefined","masked":false,"readonly":true,"sensitive":false,"maskedF
orAllUsers":false
},{"attributeID":"8","attributeName":"addr_line3_predefined","fileAttributeName":"addrline3predefined","attr
ibuteDataType":"STRING","attributeType":"Predefined","displayName":"Address Line 3
Predefined","classPropertyName":"addrLine3Predefined","masked":false,"readonly":false,"sensitive":false,"ma
skedForAllUsers":false
},{"attributeID":"80","attributeName":"home_wireless","fileAttributeName":"home_wireless","attributeDataTy
pe":"BOOLEAN","attributeType":"Custom","displayName":"home_wireless","classPropertyName":"","masked":
false,"readonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"83","attributeName":"custom_phone_tz","fileAttributeName":"custom_phone_tz","attributeD
ataType":"STRING","attributeType":"Custom","displayName":"custom_phone_tz","classPropertyName":"","ma
sked":false,"readonly":false,"sensitive":true,"maskedForAllUsers":false

Avaya Proactive Outreach Manager Developer Guide 133


},{"attributeID":"85","attributeName":"custom_phone_state","fileAttributeName":"custom_phone_state","attr
ibuteDataType":"STRING","attributeType":"Custom","displayName":"custom_phone_state","classPropertyNam
e":"","masked":false,"readonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"17","attributeName":"phone_number2_tz","fileAttributeName":"phonenumber2tz","attribute
DataType":"STRING","attributeType":"Predefined","displayName":"Phone 2 Time Zone
","classPropertyName":"phoneNumber2Tz","masked":false,"readonly":false,"sensitive":false,"maskedForAllUse
rs":false
},{"attributeID":"86","attributeName":"custom_phone_wireless","fileAttributeName":"custom_phone_wireless
","attributeDataType":"BOOLEAN","attributeType":"Custom","displayName":"custom_phone_wireless","classP
ropertyName":"","masked":false,"readonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"57","attributeName":"Phone4_ctry_code","fileAttributeName":"Phone4_ctry_code","attribute
DataType":"INTEGER","attributeType":"Custom","displayName":"Phone4_ctry_code","classPropertyName":"","
masked":false,"readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"74","attributeName":"test","fileAttributeName":"test","attributeDataType":"STRING","attribut
eType":"Custom","displayName":"test","classPropertyName":"","masked":false,"readonly":false,"sensitive":tru
e,"maskedForAllUsers":false
},{"attributeID":"61","attributeName":"Phone4_wireless","fileAttributeName":"Phone4_wireless","attributeDat
aType":"BOOLEAN","attributeType":"Custom","displayName":"Phone4_wireless","classPropertyName":"","mas
ked":false,"readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"82","attributeName":"custom_phone_ctry_code","fileAttributeName":"custom_phone_ctry_c
ode","attributeDataType":"INTEGER","attributeType":"Custom","displayName":"custom_phone_ctry_code","cl
assPropertyName":"","masked":false,"readonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"28","attributeName":"phone_number2_state","fileAttributeName":"phonenumber2state","att
ributeDataType":"STRING","attributeType":"Predefined","displayName":"Phone 2
State","classPropertyName":"phoneNumber2State","masked":false,"readonly":false,"sensitive":false,"maskedF
orAllUsers":false
},{"attributeID":"66","attributeName":"Phone5_state","fileAttributeName":"Phone5_state","attributeDataType
":"STRING","attributeType":"Custom","displayName":"Phone5_state","classPropertyName":"","masked":false,"
readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"15","attributeName":"phone_number2","fileAttributeName":"phonenumber2","attributeData
Type":"PHONE","attributeType":"Predefined","displayName":"Phone
2","classPropertyName":"phoneNumber2","masked":false,"readonly":false,"sensitive":false,"maskedForAllUser
s":false
},{"attributeID":"58","attributeName":"Phone4_tz","fileAttributeName":"Phone4_tz","attributeDataType":"STR
ING","attributeType":"Custom","displayName":"Phone4_tz","classPropertyName":"","masked":false,"readonly"
:false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"48","attributeName":"State","fileAttributeName":"State","attributeDataType":"STRING","attri
buteType":"Custom","displayName":"State","classPropertyName":"","masked":false,"readonly":false,"sensitive
":false,"maskedForAllUsers":false
},{"attributeID":"12","attributeName":"phone_number1_ctry_code","fileAttributeName":"phonenumber1ctryc
ode","attributeDataType":"INTEGER","attributeType":"Predefined","displayName":"Phone 1 Country
Code","classPropertyName":"phoneNumber1CtryCode","masked":false,"readonly":false,"sensitive":false,"mask
edForAllUsers":false
},{"attributeID":"47","attributeName":"AgentID","fileAttributeName":"AgentID","attributeDataType":"STRING",
"attributeType":"Custom","displayName":"AgentID","classPropertyName":"","masked":false,"readonly":false,"s
ensitive":false,"maskedForAllUsers":false
},{"attributeID":"10","attributeName":"addr_line5_predefined","fileAttributeName":"addrline5predefined","att
ributeDataType":"STRING","attributeType":"Predefined","displayName":"Address Line 5
Predefined","classPropertyName":"addrLine5Predefined","masked":false,"readonly":false,"sensitive":false,"ma

Avaya Proactive Outreach Manager Developer Guide 134


skedForAllUsers":false
},{"attributeID":"67","attributeName":"Phone5_wireless","fileAttributeName":"Phone5_wireless","attributeDat
aType":"BOOLEAN","attributeType":"Custom","displayName":"Phone5_wireless","classPropertyName":"","mas
ked":false,"readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"11","attributeName":"phone_number1","fileAttributeName":"phonenumber1","attributeData
Type":"PHONE","attributeType":"Predefined","displayName":"Phone
1","classPropertyName":"phoneNumber1","masked":false,"readonly":false,"sensitive":false,"maskedForAllUser
s":false
},{"attributeID":"73","attributeName":"mobile_wireless","fileAttributeName":"mobile_wireless","attributeData
Type":"BOOLEAN","attributeType":"Custom","displayName":"mobile_wireless","classPropertyName":"","mask
ed":false,"readonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"43","attributeName":"BloodGroup","fileAttributeName":"BloodGroup","attributeDataType":"S
TRING","attributeType":"Custom","displayName":"BloodGroup","classPropertyName":"","masked":false,"read
only":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"72","attributeName":"mobile_state","fileAttributeName":"mobile_state","attributeDataType":
"STRING","attributeType":"Custom","displayName":"mobile_state","classPropertyName":"","masked":false,"re
adonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"42","attributeName":"city","fileAttributeName":"city","attributeDataType":"STRING","attribut
eType":"Custom","displayName":"city","classPropertyName":"","masked":false,"readonly":false,"sensitive":fals
e,"maskedForAllUsers":false
},{"attributeID":"51","attributeName":"Phone3_ctry_code","fileAttributeName":"Phone3_ctry_code","attribute
DataType":"INTEGER","attributeType":"Custom","displayName":"Phone3_ctry_code","classPropertyName":"","
masked":false,"readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"77","attributeName":"home_tz","fileAttributeName":"home_tz","attributeDataType":"STRING
","attributeType":"Custom","displayName":"home_tz","classPropertyName":"","masked":false,"readonly":false
,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"1","attributeName":"contact_id","fileAttributeName":"contactid","attributeDataType":"LONG
","attributeType":"Predefined","displayName":"System Contact
ID","classPropertyName":"contactId","masked":false,"readonly":true,"sensitive":true,"maskedForAllUsers":fals
e
},{"attributeID":"9","attributeName":"addr_line4_predefined","fileAttributeName":"addrline4predefined","attr
ibuteDataType":"STRING","attributeType":"Predefined","displayName":"Address Line 4
Predefined","classPropertyName":"addrLine4Predefined","masked":false,"readonly":false,"sensitive":false,"ma
skedForAllUsers":false
},{"attributeID":"69","attributeName":"mobile_ctry_code","fileAttributeName":"mobile_ctry_code","attribute
DataType":"INTEGER","attributeType":"Custom","displayName":"mobile_ctry_code","classPropertyName":"","
masked":false,"readonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"16","attributeName":"phone_number2_ctry_code","fileAttributeName":"phonenumber2ctryc
ode","attributeDataType":"INTEGER","attributeType":"Predefined","displayName":"Phone 2 Country
Code","classPropertyName":"phoneNumber2CtryCode","masked":false,"readonly":false,"sensitive":false,"mask
edForAllUsers":false
},{"attributeID":"50","attributeName":"Phone3","fileAttributeName":"Phone3","attributeDataType":"PHONE","
attributeType":"Custom","displayName":"Phone3","classPropertyName":"","masked":false,"readonly":false,"se
nsitive":false,"maskedForAllUsers":false
},{"attributeID":"60","attributeName":"Phone4_state","fileAttributeName":"Phone4_state","attributeDataType
":"STRING","attributeType":"Custom","displayName":"Phone4_state","classPropertyName":"","masked":false,"
readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"62","attributeName":"Phone5","fileAttributeName":"Phone5","attributeDataType":"PHONE","
attributeType":"Custom","displayName":"Phone5","classPropertyName":"","masked":false,"readonly":false,"se

Avaya Proactive Outreach Manager Developer Guide 135


nsitive":false,"maskedForAllUsers":false
},{"attributeID":"29","attributeName":"phone_number1_wireless","fileAttributeName":"phonenumber1wireles
s","attributeDataType":"STRING","attributeType":"Predefined","displayName":"Phone 1
Wireless","classPropertyName":"phoneNumber1Wireless","masked":false,"readonly":false,"sensitive":false,"m
askedForAllUsers":false
},{"attributeID":"56","attributeName":"Phone4","fileAttributeName":"Phone4","attributeDataType":"PHONE","
attributeType":"Custom","displayName":"Phone4","classPropertyName":"","masked":false,"readonly":false,"se
nsitive":false,"maskedForAllUsers":false
},{"attributeID":"44","attributeName":"company","fileAttributeName":"company","attributeDataType":"STRIN
G","attributeType":"Custom","displayName":"company","classPropertyName":"","masked":false,"readonly":fal
se,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"4","attributeName":"first_name","fileAttributeName":"firstname","attributeDataType":"STRIN
G","attributeType":"Predefined","displayName":"First
Name","classPropertyName":"firstName","masked":false,"readonly":false,"sensitive":false,"maskedForAllUsers
":false
},{"attributeID":"19","attributeName":"email","fileAttributeName":"email","attributeDataType":"EMAIL","attri
buteType":"Predefined","displayName":"E-
Mail","classPropertyName":"email","masked":false,"readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"25","attributeName":"zipcode_predefined","fileAttributeName":"zipcodepredefined","attribut
eDataType":"STRING","attributeType":"Predefined","displayName":"Zipcode
Predefined","classPropertyName":"zipcodePredefined","masked":false,"readonly":false,"sensitive":false,"mask
edForAllUsers":false
},{"attributeID":"2","attributeName":"user_contact_id","fileAttributeName":"id","attributeDataType":"STRING"
,"attributeType":"Predefined","displayName":"ID","classPropertyName":"userContactId","masked":false,"read
only":true,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"68","attributeName":"mobile","fileAttributeName":"mobile","attributeDataType":"PHONE","a
ttributeType":"Custom","displayName":"mobile","classPropertyName":"","masked":false,"readonly":false,"sen
sitive":true,"maskedForAllUsers":false
},{"attributeID":"5","attributeName":"last_name","fileAttributeName":"lastname","attributeDataType":"STRIN
G","attributeType":"Predefined","displayName":"Last
Name","classPropertyName":"lastName","masked":false,"readonly":false,"sensitive":false,"maskedForAllUsers
":false
},{"attributeID":"13","attributeName":"time_zone","fileAttributeName":"timezone","attributeDataType":"STRI
NG","attributeType":"Predefined","displayName":"Time
Zone","classPropertyName":"timeZone","masked":false,"readonly":false,"sensitive":false,"maskedForAllUsers":
false
},{"attributeID":"52","attributeName":"Phone3_tz","fileAttributeName":"Phone3_tz","attributeDataType":"STR
ING","attributeType":"Custom","displayName":"Phone3_tz","classPropertyName":"","masked":false,"readonly"
:false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"7","attributeName":"addr_line2_predefined","fileAttributeName":"addrline2predefined","attr
ibuteDataType":"STRING","attributeType":"Predefined","displayName":"Address Line 2
Predefined","classPropertyName":"addrLine2Predefined","masked":false,"readonly":false,"sensitive":false,"ma
skedForAllUsers":false
},{"attributeID":"75","attributeName":"home","fileAttributeName":"home","attributeDataType":"PHONE","attr
ibuteType":"Custom","displayName":"home","classPropertyName":"","masked":false,"readonly":false,"sensitiv
e":true,"maskedForAllUsers":false
},{"attributeID":"79","attributeName":"home_state","fileAttributeName":"home_state","attributeDataType":"S
TRING","attributeType":"Custom","displayName":"home_state","classPropertyName":"","masked":false,"reado
nly":false,"sensitive":true,"maskedForAllUsers":false

Avaya Proactive Outreach Manager Developer Guide 136


},{"attributeID":"54","attributeName":"Phone3_state","fileAttributeName":"Phone3_state","attributeDataType
":"STRING","attributeType":"Custom","displayName":"Phone3_state","classPropertyName":"","masked":false,"
readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"27","attributeName":"phone_number1_state","fileAttributeName":"phonenumber1state","att
ributeDataType":"STRING","attributeType":"Predefined","displayName":"Phone 1
State","classPropertyName":"phoneNumber1State","masked":false,"readonly":false,"sensitive":false,"maskedF
orAllUsers":false
},{"attributeID":"24","attributeName":"country_predefined","fileAttributeName":"countrypredefined","attribut
eDataType":"STRING","attributeType":"Predefined","displayName":"Country
Predefined","classPropertyName":"countryPredefined","masked":false,"readonly":false,"sensitive":false,"mask
edForAllUsers":false
},{"attributeID":"63","attributeName":"Phone5_ctry_code","fileAttributeName":"Phone5_ctry_code","attribute
DataType":"INTEGER","attributeType":"Custom","displayName":"Phone5_ctry_code","classPropertyName":"","
masked":false,"readonly":false,"sensitive":false,"maskedForAllUsers":false
},{"attributeID":"70","attributeName":"mobile_tz","fileAttributeName":"mobile_tz","attributeDataType":"STRI
NG","attributeType":"Custom","displayName":"mobile_tz","classPropertyName":"","masked":false,"readonly":
false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"81","attributeName":"custom_phone","fileAttributeName":"custom_phone","attributeDataTy
pe":"PHONE","attributeType":"Custom","displayName":"custom_phone","classPropertyName":"","masked":fal
se,"readonly":false,"sensitive":true,"maskedForAllUsers":false
},{"attributeID":"46","attributeName":"age","fileAttributeName":"age","attributeDataType":"INTEGER","attribu
teType":"Custom","displayName":"age","classPropertyName":"","masked":false,"readonly":false,"sensitive":fal
se,"maskedForAllUsers":false
},{"attributeID":"6","attributeName":"addr_line1_predefined","fileAttributeName":"addrline1predefined","attr
ibuteDataType":"STRING","attributeType":"Predefined","displayName":"Address Line 1
Predefined","classPropertyName":"addrLine1Predefined","masked":false,"readonly":false,"sensitive":false,"ma
skedForAllUsers":false
},{"attributeID":"30","attributeName":"phone_number2_wireless","fileAttributeName":"phonenumber2wireles
s","attributeDataType":"STRING","attributeType":"Predefined","displayName":"Phone 2
Wireless","classPropertyName":"phoneNumber2Wireless","masked":false,"readonly":false,"sensitive":false,"m
askedForAllUsers":false }]

__________________________________________________________________________________________
Search Contact Attribute
GET
/v4/contactattributes?searchBy={search_by}&searchOperator={operator}
&searchValue={value}
The API searches contact attributes according to search criteria specified by the user.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactattributes?searchBy={search_by}&searchOperator={operato
r}&searchValue={value}

Parameters
Query
Parameter Required Description Data Type

Avaya Proactive Outreach Manager Developer Guide 137


pageSize No Number of attributes to be int
fetched per request. Max 100
attributes per request is
allowed. If value is not provided
default page size used for
calculating total pages will be
10.
pageNumber No The page number for which int
records needs to be fetched. If
value is not provided default 1
will be used.
searchBy No Field name to be used for String
searching the attributes.
Possible values include below
names:
"attributeName",
"dataType",
"isSensitive",
"isReadOnly",
"isMasked",
“maskedForAllUsers”
searchOperator No Below operator will be allowed String
according to type of field
selected in SearchBy
parameter. The valid operator
values are like, notlike, in !=
and =
searchValue No Value to be searched. Ensure String
to provide valid value according
to data type of field selected in
Search By operator. Wild chars
like are not valid for example *,
~, etc
Payload None

JSON response
Each attribute will have below fields:

Field name Description


attributeID The unique identifier of the contact attribute.
attributeName The name of contact attribute.
fileAttributeName Name we define in file while uploading contacts.
attributeDataType The attribute data type could be:
INTEGER: The minimum value is -2,147,483,648, and the
maximum value is 2,147,483,647 (both values inclusive).
LONG: The minimum value is -9,223,372,036,854,775,808, and
the maximum value is 9,223,372,036,854,775,807 (both values
inclusive).
SHORT: The minimum value is -32,768, and the maximum value is
32,767 (both values inclusive).
CHARACTER: A single character is allowed.
FLOAT: 28 precision and 10 scale. This means 28 characters
before the decimal and 10 characters after the decimal point.
Note:
You cannot enter a float value as a combination on numbers and
alphabets. For example, 123.4f is not a valid float value.

Avaya Proactive Outreach Manager Developer Guide 138


Field name Description
BOOLEAN: The allowed values are TRUE and FALSE, or YES and
NO, or T and F, or Y and N, or 0 and 1.
STRING: Any string up to 3990 characters.
PHONE: Valid phone number up to 80 characters. The system has
two predefined attributes; Phone 1 and Phone 2, for specifying the
phone number. Use this to specify an alternate phone number.
When you add a phone attribute, POM adds 2 child attributes,
xxx_ctry_code and xxx_tz, where xxx is name of the phone
attribute.
EMAIL: Any string up to 80 characters.
DATE: Date in the valid format.
Note:
The date format must match the date part specified in the Global
Date Format field on the Manage Global Configuration page under
POM Home > Configurations > Global Configurations.
For example, to specify a custom attribute, Date_Of_Birth, then use
the Date data type.
TIME: Time in the valid format.
Note:
The time format must match the time part specified in the Global
Date Format field on the Manage Global Configuration page under
POM Home > Configurations > Global Configurations.
For example, to specify a custom attribute, Delivery_Time, then use
the Time data type.
TIMESTAMP: Timestamp in the valid format.
Note:
The timestamp must match with the timestamp part specified in the
Global Date Format field on the Manage Global Configuration page
under POM Home > Configurations > Global Configurations.
For example, to specify a custom attribute, Schedule, then use the
Timestamp field.
If you specify the Global Date Format as DD-MM-YYYY hh:mm:ss,
then the valid date format considers DD-MM-YYYY, the valid time
format considers hh:mm:ss, and the valid timestamp considers
DD:MM:YYYY hh:mm:ss.
attributeType If the attribute is system defined or user
defined.(Custom/Predefined)
displayName The display name of attribute.
classPropertyName Class property name is used as input name for attributes in other
api’s.
The value is empty for custom contact attributes.
masked Displays if the attribute is masked. If the attribute is masked, the
logged in agents cannot see the attribute.
Note:
If you mark any attribute as masked for a running campaign, pause
and resume the campaign so that the attribute displays as masked
on the desktop.
readonly The values suggest whether attribute is read-only or editable for
the logged in agents.
sensitive The values suggest whether the attribute is private. You can use
this to restrict access to attributes such as salary. For example, if
HR/Joe creates a salary attribute, then the attribute is Private to the
HR organization by default. If a global user creates a salary
attribute, then the global user can mark the attribute as Private. If
marked as Private, no organization can use this attribute, until you
associate the attribute with some organization. The global user can
associate the salary attribute with one or more than one

Avaya Proactive Outreach Manager Developer Guide 139


Field name Description
organizations, and only the associated organizations can use the
attribute. If the attribute is not marked as private, all organization
users can use it. The global user can access all attributes
regardless of the privacy setting.
maskedForAllUsers Displays if the attribute is masked. If the attribute is masked, the
users cannot see the attribute.

SearchOperator supported for searchBy


searchBy searchOperator
attributeName =,!=,>,<.line,notlike,in
dataType =,!=,in,like,notlike
isSensitive =,!=
isReadOnly =,!=
isMasked =,!=
dataType =,!=,in,like,notlike

Example
The example provided in this section is based searching attributes whose datatype equal to
LONG data type.
HTTP: GET
/VP_POM_Service/v4/contactattributes?searchBy=dataType&searchOperato
r==&searchValue=LONG HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"attributeID": "109",
"attributeName": "cgrLongSalary",
"fileAttributeName": "cgrLongSalary",
"attributeDataType": "LONG",
"attributeType": "Custom",
"displayName": "cgrLongSalary",
"classPropertyName": "",
"masked": false,
"readonly": false,
"sensitive": false,
"maskedForAllUsers": false }]
__________________________________________________________________________________________
Create Contact Attribute
POST /v4/contactattributes
The API creates custom contact attribute using provided details. Since attribute addition or
deletion recreates sql view in the background the execution may take longer depending on
contacts data existing in the system. If multiple custom attributes needs to be created using
REST api, instead of this API it's recommended to use bulk contact attribute creation web
service. It is recommended to add or remove attribute during non-dialing hours since contact

Avaya Proactive Outreach Manager Developer Guide 140


view creation could take longer depending on number of contacts and custom attributes
existing in the system.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactattributes

Parameters
path None
payload
Parameter Required Data Type
attributeName Yes String
attributeDataType Yes String
Valid Values are as below:
INTEGER,
LONG,
SHORT,
CHARACTER,
FLOAT,
BOOLEAN,
STRING,
PHONE,
EMAIL,
DATE,
TIME,
TIMESTAMP
sensitive No Boolean
readOnly No Boolean
masked No Boolean
maskedForAllUsers No Boolean
JSON response
Field name Description
contactAttributeID The attribute ID of newly created custom contact attribute.
Example
The example provided in this section is based creating custom attribute with name company.
HTTP: POST /VP_POM_Service/v4/contactattributes HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"attributeName": "company",
"attributeDataType": "STRING",
"sensitive": "false",
"readOnly": "true",
"masked":"false",
"maskedForAllUsers":"true"
}

Avaya Proactive Outreach Manager Developer Guide 141


RESPONSE JSON:
{"contactAttributeID":382}
__________________________________________________________________________________________
Create Contact Attributes in Bulk
POST /v4/contactattributes/bulk
The API creates custom attributes in bulk. It is recommended to add or remove attributes during
non-dialing hours since contact view creation could take longer depending on number of
contacts and custom attributes existing in the system.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactattributes/bulk

Parameters
path None
payload
Each item will have below fields:
Parameter Required Data Type
attributeName Yes String
attributeDataType Yes String
Valid Values are as below:
INTEGER,
LONG,
SHORT,
CHARACTER,
FLOAT,
BOOLEAN,
STRING,
PHONE,
EMAIL,
DATE,
TIME,
TIMESTAMP
sensitive No Boolean
readOnly No Boolean
masked No Boolean
maskedForAllUsers No Boolean
JSON response
Field name Description
errorCode Error code is set to null on success. Else code value will be
provided.
errorMessage Error message is set to null on success. Else detailed error
message value will be provided.
contactAttributeID Contact attribute ID will be provided on success.
isAdded Set to true on success.
Example
The example provided in this section is based on creating 4 contact attributes in bulk.
HTTP: POST /VP_POM_Service/v4/contactattributes/bulk HTTP/1.1
Header:

Avaya Proactive Outreach Manager Developer Guide 142


Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"contactAttributeList":
[
{
"attributeName": "callpending",
"attributeDataType": "STRING",
"sensitive": "false",
"readOnly": "true",
"masked": "false",
"maskedForAllUsers": "false"

},
{
"attributeName": "test",
"attributeDataType": "LONG",
"sensitive": "false",
"readOnly": "true",
"masked": "false",
"maskedForAllUsers": "false"
}, {
"attributeName": "RESTBoolean",
"attributeDataType": "BOOLEAN",
"sensitive": "false",
"readOnly": "true",
"masked": "false",
"maskedForAllUsers": "false"
},
{
"attributeName": "MOBILE",
"attributeDataType": "PHONE",
"sensitive": "false",
"readOnly": "true",
"masked": "false",
"maskedForAllUsers": "false"
}
]
}

RESPONSE JSON:
{"1":{"errorCode":null,"errorMessage":null,"contactAttributeID":70,"isAdded":true},"
2":{"errorCode":null,"errorMessage":null,"contactAttributeID":71,"isAdded":true},"3"
:{"errorCode":null,"errorMessage":null,"contactAttributeID":72,"isAdded":true},"4":{
"errorCode":null,"errorMessage":null,"contactAttributeID":73,"isAdded":true}}
__________________________________________________________________________________________
Edit Contact Attribute
POST /v4/contactattributes/{contact_attribute_id}
The API edits existing contact attribute.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactattributes/{contact_attribute_id}

Avaya Proactive Outreach Manager Developer Guide 143


Parameters
path
Parameter Required Description Data Type
contactAttributeID Yes The contact attribute ID which integer
needs to be modified.
payload
Parameter Required Data Type
sensitive Yes Boolean
readOnly Yes Boolean
masked Yes Boolean
maskedForAllUsers No Boolean
JSON response
Field name Description
result Set to true on success
Example
The example provided in this section is based on modifying existing contact attribute with ID
55.
HTTP: POST /VP_POM_Service/v4/contactattributes/55 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"sensitive": "true",
"readOnly": "false",
"masked": "true",
"maskedForAllUsers": "true"
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Generate CSV File for Contact Attributes
GET /v4/contactattributes/csv
The API exports csv file having header for contact attributes existing on the system.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactattributes/csv

Parameters
path None
payload None

JSON response

Avaya Proactive Outreach Manager Developer Guide 144


Field name Description
ContactsTemplate,csv File containing column names per contact attribute.
Example
The example provided in this section is based on exporting all contact attributes in template
csv file.
HTTP: GET /VP_POM_Service/v4/contactattributes/csv HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
Id,contactid,titlepredefined,firstname,lastname,addrline1predefined,addrline2predefi
ned,addrline3predefined,addrline4predefined,addrline5predefined,phonenumber1,phonenu
mber1ctrycode,timezone,phonenumber2,phonenumber2ctrycode,phonenumber2tz,email,langua
ge,lastattempttime,lastsuccessfulattempttime,pimcompletioncode.code,countrypredefine
d,zipcodepredefined,phonenumber1state,phonenumber2state,phonenumber1wireless,phonenu
mber2wireless,phonenumber,phonenumber_ctry_code,phonenumber_tz,phonenumber_state,pho
nenumber_wireless,company,mobile,mobile_ctry_code,mobile_tz,mobile_state,mobile_wire
less,callpending,test,RESTBoolean,TEST_REST
__________________________________________________________________________________________
Delete Contact Attribute
POST /v4/contactattributes/{contact_attribute_id}/delete
The API deletes the custom type of contact attribute. It is recommended to add or remove
attributes during non-dialing hours since contact view creation could take longer depending on
number of contacts and custom attributes existing in the system.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactattributes/{contact_attribute_id}/delete

Parameters
path
Parameter Required Description Data Type
contactAttributeID Yes The ID of custom contact integer
attribute which needs to be
deleted.
payload None

JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on deleting custom attribute with ID 55.
HTTP: POST /VP_POM_Service/v4/contactattributes/55/delete HTTP/1.1
Header:

Avaya Proactive Outreach Manager Developer Guide 145


Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Schedule Callback
POST /v4/callbacks
The API schedules callaback.

URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks

Parameters
path None
payload
Parameter Required Description Data Type
true User Contact ID required for scheduling String
userContactID the callback for a specific contact.
true The name of the contact list where the String
contactListName contact information is stored.
true The campaign name for which you String
campaignName schedule the callback.
true The preferred date and time to schedule or String
startTime enable call back for the given contact. The
format is yyyy/MM/dd HH:mm:ss.
notes false The call back notes for reference. String
true The date and time to consider callback String
endTime expired. The format is yyyy/MM/dd
HH:mm:ss. If empty value is provided then
never expiring type of callback will be
created.
false The time zone for the given contact record. String
timeZone You can specify any Java supported time
zone.
false The name of the contact attribute of String
contactAttributeName PHONE type for the given contact record.
The valid values for predefined attributes
are PhoneNumber1, PhoneNumber2, and
Email.
false Any free form phone number or email String
address address can be specified which is not part
of contact record given for callback. This
field need to be used to schedule callback
to external number. The external number
must contain country code. The country
code and phone number should be
seaparated by separator set in POM
global configuration. The external number
should not contain any other spcial
character except the separator set in
global configuration. The allowed special

Avaya Proactive Outreach Manager Developer Guide 146


characters for separator in global
configuration are “#”, “$”, “&” and “%”. If
country code is not specified, the system
picks up default home country code.
Note:
If you do not specify a value, the system
picks up the default value specified in the
campaign strategy.
callbackType false If value is not specified by default POMCallbackType
Campaign type of callback will be created.
Valid values include Agent, Campaign,
Standard and Strict Agent (i.e. 0,1,2 and 3
respectively).
agentID false Used and valid only for agent type of String
callback. Specify the agent ID for which
callback needs to be scheduled.
Refer to callback feature for details about
agent selection if provided agent ID is not
available when callback matures.
handlerState false Provide valid handler state provided or String
used in campaign strategy. If value is not
provided initial handler will be used by
default.
The first action ID of specified handler
name will be used for scheduling the
callback.
actionName false Provide valid action name provided or String
used in campaign strategy if campaign is
active. If value is not provided for action
name while campaign job is active then
fault error will be thrown. If campaign is not
active the call back will be queued with
default as initial action.
false Boolean
checkCallbackSlot This parameter is used to check maximum
(Optional) callback counts for the agent in configured
time interval. If the maximum number of
callbacks for the agent is reached in that
interval, it will not allow to create callback.

If value is set “true” for this parameter it will


perform check on maximum callback
count otherwise not. If not provided it will
be considered as false.

Interval setting and maximum allowed


callback setting is in POM global
configuration page.

These two parameters are there in POM


global configuration page.

Callback Time Interval (+/- min from


Scheduled Time)
Allowed Callback Count in Interval

For example :

Avaya Proactive Outreach Manager Developer Guide 147


Global configuration settings:

Callback Time Interval (+/- min


from Scheduled Time) : 15
Allowed Callback Count in
Interval: 2

When a callback is created at


5:00 PM for Agent A, the system
will check maximum callbacks for
Agent A in interval 4:45 to 5:15
and it will allow creation of
maximum two callbacks for Agent
A.

If the interval value is set as 0 then the


maximum callback check in interval will
not performed even if the
checkCallbackSlot value is set as true.

Note:
• This feature is applicable only for
strict agent/agent type of callback.
System will check callback count in
the interval based on callback type as
strict agent/agent.

• Following callback states are


considered for the count in the
interval.

ActiveAttachedToJob
Inprogress
WaitingForJob
QueuedForDialling
• For schedule time check (Next
attempt after time will be considered)
for callback interval check.

JSON response
Field name Description
callbackID Returns callback ID on success
Example

Avaya Proactive Outreach Manager Developer Guide 148


The example provided in this section is based on creating callback of agent, campaign and
standard type.
HTTP: POST /VP_POM_Service/v4/callbacks HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

To create Agent type of callback:


REQUEST JSON:
{
"userContactID":"1",
"contactListName": "testCL",
"campaignName": "testCampaign",
"startTime": "2018/09/05 10:23:10",
"endTime":"",
"timeZone":"GMT+05:30",
"contactAttributeName":"PhoneNumber1",
"address":null,
"notes":null,
"callbackType":"Agent",
"agentID":"3333",
"handlerState":"initial" ,
"actionName":"Call_100"
}

To create Campaign type of callback:


REQUEST JSON:
{
"userContactID":"1",
"contactListName": "testCL",
"campaignName": "hrCamp",
"startTime": "2018/09/05 10:23:10",
"endTime":"2018/10/05 10:23:10",
"timeZone":"GMT+05:30",
"contactAttributeName":"PhoneNumber1",
"address":null,
"notes":null,
"callbackType":"Campaign",
"agentID":"",
"handlerState":"initial" ,
"actionName":"Call_100"
}

To create Standard type of callback:


REQUEST JSON:
{
"userContactID":"4",
"contactListName": "RestContactList",
"campaignName": "hrCamp",
"startTime": "2018/09/05 10:23:10",
"endTime":"",
"timeZone":"GMT+05:30",
"address":"3411231",
"notes":null,
"callbackType":"Standard",
"agentID":"",
"handlerState":"initial" ,

Avaya Proactive Outreach Manager Developer Guide 149


"actionName":"Call_100"
}

To create Strict Agent type of callback:


REQUEST JSON:
{
"userContactID":"1",
"contactListName": "callbackList01",
"campaignName": "AgentCallback_200_20",
"startTime": "2018/08/13 12:23",
"endTime":"2018/08/15 12:25",
"timeZone":"GMT+05:30",
"address":"345345345",
"notes":null,
"callbackType":"StrictAgent",
"agentID":"65011",
"handlerState":"initial",
"actionName":"Call_100"
}

RESPONSE JSON:
{"callbackID":83}

The example provided in this section is based on creating callback of agent type using
checkCallbackSlot parameter. It will check the callback count in interval. If configured count is reached
it will return error.

HTTP: POST /VP_POM_Service/v4/callbacks HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"userContactID":"2002",
"contactListName": "Contact_List2020",
"campaignName": "CallbackCampaign",
"startTime": "2020/06/07 19:51:10",
"endTime":"",
"timeZone":"GMT+05:30",
"contactAttributeName":"PhoneNumber1",
"address":null,
"notes":null,
"callbackType":"StrictAgent",
"agentID":"3333",
"actionName":"Call_100",
"checkCallbackSlot":true
}

RESPONSE JSON:
Above API will return the following error code if the callback count is reached in the slot.
{
"displayMessage": null,
errorCode": "3467",
errorMessage": “Unable to perform operation as callback limit in interval is
reached.",
"detailedCode": 0

Avaya Proactive Outreach Manager Developer Guide 150


}

__________________________________________________________________________________________
Get Callback Details
GET /v4/callbacks/{callbackId}
The API provides details of a provided callbackId.
URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks/{callbackId}

Parameters
path
Parameter Required Description Data Type
callbackId True The Callback ID long
payload None

JSON response
Field name Description
callbackId Callback ID of a callback.
systemContactID System Contact ID of a callback.
campaignName The display name of Campaign Name of a callback.
callbackType The display name of Callback Type of a callback.
status The display name of Callback Status of a callback.
addressFieldName The Contact address attribute name of a callback.
address Phone number or email address of a callback.
jobId Job instance id on which callback is created.
actionId Action ID
agentSessionId Agent session id who created the callback.
nextAttemptAfter Callback Next Attempt After time
startTime Callback start time
endTime Callback end time
creationTime Callback creation time
createdForAgent Agent for which this callback is created.
notes Agent notes for callback.
servicedByAgentId Agent which serviced this callback is created.
createdBy Name of Agent or Agent ID who created this callback
handlerName This field gives information about the Handler created in strategy
contactListId The Id of the contact list associated with this job.
contactListName Contact List Name.
userContactID User given contact ID.
organizationId Auto generated Organization ID
organizationName Name of Organization
Example
The example provided in this section is based on callbackId 17
HTTP: GET /v4/callbacks/17 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx

Avaya Proactive Outreach Manager Developer Guide 151


Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"callbackId": 17,
"systemContactID": 6988,
"campaignName": "NotificationCampaign",
"callbackType": "Campaign",
"status": "Expired",
"addressFieldName": "phoneNumber1",
"address": "212121",
"jobId": 110,
"actionId": 100,
"agentSessionId": 218,
"nextAttemptAfter": null,
"startTime": 1501556940000,
"endTime": 1501559355000,
"creationTime": 1501556643364,
"createdForAgent": null,
"notes": "Default callback notes from sample desktop",
"servicedByAgentId": null,
"createdBy": "5850",
"handlerName": "initial",
"contactListId": 91,
"contactListName": "ContactList1",
"userContactID": "1",
"organizationId": null,
"organizationName": "Default"
}

__________________________________________________________________________________________

Extend Active Callback


POST /v4/callbacks/extend
The API updates endTime of a callback to the specified value.

URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks/extend

Parameters
Path None

Payload
Parameter Required Description Data Type
CallbackID true Unique identifier for callback. long
endTime no The date and time to consider callback expired. The string
(optional) format is yyyy/MM/dd HH:mm:ss. If value not provided
then callback will be never expiring.
timeZone no The time zone for the given contact record. You can string
(optional) specify any Java supported time zone.

Avaya Proactive Outreach Manager Developer Guide 152


JSON response
Field name Description
callbackId Operation Message e.g. ExtendSuccessful
errorCode Display errorCode If error occurred during extend operation
errorMessage Display errorMessage If error occurred during extend operation
Example
The example provided in this section is based on updating the endTime of Active callback for
given callbackId = 11.

HTTP: POST /VP_POM_Service/v4/callbacks/extend HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"callbackId":11,"endTime":"2017/05/16 15:45:26","timeZone":"GMT+05:30"}

RESPONSE JSON:
{
"11": "ExtendSuccessful"
}

For endTime less than previous endTime


REQUEST JSON:
{"callbackId":11,"endTime":"2017/05/16 10:45:26","timeZone":"GMT+05:30"}

__________________________________________________________________________________________
Reschedule Expired Callback
POST /v4/callbacks/reschedule
The API updates value for given contact attribute for the contact record in specific contact list.

URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks/reschedule

Parameters
Path – None

Payload
Parameter Required Description Data Type
callbackId true Unique identifier for callback. long
endTime (optional) no The date and time to consider callback string
expired. The format is yyyy/MM/dd
HH:mm:ss. If value not provided callback
will be never expiring.

Avaya Proactive Outreach Manager Developer Guide 153


timeZone (optional) no The time zone for the given contact string
record. You can specify any Java
supported time zone.
nextAttemptAfterTime no New Next attempt time to be updated for String
(optional) the callback.
checkCallbackSlot False This parameter is used to check Boolean
(Optional) maximum callback counts for the agent
in configured time interval. If the
maximum number of callbacks for the
agent is reached in that interval, it will not
allow to reschedule expired callback with
new time.

If value is set “true” for this parameter it


will perform check on maximum callback
count otherwise not. If not provided it will
be considered as false.

This is applicable only for Agent/Strict


Agent callback.
For more details and example refer
description of this parameter under
Schedule Callback REST API.

JSON response
Field name Description
callbackId Operation Message e.g. RescheduleSuccessful
errorCode Display errorCode If error occurred during reschedule operation
errorMessage Display errorMessage If error occurred during reschedule operation
Example
The example provided in this section is based on rescheduling the expired callback for given
callbackId 20051.
HTTP: POST /VP_POM_Service/v4/callbacks/reschedule HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"callbackId":20051, "endTime":"2017/08/03 15:58:26",
"timeZone":"GMT+05:30","nextAttemptAfterTime":"2017/08/02 10:00:00"}

RESPONSE JSON:
{
"20051": "RescheduleSuccessful"
}

Avaya Proactive Outreach Manager Developer Guide 154


The example provided in this section is based on rescheduling the expired callback of agent
type for given callbackId 262 using checkCallbackSlot parameter. It will check the callback count in
interval. If configured count is reached it will return error

HTTP: POST /VP_POM_Service/v4/callbacks/reschedule HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"callbackId": "262",
"nextAttemptAfterTime": "2020/06/07 19:53:10",
"endTime":"2020/06/07 20:51:10",
"timeZone":"GMT+05:30",
"checkCallbackSlot":true
}

RESPONSE JSON:
Above API will return the following error code if the callback count is reached in the slot.
{
"displayMessage": null,
errorCode": "3467",
errorMessage": “Unable to perform operation as callback limit in interval is
reached.",
"detailedCode": 0
}

_________________________________________________________________________________

Get All Callbacks


GET /v4/callbacks
The API provides list of callbacks present in the system.

URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks

Parameters
Query
Parameter Required Description Data Type
pageSize (optional) No Number of records to be fetched from String
callback list. Max 100 callbacks per
request is allowed. If value is not provided
default page size used for calculating total
pages will be 10.
pageNumber (optional) No The page number for which records needs String
to be fetched. If value is not provided
default 1 will be used.

Avaya Proactive Outreach Manager Developer Guide 155


sortBy (optional) No Field name to be used for sorting the String
records. Possible values include below
names and datatypes:
"callback_id", "integer"
"contact_id", "integer
"status", "integer"
"callback_type", "integer"
"campaign_name", "string"
"created_by", "string"
"start_time", "date"
"end_time", "date"
"next_attempt_after", "date"
"select", "select"
sortDirection (optional) No Either asc and desc values are allowed for String
ascending and descending sort
respectively. If value is not provided DESC
will be used as default value.
search (optional) JSON It is an array of multiple search criteria. String
Each search criterion consists of three
parameters searchBy, searchOperator
and searchValue. Refer table “Search
Critieria JSON parameter”

Maximum 6 search criteria are


supported.Duplicate search criteria is not
supported.
timeZone (optional) No Required for dateTime type of fields. For String
example start time, end time, next attempt
after fields.
addressCountryCode No The address country code to be used String
(optional) when searching the records with address.
It should be numeric and without any
spaces or special characters.

Search Critieria JSON Parameters


Parameter Type Description
searchBy (optional) String Field name to be used for searching the records.
Possible values include below names and datatypes:
"callback_id", "integer"
"contact_id", "integer
"status", "integer"
"callback_type", "integer"
"campaign_name", "string"
"created_by", "string"
"created_for", "string"
"start_time", "date"
"end_time", "date"
"next_attempt_after", "date"
"select", "select"
“address”,”string”
searchOperator (optional) String Below operator will be allowed according to type of field
selected in SearchBy:
Callback ID, contact ID: =,!=,>=,<=,<,>,in, between, not
between, is null, is not null.
Campaign Name, Created By, Address : =, !=, in,
contains, begins with, ends with is null, is

Avaya Proactive Outreach Manager Developer Guide 156


not null.
Type, State: =, !=, in, is null, is not null.
Next Attempt After, Start Time, End Time:
=,!=,>=,<=,<,>, is null, is not null.
searchValue (optional) String Value to be searched. Ensure to provide valid value
according to data type of field selected in Search By
operator. Wild chars like * , ~ are not valid.

Payload None

JSON response
Field name Description
callbackList List of items is returned; each item has fields listed below: Following
callback details will be returned by API.
The firstName and lastName is fetched only from predefined system
attributes of matched contact. The custom attributes for customer name
are not supported. The callbacks for deleted contacts will show firstName
and lastName as blank.

"callback_id": 20051,
"contact_id": 466,
"campaign_name": "callbackCampaign",
"callback_type": "Agent",
"status": "WaitingForJob",
"next_attempt_after": 1501662564000,
"start_time": 1500203400000,
"end_time": 1501669706000,
"created_by": "admin",
"created_for": "67011",
"user_contact_id": "2",
"contact_attribute_name": "phoneNumber1",
"address": "212121",
"agent_notes": "--- Wed Aug 07 16:22:13 IST 2019 --- Call-back Notes \n",
"contact_list_id": 108,
"contact_list_name": "externalSelectionCallback01",
"firstName": "ExtFN2",
"lastName": "ExtLN2"
totalPage Total Pages of callbackList response

Example
The example provided in this section gives the list of callbacks in system.
HTTP: GET /VP_POM_Service/v4/callbacks HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{

Avaya Proactive Outreach Manager Developer Guide 157


"search":
{
"searchList":[
{
"searchBy":"callback_id",
"searchOperator":"=",
"searchValue":"1"
}
]
}
}

RESPONSE JSON:
{
"callbackList": [
{
"callback_id": 1,
"contact_id": 5156,
"campaign_name": "agentmultiupdate",
"callback_type": "Standard",
"status": "Overwritten",
"next_attempt_after": null,
"start_time": 1630817580000,
"end_time": null,
"created_by": "admin",
"created_for": "1591",
"user_contact_id": "1",
"contact_attribute_name": "ExternalNumber",
"address": "212121",
"agent_notes": null,
"contact_list_id": 34,
"contact_list_name": "getContactBatch",
"firstName": "Automation",
"lastName": "User01"
}
],
"totalPage": 1
}

To use this service with no data in request payload, then empty json request body should be
used

Example
REQUEST JSON:
{
}

__________________________________________________________________________________________

Edit Callback
POST /v4/callbacks/edit
The web service can update agentId, callbackType, endTime, nextAttemptAfterTime,
startTime of a callback to the specified value.

URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks/edit

Avaya Proactive Outreach Manager Developer Guide 158


Parameters
Path – None

Payload
Parameter Required Description
callbackId Long Unique identifier for callback.
agentId String New Agent to handle the callback.
callbackType String Callback Type – Agent, Standard, Campaign,
StrictAgent
endTime (optional) String The date and time to consider callback expired. The
format is yyyy/MM/dd HH:mm:ss. For never expiring
callback provide endTime as null or “NULL”.
startTime (optional) String The preferred date and time to schedule or enable call
back for the given contact. The format is yyyy/MM/dd
HH:mm:ss.
nextAttemptAfterTime String New next attempt time to be updated for the callback.
(optional) The format is yyyy/MM/dd HH:mm:ss.
If nextAttemptAfterTime not provided,then it will be
auto calculated based on global settings.
timeZone (optional) String The time zone for the given contact record. You can
specify any Java supported time zone.Its Mendatory if
endTime/startTime/nextAttemptAfter time is given as
input.
checkCallbackSlot (Optional) Boolean This parameter is used to check maximum callback
counts for the agent in configured time interval. If the
maximum number of callbacks for the agent is
reached in that interval, it will not allow to edit callback.

When a new time is provided for the Agent, system


will check maximum callback count as per new time
interval and return error if it reaches maximum limit.
When time is not provided and to assign this callback
to new agent , it will check maximum callback count
for new agent in current callback time interval.

If value is set “true” for this parameter it will perform


check on maximum callback count otherwise not. If
not provided it will be considered as false.

This is applicable only for Agent/Strict Agent


callback.
For more details and example refer description of
this parameter under Schedule Callback REST API.

JSON response
Field name Description
errorCode Display errorCode If error occurred during edit operation
errorMessage Display errorMessage If error occurred during edit operation

Avaya Proactive Outreach Manager Developer Guide 159


Example
The example provided in this section is based on updating the endTime of Active callback for
given callbackId = 11.

HTTP: POST /VP_POM_Service/v4/callbacks/edit HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"callbackId":11,"endTime":" 2018/02/28 11:10:12","timeZone":"GMT+05:30"}

REQUEST JSON:
{
"11": "Success."
}
For endTime less than current time
REQUEST JSON:
{"callbackId":11,"endTime":" 2018/02/28 10:10:12","timeZone":"GMT+05:30"}

FAULT:

{
"displayMessage": null,
"errorCode": "3436",
"errorMessage": "New End Time is less than current time."
}
_

The example provided in this section is based on updating the endTime of Active callback for given
callbackId = 311 and callback of type Strict Agent using checkCallbackSlot parameter. It will check the
callback count in interval. If configured count is reached it will return error

HTTP: POST /VP_POM_Service/v4/callbacks/edit HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
REQUEST JSON:
{
"callbackId": "311",
"startTime": "2020/06/04 19:54:50",
"endTime":"2020/06/04 21:51:10",
"timeZone":"GMT+05:30",
"callbackType":"StrictAgent",
"agentId":"3334",
"checkCallbackSlot":true
}

Avaya Proactive Outreach Manager Developer Guide 160


RESPONSE JSON:
Above API will return the following error code if the callback count is reached in the slot.
{
"displayMessage": null,
errorCode": "3467",
errorMessage": “Unable to perform operation as callback limit in interval is
reached.",
"detailedCode": 0
}
_________________________________________________________________________________________

Bulk Edit Callback


POST /v4/callbacks/bulkedit
The web service can update agentId of a callback of type Agent and StrictAgent to the
specified value.

URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks/bulkedit

Parameters
Path – None

Payload
Parameter Type Description
callbackIdList Long[] List of callback ids to delete
agentID String New Agent to handle the callback(s).
JSON response
Field name Description
displayMessage null
errorCode Display errorCode If error occurred during bulkedit operation
errorMessage Display errorMessage If error occurred during bulkedit operation
Example
The example provided in this section is based on updating the agentID 111 of callback for
given callbackIds = [20063,300,283,294]

HTTP: POST /VP_POM_Service/v4/callbacks/bulkedit HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"callbackIdList":[20063,300,283,294],"agentID":"111"}

RESPONSE JSON:
{
"283": {

Avaya Proactive Outreach Manager Developer Guide 161


"errorCode": 0,
"errorMessage": "Success.",
"isEdited": true
},
"294": {
"errorCode": 3440,
"errorMessage": "Current callback state does not allow the operation.",
"isEdited": false
},
"300": {
"errorCode": 3453,
"errorMessage": "Callback record not found.",
"isEdited": false
},
"20063": {
"errorCode": 3455,
"errorMessage": "Current callback type does not support the Agent ID.",
"isEdited": false
}
}
__________________________________________________________________________________________
Delete Callback
POST /v4/callbacks/delete
The API deletes the callbacks provided using the List of callback Ids. Callbacks in following
states are not eligible to delete –ActiveAttachedToJob, WaitingForJob, InProgress and
QueuedForDialing

URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks/delete

Parameters
Path - None

Payload
Parameter Type Description
callbackIdList Long[] List of callback ids to delete

JSON response
Field name Description
isDeleted True; Successfully deleted the callback
False: Callback is not deleted due to some reason
errorCode Display errorCode If error occurred during delete operation
errorMessage Display errorMessage If error occurred during delete operation

Avaya Proactive Outreach Manager Developer Guide 162


Example
The example provided in this section is based on deleting the callbacks 20051 and 20049 not
in active state.
Note : 20049 is deleted since it's not in active state and 20051 is not deleted since it's "Callback
in Active Attached To Job or Waiting for Job or In Process states are not eligible for deletion.

HTTP: POST /VP_POM_Service/v4/callbacks/delete HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"callbackIdList":[20051,20049]}

RESPONSE JSON:
{
"20049": {
"errorCode": null,
"errorMessage": null,
"isDeleted": true
},
"20051": {
"errorCode": 3413,
"errorMessage": "Callback in Active Attached To Job or Waiting for Job or In
Process states are not eligible for deletion.",
"isDeleted": false
}
}

__________________________________________________________________________________________
Terminate Callback
POST /v4/callbacks/terminate
The API terminates the callbacks provided using the List of callback Ids. Callbacks in following
states are eligible to terminate – ActiveAttachedToJob, WaitingForJob

URL
https://<EP Server IP>/VP_POM_Service/v4/callbacks/terminate

Parameters
Path - None

Payload
Parameter Type Description
callbackIdList Long[] List of callback ids to terminate

JSON response

Avaya Proactive Outreach Manager Developer Guide 163


Field name Description
isTerminated True; Successfully terminated the callback
False: Callback is not deleted due to some reason
errorCode Display errorCode If error occurred during terminate operation
errorMessage Display errorMessage If error occurred during terminate operation
Example
The example provided in this section is based on terminating the callbacks 20048 and 20052.

Note : 20052 is terminated and 20052 is not terminated since it's "Callback is not in 'Active
Attached To Job' or 'WaitingForJob' state or Callback is not present

HTTP: POST /VP_POM_Service/v4/callbacks/terminate HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"callbackIdList":[20048,20052]}

RESPONSE JSON:
{
"20048": {
"errorCode": 3412,
"errorMessage": "Callback is not in 'Active Attached To Job' or
'WaitingForJob' state or Callback is not present.",
"isTerminated": false
},
"20052": {
"errorCode": null,
"errorMessage": null,
"isTerminated": true
}
}

__________________________________________________________________________________________
Get Campaign Attributes List
GET /v4/campaignattributes
The API provides list of campaign attributes from POM server.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaignattributes

Parameters
path None
payload None

JSON response
List of items is returned; each item has fields listed below:

Avaya Proactive Outreach Manager Developer Guide 164


Field name Description
attributeDataType The type of campaign attribute. Either CURRENCY or LONG data type
are valid
attributeDescp The description text provided at the time of attribute creation.
attributeID The unique identifier for campaign attribute.
attributeName The name of campaign attribute.
Example
The example provided in this section is based on getting a list of campaign attributes from POM
server.
HTTP: GET /VP_POM_Service/v4/campaignattributes HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"attributeDataType":"CURRENCY","attributeDescp":"","attributeID":1,"attributeName"
:"currency"},{"attributeDataType":"LONG","attributeDescp":"","attributeID":2,"attrib
uteName":"longValue"}]
__________________________________________________________________________________________
Update Campaign Attribute
POST /v4/campaignattributes/{attribute_id}/jobs/{job_id}
The API increments, decrements or updates attribute value of campaign attribute specified in
this request.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaignattributes/{attribute_id}/jobs/{job_id}

Parameters
path
Parameter Required Description Data Type
attribute_id true The unique identifier for campaign attribute. string
job_id true The campaign job ID int

Query
Parameter Required Description Data Type
OperatorType false Valid values include PLUS or MINUS or ASSIGN. string
Default value is assign, it will be used if no value is
provided.

payload
Parameter Required Description Data Type
attributeValue true The value of attribute that needs to be used for update. double

JSON response

Avaya Proactive Outreach Manager Developer Guide 165


Field name Description
attributeDataType The type of campaign attribute. Either CURRENCY or LONG data type
are valid
attributeDescp The description text provided at the time of attribute creation.
attributeID The unique identifier for attribute ID.
attributeName The name of campaign attribute.
Example
The example provided in this section is based on assigning value 15 to campaign attribute ID
2 for active job 42
HTTP: POST
/VP_POM_Service/campaignattributes/2/jobs/42?OperatorType=assign
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"attributeValue":15
}

RESPONSE JSON:
{"isSet":true}
__________________________________________________________________________________________
Get Agent Attributes List
GET /v4/agentattributes/
The API provides list of agent attributes from POM server.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentattributes

Parameters
path None
payload None

JSON response
List of items is returned; each item has fields listed below:
Field name Description
attributeDataType The type of agent attribute. Either CURRENCY or LONG data type are
valid
attributeDescp The description text provided at the time of attribute creation.
attributeID The unique identifier for agent attribute.
attributeName The name of agent attribute.
Example

Avaya Proactive Outreach Manager Developer Guide 166


The example provided in this section is based on fetching list of agent attributes created on
POM system.
HTTP: GET /VP_POM_Service/v4/agentattributes HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"attributeDataType":"LONG","attributeDescp":"","attributeID":1,"attributeName":"ag
tAttr"},{"attributeDataType":"CURRENCY","attributeDescp":"daily collection amount
per agent","attributeID":2,"attributeName":"collection"}]
__________________________________________________________________________________________
Update Agent Attribute
POST
/v4/agentattributes/{attribute_id}/agents/{agent_id}/jobs/{job_id}
The API updates value for agent attribute specific to agent session and campaign job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/agentattributes/{attribute_id}/agents/{agent_id}/jobs/{job_id}

Parameters
path
Parameter Required Description Data Type
attribute_id true The unique identifier for campaign attribute. string
job_id true The campaign job ID int
agent_id true The agent ID logged in on POM server. string

Query
Parameter Required Description Data Type
OperatorType false Valid values include PLUS or MINUS or ASSIGN. string
Default value is assign, it will be used if no value is
provided.

payload
Parameter Required Description Data Type
attributeValue true The value of attribute that needs to be used for update. double

JSON response
Field name Description
isSet True/false id update was successful.
Example
The example provided in this section is based on incrementing existing value by 15 for agent
ID 213412 and attribute ID 2. The agent attached to active job 42.

Avaya Proactive Outreach Manager Developer Guide 167


HTTP: POST
/v4/VP_POM_Service/agentattributes/2/agents/213412/jobs/42?OperatorT
ype=plus HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"attributeValue":15
}

RESPONSE JSON:
{"isSet":true}
__________________________________________________________________________________________
Get All Completion Codes
The API provides list of custom completion code created on POM system for given user organization.
GET /v4/completioncodes

For fetching list of all system and custom completion codes below URI can be used:
GET /v4/completioncodes/list

URL
https://<EP Server IP>/VP_POM_Service/v4/completioncodes

Parameters
path None
payload None

JSON response
List of items is returned; each item has fields listed below:
Field name Description
id The ID of completion code.
name The name of completion code.
completionCodeType Valid values are 0 or 1 for system or custom type respectively
description The description of completion code used at the time of creation.
rpc The boolean value is only for custom completion codes. It helps you to
determine the total number of Right Party Connect count. The count is
shown in completion code summary reports and POM Monitor
success The boolean value is only for custom completion codes. It helps you to
determine the total number of Success count. The count is shown in
completion code summary reports and POM Monitor.
closure The boolean value only for custom completion codes. It helps you to
determine the total number of Closure count. The count is shown in
completion code summary reports and POM Monitor.
excludeFromNuisanceRate The boolean value only for custom completion codes. It helps you to
determine the total number of Answer Machine by Agent count. The
count is shown in completion code summary reports and POM Monitor

Avaya Proactive Outreach Manager Developer Guide 168


Example
The example provided in this section is based on the admin user fetching a list of custom completion
codes.
HTTP: GET /VP_POM_Service/v4/completioncodes HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"id":1,"name":"In_Queue","completionCodeType":0,"description":"In
Queue","rpc":false,"success":false,"closure":false,"excludeFromNuisanceRate":false},
{"id":2,"name":"Attempt_In_Progress","completionCodeType":0,"description":"Attempt
In
Progress","rpc":false,"success":false,"closure":false,"excludeFromNuisanceRate":fals
e},{"id":3,"name":"Call_Waiting","completionCodeType":0,"description":"Call
Waiting","rpc":false,"success":false,"closure":false,"excludeFromNuisanceRate":false
},{"id":4,"name":"Disconnected_By_User","completionCodeType":0,"description":"Discon
nected By
User","rpc":false,"success":false,"closure":false,"excludeFromNuisanceRate":false},
:
:

{"id":92,"name":"salesCC_code_new_2","completionCodeType":1,"description":"","rpc":f
alse,"success":true,"closure":false,"excludeFromNuisanceRate":true},{"id":93,"name":
"salesCC_code_new_3","completionCodeType":1,"description":"","rpc":false,"success":t
rue,"closure":false,"excludeFromNuisanceRate":true},{"id":94,"name":"hrCC_code_new_2
","completionCodeType":1,"description":"","rpc":false,"success":true,"closure":false
,"excludeFromNuisanceRate":true}]
__________________________________________________________________________________________
Get All Completion Codes for Campaign
GET /v4/completioncodes/campaigns/{campaign_id}
The API provides list of completion code of custom type and associated for specific campaign.

URL
https://<EP Server IP>/VP_POM_Service/v4/completioncodes/campaigns/{campaign_id}

Parameters
path
Parameter Required Description Data Type
campaign_id true The ID of campaign. int

payload None

JSON response
List of items is returned; each item has fields listed below:
Field name Description
id The ID of completion code.

Avaya Proactive Outreach Manager Developer Guide 169


Field name Description
name The name of completion code.
completionCodeType Valid values are 0 or 1 for system or custom type respectively
description The description of completion code used at the time of creation.
rpc The boolean value is only for custom completion codes. It helps you to
determine the total number of Right Party Connect count. The count is
shown in completion code summary reports and POM Monitor
success The boolean value is only for custom completion codes. It helps you to
determine the total number of Success count. The count is shown in
completion code summary reports and POM Monitor.
closure The boolean value only for custom completion codes. It helps you to
determine the total number of Closure count. The count is shown in
completion code summary reports and POM Monitor.
excludeFromNuisanceRate The boolean value only for custom completion codes. It helps you to
determine the total number of Answer Machine by Agent count. The
count is shown in completion code summary reports and POM Monitor
Example
The example provided in this section is based on the admin user fetching a list of completion code of
custom type and associated for campaign Id 2.
HTTP: GET /VP_POM_Service/v4/completioncodes/campaigns/2 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"id":64,"name":"default_comp","completionCodeType":1,"description":null,"rpc":fals
e,"success":false,"closure":false,"excludeFromNuisanceRate":false}]
__________________________________________________________________________________________
Add Completion Code
POST /v4/completioncodes
The API creates custom completion code on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/completioncodes

Parameters
path None
payload
Parameter Required Description Data Type
name true The name of completion code. string
description false The description for the completion code. string
rpc false The boolean value is only for custom boolean
completion codes. It helps you to
determine the total number of Right
Party Connect count. The count is
shown in completion code summary
reports and POM Monitor
success false The boolean value is only for custom boolean
completion codes. It helps you to

Avaya Proactive Outreach Manager Developer Guide 170


determine the total number of Success
count. The count is shown in completion
code summary reports and POM
Monitor.
closure false The boolean value only for custom boolean
completion codes. It helps you to
determine the total number of Closure
count. The count is shown in completion
code summary reports and POM
Monitor.
excludeFromNuisanceRate false The boolean value only for custom boolean
completion codes. It helps you to
determine the total number of Answer
Machine by Agent count. The count is
shown in completion code summary
reports and POM Monitor
JSON response
Field name Description
completionCodeID The completion code ID of new custom completion code.
Example
The example provided in this section is based on adding custom completion code named
CC_code_new with blank description.
HTTP: POST /VP_POM_Service/v4/completioncodes HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"name": "CC_code_new",
"description": "",
"rpc": "false",
"success": "true",
"closure": "false",
"excludeFromNuisanceRate" : "true"
}

RESPONSE JSON:
{"completionCodeID":95}
__________________________________________________________________________________________
Delete Completion Code
POST /v4/completioncodes/{completion_code_id}/delete
The API provides

URL
https://<EP Server IP>/VP_POM_Service/v4/completioncodes/{completion_code_id}/delete

Parameters

Avaya Proactive Outreach Manager Developer Guide 171


path
Parameter Required Description Data Type
completion_code_id true The completion code ID string
payload None

JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on deletion of custom completion code for ID 95
HTTP: POST /VP_POM_Service/v4/completioncodes/95/delete HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________
Edit Completion Code
POST /v4/completioncodes/{completion_code_id}
The API updates existing custom completion code.

URL
https://<EP Server IP>/VP_POM_Service/v4/completioncodes/{completion_code_id}

Parameters
path
Parameter Required Description Data Type
completion_code_id true The completion code ID string

payload
Parameter Required Description Data Type
description false The new description for the completion string
code
rpc false The boolean value is only for custom boolean
completion codes. It helps you to
determine the total number of Right
Party Connect count. The count is
shown in completion code summary
reports and POM Monitor
success false The boolean value is only for custom boolean
completion codes. It helps you to
determine the total number of Success
count. The count is shown in completion
code summary reports and POM
Monitor.

Avaya Proactive Outreach Manager Developer Guide 172


closure false The boolean value only for custom boolean
completion codes. It helps you to
determine the total number of Closure
count. The count is shown in completion
code summary reports and POM
Monitor.
excludeFromNuisanceRate false The boolean value only for custom boolean
completion codes. It helps you to
determine the total number of Answer
Machine by Agent count. The count is
shown in completion code summary
reports and POM Monitor

JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on edit the custom completion code having ID
87, the description is updated along with rpc,success, closure and exludeFromNuisanceRate
fields.
HTTP: POST /VP_POM_Service/v4/completioncodes/87 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"description": "updated desc",
"rpc": "false",
"success": "false",
"closure": "true",
"excludeFromNuisanceRate" : "false"
}

RESPONSE JSON:
{"result":true}

__________________________________________________________________________________________
Update Completion Code for Attempt
POST
/v4/completioncodes/{completion_code_id}/pimsessions/{pim_session_id
}
The API updates existing custom completion code ID for contact attempt.

URL
https://<EP Server
IP>/VP_POM_Service/v4/completioncodes/{completion_code_id}/pimsessions/{pim_session_
id}

Avaya Proactive Outreach Manager Developer Guide 173


Parameters
path
Parameter Required Description Data Type
completion_code_id true The completion code ID int
pim_session_id true The POM session ID for contact attempt long

payload None

JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on updating the custom completion code for ID
59 for POM session ID 586729.
HTTP: POST /VP_POM_Service/v4/completioncodes/59/pimsessions/586729
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Get All List of Campaign Strategies
GET /v4/strategies/
The API retrieves list of campaign strategy existing on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/strategies

Parameters
path None
payload None
Query
Parameter Required Description Data Type
pageSize No Number of attributes to be int
fetched per request. Max 100
attributes per request is
allowed. If value is not provided
default page size used for
calculating total pages will be
10.
pageNumber No The page number for which int
records needs to be fetched. If
value is not provided default 1
will be used.

Avaya Proactive Outreach Manager Developer Guide 174


searchBy No Field name to be used for String
searching the attributes.
Possible values include below
names:
"attributeName",
"dataType",
"isSensitive",
"isReadOnly",
"isMasked"
searchOperator No Below operator will be allowed String
according to type of field
selected in SearchBy
parameter. The valid operator
values are like, notlike, in !=
and =
searchValue No Value to be searched. Ensure String
to provide valid value according
to data type of field selected in
Search By operator. Wild chars
like are not valid for example *,
~, etc
isOnlyCompleteStrategies No Specify if strategies only with String
status as complete should be
fetched.Valid Values :
TRUE,FALSE,T,F,0,1,Y,N

JSON response
Each item of the list will have below fields.

Field name Description


contactStrategyId The unique ID of strategy.
contactStrategyName The name of the strategy.
state Current state of strategy.( Draft or Completed)
callTask Set to true if strategy contains call task.
agentTask Set to true if strategy contains agent based task.
mailTask Set to true if strategy contains mail task.
customTask Set to true if strategy contains custom task.
smstask Set to true if strategy contains sms task.
Example
The example provided in this section is based on retrieving list of strategies created on the
system.
HTTP: GET /VP_POM_Service/v4/strategies HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"strategyBatch": [
{

Avaya Proactive Outreach Manager Developer Guide 175


"contactStrategyId": 16,
"contactStrategyName": "BloodDonationStrategy",
"state": "Completed",
"callTask": true,
"agentTask": true,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 27,
"contactStrategyName": "CCProgressive",
"state": "Completed",
"callTask": true,
"agentTask": true,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 31,
"contactStrategyName": "NewSimpleCall",
"state": "Completed",
"callTask": true,
"agentTask": false,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 17,
"contactStrategyName": "Notification",
"state": "Completed",
"callTask": true,
"agentTask": false,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 18,
"contactStrategyName": "NotifyStat",
"state": "Completed",
"callTask": true,
"agentTask": false,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 19,
"contactStrategyName": "PreviewStat",
"state": "Completed",
"callTask": true,
"agentTask": true,
"mailTask": false,
"customTask": false,
"smstask": false

Avaya Proactive Outreach Manager Developer Guide 176


},
{
"contactStrategyId": 15,
"contactStrategyName": "progressive",
"state": "Completed",
"callTask": true,
"agentTask": true,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 20,
"contactStrategyName": "progressive_sales_strategy",
"state": "Completed",
"callTask": true,
"agentTask": true,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 14,
"contactStrategyName": "s1",
"state": "Completed",
"callTask": true,
"agentTask": false,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 30,
"contactStrategyName": "strategyBSC2",
"state": "Completed",
"callTask": true,
"agentTask": true,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 26,
"contactStrategyName": "WS4E_Preview_Strategy",
"state": "Completed",
"callTask": true,
"agentTask": true,
"mailTask": false,
"customTask": false,
"smstask": false
},
{
"contactStrategyId": 21,
"contactStrategyName": "WS4E_Strategy",
"state": "Completed",
"callTask": true,
"agentTask": true,
"mailTask": false,

Avaya Proactive Outreach Manager Developer Guide 177


"customTask": false,
"smstask": false
}
],
"totalPage": 1
}

__________________________________________________________________________________________
Get List of Campaign Strategy Templates
GET /v4/strategies/templates
The API retrieves list of campaign strategy templates existing on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/strategies/templates

Parameters
path None
payload None

JSON response
Each item of the list will have below fields.

Field name Description


contactStrategyTemplateId The unique ID of campaign strategy template.
contactStrategyTemplateName The name of the campaign strategy.
Example
The example provided in this section is based on retrieving list of templates created on the
system.
HTTP: GET /VP_POM_Service/v4/strategies/templates HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"contactStrategyTemplateId":13,"contactStrategyTemplateName":"CruiseControlTemplat
e"},{"contactStrategyTemplateId":12,"contactStrategyTemplateName":"ExpertCallRatioTe
mplate"},{"contactStrategyTemplateId":9,"contactStrategyTemplateName":"MultipleAddre
ssesRetryTemplate"},{"contactStrategyTemplateId":1,"contactStrategyTemplateName":"Mu
ltipleChannelSelector"},{"contactStrategyTemplateId":10,"contactStrategyTemplateName
":"PreviewTemplate"},{"contactStrategyTemplateId":11,"contactStrategyTemplateName":"
ProgressiveTemplate"},{"contactStrategyTemplateId":5,"contactStrategyTemplateName":"
SimpleCall"},{"contactStrategyTemplateId":2,"contactStrategyTemplateName":"SimpleMai
l"},{"contactStrategyTemplateId":6,"contactStrategyTemplateName":"SimpleSms"},{"cont
actStrategyTemplateId":3,"contactStrategyTemplateName":"SkillBasedCallTemplate"},{"c
ontactStrategyTemplateId":7,"contactStrategyTemplateName":"SkillBasedMailTemplate"},
{"contactStrategyTemplateId":8,"contactStrategyTemplateName":"SkillBasedSMSTemplate"
},{"contactStrategyTemplateId":4,"contactStrategyTemplateName":"TimebasedCallTemplat
e"}]
__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 178


Get Campaign Strategy XML
GET /v4/strategies/{campaign_strategy_id}/xml
The API retrieves xml string of the specific campaign strategy or template from the system.

URL
https://<EP Server IP>/VP_POM_Service/v4/strategies/{campaign_strategy_id}/xml

Parameters
path
Parameter Required Description Data Type
campaignStrategyID Yes The strategy ID which needs to integer
be retrieved
payload None

JSON response
Field/File name Description
strategyXMLText The xml text of the campaign strategy.
Example
The example provided in this section is based on retrieving xml text of campaign strategy
template having ID 12.
HTTP: GET /VP_POM_Service/v4/strategies/12/xml HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"strategyXMLText":"<?xml version=\"1.0\" encoding=\"UTF-
8\"?><tns:AvayaPIMContactStrategy
xsi:schemaLocation=\"http://www.avaya.com/ContactStrategy ContactStrategy.xsd \"
\t\txmlns:tns=\"http://www.avaya.com/ContactStrategy\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> <Handler state=\"initial\"
foundError=\"false\"> <action type=\"call\" EnhancedCCA=\"ON\" priority=\"5\"
allocationType=\"1\" guardTime=\"Disable\" CallPacingType=\"Cruise Control\"
overDialRatio=\"1\" foundError=\"false\" OnMediaServerFailure=\"retry\"> <address
isBranch=\"false\" weekDaysOnly=\"false\">
<ContactAttribute>phoneNumber1</ContactAttribute> </address>
<resultprocessors nextState=\"done\"> <result value=\"Answer_Human\"
nextState=\"wait\"> <Agent prefAgentCallback=\"Enable\"
campaignCallBack=\"Enable\" generalCallBack=\"Enable\"
strictAgentCallback=\"Enable\"/> </result> </resultprocessors> </action>
</Handler></tns:AvayaPIMContactStrategy>"}
__________________________________________________________________________________________
Add Campaign Strategy Using Template
POST /v4/strategies
The API creates new campaign strategy in draft mode. Please note there are no server-side
validation for the strategy xml.

Avaya Proactive Outreach Manager Developer Guide 179


URL
https://<EP Server IP>/VP_POM_Service/v4/strategies

Parameters
path None
payload
Parameter Required Data Type
newStrategyName Yes Name of new campaign strategy.
templateName Yes Name of the template which needs to be copied.
JSON response
Field name Description
campaignStrategyID The ID of campaign strategy created on the system.
Example
The example provided in this section is based on creating new campaign strategy in draft mode
using PreviewTemplate existing on POM system.
HTTP: POST /VP_POM_Service/v4/strategies HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"newStrategyName": "Rest_preview",
"templateName": "PreviewTemplate"
}

RESPONSE JSON:
{"campaignStrategyID":"183"}
__________________________________________________________________________________________
Import or Update Campaign Strategy
POST /v4/strategies/uploadfile
The API updates the existing campaign strategy with the xml file provided as input in the
request. Please note there is no server side validation for the uploaded xml. At runtime the
non-compatible strategy could cause many unknown issues or failure on POM server. It is
expected that client-side validations are performed before uploading the xml text on POM
server using this web service.
If strategy with existing name already found on the system it will update or overwrite existing
contents of the strategy xml.

URL
https://<EP Server IP>/VP_POM_Service/v4/strategies/uploadfile?newStrategyName=test

Parameters
path

Avaya Proactive Outreach Manager Developer Guide 180


Parameter Required Description Data Type
newStrategyName No The name of the campaign String
strategy
payload
Provide form data with xml file as input.
Parameter Required Data Type
uploadedXMLFile Yes MULTIPART_FORM_DATA
JSON response
Field name Description
campaignStrategyID The ID of campaign strategy created or updated on the system
Example
The example provided in this section is based creating or updating the strategy xml on POM
system.
HTTP: POST
/VP_POM_Service/v4/strategies/uploadfile?newStrategyName=test
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Accept-Encoding:multipart/form-data
X-Requested-With: rest
Cache-Control: no-cache
REQUEST JSON:
Form-data with key as File and keyname uploadedXMLFile and value set to file name
containing valid xml.

RESPONSE JSON:
{"campaignStrategyID":"182"}
__________________________________________________________________________________________
Delete Campaign Strategy by Name
POST /v4/strategies/delete
The API deletes the specific campaign strategy using name provided in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/strategies/delete

Parameters
path None
payload
Parameter Required Data Type
name Yes String
JSON response
Field name Description
result Return true on successful deletion
Example
The example provided in this section is based deleting campaign strategy with name testRest.

Avaya Proactive Outreach Manager Developer Guide 181


HTTP: POST /VP_POM_Service/v4/strategies/delete HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"name": "testRest"
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Delete Campaign Strategy By ID
POST /v4/strategies/{campaign_strategy_id}/delete
The API deletes the specific campaign strategy using ID provided in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/strategies/{campaign_strategy_id}/delete

Parameters
Path
Parameter Required Description Data Type
campaignStrategyID Yes The strategy ID which needs to integer
be deleted

payload None

JSON response
Field name Description
result Return true on successful deletion
Example
The example provided in this section is based deleting campaign strategy with ID 182.
HTTP: POST /VP_POM_Service/v4/strategies/182/delete HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Clone Campaign Strategy by Name
POST /v4/strategies/clone
The API duplicate the campaign strategy using strategy name provided in the request.

Avaya Proactive Outreach Manager Developer Guide 182


URL
https://<EP Server IP>/VP_POM_Service/v4/strategies/clone

Parameters
path None
payload
Parameter Required Data Type
origStrategyName Yes Existing campaign strategy name to be cloned
newStrategyName Yes New campaign strategy
template No If set to true then new strategy will be saved in Draft
mode. Else it will be in completed state.
JSON response
Field name Description
campaignStrategyID The ID of campaign strategy created on the system
Example
The example provided in this section is based cloning CopyRestStrategy05 with new campaign
strategy as newClonedStrategy.
HTTP: POST /VP_POM_Service/v4/strategies/clone HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
REQUEST JSON:
{
"origStrategyName": "CopyRestStrategy05",
"newStrategyName": "newClonedStrategy",
"template": "false"
}

RESPONSE JSON:
{"campaignStrategyID":184}
__________________________________________________________________________________________
Clone Campaign Strategy By ID
POST /v4/strategies/{campaign_strategy_id}/clone/{new_strategy_name}?
isTemplate
The API duplicates or clones the campaign strategy using strategy ID provided in the request.

URL
https://<EP Server
IP>/VP_POM_Service/v4/strategies/{campaign_strategy_id}/clone/{new_strategy_name}?{i
sTemplate}

Parameters
path
Parameter Required Description Data Type

Avaya Proactive Outreach Manager Developer Guide 183


campaignStrategyID Yes The ID of existing campaign Integer
strategy which needs to be
cloned
newStrategyName Yes The name of new strategy String

Query
Parameter Required Description Data Type
isTemplate No If set to true then new strategy boolean
will be saved in Draft mode.
Else it will be in completed
state.

payload None

JSON response
Field name Description
campaignStrategyID The ID of campaign strategy created on the system
Example
The example provided in this section is based cloning strategy having ID 183 with name as
new.
HTTP: POST
/VP_POM_Service/v4/strategies/183/clone/new?isTemplate=false
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"campaignStrategyID":185}
__________________________________________________________________________________________
Get Completion Code ID
POST /v4/completioncodes/id
The API provides system generated unique identfier of both system and custom completion
code.

URL
https://<EP Server IP>/VP_POM_Service/v4/completioncodes/id

Parameters
query
Parameter Required Description Data Type
completionCodeName true The name of completion code string

payload None

JSON response
Avaya Proactive Outreach Manager Developer Guide 184
Field name Description
completionCodeID The unique identifier for the completion code.
Example
The example provided in this section is based on fetching ID for system completion code
“Answer_Human”.
HTTP: POST /VP_POM_Service/v4/completioncodes/id HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"completionCodeName": "Answer_Human"}

RESPONSE JSON:
{"completionCodeID":13}
__________________________________________________________________________________________
Get List of Organizations
GET /v4/organizations
The API provides a list of organizations created on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/organizations

Parameters
path None
payload None

JSON response
Each organization item will have below fields:

Field name Description


organizationId The unique ID of organization created on POM system
name The name of organization
description Description provided for org.
lastupdate The last update time in milliseconds
Example
The example provided in this section is based on retrieving list of organization found on POM
system.
HTTP: GET /VP_POM_Service/v4/organizations HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

Avaya Proactive Outreach Manager Developer Guide 185


RESPONSE JSON:
[{"organizationId":-
1,"name":"Default","description":null,"lastupdate":null},{"organizationId":1,"name":
"CC","description":"ORG","lastupdate":1530439072919},{"organizationId":2,"name":"tes
t","description":"ORG","lastupdate":1530439073149}]
__________________________________________________________________________________________
Get Organization Info by Name
GET /v4/organizations/{org_name}/orginfo
The API provides a list of organizations created on POM system.

URL
https://<EP Server IP>/VP_POM_Service/v4/organizations/{org_name}/orginfo

Parameters
path None
payload None

JSON response
Each organization item will have below fields:

Field name Description


organizationId The unique ID of organization created on POM system
name The name of organization
description Description provided for org.
lastupdate The last update time in milliseconds
Example
The example provided in this section is based on retrieving list of organization found on POM
system.
HTTP: GET /VP_POM_Service/v4/organizations/CC/orginfo HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"organizationId":1,"name":"CC","description":"ORG","lastupdate":1550657426750}
__________________________________________________________________________________________
List Global Configuration
GET /v4/globalconfig
The API lists all global configuration parameters exposed on POM admin screens.

URL
https://<EP Server IP>/VP_POM_Service/v4/globalconfig

Parameters
path None

Avaya Proactive Outreach Manager Developer Guide 186


payload None

JSON response
Each parameter will have below fields:

Field name Description


configParameterID The ID of global config parameter
configParameterName The name of global config parameter
configParameterValue Current value of global config parameter
Example
The example provided in this section is based on listing global configuration parameters.
HTTP: GET /VP_POM_Service/v4/globalconfig HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[{"configParameterID":1,"configParameterName":"Batch_DNC_Size","configParameterValue
":"51"},{"configParameterID":2,"configParameterName":"Batch_Filter_Size","configPara
meterValue":"500"},{"configParameterID":3,"configParameterName":"Batch_Import_Size",
"configParameterValue":"501"},{"configParameterID":4,"configParameterName":"Global_D
ate_Format","configParameterValue":"dd-MM-yyyy
HH:mm:ss"},{"configParameterID":7,"configParameterName":"PIMPollerInterval","configP
arameterValue":"5"},{"configParameterID":10,"configParameterName":"MaxCallInterval",
"configParameterValue":"60"},{"configParameterID":11,"configParameterName":"MaxCallI
nProgressInterval","configParameterValue":"5"},{"configParameterID":13,"configParame
terName":"WeekEndDays","configParameterValue":"1"},{"configParameterID":36,"configPa
rameterName":"ExportFolder","configParameterValue":"$POM_HOME/Export"},{"configParam
eterID":40,"configParameterName":"MaxConcurrentJobs","configParameterValue":"60"},{"
configParameterID":41,"configParameterName":"MaxNuisanceRate","configParameterValue"
:"3"},{"configParameterID":63,"configParameterName":"PacingParaminitialHandleTime","
configParameterValue":"60"},{"configParameterID":64,"configParameterName":"PacingPar
aminitialHitRate","configParameterValue":"0.5"},{"configParameterID":77,"configParam
eterName":"ExportMaxRecPerFile","configParameterValue":"65000"},{"configParameterID"
:79,"configParameterName":"HomeCountry","configParameterValue":"USA_And_Canada"},{"c
onfigParameterID":80,"configParameterName":"CountryCodeSeparator","configParameterVa
lue":"#"},{"configParameterID":88,"configParameterName":"JMS_LISTEN_PORT","configPar
ameterValue":"51616"},{"configParameterID":89,"configParameterName":"PacingCPCMSocke
tPort","configParameterValue":"9995"},{"configParameterID":90,"configParameterName":
"RouterPort","configParameterValue":"7779"},{"configParameterID":91,"configParameter
Name":"PAM_SS_PORT","configParameterValue":"9970"},{"configParameterID":92,"configPa
rameterName":"FTP_TIMEOUT","configParameterValue":"60000"},{"configParameterID":93,"
configParameterName":"WfoPort","configParameterValue":"7999"},{"configParameterID":9
4,"configParameterName":"ApplyTimeRestrictionsForCallback","configParameterValue":"f
alse"},{"configParameterID":95,"configParameterName":"ApplyDNCForCallback","configPa
rameterValue":"true"},{"configParameterID":96,"configParameterName":"CallbackExpiryT
ime","configParameterValue":"30"},{"configParameterID":97,"configParameterName":"Cal
lbackRetryTime","configParameterValue":"30"},{"configParameterID":98,"configParamete
rName":"CallbackPreInterval","configParameterValue":"2"},{"configParameterID":101,"c
onfigParameterName":"AgentScriptEditorAutoSaveTime","configParameterValue":"1"},{"co
nfigParameterID":103,"configParameterName":"WfoEnabled","configParameterValue":"true
"},{"configParameterID":106,"configParameterName":"MaxPreviewTime","configParameterV

Avaya Proactive Outreach Manager Developer Guide 187


alue":"10"},{"configParameterID":107,"configParameterName":"MaxCallbackInQueueTime",
"configParameterValue":"30"},{"configParameterID":111,"configParameterName":"DeleteI
ntervalDataBeforeDuration","configParameterValue":"62"},{"configParameterID":118,"co
nfigParameterName":"LogsForSuccessUpdateContactImport","configParameterValue":"true"
},{"configParameterID":119,"configParameterName":"BlockCallOnInsufficientGTInfo","co
nfigParameterValue":"false"},{"configParameterID":120,"configParameterName":"PomMoni
torRefreshInterval","configParameterValue":"10"},{"configParameterID":121,"configPar
ameterName":"ContactExportBatchSize","configParameterValue":"500"},{"configParameter
ID":126,"configParameterName":"MaxOutboundPortsPerServer","configParameterValue":"12
00"},{"configParameterID":129,"configParameterName":"OutboundThrashingTime","configP
arameterValue":"15"},{"configParameterID":130,"configParameterName":"NailingRetryInt
erval","configParameterValue":"20"},{"configParameterID":131,"configParameterName":"
MaxConcurrentMonitorRequest","configParameterValue":"25"},{"configParameterID":133,"
configParameterName":"StarvationAlarmDuration","configParameterValue":"20"},{"config
ParameterID":136,"configParameterName":"CallQueuing","configParameterValue":"false"}
,{"configParameterID":137,"configParameterName":"ApplyDNCForRedialAndPreview","confi
gParameterValue":"false"},{"configParameterID":138,"configParameterName":"NailupCLID
","configParameterValue":"number"},{"configParameterID":139,"configParameterName":"O
verridePAI","configParameterValue":"false"},{"configParameterID":141,"configParamete
rName":"PMonitorAgentPageSize","configParameterValue":"30"},{"configParameterID":142
,"configParameterName":"ANIForExtConsult","configParameterValue":"Nailup call
CLID"},{"configParameterID":150,"configParameterName":"DeleteBatchSize","configParam
eterValue":"1000"},{"configParameterID":156,"configParameterName":"ApplyExcludeUnAtt
emptedContacts","configParameterValue":"false"},{"configParameterID":157,"configPara
meterName":"AllowStoppedCallbackJobState","configParameterValue":"true"},{"configPar
ameterID":158,"configParameterName":"AMHeartbeatPort","configParameterValue":"8870"}
,{"configParameterID":163,"configParameterName":"RULE_ENGINE_PORT","configParameterV
alue":"8779"},{"configParameterID":165,"configParameterName":"RecorderTLSEnabled","c
onfigParameterValue":"false"},{"configParameterID":183,"configParameterName":"SIP_PR
OTOCOLS","configParameterValue":"sips,sip"},{"configParameterID":200,"configParamete
rName":"PacingCPCMSocketPortAMInitiated","configParameterValue":"10005"},{"configPar
ameterID":201,"configParameterName":"AttributeDialingAlarmTimeForRecordNotFound","co
nfigParameterValue":"10"},{"configParameterID":212,"configParameterName":"CertExpiry
Days","configParameterValue":"60"},{"configParameterID":213,"configParameterName":"B
lendNotReadyAgent","configParameterValue":"false"},{"configParameterID":214,"configP
arameterName":"MaxStrictAgentAttemptCount","configParameterValue":"2"},{"configParam
eterID":219,"configParameterName":"AttemptBehaviorForEmptyAddress","configParameterV
alue":"SkipEmptyAndMoveNextImmediatly"},{"configParameterID":221,"configParameterNam
e":"ApplyTimeRestrictionsForDial","configParameterValue":"true"},{"configParameterID
":223,"configParameterName":"SendPOMEvents","configParameterValue":"false"},{"config
ParameterID":224,"configParameterName":"SendJobStateEvents","configParameterValue":"
true"},{"configParameterID":225,"configParameterName":"SendJobStatisticsEvents","con
figParameterValue":"true"},{"configParameterID":226,"configParameterName":"SendAgent
StateEvents","configParameterValue":"true"},{"configParameterID":227,"configParamete
rName":"SendAgentStatisticsEvents","configParameterValue":"true"},{"configParameterI
D":228,"configParameterName":"JobStatisticsEventFrequencyInSeconds","configParameter
Value":"6"},{"configParameterID":229,"configParameterName":"UseNewAreaCodeMapping","
configParameterValue":"false"},{"configParameterID":230,"configParameterName":"MarkA
MDAppPlayedCC","configParameterValue":"false"},{"configParameterID":231,"configParam
eterName":"AgentSuperVisorConfiguration","configParameterValue":"true"},{"configPara
meterID":232,"configParameterName":"AGTSendRFC2833DTMF","configParameterValue":"fals
e"},{"configParameterID":233,"configParameterName":"DTMFClampToAgent","configParamet
erValue":"false"},{"configParameterID":234,"configParameterName":"DTMFClampCustomer"
,"configParameterValue":"false"},{"configParameterID":237,"configParameterName":"Con
vertAgentToStrictAgentCallback","configParameterValue":"false"},{"configParameterID"
:238,"configParameterName":"StrictNuisance","configParameterValue":"false"},{"config
ParameterID":239,"configParameterName":"NuisanceDurationAgentConnect","configParamet

Avaya Proactive Outreach Manager Developer Guide 188


erValue":"2000"},{"configParameterID":240,"configParameterName":"PerformContactValid
ationsBeforePacing","configParameterValue":"true"}]
__________________________________________________________________________________________
Get Global Config Parameter Value by Name
GET /v4/globalconfig/name/{config_parameter_name}
The API retrieves global config parameter value based on name provided in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/globalconfig/name/{config_parameter_name}

Parameters
path
Parameter Required Description Data Type
configParameterName Yes The name of global config String
parameter which needs to be
retrieved
payload None

JSON response
Field name Description
configParameterID The ID of global config parameter.
configParameterName The name of the global config parameter.
configParameterValue Current value of global config parameter.
Example
The example provided in this section is based retrieving value of RouterPort global config
parameter
HTTP: GET /VP_POM_Service/v4/globalconfig/name/RouterPort HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"configParameterID":90,"configParameterName":"RouterPort","configParameterValue":"7
779"}
__________________________________________________________________________________________
Update Global Config Parameter Value by Name
POST /v4/globalconfig/name/{config_parameter_name}
The API updates value of global config using values provided in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/globalconfig/name/{config_parameter_name}

Parameters
path
Parameter Required Description Data Type

Avaya Proactive Outreach Manager Developer Guide 189


configParameterName Yes The name of global config String
parameter which needs to be
changed.
payload
Parameter Required Data Type
configParameterValue Yes New value of global config parameter.
JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based on updating the parameter value of DNC batch
size.
HTTP: POST /VP_POM_Service/v4/globalconfig/name/Batch_DNC_Size
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"configParameterValue":"500"}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Update Global Config Parameter Values in Bulk
POST /v4/globalconfig/bulkedit
The API updates values of multiple global config parameters using values provided in the
request.

URL
https://<EP Server IP>/VP_POM_Service/v4/globalconfig/bulkedit

Parameters
path None
payload
Each item will have below fields;
Parameter Required Data Type
configParameterName Yes The global config parameter name.
configParameterValue Yes New value of global config parameter.
JSON response
Field name Description
result Returns true on success.
Example

Avaya Proactive Outreach Manager Developer Guide 190


The example provided in this section is based on updating parameter values of multiple
parameters like DNC batch size, and router port in a single request.
HTTP: POST /VP_POM_Service/v4/globalconfig/bulkedit HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"globalConfigsList":
[
{
"configParameterName": "Batch_Import_Size",
"configParameterValue": "1231"
},
{
"configParameterName": "RouterPort",
"configParameterValue": "234"
}
]
}

RESPONSE JSON:
{"Batch_Import_Size":{"errorCode":null,"errorMessage":null,"isUpdated":true},"Router
Port":{"errorCode":null,"errorMessage":null,"isUpdated":true}}
__________________________________________________________________________________________
Get Global Config Parameter Value By ID
GET /v4/globalconfig/{config_parameter_id}
The API retrieves global config parameter value based on ID provided in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/globalconfig/{config_parameter_id}

Parameters
path
Parameter Required Description Data Type
configParameterID Yes The ID of global config integer
parameter which needs to be
retrieved
payload None

JSON response
Field name Description
configParameterID The ID of global config parameter.
configParameterName The name of the global config parameter.
configParameterValue Current value of global config parameter.
Example
The example provided in this section is based on retrieving value of global config parameter
having ID 234.

Avaya Proactive Outreach Manager Developer Guide 191


HTTP: GET /VP_POM_Service/v4/globalconfig/234 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"configParameterID":234,"configParameterName":"DTMFClampCustomer","configParameterV
alue":"false"}
__________________________________________________________________________________________
Update Global Config Parameter Value By ID
POST /v4/globalconfig/{config_parameter_id}
The API updates value of global config using values provided in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/globalconfig/{config_parameter_id}

Parameters
path
Parameter Required Description Data Type
configParameterID Yes The ID of global config String
parameter which needs to be
changed.
payload
Parameter Required Data Type
configParameterValue Yes New value of global config parameter.
JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based updating parameter value of ID 243.
HTTP: POST /VP_POM_Service/v4/globalconfig/234 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{"configParameterValue":"Japan"}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Get Jobs List
GET /v4/campaigns/jobs

Avaya Proactive Outreach Manager Developer Guide 192


This web service will return job list page wise. User must provide page start and page size to
get the job summary of active jobs. Pagination functionality by default will work based on job
id. Web service will return the jobs array page wise with default page size as 30

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/jobs

Parameters
path
Parameter Required Description Data Type
pageNumber Yes Page number from where Integer
records should be pulled.
limit (optional) Yes Page size, default value is 30 Integer
organization No Job attached to provided String
organization will be returned.
orderBy No Default order will be based on String
job id but user could provide an
order by field.
sortDirection No Asc/Desc order by which the String
jobs will be retrieved
Payload None

JSON response
Field name Description
jobId Job Id
campaignName Campaign name of the job
campaignStrategy Campaign strategy name attached to the job
startTime Job start time
jobStatus Job status, there could be multiple values as campaign could be in
JOB_ACTIVE, JOB_FILTER_IN_PROGRESS when filter is still
going on while dialing. Possible values are
JOB_QUEUED, JOB_ACTIVE, JOB_PAUSE, JOB_PAUSING,
JOB_PAUSED, JOB_FILTER_IN_PROGRESS, JOB_RESUME,
JOB_STOP, JOB_STOPPING, JOB_CREATING_HISTORY,
JOB_SHADOW
campaignType Type of campaign like Finite/Infinite
contactListNames Names of contact list attached to the job
dncListNames Names of DNC list attached to the job
organization Organization to which campaign belongs
unattemptedContacts Contacts which are not attempted yet.
totalFilteredContacts Total contact eligible for dialing
processedContacts Contacts which are marked done

Avaya Proactive Outreach Manager Developer Guide 193


Field name Description
scheduledCallbacks Number of callbacks scheduled
agentCount Number of agents attached to the job
nuisanceCalls total count of nuisance calls made through the job.
nuisanceRate Nuisance Rate of the job
nuisanceRateToday nuisance rate from the midnight till the current system time.
UniqueAttemptToListPercent This will indicate penetration of contact list, formula: unique attempt
age /total filtered contacts)*100
AttemptToListPercentage This will indicate saturation of contact list, formula: all attempts /total
filtered contacts)*100
PercentComplete This will indicate the percentage of calls being made up till now.
jobNotes Job Notes, possible values are
DIALING_PAUSED_AWAITING_IMPORT_TO_COMPLETE,
DIALING_PAUSED_AWAITING_RECORD_FILTERING_TO_COM
PLETE,
DIALING_PAUSED_CONTACT_LIST_ADDITION_IN_PROGRESS
,
DIALING_PAUSED_CONTACT_LIST_REMOVAL_IN_PROGRESS
,
DIALING_PAUSED_CONTACT_LIST_IMPORT_IN_PROGRESS,
RECORD_FILTERING_AND_DIALING_IN_PROGRESS,
CONTACT_LIST_ADDITION_AND_DIALING_IN_PROGRESS,
CONTACT_LIST_REMOVAL_AND_DIALING_IN_PROGRESS,
CONTACT_LIST_IMPORT_AND_DIALING_IN_PROGRESS,
DIALING_IN_PROGRESS,
DIALING_STOPPED_ONLY_CALLBACK_TO_PROCESS,
DIALING_COMPLETED_PENDING_CALLBACKS

Example
The example provided in this section is based to get list of active jobs.
HTTP: GET /VP_POM_Service/v4/campaigns/jobs? pageNumber=1&limit=10 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"count": 8,
"jobStat": [
{
"jobId": 126,
"campaignName": "ZM_Preview_Infin",
"campaignStrategy": "preview",
"startTime": 1527791077140,
"jobStatus": "running",

Avaya Proactive Outreach Manager Developer Guide 194


"campaignType": "INFINITE",
"contactListNames": "ZM_Default, ZM_Default2",
"organization": "Default",
"unattemptedContacts": 3,
"totalFilteredContacts": 14,
"processedContacts": 11,
"scheduledCallbacks": 0,
"agentCount": 0,
"nuisanceCallCount": 0,
"nuisanceRate": 3,
"nuisanceRateToday": 0,
"uniqueAttemptToListPercent": 21.43,
"attemptToListPercent": 21.43,
"percentComplete": 78.57,
"jobNotes": "DIALING_IN_PROGRESS"
}
]
}
__________________________________________________________________________________________
Get Completion Code detail
GET /v4/campaigns/jobs/{job_id}/completioncodedetail
This web service will provide details about completion code and respective count for a job.
This will take job id as parameter. Job information for completed jobs will not be provided.

URL
https://<EPServerIP>/VP_POM_Service/v4/campaigns/jobs/{job_id}/completioncodedetail

Parameters
path
Parameter Required Description Data Type
jobId Yes Job Id of an active job. Integer
completioncodeFilter No Completion code array to be String Array
returned
payload None

JSON response
Field name Description
Completioncode Completion code name
Count Count the completion code in job
isRPC True if this completion code has RPC attribute flagged
isClosure True if this completion code has Closure attribute flagged
isSuccess True if this completion code has Success attribute flagged
CompletionCodeType 0 = System Completion Code, 1= Custom Completion Code
answerMachineByAgent True if this completion code has answerMachineByAgent flagged
Example
The example provided in this section is based get completion code details for a job ID 126.
HTTP: GET /v4/campaigns/jobs/126/completioncodedetail HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx

Avaya Proactive Outreach Manager Developer Guide 195


Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"count": 2,
"completioncodes": [
{
"completionCode": "custom_code1",
"count": 10,
"answerMachineByAgent": false,
"completionCodeType": 1,
"rpc": true,
"success": true,
"closure": true
},
{
"completionCode": "Desktop_Error",
"count": 1,
"answerMachineByAgent": false,
"completionCodeType": 0,
"rpc": false,
"success": false,
"closure": false
}
]
}
__________________________________________________________________________________________
Get Completion Code Trend
GET /v4/campaigns/jobs/{job_id}/completioncodetrend
This web service will provide details about hourly completion code trend and respective count
for a job. This will take job id as parameter. Job information for completed jobs will not be
provided.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/jobs/{job_id}/completioncodetrend

Parameters
path
Parameter Required Description Data Type
jobId Yes Job Id of an active job. Integer

completioncode No Completion code array to be provided. String


Filter (optional) Array
e.g. Multiple completion code can be provided in
URL like below:
&completioncodeFilter=Invalid_Number&completionc
odeFilter=agentapi_cc
duration No Last number of hours for trend data. Maximum could Integer
(optional) be 8 and minimun allowed is 1 in hour.
Default value will be 8.

Avaya Proactive Outreach Manager Developer Guide 196


payload None

JSON response
Field name Description
completionCode Completion Code name
count Count the completion code in job at above time.
CompletionCodeType 0 = System Completion Code, 1= Custom Completion Code
answerMachineByAgent True if this completion code has answerMachineByAgent flagged
isRPC True if this completion code has RPC attribute flagged
isClosure True if this completion code has Closure attribute flagged
isSuccess True if this completion code has Success attribute flagged
Example
The example provided in this section is to get completion code trend for a job ID126 with last
8 hours of trend data.
HTTP: GET
/VP_POM_Service/v4/campaigns/jobs/126/completioncodetrend?duration=8
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[
{
"timestamp": 1530609600000,
"hourString": "14:50",
"completionCodeTrend": []
},
{
"timestamp": 1530606000000,
"hourString": "13:50",
"completionCodeTrend": []
},
{
"timestamp": 1530602400000,
"hourString": "12:50",
"completionCodeTrend": []
},
{
"timestamp": 1530598800000,
"hourString": "11:50",
"completionCodeTrend": []
},
{
"timestamp": 1530595200000,
"hourString": "10:50",
"completionCodeTrend": [
{
"completionCode": "Preview_In_Progress",
"count": 1,
"answerMachineByAgent": false,

Avaya Proactive Outreach Manager Developer Guide 197


"completionCodeType": 0,
"rpc": false,
"success": false,
"closure": false
},
{
"completionCode": "CC1",
"count": 6,
"answerMachineByAgent": false,
"completionCodeType": 1,
"rpc": true,
"success": false,
"closure": false
}
]
},
{
"timestamp": 1530591600000,
"hourString": "09:50",
"completionCodeTrend": [
{
"completionCode": "Preview_In_Progress",
"count": 1,
"answerMachineByAgent": false,
"completionCodeType": 0,
"rpc": false,
"success": false,
"closure": false
},
{
"completionCode": "Desktop_Error",
"count": 3,
"answerMachineByAgent": false,
"completionCodeType": 0,
"rpc": false,
"success": false,
"closure": false
},
{
"completionCode": "CC1",
"count": 4,
"answerMachineByAgent": false,
"completionCodeType": 1,
"rpc": true,
"success": false,
"closure": false
}
]
},
{
"timestamp": 1530588000000,
"hourString": "08:50",
"completionCodeTrend": [
{
"completionCode": "CC1",
"count": 5,
"answerMachineByAgent": false,
"completionCodeType": 1,

Avaya Proactive Outreach Manager Developer Guide 198


"rpc": true,
"success": false,
"closure": false
}
]
},
{
"timestamp": 1530584400000,
"hourString": "07:50",
"completionCodeTrend": [
{
"completionCode": "CC1",
"count": 2,
"answerMachineByAgent": false,
"completionCodeType": 1,
"rpc": true,
"success": false,
"closure": false
}
]
}
]
__________________________________________________________________________________________
Get Agent State Summary
GET /v4/campaigns/jobs/{job_id}/agentstates
This web service will provide state wise agents count for a job.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/jobs/{job_id}/agentstates

Parameters
path
Parameter Required Description Data Type
jobId Yes Job Id Integer
payload None

JSON response
Field name Description
state State of agent possible values are –
LOGGED_IN, READY, BUSY, WORK_NOT_READY ,NOT_READY, LOGGED_OUT
count Count of agents.

Example
The example provided in this section is to get agent states summary for job id 126.
HTTP: GET /VP_POM_Service/v4/campaigns/jobs/126/agentstates HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

Avaya Proactive Outreach Manager Developer Guide 199


RESPONSE JSON:
{
"agentCount": 2,
"agentStateSummary": [
{
"agentState": "READY",
"count": 1
},
{
"agentState": "WORK_NOT_READY",
"count": 1
}
]
}
__________________________________________________________________________________________
Get Agents List
GET /v4/agents/list
This web service will return page wise array of agents with agent id as ascending order. For
example, if user provides page number as 1 then system will sort the agents based on agent
ids in ascending order and first 30 records will be returned.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/list

Parameters
path
Parameter Required Description Data Type
pageNumber Yes Page number from where Integer
records should be pulled.
limit No Page size, default value is 30 Integer
orgname No Job attached to provided String
organization will be returned.
jobId No Agents attached to provided Integer
job will be returned
zoneName No Agents logged into provided String
zone will be returned.
orderBy No Field name to be used for String
ordering agents list.
sortDirection No Asc/Desc order by which the String
jobs will be retrieved
payload None

JSON response
Field name Description
agentOrg The organization to which agent is logged in
agentid The agent Id as provided by agent during login
agentname The agent name as provided by agent during login
zoneName The zone to which agent is logged in
agentExtension The station Id as provided by agent during login
locale The locale value as provided by agent during login. For ex.
“en_US”

Avaya Proactive Outreach Manager Developer Guide 200


Field name Description
agentSessionId The unique id assigned by POM on agent login
timeZone The time zone as provided by agent during login.

loginTimeStamp The timestamp of agent login


logoutTimeStamp The timestamp of agent logout
totalInboundBlendCount Total number of times agent was blended to inbound within a
login session
totalInboundDuration Total time agent spent in inbound within a login session
totalOutboundDuration Total time agent spent in outbound within a login session
totalOffJobIdleDuration Total time agent was in READY state and not attached to job
totalOffJobBreakDuration Total time agent was in NOT_READY state and not attached to
job
lastRelToInboundTimeStamp Timestamp when the agent was last released to inbound
lastAcqToOutboundTimeStamp Timestamp when the agent was last acquired to outbound
currentAgentState The current state of agent like Ready, Not_ready, Busy,
Work_Not_Ready
currentAgentCallState The current call state if handled by the agent like Idle, OnCall,
WrapUp, WrapUpComplete
currentAgentJobState The current job state for the agent like JobAttached,
JobDetached
currentAgentNailState The current nail state for the agent like Nailed, Unnailed
currentAgentStateTimeStamp The time stamp when agent state changed to current state
currentAgentCallStateTimeStamp The time stamp when agent call state changed to current call
state
currentAgentNailStateTimeStamp The time stamp when agent nail state changed to current nail
state
currentAgentJobStateTimeStamp The time stamp when agent job state changed to current job state
allJobInfo All Job Statistics holding cumulative data for all the jobs that
Agent has handled within current login session. Refer the
AllJobInfo attributes table below for details.

Note: allJobInfo is populated/updated only when agent is


detached from the job and is not calculated periodically.
currentJobInfo Current Job Info holding current attached job data. Refer the
CurrentJobInfo attributes table below for details.

Note: currentJobInfo parameters get populated/updated on a


per record basis i.e. whenever an agent disposes/finishes his
current record.

CurrentJobInfo and allJobInfo:


The parameters present in the below table are common for currentJobInfo and allJobInfo.

currentJobInfo
All parameters in the table get reset to 0 under the following conditions :
▪ In case agent logs out and logs in again.
▪ In case the agent detaches from a job and attaches to another job or re-attaches to the same
job. If there is a situation where an agent moves to another job to take one or more callbacks
and then comes back to the original job after handing callbacks from the other job, then even in
such cases, the parameters of currentJobInfo would get reset to 0.

Avaya Proactive Outreach Manager Developer Guide 201


allJobInfo
All below parameters get reset to 0 in the following conditions :
▪ In case agent logs out and logs in again.

Field name Description


talkTime The total talk time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
callCount The total call count of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
acwTime The total after call work time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
acwCount The total after call work count of the agents in all jobs or current
job.
Note: In case agent logs out and logs in again, this will reset to 0.
inJobBreakTime The total in-job break time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
inJobBreakCount The total in-job break count of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
inJobIdleTime The total in-job idle time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
inJobIdleCount The total in-job idle count of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
holdTime The total hold time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
holdCount The total hold count of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
conferenceTime The total conference time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
conferenceCount The total conference count of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
transferCount The total transfer count of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
transferRecvCount The total number of calls transferred or received by agent in all jobs
or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
consultTime The total consult time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
consultCount The total consult count of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
previewTime The total preview time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
previewAcceptCount The total dialed contact in preview by agents in all jobs or current
job.
Note: In case agent logs out and logs in again, this will reset to 0.
previewRejectCount The total canceled contact in preview by agents in all jobs or current
job.
Note: In case agent logs out and logs in again, this will reset to 0.
abandonedHoldCount The total number of calls handled by agent getting disconnected
when customer is on hold in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
holdInConfCount The total number of calls agent has put customer on hold during
conference in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
holdInConfTime The total time agent has put customer on hold during conference
in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.

Avaya Proactive Outreach Manager Developer Guide 202


Field name Description
avgACWTime The average after call work of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
avgTalkTime The average talk time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
avgHoldTime The average hold time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
avgPreviewTime The average preview time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
avgBreakTime The average in-job break time of the agents in all jobs or current
job.
Note: In case agent logs out and logs in again, this will reset to 0.
avgIdleTime The average in-job idle time of the agents in all jobs or current job.
Note: In case agent logs out and logs in again, this will reset to 0.
percIdleTime The percentage of in-job idle time of the agents in all jobs or current
job.
Note: This is derived as (totalInJobIdelTime/(jobAttachedDuration-
totalInJobBreakTime)) * 100. In case agent logs out and logs in
again, this will reset to 0.
percBreakTime The percentage of in-job break time of the agents in all jobs or
current job.
Note: This is derived as
(totalInJobBreakTime/jobAttachedDuration) * 100. In case agent
logs out and logs in again, this will reset to 0.
totalJobTime The total time worked by the agents in all jobs.
Note: This attribute is part of AgentAllJobStatistics class only. In
case agent logs out and logs in again, this will reset to 0.
Example
The example provided in this section is to get list of agents logged in to the POM system
HTTP: GET /VP_POM_Service/v4/agents/list?pageNumber=1&limit=10
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"count": 1,
"agents": [
{
"agentOrg": null,
"agentId": "26001001",
"agentExtension": "26000751",
"agentName": "blndedAgts26001001",
"outboundSkills":
"89,36,38,510,501,502,91,503,504,505,506,51,507,508,509",
"attributeSkills": "",
"logggedInSkill": "36",
"actionId": 100,
"actionName": "Call_100",
"jobId": 2972,
"campaignName": "WH_Cruise_10",
"zoneId": -1,

Avaya Proactive Outreach Manager Developer Guide 203


"zoneName": "Default",
"loginTime": 1530612668293,
"locale": "English (United States)",
"agentTimeZone": "GMT + 5.30",
"agentJobState": "JOBATTACHED",
"agentNailState": "NAILED",
"agentState": "READY",
"agentCallState": "IDLE",
"auxState": "System initiated break",
"inboundCount": 0,
"inboundDuration": 1,
"inboundDurationPercentage": 0,
"jobWaitingIdleDuration": -1,
"offJobIdleDuration": 1,
"offJobIdlePercent": 0,
"offJobBreakDuration": 0,
"offJobBreakPercentage": 0,
"outBoundDuration": 1,
"outBoundDurationPercentage": 0,
"currentAgentStateTimeStamp": 1530612670503,
"currentAgentCallStateTimeStamp": 1530612668293,
"currentAgentNailStateTimeStamp": 1530612671838,
"currentAgentJobStateTimeStamp": 1530612671850,
"currentJobInfo": {
"talkTime": 0,
"callCount": 0,
"acwTime": 0,
"acwCount": 0,
"inJobBreakTime": 0,
"inJobBreakCount": 0,
"inJobIdleTime": 0,
"inJobIdleCount": 1,
"holdTime": 0,
"holdCount": 0,
"conferenceTime": 0,
"conferenceCount": 0,
"transferCount": 0,
"transferRecvCount": 0,
"consultTime": 0,
"consultCount": 0,
"previewTime": 0,
"previewAcceptCount": 0,
"previewRejectCount": 0,
"abandonedHoldCount": 0,
"holdInConfCount": 0,
"holdInConfTime": 0,
"avgACWTime": 0,
"avgTalkTime": 0,
"avgHoldTime": 0,
"avgPreviewTime": 0,
"avgBreakTime": 0,
"avgIdleTime": 0,
"percIdleTime": 0,
"percBreakTime": 0
},
"allJobInfo": {
"talkTime": 0,
"callCount": 0,

Avaya Proactive Outreach Manager Developer Guide 204


"acwTime": 0,
"acwCount": 0,
"inJobBreakTime": 0,
"inJobBreakCount": 0,
"inJobIdleTime": 0,
"inJobIdleCount": 0,
"holdTime": 0,
"holdCount": 0,
"conferenceTime": 0,
"conferenceCount": 0,
"transferCount": 0,
"transferRecvCount": 0,
"consultTime": 0,
"consultCount": 0,
"previewTime": 0,
"previewAcceptCount": 0,
"previewRejectCount": 0,
"abandonedHoldCount": 0,
"holdInConfCount": 0,
"holdInConfTime": 0,
"avgACWTime": 0,
"avgTalkTime": 0,
"avgHoldTime": 0,
"avgPreviewTime": 0,
"avgBreakTime": 0,
"avgIdleTime": 0,
"percIdleTime": 0,
"percBreakTime": 0,
"totalJobTime": 0
}
}
]
}
__________________________________________________________________________________________
Set Agent Not Ready
POST /v4/agents/{agent_id}/forcenotready
This web service will move the agent to Not Ready state. If agent is working on contact then
the agent will go to ‘Pending Not Ready’ state. After completion of contact the agent will
move to Not Ready. For AACC and Oceana mode, this web service is not applicable.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/{agent_id}/forcenotready

Parameters
path
Parameter Required Description Data Type
agentId Yes Agent Id Integer
payload None

JSON response
Field name Description
status True or False

Avaya Proactive Outreach Manager Developer Guide 205


Field name Description
errorCode Error code for failure
errorMessage Error message in case of failure
Example
The example provided in this section is for forcing agent 1567 to Not ready state.
HTTP: POST /VP_POM_Service/v4/agents/1567/forcenotready HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"status": "false",
"errorCode": 4011,
"errorMessage": "Agent not available for operation "
}
__________________________________________________________________________________________
Force Agent Logout
POST /v4/agents/{agent_id}/forcelogout
This web service will forcefully logout the agent even though the agent is on call. For AACC
and Oceana mode, this web service is not applicable. The agent desktop will get notification
from POM when agent is forcefully logged out. If desktop has implemented the notification it
can display the message to the agent.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/{agent_id}/forcelogout

Parameters
path
Parameter Required Description Data Type
agentId Yes Agent Id Integer
payload None

JSON response
Field name Description
status True or False
errorCode Error code for failure
errorMessage Error message in case of failure
Example
The example provided in this section is for forcing agent 1567 logout.
HTTP: POST /VP_POM_Service/v4/agents/1567/forcelogout HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest

Avaya Proactive Outreach Manager Developer Guide 206


Cache-Control: no-cache

RESPONSE JSON:
{
"status": "true",
"errorCode": null,
"errorMessage": ""
}
__________________________________________________________________________________________
Release agent from Outbound
POST /v4/agents/{agent_id}/release
This will release the agent from outbound making the agent available for inbound. For AACC
and Oceana mode, this web service is not applicable. The agent desktop will get notification
from POM when agent is released from outbound. If desktop has implemented the
notification it can display the message to the agent.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/{agent_id}/release

Parameters
path
Parameter Required Description Data Type
agentId Yes Agent Id Integer
thrashInterval Yes Minimum number in minutes to Integer
reclaim agent
payload NA

JSON response
Field name Description
status True or False
errorCode Error code for failure
errorMessage Error message in case of failure
Example
The example provided in this section is for releasing agent 1567 from POM
HTTP: POST /VP_POM_Service/v4/agents/1567/release HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"status": "true",
"errorCode": null,
"errorMessage": ""
}
__________________________________________________________________________________________
Get Available Jobs for Agent
Avaya Proactive Outreach Manager Developer Guide 207
GET /v4/agents/{agent_id}/jobs
This web service will get valid jobs for the agents.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/{agent_id}/jobs

Parameters
path
Parameter Required Description Data Type
agentId Yes Agent Id Integer
payload None

JSON response
Field name Description
JobId Job Id
Campaign Name Name of campaign for job
actionId New action id
actionName Action name
priority Priority of the job
minAgent Minimum agent set for job
maxAgent Maximum agent set for job
zoneId Zone Id in which job is running
Example
The example provided in this section is for getting available jobs for agent 1567
HTTP: GET /VP_POM_Service/v4/agents/1567/jobs HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"status": "success",
"errorCode": null,
"errorMessage": null,
"agentJobList": [
{
"jobId": 126,
"campaignName": "ZM_Preview_Infin",
"actionId": 100,
"actionName": "Call_100",
"priority": 5,
"minAgent": 1,
"maxAgent": 3,
"zoneId": -1
}
]
}
__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 208


Move Agent to another Job
POST /v4/agents/{agent_id}/job/{job_id}/action/{action_id}/move
This web service will move agent from current job to new job, note that the agent will be
moved to another job only if agent skill matches with that of new job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/agents/{agent_id}/job/{job_id}/action/{action_id}/move

Parameters
path
Parameter Required Description Data Type
agentId Yes Agent Id Integer
jobId Yes New Job Id Integer
actionId Yes New action id Integer
agentThrashingTime No Minimum number in minutes to Integer
wait to reclaim agent.
priority No Priority of new job Integer
minAgent No Minimum agent parameter for Integer
new job
maxAgent No Maximum agent parameter for Integer
new job
payload None

JSON response
Field name Description
status True or False
errorCode Error code for failure
errorMessage Error message in case of failure
Example
The example provided in this section is for moving agent 1567 to job 126 and action 100.
HTTP: POST /VP_POM_Service/v4/agents/1567/job/126/action/100/move
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"status": "true",
"errorCode": null,
"errorMessage": ""
}
__________________________________________________________________________________________
Get CCElite Outbound Skills List
The API retruns the list of CCElite outbound skills configured in the system.

Avaya Proactive Outreach Manager Developer Guide 209


URL
https://<EP Server IP>/VP_POM_Service/v4/agents/skills/outbound/ccelite

Parameters
path None
payload None

JSON response
List of CCElite Outbound Skills list items, each item consists:

Field name Description


skillMapId The ID of the outbound skill mentioned in the Database.
skillId The CCElite skill ID
skillName The outbound skill name configured in system.

Example
The example provided in this section is for getting list of CCElite outbound skills configured in
the system
HTTP: GET /VP_POM_Service/v4/agents/skills/outbound/ccelite HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[
{
"skillId": "113",
"skillMapId": "1",
"skillName": "pom100"
},
{
"skillId": "201",
"skillMapId": "2",
"skillName": "pom201"
},
{
"skillId": "115",
"skillMapId": "4",
"skillName": "Pom115"
},
{
"skillId": "156",
"skillMapId": "6",
"skillName": "pom156"
}
]
__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 210


Get Job Parameters
GET /v4/campaigns/jobs/{jobId}/action/{actionId}/pacingparameters
This web service can be used to retrieve runtime parameters of running job, different types of
job like preview, progressive, ECR, Time based etc. will have different set of parameters.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/jobs/{jobId}/action/{actionId}/pacingparameters

Parameters
path
Parameter Required Description Data Type
jobId Yes Job Id of an active job. Integer
actionId Yes Action Id of an active job. Integer
JSON response
Field name Description
pacingType Pacing Type
channelType Channel Type can any one it depending on pacing type.Voice, Email, SMS,
Custom
parameters It contains all the parameters of job depending on campaign type.
Please refer the parameters for pacing type below.

Simple call campaign:


Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest.

Time-based call pacing campaign:


Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest.
minPorts The minimum ports to be used for job, value can be set as 1. If you
change the value at runtime, then the ports reassignment algorithm is
triggered and ports are reassigned.
maxPorts This value determines the maximum number of ports required for that job.
If you change the value at runtime, then the ports reassignment algorithm
is triggered and ports are reassigned.
callPace This is the time interval used for the pacing. Depending on the time
interval unit you specify in the campaign strategy, you see the pacing as
either second, minute, or hour.

Time-based SMS pacing campaign:


Parameter Description

Avaya Proactive Outreach Manager Developer Guide 211


smsPace It is time interval used for the pacing. Depending on the time interval
unit you specify in the campaign strategy, you see the pacing as either
second, minute, or hour

Time-based email pacing campaign:


Parameter Description
emailPace This is the time interval used for the pacing. Depending on the time
interval unit you specify in the campaign strategy, you see the pacing
as either second, minute, or hour

Skill-based campaigns:
Average Speed of Answer (ASA):
Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest
minPorts The minimum ports to be used for job, value can be set as 1. If you
change the value at runtime, then the ports reassignment algorithm is
triggered and ports are reassigned.
maxPorts This value determines the maximum number of ports required for that
job. If you change the value at runtime, then the ports reassignment
algorithm is triggered and ports are reassigned.
sbDesiredASA(in This is the desired Average Speed of Answer used for the pacing.
SECOND)
sbIncrementStep (%) This is the percent of increase or decrease in pace when the current
inbound parameter value does not match desired value.
sbMaxPace This is the Max Pace used for the pacing. Depending on the time interval
unit you specify in the campaign strategy, you see the pacing as either
second, minute, or hour.

Expected Wait Time (EWT):


Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest

minPorts The minimum ports to be used for job, value can be set as 1. If you
change the value at runtime, then the ports reassignment algorithm
is triggered and ports are reassigned.

maxPorts This value determines the maximum number of ports required for
that job. If you change the value at runtime, then the ports
reassignment algorithm is triggered and ports are reassigned.

sbIncrementStep (%) This is the the percent of increase or decrease in pace when the
current inbound parameter value does not match desired value. The
desired value is compared with the current value. If the current value
is less than or equal to the desired value (for EWT, ASA, and Q-L)
the pace is increased. But, if the current value is higher than the
desired value (for EWT, ASA, and Q-L), the pace is decreased.

sbMaxPace This is the Max Pace used for the pacing. Depending on the time
interval unit you specify in the campaign strategy, you see the pacing
as either second, minute, or hour.
sbDesiredEWT (in SECOND) This is the desired Expected Wait Time used for the pacing.

Avaya Proactive Outreach Manager Developer Guide 212


Desired Service Level (DSL):
Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest

minPorts The minimum ports to be used for job, value can be set as 1. If you
change the value at runtime, then the ports reassignment algorithm
is triggered and ports are reassigned.

maxPorts This value determines the maximum number of ports required for
that job. If you change the value at runtime, then the ports
reassignment algorithm is triggered and ports are reassigned.

sbDesiredSL Service level determines the maximum nuisance calls allowed. The
predictive cruise control algorithm will consider this value to ensure
that the desired level is achieved. For example, if the service level is
defined as 99, then out of 100 answered calls, 99 calls should be
served by agents and only 1 call is allowed as nuisance call

sbIncrementStep (%) This is the percent of increase or decrease in pace when the
current inbound parameter value does not match desired value.
The desired value is compared with the current value, and the pace
decreases if the current value is less than or equal to desired value
(for Service Level). But the pace increases if the current value is
higher than the desired value.

sbMaxPace This is the Max Pace used for the pacing. Depending on the time
interval unit you specify in the campaign strategy, you see the pacing
as either second, minute, or hour.

Queue Length:
Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest

minPorts The minimum ports to be used for job, value can be set as 1. If you
change the value at runtime, then the ports reassignment algorithm
is triggered and ports are reassigned.
maxPorts This value determines the maximum number of ports required for
that job. If you change the value at runtime, then the ports
reassignment algorithm is triggered and ports are reassigned.
sbDesiredQLength This is the Queue Length used for the pacing you specify in the
campaign strategy.
sbIncrementStep (%) This is the percent of increase or decrease in pace when the current
inbound parameter value does not match desired value.

sbMaxPace This is the Max Pace used for the pacing. Depending on the time
interval unit you specify in the campaign strategy, you see the
pacing as either second, minute, or hour.

Preview campaign:
Parameter Description

Avaya Proactive Outreach Manager Developer Guide 213


priority Priority of campaign supported values from 0 – 9, 9 being highest

minAgent This value determines the least number of agents required for that
job. The minimum agents value can be set as 0. If you change the
value at runtime, then the agent reassignment algorithm is triggered
and agents are reassigned.

maxAgent This value determines the maximum number of agents required for
that job. If you change the value at runtime, then the agent
reassignment algorithm is triggered and agents are reassigned.

Manual campaign:
Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest
minAgent This value determines the least number of agents required for that
job. The minimum agents value can be set as 0. If you change the
value at runtime, then the agent reassignment algorithm is triggered
and agents are reassigned.
maxAgent This value determines the maximum number of agents required for
that job. If you change the value at runtime, then the agent
reassignment algorithm is triggered and agents are reassigned.

ECR based campaign:


Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest
minAgent This value determines the least number of agents required for that
job. The minimum agents value can be set as 0. If you change the
value at runtime, then the agent reassignment algorithm is
triggered and agents are reassigned.
maxAgent This value determines the maximum number of agents required
for that job. If you change the value at runtime, then the agent
reassignment algorithm is triggered and agents are reassigned.
ecrHandleProb This is the probability of configured Expert Call ratio type for
running job action. For example, If Expert Call ratio type is Agent
Update Time and ECR probability is 30 and 10 agents are in
Wrap-up, then the algorithm launches calls for 10 * 0.3 = 3 agents.
ecrProbType Expert Call Ratio Type used to specify the ratio type as Agent
Work Time or Agent Update Time. For Agent Work Time, the POM
system monitors the time agents take to complete the calls and
update the records, and adjusts the calling pace accordingly. For
Agent Update Time, the POM system monitors the time agents
take to update records and adjusts the calling pace accordingly.

Avaya Proactive Outreach Manager Developer Guide 214


ecrMinHitRate Minimum Hit Rate, depending on the number of calls answered,
the system determines the hit rate and provides that number as
an input to ECR algorithm. This hit rate is guarded by the minimum
hit rate parameter so that the hit rate input to the ECR algorithm is
not lesser than the minimum hit rate.
The minimum and the maximum values of minimum hit rate are 1
and 100. The default value is 30. For example, if the system
calculated hit rate is 30%, and the minimum hit rate is 50%, then
the system considers the input value to the ECR algorithm as
50%. Alternatively, if the system calculated hit rate is 70%, then
the system considers the input value to the ECR algorithm as
70%.
For first 5 minutes after the job starts, the system does not
determine the hit rate and considers the initial call hit rate
parameter value configured in the global configurations.

Cruise Control based campaign:


Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest

minAgent This value determines the least number of agents required for that
job. The minimum agents value can be set as 0. If you change the
value at runtime, then the agent reassignment algorithm is triggered
and agents are reassigned.

maxAgent This value determines the maximum number of agents required for
that job. If you change the value at runtime, then the agent
reassignment algorithm is triggered and agents are reassigned.

desiredSL Service level determines the maximum nuisance calls allowed. The
predictive cruise control algorithm will consider this value to ensure
that the desired level is achieved. For example, if the service level
is defined as 99, then out of 100 answered calls, 99 calls should be
served by agents and only 1 call is allowed as nuisance call

Progressive campaign:
Parameter Description
priority Priority of campaign supported values from 0 – 9, 9 being highest

minAgent This value determines the least number of agents required for that
job. The minimum agents value can be set as 0. If you change the
value at runtime, then the agent reassignment algorithm is triggered
and agents are reassigned.
maxAgent This value determines the maximum number of agents required for
that job. If you change the value at runtime, then the agent
reassignment algorithm is triggered and agents are reassigned.
overDialRatio Over Dial Ratio Used to specify the dialing ratio with respect to the
number of available agents. For example, if you set the over dial
ratio as 1, POM dials 1 call for 1 agent. You can also specify a float
value like 1.2. If you specify the over dial ratio as 1.2, then POM
dials 12 calls for 10 agents. The higher the over dial ratio, the
chances of nuisance calls are also increased depending on the hit
rate. You can specify any number between 1.0 and 100.

Avaya Proactive Outreach Manager Developer Guide 215


Example
The example below will return the job parameters for job ID 8 and action ID 100.
Below example will return job data for jobId 8 and actionId 100.

HTTP: GET
/VP_POM_Service/v4/campaigns/jobs/8/action/100/pacingparameters
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
RESPONSE JSON:
{
"pacingType": "Preview",
"channelType": "Call",
"parameters": {
"minAgent": "1",
"maxAgent": "10",
"priority": "5"
}
}

__________________________________________________________________________________________

Update Job Parameters


POST /v4/campaigns/jobs/{job_id}/action/{action_id}/pacingparameters
This web service can be used to update runtime parameters of running job, different types of
job like preview, progressive, ECR, Time based etc. will have different parameter set, if user
provides a parameter which is not relevant to job type then exception will be thrown. It will
return true in case of success else false with error.
Here parameter list will differ based on campaign type, only those parameters are expected
which admin wants to update at runtime e.g. if admin wants to update priority of simple call
campaign then he needs to provide priority and not the minPorts and maxPorts.
Payload
body: {"parameters": { "param1": "xxx", "param2":"xxx" } }

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/jobs/{job_id}/action/{action_id}/pacingparameters

Parameters
Parameter Required Description Data Type
jobId Yes New Job Id Integer
actionId Yes New action id Integer
Payload:
Avaya Proactive Outreach Manager Developer Guide 216
Payload for this REST depends on type of campaign job.
Simple call campaign:
Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 – 9, 9 Integer
being highest.
Note: Simple SMS and Email campaign has no eligible parameter to modify

Time-based call pacing campaign:


Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 – 9, 9 Integer
being highest.
minPorts No The minimum ports to be used for job, value can be Integer
set as 1. If you change the value at runtime, then the
ports reassignment algorithm is triggered and ports
are reassigned.
maxPorts No This value determines the maximum number of ports Integer
required for that job. If you change the value at
runtime, then the ports reassignment algorithm is
triggered and ports are reassigned.
callPace No Use to change the time interval used for the pacing. Integer
Depending on the time interval unit you specify in the
campaign strategy, you see the pacing as either
second, minute, or hour.

Time-based SMS pacing campaign:


Parameter Required Description Data Type
smsPace No Use to change the time interval used for the pacing. Integer
Depending on the time interval unit you specify in the
campaign strategy, you see the pacing as either
second, minute, or hour

Time-based email pacing campaign:


Parameter Required Description Data Type
emailPace No Use to change the time interval used for the pacing. Integer
Depending on the time interval unit you specify in the
campaign strategy, you see the pacing as either
second, minute, or hour

Skill-based campaigns:
Depending on the four parameters namely, Average Speed of Answer, Expected Wait Time,
Desired Service Level, and Queue Length, you can change different runtime parameters.

Average Speed of Answer (ASA):


Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 – 9, 9 Integer
being highest
minPorts No The minimum ports to be used for job, value can be
set as 1. If you change the value at runtime, then the Integer
ports reassignment algorithm is triggered and ports
are reassigned.
maxPorts No This value determines the maximum number of ports Integer
required for that job. If you change the value at

Avaya Proactive Outreach Manager Developer Guide 217


runtime, then the ports reassignment algorithm is
triggered and ports are reassigned.
sbDesiredASA (in No Use to change the desired Average Speed of Answer Integer
SECOND) used for the pacing.
sbIncrementStep No Use to specify the percent of increase or decrease in Integer
(%) pace when the current inbound parameter value does
not match desired value.
sbMaxPace No Use to change the Max Pace used for the pacing. Integer
Depending on the time interval unit you specify in the
campaign strategy, you see the pacing as either
second, minute, or hour.

Expected Wait Time (EWT):


Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 – 9, Integer
9 being highest
minPorts No The minimum ports to be used for job, value can Integer
be set as 1. If you change the value at runtime,
then the ports reassignment algorithm is
triggered and ports are reassigned.
maxPorts No This value determines the maximum number of Integer
ports required for that job. If you change the value
at runtime, then the ports reassignment algorithm
is triggered and ports are reassigned.
sbIncrementStep No Use to specify the percent of increase or Integer
(%) decrease in pace when the current inbound
parameter value does not match desired value.
The desired value is compared with the current
value. If the current value is less than or equal to
the desired value (for EWT, ASA, and Q-L) the
pace is increased. But, if the current value is
higher than the desired value (for EWT, ASA, and
Q-L), the pace is decreased.
sbMaxPace No Use to change the Max Pace used for the pacing. Integer
Depending on the time interval unit you specify in
the campaign strategy, you see the pacing as
either second, minute, or hour.
sbDesiredEWT (in No Use to change the desired Expected Wait Time Integer
SECOND) used for the pacing.

Desired Service Level (DSL):


Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 – 9, Integer
9 being highest
minPorts No The minimum ports to be used for job, value can Integer
be set as 1. If you change the value at runtime,
then the ports reassignment algorithm is
triggered and ports are reassigned.
maxPorts No This value determines the maximum number of Integer
ports required for that job. If you change the value
at runtime, then the ports reassignment algorithm
is triggered and ports are reassigned.
sbDesiredSL No Service level determines the maximum nuisance Integer
calls allowed. The predictive cruise control
algorithm will consider this value to ensure that
the desired level is achieved. For example, if the

Avaya Proactive Outreach Manager Developer Guide 218


service level is defined as 99, then out of 100
answered calls, 99 calls should be served by
agents and only 1 call is allowed as nuisance call
sbIncrementStep No Use to specify the percent of increase or Integer
(%) decrease in pace when the current inbound
parameter value does not match desired value.
The desired value is compared with the current
value, and the pace decreases if the current
value is less than or equal to desired value (for
Service Level). But the pace increases if the
current value is higher than the desired value.
sbMaxPace No Use to change the Max Pace used for the pacing. Integer
Depending on the time interval unit you specify in
the campaign strategy, you see the pacing as
either second, minute, or hour.

Queue Length:
Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 – 9, Integer
9 being highest
minPorts No The minimum ports to be used for job, value can Integer
be set as 1. If you change the value at runtime,
then the ports reassignment algorithm is
triggered and ports are reassigned.
maxPorts No This value determines the maximum number of Integer
ports required for that job. If you change the value
at runtime, then the ports reassignment algorithm
is triggered and ports are reassigned.
sbDesiredQLength No Use to change the Queue Length used for the Integer
pacing you specify in the campaign strategy.
sbIncrementStep No Use to specify the percent of increase or Integer
(%) decrease in pace when the current inbound
parameter value does not match desired value.
sbMaxPace No Use to change the Max Pace used for the pacing. Integer
Depending on the time interval unit you specify in
the campaign strategy, you see the pacing as
either second, minute, or hour.

Preview campaign:
Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 Integer
– 9, 9 being highest
minAgent No This value determines the least number of Integer
agents required for that job. The minimum
agents value can be set as 0. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.
maxAgent No This value determines the maximum number Integer
of agents required for that job. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.

Manual campaign:

Avaya Proactive Outreach Manager Developer Guide 219


Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 Integer
– 9, 9 being highest
minAgent No This value determines the least number of Integer
agents required for that job. The minimum
agents value can be set as 0. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.
maxAgent No This value determines the maximum number Integer
of agents required for that job. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.

ECR based campaign:


Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 Integer
– 9, 9 being highest
minAgent No This value determines the least number of Integer
agents required for that job. The minimum
agents value can be set as 0. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.
maxAgent No This value determines the maximum number Integer
of agents required for that job. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.
ecrHandleProb No Use to change probability of configured Expert Integer
Call ratio type for running job action. For
example, If Expert Call ratio type is Agent
Update Time and ECR probability is 30 and 10
agents are in Wrap-up, then the algorithm
launches calls for 10 * 0.3 = 3 agents.
ecrProbType No Expert Call Ratio Type used to specify the Integer
ratio type as Agent Work Time or Agent
Update Time. For Agent Work Time, the POM
system monitors the time agents take to
complete the calls and update the records,
and adjusts the calling pace accordingly. For
Agent Update Time, the POM system
monitors the time agents take to update
records and adjusts the calling pace
accordingly.
ecrMinHitRate No Minimum Hit Rate, depending on the number Integer
of calls answered, the system determines the
hit rate and provides that number as an input
to ECR algorithm. This hit rate is guarded by
the minimum hit rate parameter so that the hit
rate input to the ECR algorithm is not lesser
than the minimum hit rate.
The minimum and the maximum values of
minimum hit rate are 1 and 100. The default
value is 30. For example, if the system

Avaya Proactive Outreach Manager Developer Guide 220


calculated hit rate is 30%, and the minimum hit
rate is 50%, then the system considers the
input value to the ECR algorithm as 50%.
Alternatively, if the system calculated hit rate
is 70%, then the system considers the input
value to the ECR algorithm as 70%.
For first 5 minutes after the job starts, the
system does not determine the hit rate and
considers the initial call hit rate parameter
value configured in the global configurations.

Cruise Control based campaign:


Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 Integer
– 9, 9 being highest
minAgent No This value determines the least number of Integer
agents required for that job. The minimum
agents value can be set as 0. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.
maxAgent No This value determines the maximum number Integer
of agents required for that job. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.
desiredSL No Service level determines the maximum Integer
nuisance calls allowed. The predictive cruise
control algorithm will consider this value to
ensure that the desired level is achieved. For
example, if the service level is defined as 99,
then out of 100 answered calls, 99 calls should
be served by agents and only 1 call is allowed
as nuisance call

Progressive campaign:
Parameter Required Description Data Type
priority No Priority of campaign supported values from 0 Integer
– 9, 9 being highest
minAgent No This value determines the least number of Integer
agents required for that job. The minimum
agents value can be set as 0. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.
maxAgent No This value determines the maximum number Integer
of agents required for that job. If you change
the value at runtime, then the agent
reassignment algorithm is triggered and
agents are reassigned.
overDialRatio No Over Dial Ratio Used to specify the dialing Integer
ratio with respect to the number of available
agents. For example, if you set the over dial
ratio as 1, POM dials 1 call for 1 agent. You

Avaya Proactive Outreach Manager Developer Guide 221


can also specify a float value like 1.2. If you
specify the over dial ratio as 1.2, then POM
dials 12 calls for 10 agents. The higher the
over dial ratio, the chances of nuisance calls
are also increased depending on the hit rate.
You can specify any number between 1.0 and
100.

JSON response
Field name Description
status True or False
zoneName Zone Name
errorCode Error code for failure
errorMessage Error message in case of failure
Example
The example provided in this section for changing job parameters at runtime for job 126 and
action 100.
HTTP: POST
/VP_POM_Service/v4/campaigns/jobs/126/action/100/pacingparameters
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"parameters": {
"priority": "7"
}
}

RESPONSE JSON:
[
{
"status": "success",
"zoneName": "Default",
"errorCode": null,
"errorMessage": null
}
]
__________________________________________________________________________________________
Add Holiday
POST /v4/holiday
This API used to add POM Holiday

URL
https://<EP Server IP>/VP_POM_Service/v4/holiday

Avaya Proactive Outreach Manager Developer Guide 222


Parameters
payload
Parameter Required Description Data
Type
holidayName true Name of the holiday string
holidayLevel true Holiday Level integer
0 : Campaign Level Holiday
1 : Country Level Holiday
2 : State Level Holiday
orgList true List of organizations. list
Org List will be ignored for holiday created by
Org Admin if provided. In this case holiday will
be assign to the organization of Org Admin
organizationId true Organization Id integer
campaigns false List of Campaigns. String
Required for Campaign Holiday. Campaign
List will be ignored for State & Country holiday
if provided.
campaignId true Campaign Id integer
country true List of County. Required for Country Holiday. String
County List will be ignored for Campaign &
Country holiday if provided.
countryCode true Country Code integer
states true List of States. Required for State Holiday. String
State List will be ignored for Campaign &
Country holiday if provided.
stateId true State Id integer
restrictionType true Restriction Type integer
0 : Temporary Restriction
1 : Permanent Restriction
restrictionCompletionCode true Completion code for Permanent Restriction integer
Type
startDate true Holiday Start date in yyyy/mm/dd HH:ss String
format
endDate true Holiday End date in yyyy/mm/dd HH:ss format String
recurrent true true : Yearly Recurrence Holiday String
false : Non Recurrence Holiday
enabled true true : Holiday Enabled String
false : Holiday Disabled

JSON response
Field name Description
result true

Example
The example is for adding new holiday.
HTTP: POST /VP_POM_Service/v4/holiday
Header:

Avaya Proactive Outreach Manager Developer Guide 223


Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON FOR SUPERVISOR HOLIDAYS:


Campaign Holiday:
{"holidayName":"Campaign_Holiday","holidayLevel":0,"orgList":[{"organizationId":-
1},{"organizationId":1}],"campaigns":[{"campaignId":1},{"campaignId":3},
{"campaignId":4}],"states":[],"country":[],"restrictionType":1,"restrictionCompletio
nCode":19,"startDate":"2019/08/15 00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true}

Country Holiday:
{"holidayName":"Country_Holiday","holidayLevel":1,"orgList":[{"organizationId":1},{"
organizationId":2}],"campaigns":[],"states":[],"country":[{"countryCode":55},{"count
ryCode":61}],"restrictionType":1,"restrictionCompletionCode":19,"startDate":"2019/08
/15 00:00","endDate":"2019/08/15 23:59","recurrent":false,"enabled":true}

State Holiday:
{"holidayName":"State_Holiday","holidayLevel":2,"orgList":[{"organizationId":1},{"or
ganizationId":2}],"campaigns":[],"states":[{"stateId":1},{"stateId":2},{"stateId":3}
],"country":[],"restrictionType":1,"restrictionCompletionCode":19,"startDate":"2019/
08/15 00:00","endDate":"2019/08/15 23:59","recurrent":false,"enabled":true}

REQUEST JSON FOR ORG ADMIN HOLIDAYS:


Campaign Holiday:
{"holidayName":"Campaign_Holiday","holidayLevel":0,"orgList":[],"campaigns":[{"campa
ignId":1},{"campaignId":3},{"campaignId":4}],"states":[],"country":[],"restrictionTy
pe":1,"restrictionCompletionCode":19,"startDate":"2019/08/15
00:00","endDate":"2019/08/15 23:59","recurrent":false,"enabled":true}

Country Holiday:
{"holidayName":"Country_Holiday","holidayLevel":2,"orgList":[],"campaigns":[],"state
s":[],"country":[{"countryCode":55},{"countryCode":61}],"restrictionType":1,"restric
tionCompletionCode":19,"startDate":"2019/08/15 00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true}

State Holiday:
{"holidayName":"State_Holiday","holidayLevel":2,"orgList":[],"campaigns":[],"states"
:[{"stateId":1},{"stateId":2},{"stateId":3}],"country":[],"restrictionType":1,"restr
ictionCompletionCode":19,"startDate":"2019/08/15 00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true}

RESPONSE JSON:
{"result": true}

__________________________________________________________________________________________
Edit Holiday
POST /v4/holiday/{holidayId}
This API used to edit existing POM Holiday

URL

Avaya Proactive Outreach Manager Developer Guide 224


https://<EP Server IP>/VP_POM_Service/v4/holiday/{holidayId}

Parameters
payload
Parameter Required Description Data
Type
holidayName false Holiday Name is not allowed to edit. It should string
be kept empty or should be provided with
same existing name.
holidayLevel true Holiday Level integer
0 : Campaign Level Holiday
1 : Country Level Holiday
2 : State Level Holiday
orgList true List of organizations. list
Org List will be ignored for holiday created by
Org Admin if provided. In this case holiday will
be assign to the organization of Org Admin
organizationId true Organization Id integer
campaigns false List of Campaigns. String
Required for Campaign Holiday. Campaign
List will be ignored for State & Country holiday
if provided.
campaignId true Campaign Id integer
country true List of County. Required for Country Holiday. String
County List will be ignored for Campaign &
Country holiday if provided.
countryCode true Country Code integer
states true List of States. Required for State Holiday. String
State List will be ignored for Campaign &
Country holiday if provided.
stateId true State Id integer
restrictionType true Restriction Type integer
0 : Temporary Restriction
1 : Permanent Restriction
restrictionCompletionCode true Completion code for Permanent Restriction integer
Type
startDate true Holiday Start date in yyyy/mm/dd HH:ss String
format
endDate true Holiday End date in yyyy/mm/dd HH:ss format String
recurrent true true : Yearly Recurrence Holiday String
false : Non Recurrence Holiday
enabled true true : Holiday Enabled String
false : Holiday Disabled

JSON response
Field name Description
result Success

Example

Avaya Proactive Outreach Manager Developer Guide 225


The example is for editing exiting holiday.
HTTP: POST /VP_POM_Service/v4/holiday/{holidayId}
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON FOR SUPERVISOR HOLIDAYS:


Campaign Holiday:
{"holidayName":"Campaign_Holiday","holidayLevel":0,"orgList":[{"organizationId":-
1},{"organizationId":1}],"campaigns":[{"campaignId":1},{"campaignId":3},
{"campaignId":4}],"states":[],"country":[],"restrictionType":1,"restrictionCompletio
nCode":19,"startDate":"2019/08/15 00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true}

Country Holiday:
{"holidayName":"Country_Holiday","holidayLevel":1,"orgList":[{"organizationId":1},{"
organizationId":2}],"campaigns":[],"states":[],"country":[{"countryCode":55},{"count
ryCode":61}],"restrictionType":1,"restrictionCompletionCode":19,"startDate":"2019/08
/15 00:00","endDate":"2019/08/15 23:59","recurrent":false,"enabled":true}

State Holiday:
{"holidayName":"State_Holiday","holidayLevel":2,"orgList":[{"organizationId":1},{"or
ganizationId":2}],"campaigns":[],"states":[{"stateId":1},{"stateId":2},{"stateId":3}
],"country":[],"restrictionType":1,"restrictionCompletionCode":19,"startDate":"2019/
08/15 00:00","endDate":"2019/08/15 23:59","recurrent":false,"enabled":true}

REQUEST JSON FOR ORG ADMIN HOLIDAYS:


Campaign Holiday:
{"holidayName":"Campaign_Holiday","holidayLevel":0,"orgList":[],"campaigns":[{"campa
ignId":1},{"campaignId":3},{"campaignId":4}],"states":[],"country":[],"restrictionTy
pe":1,"restrictionCompletionCode":19,"startDate":"2019/08/15
00:00","endDate":"2019/08/15 23:59","recurrent":false,"enabled":true}

Country Holiday:
{"holidayName":"Country_Holiday","holidayLevel":2,"orgList":[],"campaigns":[],"state
s":[],"country":[{"countryCode":55},{"countryCode":61}],"restrictionType":1,"restric
tionCompletionCode":19,"startDate":"2019/08/15 00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true}

State Holiday:
{"holidayName":"State_Holiday","holidayLevel":2,"orgList":[],"campaigns":[],"states"
:[{"stateId":1},{"stateId":2},{"stateId":3}],"country":[],"restrictionType":1,"restr
ictionCompletionCode":19,"startDate":"2019/08/15 00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true}

RESPONSE JSON:
{"result": true}
__________________________________________________________________________________________

Get Holiday
GET /v4/holiday/{holidayId}
This API used to fetch holiday details using holiday Id.

Avaya Proactive Outreach Manager Developer Guide 226


URL
https://<EP Server IP>/VP_POM_Service/v4/holiday/{holidayId}

Parameters
payload
Parameter Required Description Data Type
holidayId true Holiday Id integer

JSON response
Parameter Description
holidayId Holiday Id
holidayName Name of the holiday
holidayLevel Holiday Level
0 : Campaign Level Holiday
1 : Country Level Holiday
2 : State Level Holiday
orgList List of organizations.

organizationId Organization Id
campaigns List of assigned Campaigns.

campaignId Campaign Id
country List of assigned Countries.

countryCode Country Code


states List of assigned States.

stateId State Id
restrictionType Restriction Type
0 : Temporary Restriction
1 : Permanent Restriction
restrictionCompletionCode Completion code for Permanent Restriction Type
startDate Holiday Start date in yyyy/mm/dd HH:ss format
endDate Holiday End date in yyyy/mm/dd HH:ss format
recurrent true : Yearly Recurrence Holiday
false : Non Recurrence Holiday
enabled true : Holiday Enabled
false : Holiday Disabled

Example
The example is to fetch holiday definition using holidayId.
HTTP: GET /VP_POM_Service/v4/holiday/1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

Avaya Proactive Outreach Manager Developer Guide 227


RESPONSE JSON:
Campaign Holiday:
{"holidayId":1,"holidayName":"Campaign_Holiday","holidayLevel":0,"holidayType":0,"or
gList":[{"organizationId":1,"name":"Avaya","description":"ORG","lastupdate":15466178
47815},{"organizationId":-1,"name":"Default","description":null,"lastupdate":null}],
"campaigns":[{"campaignId":3,"name":"Avaya_SMS_Campaign"},{"campaignId":1,"name":"SM
SCampaign"},{"campaignId":4,"name":"Avaya_Preview_Campaign"}],"states":[],"country":
[],"restrictionType":1,"restrictionCompletionCode":19,"startDate":"2019/08/15
00:00","endDate":"2019/08/15 23:59","recurrent":false,"enabled":true}

__________________________________________________________________________________________
Get All Holidays
GET v4/holiday/list
This API used to fetch all the holidays.

URL
https://<EP Server
IP>/VP_POM_Service/v4/holiday/list?pageSize=10&pageNumber=1&sortBy=holidayId&sortDir
ection=Desc

Parameters
Query
Parameter Required Description Data
Type
pageSize No Default page size value is 10 contact records if not int
provided in request.
pageNumber No Default page number value is 1 if not provided in int
request.
sortBy No Default holidayId (system holiday ID) is used to sort String
the records fetched in response
sortDirection No By default, asc value is used. Valid values include asc String
and desc .

Payload None

JSON response
Parameter Description
holidayId Holiday Id
holidayName Name of the holiday
holidayLevel Holiday Level
0 : Campaign Level Holiday
1 : Country Level Holiday
2 : State Level Holiday
orgList List of organizations.

organizationId Organization Id
campaigns List of assigned Campaigns.

Avaya Proactive Outreach Manager Developer Guide 228


campaignId Campaign Id
country List of assigned Countries.

countryCode Country Code


states List of assigned States.

stateId State Id
restrictionType Restriction Type
0 : Temporary Restriction
1 : Permanent Restriction
restrictionCompletionCode Completion code for Permanent Restriction Type
startDate Holiday Start date in yyyy/mm/dd HH:ss format
endDate Holiday End date in yyyy/mm/dd HH:ss format
recurrent true : Yearly Recurrence Holiday
false : Non Recurrence Holiday
enabled true : Holiday Enabled
false : Holiday Disabled

Example
The example is to fetch holiday definition using holidayId.
HTTP: POST /VP_POM_Service/v4/holiday/
pageSize=10&pageNumber=1&sortBy=holidayId&sortDirection=Desc
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[]

RESPONSE JSON:
{"holidayList":[{"holidayId":1,"holidayName":"Campaign_Holiday","holidayLevel":0,"ho
lidayType":0,"orgList":[{"organizationId":1,"name":"Avaya","description":"ORG","last
update":1546617847815},{"organizationId":-
1,"name":"Default","description":null,"lastupdate":null}],"campaigns":[{"campaignId"
:1,"name":"SMSCampaign"},{"campaignId":3,"name":"Avaya_SMS_Campaign"},{"campaignId":
4,"name":"Avaya_Preview_Campaign"}],"states":[],"country":[],"restrictionType":1,"re
strictionCompletionCode":19,"startDate":"2019/08/15 00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true},{"holidayId":2,"holidayName":"State_Holiday
","holidayLevel":2,"holidayType":0,"orgList":[{"organizationId":1,"name":"Avaya","de
scription":"ORG","lastupdate":1546617847815},{"organizationId":-
1,"name":"Default","description":null,"lastupdate":null}],"campaigns":[],"states":[{
"stateId":1,"countryCode":1,"name":"AA"},{"stateId":2,"countryCode":1,"name":"AB"},{
"stateId":3,"countryCode":1,"name":"AE"}],"country":[],"restrictionType":1,"restrict
ionCompletionCode":19,"startDate":"2019/08/15 00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true},{"holidayId":3,"holidayName":"Country_Holid
ay","holidayLevel":1,"holidayType":0,"orgList":[{"organizationId":1,"name":"Avaya","
description":"ORG","lastupdate":1546617847815},{"organizationId":-
1,"name":"Default","description":null,"lastupdate":null}],"campaigns":[],"states":[]
,"country":[{"countryCode":61,"name":"Australia"},{"countryCode":55,"name":"Brazil"}

Avaya Proactive Outreach Manager Developer Guide 229


],"restrictionType":1,"restrictionCompletionCode":19,"startDate":"2019/08/15
00:00","endDate":"2019/08/15
23:59","recurrent":false,"enabled":true}],"totalPage":1}
__________________________________________________________________________________________
Delete Holiday
DELETE /v4/holiday/{holidayId}
This API used to delete using holiday Id.

URL
https://<EP Server IP>/VP_POM_Service/v4/holiday/{holidayId}

Parameters
payload
Parameter Required Description Data Type
holidayId true Holiday Id integer

JSON response
Field name Description
result true

Example
The example is to delete holiday using holidayId.
HTTP: DELETE /VP_POM_Service/v4/holiday/{holidayId}
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[]
RESPONSE JSON:
{
"result": true
}
__________________________________________________________________________________________
Holiday Association to Campaign
POST v4/campaigns/holidays/assign/{campaignId}
This API used to fetch holiday details assigned to a campaign and/or to assign them to a
campaign using campaign id.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/holidays/assign/{campaignId}

Parameters
Avaya Proactive Outreach Manager Developer Guide 230
payload
Parameter Required Description Data Type
holidayId List true List of holiday to be associate to the campaign Integer list

JSON response
Field name Description
AlreadyAssignedHolidayIdList List of already assigned holiday Id to the campaign from
provided holiday Id list in payload
SuccessfullyAssignedHolidayIdList List of successfully assigned holiday Id to the campaign
from provided holiday Id list in payload
InvalidHolidayIdList List of invalid holiday Id to the campaign from provided
holiday Id list in payload

Example
The example is to see if holiday Ids 1, 2, 3, 6 ,9, 10 are assigned to specified campaign ID
and/or to assign them to it.
HTTP: POST v4/campaigns/holidays/assign/{campaignId}
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[1,2,3,6,9,10]
RESPONSE JSON:
{"AlreadyAssignedHolidayIdList":[1,2],
"SuccessfullyAssignedHolidayIdList":[6,10],
"InvalidHolidayIdList": [3,9]}

__________________________________________________________________________________________
Remove Holiday Association from Campaign
POST v4/campaigns/holidays/remove/{campaignId}
This API used to remove holiday IDs assigned to a campaign using campaign id.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/holidays/remove/{campaignId}

Parameters
payload
Parameter Required Description Data Type
holidayId List true List of holidays to be removed which are associated to Integer list
the campaign.

JSON response

Avaya Proactive Outreach Manager Developer Guide 231


Field name Description
AlreadyUnAssignedHolidayIdList List of already unassigned holiday Id from provided
holiday Id list in payload
SuccessfullyUnAssignedHolidayIdList List of successfully unassigned holiday Id from the
campaign from provided holiday Id list in payload.
InvalidHolidayIdList List of invalid holiday Id to the campaign from provided
holiday Id list in payload

Example
The example is to remove holiday definition using holidayId.
HTTP: POST v4/campaigns/holidays/remove/{campaignId}
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[1,3,5,6,9,10]

RESPONSE JSON:
{"AlreadyUnAssignedHolidayIdList": [5],"SuccessfullyUnAssignedHolidayIdList":
[1,6,10],"InvalidHolidayIdList": [3,9]}

__________________________________________________________________________________________
Set IgnoreAll Holiday to True/False for Campaign
POST
v4/campaigns/holidays/ignoreHolidays/{campaign_id}?ignoreAllHolidays={true/false}

TheisAPI used to set IgnoreAll Holiday to true/false for given campaign.

URL
https://<VPMS_IP>/VP_POM_Service/v4/campaigns/holidays/ignoreHolidays/{campaign_id}?
ignoreAllHolidays=true

Parameters
Query
Parameter Required Description Data
Type
ignoreAllHolidays Yes True :Ignore All Holidays assigned to this campaign. boolean
False :Don’t Ignore Holidays assigned to this campaign.

JSON response

Avaya Proactive Outreach Manager Developer Guide 232


Field name Description
CampaignId Campaign Id
campaign_name Name of the campaign
IgnoreAllHolidays IgnoreAllHoliday flag

Example
The example is to set IgnoreAll Holiday to true for given campaign..
HTTP: POST v4/campaigns/holidays/ignoreHolidays/{campaign_id}?ignoreAllHolidays=true
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[]
RESPONSE JSON:
{"campaign_name": 1, "IgnoreAllHolidays": true, "CampaignId": "SMSCampaign"}

__________________________________________________________________________________________
Get Agent Statistics View for Active Job
GET /VP_POM_Service/v4/campaigns/job/{jobId}/agentJobStatistics

The API provides Agents’ job handling info as well as pacing parameters for the active job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/job/{jobId}/agentJobStatistics?zoneI
d={zoneId}&actionId={actionId}

Parameters
Query
Parameter Required Description Data Type
zoneId False The zoneId Int
actionId False The actionId Int

Path
Parameter Required Description Data Type
jobId true The job ID of campaign int

JSON response
Field Name Description
timedPreview Time used in preview
canCancel Can agent cancel?

Avaya Proactive Outreach Manager Developer Guide 233


minAgent Min agents required
maxAgent Max agents required
acwTime Acw time
numOfACWExtns Number of acw extensions
defaultCompCode Default completion code
Pritority Priority
pacingType Pacing type
totalAgentCount Total Agent Count
totalTalkTime Total talking time
avgTalkTime Avg talking time
totalAcwTime Total acw time
avgAcwTime Avg acw time
totalAcwCount Total acw count
totalInJobIdleTime Total job idle time
totalInJobIdleCount Toal job idle count
avgIdleTime Avg idle time
totalInJobBreakTime Total job break time
totalInJobBreakCount Total job break count
avgBreakTime Avg break time for agent
totalHoldTime Total on hold time
totalHoldCount Total hold count
avgHoldTime Avg hold count
totalTransferCount Total transfer count
totalTransferRecvCount Total transfers received count
totalPreviewTime Total preview time
totalPreviewAcceptCount Total preview accept count
totalPreviewRejectCount Total preview reject count
avgPreviewTime Avg preview time
totalAbandonedHoldCount Total abandoned hold count
totalHoldInConfCount Total holds in conference count
totalHoldInConfTime Total hold in conference time
callCount Call count
percIdleTime Perc idle time
percBreakTime Perc break time
agentUtilization The percentage of time the agent is busy with
respect to the total time the agent spends for
current zone of the job action.
achievedServiceLevel The achieved service level for parameters of the
job action.
attemptChannelCount Each channelType within the handler as a key
and the count of its attempt as value
completionCodeMap Completion codes associated with the job
Skill Skill associated with campaign strategy of the
job

Example
The example provided in this section is based on job with ID 1 and empty contact List.
Response will have statistic for all the contact List attached to this job.

Avaya Proactive Outreach Manager Developer Guide 234


HTTP: GET /VP_POM_Service/v4/campaigns/job/1/agentJobStatistics?zoneId=-1&actionId=100
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:

[]

RESPONSE JSON:

"statusCode": 200,

"data": {

"handlerName": null,

"handlerState": "initial",

"channelType": null,

"pacingParameter": {

"pacingType": "Preview",

"timedPreview": false,

"canCancel": false,

"minAgent": 1,

"maxAgent": 10,

"acwTime": 60,

"numOfACWExtns": 0,

"defaultCompCode": "agentapi_cc",

"priority": 5

},

"agentJobHandlerInfo": {

"totalAgentCount": 1,

"totalTalkTime": 5,

"avgTalkTime": 5.0,

"totalAcwTime": 4,

"avgAcwTime": 4.0,

"totalAcwCount": 1,

"totalInJobIdleTime": 1,

"totalInJobIdleCount": 2,

Avaya Proactive Outreach Manager Developer Guide 235


"avgIdleTime": 0.5,

"totalInJobBreakTime": 0,

"totalInJobBreakCount": 0,

"avgBreakTime": 0.0,

"totalHoldTime": 0,

"totalHoldCount": 0,

"avgHoldTime": 0.0,

"totalTransferCount": 0,

"totalTransferRecvCount": 0,

"totalPreviewTime": 4,

"totalPreviewAcceptCount": 1,

"totalPreviewRejectCount": 0,

"avgPreviewTime": 4.0,

"totalAbandonedHoldCount": 0,

"totalHoldInConfCount": 0,

"totalHoldInConfTime": 0,

"callCount": 1,

"percIdleTime": 5.993048064245475,

"percBreakTime": 0.0,

"agentUtilization": 91.44,

"achievedServiceLevel": 100.0

},

"zoneId": -1,

"actionId": 100,

"attemptChannelCount": {},

"completionCodeMap": {},

"skill": "pom100"

Get Stats for Job and attached Contact Lists


POST /v4/campaigns/cl/{job_id}
The API provides real time job statistic at contact list level for active job Id specified in the
request.

URL
Avaya Proactive Outreach Manager Developer Guide 236
https://<EP Server IP>/VP_POM_Service/v4/campaigns/cl/{job_id}

Parameters
path
Parameter Required Description Data Type
job_id true The job ID of campaign int

Payload

Parameter Required Description Data Type


ContactListIds false List of Contact List Ids attached to job string

JSON response
jobLevelInfo

Field name Description


jobId Job Id
totalFilteredContactCount Total Number of contacts eligible for dialing in the job.
totalUnattemptedContactCount Total number of contacts yet to dial in the job.
totalProcessedContactCount Total number of contacts which are processed &
marked as done in the job.
totalConnectCount Total number of contacts connected in the job.
Connected contacts are the done contact with one of
the System Completion Code from Call Answered, Call
Answered (Human),Email Delivered or SMS Delivered.
totalScheduledCallbackCount Total number of contacts are scheduled for callback in
the job.
totalCompletedCallbackCount Total number of callback contacts completed in the job
totalPendingRetryCount Total number of contacts which are pending for retry in
the job.
totalTempRestrictedCount Total number of contacts which are temporary
restricted in the job.
percentageAttemptedRecord Percentage of attempted contacts out of total filtered contacts in
the job.
(attemptCount/ totalFilteredContactCount) *100
Attempt count is the attempts to make contact, it contains retry,
redial,callback, switching between handler etc.
percentageUniqueAttemptedRecord Percentage of contacts attempted uniquely out of total filtered
contacts in the job.
(uniqueAttemptCount/totalFilteredContactCount) *100
percentageComplete Percentage of contacts completed out of total filtered contacts in
the job.
(totalProcessedContactCount/totalFilteredContactCount)*100
percentageConnect Percentage of contacts completed out of total filtered contacts in
the job.
(totalConnectCount/totalFilteredContactCount)*100
percentageRpc Percentage of contacts marked as done with rpc completion code
out of total contacts attempt in the job.
(rpcCount/attemptCount)*100
percentageSuccess Percentage of contacts marked as done with success completion
Code out of total contacts attempt in the job.
(successCount/attemptCount)*100

Avaya Proactive Outreach Manager Developer Guide 237


percentageClosure Percentage of contacts marked as done with closure completion
Code out of total contacts attempt in the job.
(closureCount/attemptCount)*100

contactListLevelInfo

Field name Description


contactListId The Contact List Id.
contactListName The Contact List Name.
filteredContactCount Number of contacts eligible for dialing in the given contact list.
unattemptedContactCount Number of contacts yet to dial in the given contact list.
processedContactCount Number of contacts which are processed & marked as done in the
given contact list.
connectCount Number of contacts connected in the given contact list.
Connected contacts are the done contact with one of the System
Completion Code from Call Answered, Call Answered (Human),
Email Delivered or SMS Delivered.
scheduledCallbackCount Number of contacts are scheduled for callback in the given contact
list.
completedCallbackCount Number of callback contacts completed in the given contact list.
pendingRetryCount Number of contacts which are pending for retry in the given contact
list.
tempRestrictedCount Number of contacts which are temporary restricted in the given
contact list.
numberOfAttemptedRecord Number of contacts attempted in the given contact list.
numberOfUniqueAttemptedRecord Number of contacts uniquely attempted in the given contact list.
percentageAttemptedRecord Percentage of attempted contacts out of total filtered
contacts in the given contact list.
(numberOfAttemptedRecord/filteredContactCount)*100
percentageUniqueAttemptedRecord Percentage of contacts attempted uniquely out of total
filtered contacts in the given contact list
(numberOfUniqueAttemptedRecord/filteredContactCount)*100
percentageComplete Percentage of contacts completed out of total filtered contacts in
the given contact list.
(processedContactCount/filteredContactCount)*100

Example 1
The example provided in this section is based on job with ID 36 and empty contact List.
Response will have statistic for all the contact List attached to this job.
HTTP: POST /VP_POM_Service/v4/campaigns/cl/36
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:

[]

Avaya Proactive Outreach Manager Developer Guide 238


RESPONSE JSON:

"jobId": 36,

"jobLevelInfo": {

"totalFilteredContactCount": 6,

"totalUnattemptedContactCount": 3,

"totalProcessedContactCount": 3,

"totalConnectCount": 3,

"totalScheduledCallbackCount": 0,

"totalCompletedCallbackCount": 0,

"totalPendingRetryCount": 0,

"totalTempRestrictedCount": 3,

"percentageAttemptedRecord": 0,

"percentageUniqueAttemptedRecord": 0,

"percentageComplete": 50,

"percentageConnect": 50,

"percentageRpc": 100,

"percentageSuccess": 33.33,

"percentageClosure": 40

},

"contactListLevelInfo": {

"1": [

"contactListName": "MyContacts",

"contactListId": 1,

"filteredContactCount": 2,

"unattemptedContactCount": 1,

"processedContactCount": 1,

"connectCount": 1,

"scheduledCallbackCount": 0,

"completedCallbackCount": 0,

"pendingRetryCount": 0,

"tempRestrictedCount": 1,

"percentageAttemptedRecord": 50,

Avaya Proactive Outreach Manager Developer Guide 239


"percentageUniqueAttemptedRecord": 50,

"percentageComplete": 50,

"numberOfAttemptedRecord": 1,

"numberOfUniqueAttemptedRecord": 1

],

"4": [

"contactListName": "PreviewCampaignCL",

"contactListId": 4,

"filteredContactCount": 4,

"unattemptedContactCount": 2,

"processedContactCount": 2,

"connectCount": 2,

"scheduledCallbackCount": 0,

"completedCallbackCount": 0,

"pendingRetryCount": 0,

"tempRestrictedCount": 2,

"percentageAttemptedRecord": 50,

"percentageUniqueAttemptedRecord": 50,

"percentageComplete": 50,

"numberOfAttemptedRecord": 2,

"numberOfUniqueAttemptedRecord": 2

Example 2
The example provided in this section is based on job with ID 36 and List of Contact List ids.
Response will have job level statistic and contact list level statistic only for Contact List Id
provided in request.
HTTP: POST /VP_POM_Service/v4/campaigns/cl/{job_id}
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json

Avaya Proactive Outreach Manager Developer Guide 240


X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:

[4]

RESPONSE JSON:

"jobId": 36,

"jobLevelInfo": {

"totalFilteredContactCount": 6,

"totalUnattemptedContactCount": 3,

"totalProcessedContactCount": 3,

"totalConnectCount": 3,

"totalScheduledCallbackCount": 0,

"totalCompletedCallbackCount": 0,

"totalPendingRetryCount": 0,

"totalTempRestrictedCount": 3,

"percentageAttemptedRecord": 0,

"percentageUniqueAttemptedRecord": 0,

"percentageComplete": 50,

"percentageConnect": 50,

"percentageRpc": 100,

"percentageSuccess": 33.33,

"percentageClosure": 40

},

"contactListLevelInfo": {

"4": [

"contactListName": "PreviewCampaignCL",

"contactListId": 4,

"filteredContactCount": 4,

"unattemptedContactCount": 2,

"processedContactCount": 2,

"connectCount": 2,

Avaya Proactive Outreach Manager Developer Guide 241


"scheduledCallbackCount": 0,

"completedCallbackCount": 0,

"pendingRetryCount": 0,

"tempRestrictedCount": 2,

"percentageAttemptedRecord": 50,

"percentageUniqueAttemptedRecord": 50,

"percentageComplete": 50,

"numberOfAttemptedRecord": 2,

"numberOfUniqueAttemptedRecord": 2

Get Completion Code details for the Job and attached


Contact lists

POST /v4/campaigns/cl/{job_id}/completioncode

The API provides Completion Code Rpc, Success, Closure statistic at contact list level for
active job Id specified in the request.

URL
https://<EP Server IP>/VP_POM_Service/ v4 /campaigns/cl/{job_id}/completioncode

Parameters
path
Parameter Required Description Data Type
job_id true The job ID of campaign int
payload
Parameter Required Description Data Type
ContactListIds false List of Contact List Ids attached to job string

JSON response
Field name Description
status Success/Failure
jobLevelInfo Job Level Completion Code statistic
jobId The job ID of campaign
contactListLevelInfo Contact List Level Completion Code statistic

Avaya Proactive Outreach Manager Developer Guide 242


Field name Description
ContactList_ID The Contact List Id from which agent has dialed the contacts. There
can be multiple nodes representing multiple Contact Lists.
id The ID associated with the Completion Code used by the agent
while wrapping up the contact.
name Name of the Completion Code
rpc RPC status of the Completion Code
success Success status of the Completion Code.
closure Clouser status of the Completion Code
Count Number of times this Completion Code has been used.

Example 1
The example provided in this section is based on job with ID 41 and empty contact List.
Response will have job level completion code statistic and contact list level completion code
statistic for all the contact List attached to this job & which are processed.
HTTP: POST /v4/campaigns/cl/41/completioncode
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[]

RESPONSE JSON:
{

"jobId": 41,

"jobLevelInfo": {

"69": {

"id": 69,

"name": "Preview_CC",

"rpc": true,

"success": false,

"closure": false,

"count": 3

},

"75": {

"id": 75,

"name": "Retry_CC",

"rpc": true,

"success": true,

Avaya Proactive Outreach Manager Developer Guide 243


"closure": true,

"count": 2

},

"contactListLevelInfo": {

"1": [

"id": 69,

"name": "Preview_CC",

"rpc": true,

"success": false,

"closure": false,

"count": 2

],

"4": [

"id": 75,

"name": "Retry_CC",

"rpc": true,

"success": true,

"closure": true,

"count": 2

},

"id": 69,

"name": "Preview_CC",

"rpc": true,

"success": false,

"closure": false,

"count": 1

Avaya Proactive Outreach Manager Developer Guide 244


}

Example 2
The example provided in this section is based on job with ID 41 and List of Contact List ID 4.
Response will have job level completion code statistic & contact List level completion code
statistic only for Contact List Id provided in request.
HTTP: POST /v4/campaigns/cl/41/completioncode
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[4]

RESPONSE JSON:
{

"jobId": 41,

"jobLevelInfo": {

"69": {

"id": 69,

"name": "Preview_CC",

"rpc": true,

"success": false,

"closure": false,

"count": 3

},

"75": {

"id": 75,

"name": "Retry_CC",

"rpc": true,

"success": true,

"closure": true,

"count": 2

},

"contactListLevelInfo": {

"4": [

Avaya Proactive Outreach Manager Developer Guide 245


{

"id": 75,

"name": "Retry_CC",

"rpc": true,

"success": true,

"closure": true,

"count": 2

},

"id": 69,

"name": "Preview_CC",

"rpc": true,

"success": false,

"closure": false,

"count": 1

Get the RPC-Success-Closure counts for the Job and


attached Contact lists
POST /v4/campaigns/cl/{job_id}/rpcsuccessclosure
The API provides Completion Code Rpc, Success, Closure statistic at contact list level for
active job Id specified in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/cl/{job_id}/rpcsuccessclosure

Parameters
path
Parameter Required Description Data Type
job_id true The job ID of campaign int
Payload
Parameter Required Description Data Type
ContactListIds false List of Contact List Ids attached to job string

JSON response

Avaya Proactive Outreach Manager Developer Guide 246


Field name Description
contactListId The contact list Id.
rpcCount Total Rpc Count mark for contact List
successCount Total Success Count mark for contact List
closureCount Total Closure Count mark for contact List

Example 1
The example provided in this section is based on job with ID 41 and empty contact List.
Response will have job level rpc, success, closure statistic and contact list level rpc, success ,
closure statistic for all the contact List attached to this job & which are processed.
HTTP: POST /v4/campaigns/cl/41/rpcsuccessclosure
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[]

RESPONSE JSON:
{

"jobId": 41,

"jobLevelInfo": {

"rpcCount": 6,

"successCount": 2,

"closureCount": 5

},

"contactListLevelInfo": [

"contactListId": 1,

"rpcCount": 2,

"successCount": 0,

"closureCount": 0

},

"contactListId": 4,

"rpcCount": 3,

"successCount": 2,

Avaya Proactive Outreach Manager Developer Guide 247


"closureCount": 2

},

"contactListId": 7,

"rpcCount": 1,

"successCount": 0,

"closureCount": 3

Example 2
The example provided in this section is based on job with ID 41 and List of Contact List ids 1
and 7. Response will have job level rpc, success , closure statistic & contact List level rpc,
success , closure statistic for Contact List Id provided in request.
HTTP: POST /v4/campaigns/cl/41/rpcsuccessclosure
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
[1,7]

RESPONSE JSON:
{

"jobId": 41,

"jobLevelInfo": {

"rpcCount": 6,

"successCount": 2,

"closureCount": 5

},

"contactListLevelInfo": [

"contactListId": 1,

"rpcCount": 2,

"successCount": 0,

Avaya Proactive Outreach Manager Developer Guide 248


"closureCount": 0

},

"contactListId": 7,

"rpcCount": 1,

"successCount": 0,

"closureCount": 3

Get the nuisance call info for the Job and attached Contact
lists
This API is to fetch nuisance call info for the Job and attached Contact lists
POST /v4/campaigns/jobs/{jobId}/nuisanceinfo

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/jobs/{jobId}/nuisanceinfo

Parameters
path
Parameter Required Description Data Type
Job_id true The job id int

JSON response
Field name Description
nuisanceRateTillNow The Nuisance call rate for job duration.
nuisanceRateToday The percentage of Nuisance calls for the calender day.
nuisanceCalls Total nuisance call count
falseNegativeCounts Specifies the false positives and is used in the nuisance rate
calculation.
cLNuisanceInfo Label for ContactList details
CLId Contact List Id
- totalAnsweredCalls Total answered calls for the contact list.

- totalNuisanceCalls Total nuisance calls for the contact list.

- falseNegativeCount False negative count for the contact list.

Example

Avaya Proactive Outreach Manager Developer Guide 249


The example provided in this section is to get nuisance call info for the Job and attached
Contact lists with job_id as 123.
POST /VP_POM_Service/v4/campaigns/jobs/123/nuisanceinfo HTTP/1.1
Host: 148.147.173.22
Content-Type: application/json
X-Requested-With: omkar
Authorization: Basic YWRtaW46cG9ydGFsMTIz
User-Agent: PostmanRuntime/7.20.1
Accept: */*
Cache-Control: no-cache

REQUEST JSON:

[]

RESPONSE JSON:

"nuisanceRateTillNow": 50.0,

"nuisanceRateToday": 50.0,

"nuisanceCalls": 3,

"falseNegativeCounts": 0,

"cLNuisanceInfo": {

"3": {

"totalAnsweredCalls": 2,

"totalNuisanceCalls": 1,

"falseNegativeCount": 0

},

"4": {

"totalAnsweredCalls": 4,

"totalNuisanceCalls": 2,

"falseNegativeCount": 0

Get the completion code details for the Agent at Contact


List level
GET /v4/agents/cl/{agent_id}/completioncode

This API fetches the Completion Code details for the provided Agent_Id on ContactList level.

Avaya Proactive Outreach Manager Developer Guide 250


URL
https://<EP Server
IP>/VP_POM_Service/v4/agents/cl/{agent_id}/completioncode

Parameters
path
Parameter Required Description Data Type
agent_id true The agent id int
payload

JSON response
Field name Description
currentJobCSInfo Contact List level completion code details for the job to which
agent is currently attached.

Note: The current counts get reset when the agent gets
detached from the job.

allJobCSInfo Contact List information for All the Job agent belonged to in this
session.
ContactList_Name Name of the Contact List from which agent has dialed the
contacts. There can be multiple nodes representing multiple
Contact Lists.
CompletionCode_Id The ID associated with the Completion Code used by the agent
while wrapping up the contact.
id CompletionCode_Id
name Name of the Completion Code
rpc RPC status of the Completion Code
success Success status of the Completion Code.
closure Clouser status of the Completion Code
Count Number of times this Completion Code has been used.

Example
The example provided in this section is to get Completion Code details for the provided
Agent_Id as 65005 on ContactList level.
GET /VP_POM_Service/v4/agents/cl/65005/completioncode HTTP/1.1
Host: 148.147.173.22
Content-Type: application/json
X-Requested-With: rest
Authorization: Basic YWRtaW46cG9ydGFsMTIz
User-Agent: PostmanRuntime/7.20.1
Accept: */*
Cache-Control: no-cache

Response:
{

Avaya Proactive Outreach Manager Developer Guide 251


"currentJobCSInfo": {

"JavaSDKList01": {

"74": {

"id": 74,

"name": "agentapi_cc",

"rpc": false,

"success": false,

"closure": false,

"count": 1

},

"rulelistcall01": {

"74": {

"id": 74,

"name": "agentapi_cc",

"rpc": false,

"success": false,

"closure": false,

"count": 3

},

"allJobCSInfo": {

"JavaSDKList01": {

"74": {

"id": 74,

"name": "agentapi_cc",

"rpc": false,

"success": false,

"closure": false,

"count": 1

},

"rulelistcall01": {

Avaya Proactive Outreach Manager Developer Guide 252


"74": {

"id": 74,

"name": "agentapi_cc",

"rpc": false,

"success": false,

"closure": false,

"count": 3

Get the RPC-Success-Closure counts for the Agent at


Contact List level
GET /v4/agents/cl/{agent_id}/rpcsuccessclosure

This API fetches RPC-Success-Clouser counts at Completion Code level for the provided
Agent_Id per ContactList level.
URL
https://<EP Server IP>/VP_POM_Service/v4/agents/cl/{agent_id}/rpcsuccessclosure

Parameters
path
Parameter Required Description Data Type
agent_id true The agent id int
payload

JSON response
Field name Description
currentJobCSInfo Contact List level RPC-Success-Closure counts for the job to which
agent is currently attached.

Note: The current counts get reset when the agent gets detached
from the job.
allJobCSInfo Contact List information for All the Job agent belonged to in this
session.
ContactList_Name Name of the Contact List from which agent has dialed the contacts.
There can be multiple nodes representing multiple Contact
Lists.
Right party connect RPC status of the Completion Code

success_count Success status of the Completion Code.


closure_count Clouser status of the Completion Code

Avaya Proactive Outreach Manager Developer Guide 253


Example
The example provided in this section is to fetch RPC-Success-Clouser counts at Completion
Code level for the provided Agent_Id as 65005 per ContactList level.
Request:
GET /VP_POM_Service/v4/agents/cl/65005/rpcsuccessclosure HTTP/1.1
Host: 148.147.173.22
Content-Type: application/json
X-Requested-With: rest
Authorization: Basic YWRtaW46cG9ydGFsMTIz
User-Agent: PostmanRuntime/7.20.1
Accept: */*
Cache-Control: no-cache

Response:
{

"currentJobCSInfo": {

"JavaSDKList01": {

"Right party connect": 1,

"success": 0,

"closure": 0

},

"rulelistcall01": {

"Right party connect": 0,

"success": 2,

"closure": 1

},

"allJobCSInfo": {

"JavaSDKList01": {

"Right party connect": 2,

"success": 0,

"closure": 0

},

"rulelistcall01": {

"Right party connect": 1,

Avaya Proactive Outreach Manager Developer Guide 254


"success": 2,

"closure": 1

__________________________________________________________________________________________
Add Filter Template
POST /v4/filtertemplates
This API adds a new filter template

URL
https://<EP Server IP>/VP_POM_Service/v4/filtertemplates

Parameters
Payload
Parameter Required Data Type
filterName Yes String
filterTemplateType Yes String
template Yes String
JSON response
Field name Description
filterTemplateId Returns the ID of created filter template
Example
The example provided in this section is based on adding a filter template.

HTTP: POST /VP_POM_Service/v4/filtertemplates HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"filterName": "devDoc2",
"filterTemplateType": "CAMPAIGN",
"template":
"{\"filterConditions\":{\"group\":{\"condition\":\"AND\",\"rules\":[{\"operator\":\"
=\",\"attributeName\":\"firstName\",\"attributeId\":4,\"type\":\"STRING\",\"data\":\
"abc\",\"dateFormat\":\"\"},{\"attributeId\":0,\"group\":{\"condition\":\"AND\",\"ru
les\":[{\"operator\":\"!=\",\"attributeName\":\"lastName\",\"attributeId\":5,\"type\
":\"STRING\",\"data\":\"def\",\"dateFormat\":\"\"}]}}]}},\"sortConditions\":[{\"id\"
:4,\"name\":\"firstName\",\"order\":\"asc\"}],\"noOfRecords\":\"100\"}"
}

RESPONSE JSON:

Avaya Proactive Outreach Manager Developer Guide 255


{
"filterTemplateId": 21
}

Note:
For filterTemplateType, allowed values are: CAMPAIGN and SPLITTER.
__________________________________________________________________________________________
Edit Filter Template
POST /v4/filtertemplates/{filter_template_id}
The API edits existing filter template

URL
https://<EP Server IP>/VP_POM_Service/v4/filtertemplates/{filter_template_id}
Parameters
Path
Parameter Required Description Data Type
filter_template_id Yes The ID of filter template to edit int

Payload
Parameter Required Data Type
filterName Yes String
filterTemplateType Yes String
template Yes String
JSON response
Field name Description
result Returns true if filter template is edited successfully.
Example
The example provided in this section edits specified filter template with ID 20.

HTTP: POST /VP_POM_Service/v4/filtertemplates/20 HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"filterName": "devDoc2",
"filterTemplateType": "CAMPAIGN",
"template":
"{\"filterConditions\":{\"group\":{\"condition\":\"AND\",\"rules\":[{\"operator\":\"
=\",\"attributeName\":\"firstName\",\"attributeId\":4,\"type\":\"STRING\",\"data\":\
"abc\",\"dateFormat\":\"\"},{\"attributeId\":0,\"group\":{\"condition\":\"AND\",\"ru
les\":[{\"operator\":\"!=\",\"attributeName\":\"lastName\",\"attributeId\":5,\"type\
":\"STRING\",\"data\":\"def\",\"dateFormat\":\"\"}]}}]}},\"sortConditions\":[{\"id\"
:4,\"name\":\"firstName\",\"order\":\"asc\"}],\"noOfRecords\":\"200\"}"
}

Avaya Proactive Outreach Manager Developer Guide 256


RESPONSE JSON:
{
"result": true
}

__________________________________________________________________________________________
Get Filter Template Details
GET /v4/filtertemplates/{filter_template_id}
The API returns the details of filter template with given ID

URL
https://<EP Server IP>/VP_POM_Service/v4/filtertemplates/{filter_template_id}

Parameters
Path
Parameter Required Description Data Type
filter_template_id Yes The ID of filter template to get int
details

JSON response
Field name Description
filterName Name of filter template
filterTemplateType Type of filter template
template JSON of filter template with all the filter conditions, sort conditions
and top records count
Example
The example provided in this section gives the details of filter template with ID 21.

HTTP: GET /VP_POM_Service/v4/filtertemplates/21 HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"filterName": "devDoc2",
"filterTemplateType": "CAMPAIGN",
"template":
"{\"filterConditions\":{\"group\":{\"condition\":\"AND\",\"rules\":[{\"operator\":\"
=\",\"attributeName\":\"firstName\",\"attributeId\":4,\"type\":\"STRING\",\"data\":\
"abc\",\"dateFormat\":\"\"},{\"attributeId\":0,\"group\":{\"condition\":\"AND\",\"ru
les\":[{\"operator\":\"!=\",\"attributeName\":\"lastName\",\"attributeId\":5,\"type\
":\"STRING\",\"data\":\"def\",\"dateFormat\":\"\"}]}}]}},\"sortConditions\":[{\"id\"
:4,\"name\":\"firstName\",\"order\":\"asc\"}],\"noOfRecords\":\"200\"}"
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 257


Get Filter Template List
GET /v4/filtertemplates/lists
The API returns the filter template list

URL
https://<EP Server
IP>/VP_POM_Service/v4/filtertemplates/lists?pageSize={page_size}&pageNumber={page_nu
mber}&sortBy={sort_by}&sortDirection={sort_direction}&searchBy={search_by}&searchOpe
rator={search_operator}&searchValue={search_value}

Parameters
Path
Parameter Required Description Data Type
pageSize No Number of records to be int
fetched per batch. Default
value is 10.
pageNumber No The page number for which int
recrods will be fetched. Default
value is 1.
sortBy No Default name (filter template String
name) is used to sort the
records fetched in response.
Valid values include name and
type.
sortDirection No By default, asc value is used. String
Valid values include asc and
desc .
searchBy No Valid values include name and String
type
searchOperator No Valid values in includes =, String
!=,in, like, notlike according to
data type of the provided
attribute.If search attribute is
type then valid values are = and
!=
searchValue No Any valid value according to String
selected search attribute. If
search attribute is type then
valid values are campaign and
splitter.

JSON response
Field name Description
filterTemplateSummaryList List of all the filter templates fetched by the given
pageSize,pageNumber and search sort conditions. It consists
of filterTemplateId, filterTemplateName and filterTemplateType
for each of the filter templates.
totalPages Total number of pages after applying given pageSize

Avaya Proactive Outreach Manager Developer Guide 258


Example
The example provided in this section returns all the filter templates for pageNumber = 1 and
pageSize = 10
HTTP: GET
/VP_POM_Service/v4/filtertemplates/lists?pageSize=10&pageNumber=1
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"filterTemplateSummaryList": [
{
"filterTemplateId": 160,
"filterTemplateName": "call_pacing_mixhandler_04",
"filterTemplateType": "CAMPAIGN"
},
{
"filterTemplateId": 107,
"filterTemplateName": "CampaignOrglstTemplate",
"filterTemplateType": "CAMPAIGN"
},
{
"filterTemplateId": 102,
"filterTemplateName": "CampaignOrgTemplate",
"filterTemplateType": "CAMPAIGN"
},
{
"filterTemplateId": 81,
"filterTemplateName": "CampaignVerify",
"filterTemplateType": "CAMPAIGN"
},
{
"filterTemplateId": 9,
"filterTemplateName": "campStringFilter01",
"filterTemplateType": "CAMPAIGN"
},
{
"filterTemplateId": 11,
"filterTemplateName": "campStringFilter02",
"filterTemplateType": "CAMPAIGN"
},
{
"filterTemplateId": 23,
"filterTemplateName": "campStringFilter03",
"filterTemplateType": "CAMPAIGN"
},
{
"filterTemplateId": 30,
"filterTemplateName": "campStringFilter04",
"filterTemplateType": "CAMPAIGN"
},

Avaya Proactive Outreach Manager Developer Guide 259


{
"filterTemplateId": 35,
"filterTemplateName": "campStringFilter05",
"filterTemplateType": "CAMPAIGN"
},
{
"filterTemplateId": 47,
"filterTemplateName": "campStringFilter06",
"filterTemplateType": "CAMPAIGN"
}
],
"totalPages": 24
}

The example provided in this section returns all the filter templates for pageNumber = 1
,pageSize = 10,searchBy=type,searchOperator= =,searchValue=splitter ,sortBy=name,
sortDirection= asc
HTTP: GET
/VP_POM_Service/v4/filtertemplates/lists?pageSize=10&pageNumber=1&so
rtBy=name&sortDirection=asc&searchBy=type&searchOperator==&searchVal
ue=splitter
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"filterTemplateSummaryList": [
{
"filterTemplateId": 21,
"filterTemplateName": "abc",
"filterTemplateType": "SPLITTER"
},
{
"filterTemplateId": 8,
"filterTemplateName": "splitter_ft",
"filterTemplateType": "SPLITTER"
}
],
"totalPages": 1

__________________________________________________________________________________________
Clone Filter Template
POST /v4/filtertemplates/saveas
The API saves a new filter template from existing filter template

URL
https://<EP Server IP>/VP_POM_Service/v4/filtertemplates/saveas

Avaya Proactive Outreach Manager Developer Guide 260


Parameters
Payload
Parameter Required Data Type
fromFilterTemplateId Yes int
toFilterTemplateName Yes String

JSON response
Field name Description
success Returns true if new filter template is created successfully

Example
The example provided in this section saves a filter template with ID 21 to a new filter template
‘devDoc3’
HTTP: POST /VP_POM_Service/v4/filtertemplates/saveas HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"fromFilterTemplateId": 21,
"toFilterTemplateName": "devDoc3"
}

RESPONSE JSON:
{
"success": true
}

__________________________________________________________________________________________
Delete Filter Template
POST /v4/filtertemplates/delete/{filter_template_id}
The API deletes a filter template

URL
https://<EP Server IP>/VP_POM_Service/v4/filtertemplates/delete/{filter_template_id}

Parameters
Path
Parameter Required Description Data Type
filter_template_id Yes The ID of filter template to int
delete

Avaya Proactive Outreach Manager Developer Guide 261


JSON response
Field name Description
success Returns true if filter template is deleted successfully

Example
The example provided in this section deletes the filter template with ID 23

HTTP: POST /VP_POM_Service/v4/filtertemplates/delete/23 HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"success": true
}

__________________________________________________________________________________________
Get Contact List Filter Template Associations for Campaign
GET /v4/campaigns/{campaign_id}/contactListFilterAssocs
The API returns contact list and filter template associations for given campaign.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaings/{campaign_id}/contactListFilterAssocs

Parameters
Path
Parameter Required Description Data Type
campaign_id Yes Campaign ID to get the contact int
list filter template associations

JSON response
Field name Description
associations List of all the contact list filter template associations
contactList Name of the contact list
filterTemplateName Name of the filter template
dialingAllocation Dialing Allocation for the association
applySameFilterToAllClist True if same filter template is to be applied to all the contact lists in
associations
noDialAlloc True if no dialing allocation is to be applied

Avaya Proactive Outreach Manager Developer Guide 262


Example
The example returns the contact list filter template associations for campaign with ID 1

HTTP: GET /VP_POM_Service/v4/campaigns/1/contactListFilterAssocs


HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"associations": [
{
"contactList": "filter1",
"filterTemplateName": "filter_date1",
"dialingAllocation": 100
}
],
"applySameFilterToAllClist": false,
"noDialAlloc": false
}

__________________________________________________________________________________________
Get Contact List Filter Template Associations for Job
GET /v4/campaigns/job/{job_id}/contactListFilterAssocs
The API returns contact list and filter template associations for given job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaings/job/{job_id}/contactListFilterAssocs

Parameters
Path
Parameter Required Description Data Type
job_id Yes Job ID to get the contact list int
filter template associations

JSON response
Field name Description
associations List of all the contact list filter template associations
contactListId Contact List Id
contactListName Name of the contact list
filterTemplateId Filter Template Id
filterTemplateName Name of the filter template
dialingAllocation Dialing Allocation for the association

Avaya Proactive Outreach Manager Developer Guide 263


Field name Description
applySameFilterToAllClist True if same filter template is to be applied to all the contact lists in
associations
noDialAlloc True if no dialing allocation is to be applied

Example
The example returns the contact list filter template associations for job with ID 15

HTTP: GET
/VP_POM_Service/v4/campaigns/job/15/contactListFilterAssocs HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"associations": [
{
"contactListId": 5,
"contactList": "filter1",
"filterTemplateName": "filter_date1",
"filterTemplateId": 3,
"dialingAllocation": 100
}
],
"applySameFilterToAllClist": false,
"noDialAlloc": false
}

__________________________________________________________________________________________
Get Details of Filter Template Associated to a Job
GET /v4/campaigns/job/{job_id}/filterTemplate
The API returns details of filter template associated to given job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/job/{job_id}/filterTemplate?filterId={filter_id}

Parameters
Path
Parameter Required Description Data Type
job_id Yes Job ID to get the associated int
filter template details
filter_id Yes Filter ID associated to job_id to int
get the details

Avaya Proactive Outreach Manager Developer Guide 264


JSON response
Field name Description
filterName Name of the filter template
filterTemplateType Type of the filter template
Template JSON of filter template with all the filter conditions, sort conditions
and top records count

Example
The example gives the details of a filter template with id 13 which is associated to a job with id
15
HTTP: GET
/VP_POM_Service/v4/campaigns/job/15/filterTemplate?filterId=13
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"filterName": "filter_date1",
"filterTemplateType": "CAMPAIGN",
"template":
"{\"filterConditions\":{\"group\":{\"condition\":\"AND\",\"rules\":[{\"operator\":\"
like\",\"attributeName\":\"timeZone\",\"attributeId\":13,\"type\":\"STRING\",\"data\
":\"%Asia%\",\"dateFormat\":\"\"}]}},\"sortConditions\":[{\"id\":13,\"name\":\"timeZ
one\",\"order\":\"desc\"}],\"noOfRecords\":\"\"}"
}

__________________________________________________________________________________________
Update Contact List Filter Template Associations for
Campaign
POST /v4/campaigns/{campaign_id}/updateAssocs
The API updates contact list filter template associations for the given campaign.
The API can be used to add or update only those contact lists that belong to the zones
associated with the campaign.To identify zones associated with the campaign use Get
Campaign Details API and check the parameter named zoneEPMList.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/{campaign_id}/updateAssocs

Parameters
Path
Parameter Required Description Data Type

Avaya Proactive Outreach Manager Developer Guide 265


campaign_id Yes Campaign ID for which contact int
list filter template associations
are to be updated
Payload
Parameter Required Data Type
associations Yes Set
applySameFilterToAllClist No boolean
noDialAlloc No boolean
JSON response
Field name Description
booleanResponse Returns true if contact list filter template associations are updated
successfully for the campaign

Example
The example provided in this section updates the contact list filter template associations for
campaign with campaign ID 1

HTTP: POST /VP_POM_Service/v4/campaigns/1/updateAssocs HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"associations": [
{
"contactList": "filterCL1",
"filterTemplateName": "filter1",
"dialingAllocation": 100
},
{
"contactList": "filterCL2",
"filterTemplateName": "filter2",
"dialingAllocation": 100
}
],
"applySameFilterToAllClist": false,
"noDialAlloc": false
}

RESPONSE JSON:
{
"booleanResponse": true
}

__________________________________________________________________________________________
Update Contact List Filter Template Associations for Job
URL

Avaya Proactive Outreach Manager Developer Guide 266


POST /v4/campaigns/job/{job_id}/updateAssocs
The API updates contact list filter template associations for the given job

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/job/{job_id}/updateAssocs

Parameters
Path
Parameter Required Description Data Type
Job_id Yes Job ID for which contact list int
filter template associations are
to be updated
Payload
Parameter Required Data Type
associations Yes Set
applySameFilterToAllClist No boolean
noDialAlloc No boolean
JSON response
Field name Description
booleanResponse Returns true if contact list filter template associations are updated
successfully for the job
Example
The example provided in this section updates the contact list filter template associations for job
with ID 15.

HTTP: POST /VP_POM_Service/v4/campaigns/job/15/updateAssocs HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"associations": [
{
"contactList": "filterCL1",
"filterTemplateName": "filter1",
"dialingAllocation": 100
},
{
"contactList": "filterCL2",
"filterTemplateName": "filter2",
"dialingAllocation": 100
}
],
"applySameFilterToAllClist": false,
"noDialAlloc": false
}

Avaya Proactive Outreach Manager Developer Guide 267


RESPONSE JSON:
{
"booleanResponse": true
}

__________________________________________________________________________________________
Update Filter Template Definition for Job
POST /v4/campaigns/job/{job_id}/filterTemplate
The API updates the filter template definition, i.e., Filter Details, Sort Details or Other Details
of filter template for the given job.

URL
https://<EP Server IP>/VP_POM_Service/v4/campaigns/job/{job_id}/filterTemplate

Parameters
Path
Parameter Required Description Data Type
job_id Yes ID of job to change the int
associated filter template
definition
Payload
Parameter Required Data Type
filterTemplateName Yes String
templateJson Yes String
JSON response
Field name Description
booleanResponse Returns true if filter template definition is updated successfully
Example
The example provided in this section updates the filter template definition for filter template
with name ‘filter1’ which is associated to job with ID 15

HTTP: POST /VP_POM_Service/v4/campaigns/job/15/filterTemplate


HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"filterTemplateName": "filter1",
"templateJson":
"{\"filterConditions\":{\"group\":{\"condition\":\"AND\",\"rules\":[{\"operator\":\"
like\",\"attributeName\":\"timeZone\",\"attributeId\":13,\"type\":\"STRING\",\"data\
":\"%Asia%\",\"dateFormat\":\"\"}]}},\"sortConditions\":[{\"id\":13,\"name\":\"timeZ
one\",\"order\":\"desc\"}],\"noOfRecords\":\"200\"}"
}

Avaya Proactive Outreach Manager Developer Guide 268


RESPONSE JSON:
{
"booleanResponse": true
}

Get Filtered Contact Count for Contact List and Filter


Template Association
POST /v4/campaigns/job/{job_id}/filter/conacts/count
The API fetch number of records filtered for contact list and filter template mapping for given
job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/job/{job_id}/filter/contacts/count

Parameters
Path
Parameter Required Description Data Type
job_id Yes ID of job to fetch filtered contact Int
count for given contactList and
filter template mapping
Payload
Parameter Required Data Type
contactListFilterTemplateMapping Yes Map of Contact List Id and Filter Template Id
Mapping
JSON response
Field name Description
Count Returns number of records filtered
Example 1
The example provided in this section fetch number of records filtered for given contact list id 7
and filtered template id 3 which is associated to job with ID 15

HTTP: POST /VP_POM_Service/v4/campaigns/job/15/filter/contacts/count


HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
{"contactListFilterTemplateMapping" : {"7":3}}
}

RESPONSE JSON:
{

Avaya Proactive Outreach Manager Developer Guide 269


"count": 51
}

Example 2
The example provided in this section fetch number of records filtered for given (contact list id
7, filtered template id 3), (contact list id 9, filtered template id -1) and (contact list id 18, filtered
template id 13) which is associated to job with ID 15
Note : If no filter template is associated with contact list then pass -1 as filter template id.

HTTP: POST /VP_POM_Service/v4/campaigns/job/15/filter/contacts/count


HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
{"contactListFilterTemplateMapping" : {"7":3},{"9":-1},{"18":13}}
}

RESPONSE JSON:
{
"count": 1811
}

Get Filtered Contact Records for Contact List and Filter


Template Association
POST /v4/campaigns/job/{job_id}/filter/contacts/preview
The API fetch filtered records for contact list and filter template mapping for given job.

URL
https://<EP Server
IP>/VP_POM_Service/v4/campaigns/job/{job_id}/filter/contacts/preview

Parameters
Path
Parameter Required Description Data Type
job_id Yes ID of job to fetch filtered contact Int
count for given contactList and
filter template mapping

Parameters
Query
Parameter Required Description Data Type
pageSize No Default page size value is 10 Int
contact records if not provided
in request.

Avaya Proactive Outreach Manager Developer Guide 270


pageNumber No Default page number value is int
1 if not provided in request.

Payload
Parameter Required Data Type
contactListFilterTemplateMapping Yes Map of Contact List Id and Filter Template Id
Mapping
JSON response
Field name Description
recordsBatch Returns filtered records
Example 1
The example provided in this section fetch filtered records for given contact list id 7 and filtered
template id 3 which is associated to job with ID 15

HTTP: POST
/VP_POM_Service/v4/campaigns/job/15/filter/contacts/preview
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
{"contactListFilterTemplateMapping" : {"7":3}}
}

RESPONSE JSON:
{
"contactsBatch": [
{
"phone_number2": "",
"user_contact_id": "68",
"contact_id": "44",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125067"
},
{
"phone_number2": "",
"user_contact_id": "69",
"contact_id": "45",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125068"
},
{
"phone_number2": "",
"user_contact_id": "7",

Avaya Proactive Outreach Manager Developer Guide 271


"contact_id": "57",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125006"
},
{
"phone_number2": "",
"user_contact_id": "70",
"contact_id": "47",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125069"
},
{
"phone_number2": "",
"user_contact_id": "71",
"contact_id": "50",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125070"
},
{
"phone_number2": "",
"user_contact_id": "72",
"contact_id": "52",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125071"
},
{
"phone_number2": "",
"user_contact_id": "73",
"contact_id": "54",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125072"
},
{
"phone_number2": "",
"user_contact_id": "74",
"contact_id": "58",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125073"
},
{
"phone_number2": "",
"user_contact_id": "75",
"contact_id": "61",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",

Avaya Proactive Outreach Manager Developer Guide 272


"phone_number1": "212125074"
},
{
"phone_number2": "",
"user_contact_id": "76",
"contact_id": "63",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125075"
}
]
}

Example 2
The example provided in this section fetch filtered records for given (contact list id 7, filtered
template id 3), (contact list id 9, filtered template id -1) and (contact list id 18, filtered template
id 13) which is associated to job with ID 15
Note : If no filter template is associated with contact list then pass -1 as filter template id.

HTTP: POST
/VP_POM_Service/v4/campaigns/job/15/filter/contacts/preview
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
{"contactListFilterTemplateMapping" : {"7":3},{"9":-1},{"18":13}}
}

RESPONSE JSON:
{

"contactsBatch": [
{
"phone_number2": "",
"user_contact_id": "68",
"contact_id": "44",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125067"
},
{
"phone_number2": "",
"user_contact_id": "69",
"contact_id": "45",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125068"

Avaya Proactive Outreach Manager Developer Guide 273


},
{
"phone_number2": "",
"user_contact_id": "7",
"contact_id": "57",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125006"
},
{
"phone_number2": "",
"user_contact_id": "70",
"contact_id": "47",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125069"
},
{
"phone_number2": "",
"user_contact_id": "71",
"contact_id": "50",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125070"
},
{
"phone_number2": "",
"user_contact_id": "72",
"contact_id": "52",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125071"
},
{
"phone_number2": "",
"user_contact_id": "73",
"contact_id": "54",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125072"
},
{
"phone_number2": "",
"user_contact_id": "74",
"contact_id": "58",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125073"
},
{
"phone_number2": "",
"user_contact_id": "75",

Avaya Proactive Outreach Manager Developer Guide 274


"contact_id": "61",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125074"
},
{
"phone_number2": "",
"user_contact_id": "76",
"contact_id": "63",
"abdCustPhone3": "",
"email": "",
"abdEmailDomain": "XXXXX",
"phone_number1": "212125075"
}
]
}

Create File Splitter


POST /v4/splitters
The API allows file splitter creation on POM server for logged in user’s organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters

Parameters
path None
payload
Parameter Required Description
splitterName Yes String type. The name should be unique per
organization.
splitterDescription Yes String type. The short description or purpose of the file
splitter
pimSplitterInputFile Yes PimSplitterInputFile type. It requires below fields for
master source file location and configuration. Also
advanced parameters for import are required.
pimSplitterFileDetails Yes List of PimSplitterFileDetails objects. Each object
contains mapping between new or existing contact
List it’s zone and splitter type of filter template.
pimOrganizations Yes List of PimOrganization along with organization ids for
which splitter needs to be assigned.
PimSplitterInputFile
Parameter Required Description
splitterFileType Yes The allowed value for file type is
as below:
Local file = 0;
File with FTP type= 1;
File with SFTP type = 2;
Host Yes IP or hostname of the server
where file is located. It is used for
ftp/sftp type of datasource.

Avaya Proactive Outreach Manager Developer Guide 275


username Yes The user name configured for
ftp/sftp transfer
password Yes The password configured for
ftp/sftp transfer
splitterRemoteFilePath Yes The path of file on remote server.
It is used for ftp/sftp type of
datasource.
splitterUploadedFilePath Yes The path of file on local server.
ftpSecured Yes Set to true if SFTP is enabled for
the data import. If the contact data
source type is FTP, it is set to
false.
splitterFieldSeparator Yes The separators used in the file for
separating fields. The separators
can be Comma (,) or Tab or Colon
(:) or Semi colon (;) or Pipe (|) or
Other
emptyContactListBeforeImport No Empty of contact list enabled or
disabled. Valid values are true and
false
pauseAssociatedCampaignsIfEmptyingContactList No If the parameter is set to “true”, all
the running campaigns associated
with the contact list will be paused,
contact list will be emptied and the
paused campaigns will be
resumed again, provided that the
parameter
“emptyContactListBeforeImport”
is set to true.

Note: Use this option with caution.


It is recommended that the use of
this option should be prohibited
when dialing is in progress. If the
campaign jobs fail to pause within
a stipulated timeout interval, then
they might remain in
PAUSING/PAUSED state until
they are manually resumed.
Valid Values are true and false.
Default Value is false.
ignoreActiveExcludeContactsIfEmptyingContactList No If the parameter is set to “true”,
contact list will be emptied
ignoring all the active exclude
contacts in the contact list,
provided that the parameter
“emptyContactListBeforeImport”
is set to true.
Valid Values are true and false.
Default Value is false.
ignoreCallbackOnContactsIfEmptyingContactList No If the parameter is set to “true”,
contact list will be emptied
ignoring all the callbacks on the
contacts in the contact list,
provided that the parameter

Avaya Proactive Outreach Manager Developer Guide 276


“emptyContactListBeforeImport”
is set to true.
Valid Values are true and false.
Default Value is false.
automaticUpdateTimezone No Value of automatic update time
zone flag. Valid values are true
and false
automaticUpdateState No Value of automatic update of state
flag. Valid values are true and
false. This will be useful only if
new global configuration setting is
enabled.
automaticUpdateWireless No Value of automatic update of
wireless flag. Valid values are true
and false. This will be useful only
if new global configuration setting
is enabled.
checkRejectPattern No Set to true if reject pattern checks
are enabled for the datasource.
checkPhoneFormatRule No Set to true if phone format checks
are enabled for the datasource.
checkDNC No Set to true if DNC checking is
enabled for the datasource.
updateExistingContact No Set to true if updating of existing
contacts is enabled for the
datasource.
e.g.
0 meaning updateExisting
1 meaning ignoreNew
ifContactExists No Set to updateExisting or
ignoreNew.
cleanupPhoneNumber No Boolean
If enabled, POM will clean up non
numeric characters from provided
phone number values.
emptyPhOnRuleMatch No Boolean
If enabled, POM will empty phone
on match with reject patterns or
phone formats rule.
emptyInvalidEmail No Boolean
If enabled, POM will empty invalid
email addresses.
PimSplitterFileDetails
Parameter Required Description
contactListName Yes String type. New or existing list name.
zoneId Yes Integer type. The zone ID for which contact list needs
to be assigned.
PimFilterTemplate Yes The filter template id.
JSON response
Field name Description
splitterID The unique identifier of the file splitter.
emptiedAttributes List of phone numbers / emails that are emptied out by POM.
For example-

Avaya Proactive Outreach Manager Developer Guide 277


Field name Description

"emptiedAttributes": [

{"attrName": "PHONE2", "importStatus":


"phone_format_failed", "failDesc": null },
{"attrName": "EMAIL", "importStatus": "validation_failed",
"failDesc": "Import/Add/Update for Contact ID 647 failed.
Potential cause for failure column E-Mail contains invalid
value"
}

]
Example
The example provided in this section is based on splitter creation using local master file.
HTTP: POST /VP_POM_Service/v4/splitters
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
REQUEST JSON:
{
"splitterName": "testws",
"splitterDescription": "test desc",
"pimSplitterInputFile": {
"pimSplitterInputFileId": 0,
"host": "",
"username": "",
"password": "",
"splitterRemoteFilePath": "",
"splitterUploadedFilePath": "/tmp/asf.txt",
"ftpSecured": false,
"splitterFieldSeparator": ",",
"emptyContactListBeforeImport": true,
"pauseAssociatedCampaignsIfEmptyingContactList": false,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,
"automaticUpdateTimezone": true,
"checkRejectPattern": true,
"ifContactExists": 1,
"checkPhoneFormatRule": true,
"checkDnc": true,
"cleanupPhoneNumber": true,
"emptyPhOnRuleMatch": true,
"emptyInvalidEmail": true,
"automaticUpdateState": false,
"automaticUpdateWireless": false
},
"pimOrganizations": [
{
"organizationId": 2,
"isDeleted": 0
},

Avaya Proactive Outreach Manager Developer Guide 278


{
"organizationId": 1,
"isDeleted": 0
},
{
"organizationId": -1,
"isDeleted": 0
}
],
"pimSplitterFileDetails": [
{
"pimSplitterFileDetailsId": 0,
"zoneId": -1,
"contactListName": "NewCl4",
"pimFilterTemplate": {
"filterTemplateId": 68
}
},
{
"pimSplitterFileDetailsId": 0,
"zoneId": -1,
"contactListName": "NewCl2",
"pimFilterTemplate": {
"filterTemplateId": 2
}
},
{
"pimSplitterFileDetailsId": 0,
"zoneId": -1,
"contactListName": "NewCl3",
"pimFilterTemplate": {
"filterTemplateId": 13
}
},
{
"pimSplitterFileDetailsId": 0,
"zoneId": -1,
"contactListName": "NewCl1",
"pimFilterTemplate": {
"filterTemplateId": 1
}
}
]
}

RESPONSE JSON:
{
"splitterID": 71,
"emptiedAttributes": null
}
__________________________________________________________________________________________
Edit File Splitter
POST /v4/splitters/{splitter_id}
The API allows updating existing file splitter configuration.

URL

Avaya Proactive Outreach Manager Developer Guide 279


https://<EP Server IP>/VP_POM_Service/v4/splitters/{splitter_id}

Parameters
path None
payload
Parameter Required Description
splitterDescription Yes String type. The short description or purpose of the
splitter
pimSplitterInputFile Yes PimSplitterInputFile type. It requires below fields for
master source file location and configuration. Also
advanced parameters for import are required.
pimSplitterFileDetails Yes List of PimSplitterFileDetails objects. Each object
contains mapping between new or existing contact
List it’s zone and splitter type of filter template.
pimOrganizations Yes List of PimOrganization along with organization ids for
which splitter needs to be assigned.
PimSplitterInputFile
Parameter Required Description
splitterFileType Yes The allowed value for file type is
as below:
Local file = 0;
File with FTP type= 1;
File with SFTP type = 2;
host Yes IP or hostname of the server
where file is located. It is used for
ftp/sftp type of datasource.
userName Yes The user name configured for
ftp/sftp transfer
password Yes The password configured for
ftp/sftp transfer
splitterRemoteFilePath Yes The path of file on remote server.
It is used for ftp/sftp type of
datasource.
splitterUploadedFilePath Yes The path of file on local server.
ftpSecured Yes Set to true if SFTP is enabled for
the data import. If the contact data
source type is FTP, it is set to
false.
splitterFieldSeparator Yes The separators used in the file for
separating fields. The separators
can be Comma (,) or Tab or Colon
(:) or Semi colon (;) or Pipe (|) or
Other
emptyContactListBeforeImport No Empty of contact list enabled or
disabled. Valid values are true and
false
pauseAssociatedCampaignsIfEmptyingContactList No If the parameter is set to “true”, all
the running campaigns associated
with the contact list will be paused,
contact list will be emptied and the
paused campaigns will be
resumed again, provided that the
parameter

Avaya Proactive Outreach Manager Developer Guide 280


“emptyContactListBeforeImport”
is set to true.

Note: Use this option with caution.


It is recommended that the use of
this option should be prohibited
when dialing is in progress. If the
campaign jobs fail to pause within
a stipulated timeout interval, then
they might remain in
PAUSING/PAUSED state until
they are manually resumed.
Valid Values are true and false.
Default Value is false.
ignoreActiveExcludeContactsIfEmptyingContactList No If the parameter is set to “true”,
contact list will be emptied
ignoring all the active exclude
contacts in the contact list,
provided that the parameter
“emptyContactListBeforeImport”
is set to true.
Valid Values are true and false.
Default Value is false.
ignoreCallbackOnContactsIfEmptyingContactList No If the parameter is set to “true”,
contact list will be emptied
ignoring all the callbacks on the
contacts in the contact list,
provided that the parameter
“emptyContactListBeforeImport”
is set to true.
Valid Values are true and false.
Default Value is false.
automaticUpdateTimezone No Value of automatic update time
zone flag. Valid values are true
and false
automaticUpdateState No Value of automatic update of state
flag. Valid values are true and
false. This will be useful only if
new global configuration setting is
enabled.
automaticUpdateWireless No Value of automatic update of
wireless flag. Valid values are true
and false. This will be useful only
if new global configuration setting
is enabled.
checkRejectPattern No Set to true if reject pattern checks
are enabled for the datasource.
checkPhoneFormatRule No Set to true if phone format checks
are enabled for the datasource.
checkDNC No Set to true if DNC checking is
enabled for the datasource.
updateExistingContact No Set to true if updating of existing
contacts is enabled for the
datasource.
e.g.

Avaya Proactive Outreach Manager Developer Guide 281


0 meaning updateExisting
1 meaning ignoreNew
ifContactExists No Set to updateExisting or
ignoreNew.
cleanupPhoneNumber No Boolean
If enabled, POM will clean up non
numeric characters from provided
phone number values.
emptyPhOnRuleMatch No Boolean
If enabled, POM will empty phone
on match with reject patterns or
phone formats rule.
emptyInvalidEmail No Boolean
If enabled, POM will empty invalid
email addresses.
PimSplitterFileDetails
Parameter Required Description
contactListName Yes String type. New or existing list name.
zoneId Yes Integer type. The zone ID for which contact list needs
to be assigned.
PimFilterTemplate Yes The filter template id.
JSON response
Field name Description
Result Returns true on success.
emptiedAttributes List of phone numbers / emails that are emptied out by POM.
For example-

"emptiedAttributes": [

{"attrName": "PHONE2", "importStatus":


"phone_format_failed", "failDesc": null },
{"attrName": "EMAIL", "importStatus": "validation_failed",
"failDesc": "Import/Add/Update for Contact ID 647 failed.
Potential cause for failure column E-Mail contains invalid
value"
}

]
Example
The example provided in this section is based on updating existing file splitter having ID as 71.
HTTP: POST /VP_POM_Service/v4/splitters/71
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
REQUEST JSON:
{
"pimSplitterId":71,
"splitterDescription": "updated desc",
"pimSplitterInputFile": {

Avaya Proactive Outreach Manager Developer Guide 282


"pimSplitterInputFileId": 0,
"host": "",
"username": "",
"password": "",
"splitterRemoteFilePath": "",
"splitterUploadedFilePath": "/tmp/asf.txt",
"ftpSecured": false,
"splitterFieldSeparator": ",",
"emptyContactListBeforeImport": true,
"pauseAssociatedCampaignsIfEmptyingContactList": false,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,
"automaticUpdateTimezone": true,
"checkRejectPattern": true,
"ifContactExists": 1,
"checkPhoneFormatRule": true,
"checkDnc": true,
"cleanupPhoneNumber": true,
"emptyPhOnRuleMatch": true,
"emptyInvalidEmail": true,
"automaticUpdateState": false,
"automaticUpdateWireless": false
},
"pimOrganizations": [
{
"organizationId": 2,
"isDeleted": 0
},

{
"organizationId": -1,
"isDeleted": 0
}
],
"pimSplitterFileDetails": [
{
"pimSplitterFileDetailsId": 0,
"zoneId": -1,
"contactListName": "NewCl4",
"pimFilterTemplate": {
"filterTemplateId": 68
}
},
{
"pimSplitterFileDetailsId": 0,
"zoneId": -1,
"contactListName": "NewCl2",
"pimFilterTemplate": {
"filterTemplateId": 2
}
},
{
"pimSplitterFileDetailsId": 0,
"zoneId": -1,
"contactListName": "NewCl1",
"pimFilterTemplate": {
"filterTemplateId": 1
}

Avaya Proactive Outreach Manager Developer Guide 283


}
]
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Get List Of File Splitters
GET /v4/splitters
The API allows you to search, sort and get list of file splitters existing on the system.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters

Parameters
Query
Parameter Required Description Data Type
pageSize No Default page size value is 10 int
contact records if not provided
in request.
pageNumber No Default page number value is int
1 if not provided in request.
sortBy No Default contactId (system String
contact ID) is used to sort the
records fetched in response.
Valid values include splitterId,
splitterName,
contactListNames and
organizationName.
sortDirection No By default, asc value is used. String
Valid values include asc and
desc .
searchBy No Valid values include splitterId, String
splitterName,
contactListNames and
organizationName
searchOperator No Valid values in includes =, String
!=,in, like, notlike according to
data type of the provided
attribute.
searchValue No Any valid value according to String
selected search attribute.
payload None

JSON response
Field name Description
splitterList List of splitters according to criteria specified in request. Each
splitter record in the batch has values of the existing configuration.
totalPage Total pages count according to pageSize and total splitters present
in POM system.
Example
Avaya Proactive Outreach Manager Developer Guide 284
The example provided in this section is based on fetching file splitters without any search and
sort criteria.
HTTP: GET /VP_POM_Service/v4/splitters
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"splitterList":[{"pimSplitterId":71,"splitterName":"testws1","splitterDescription":
"test desc","splitterType":0,"createdBy":"admin","lastModifiedOn":"2019-04-
04T08:36:13.448+0000","lastModifiedBy":null,"contactListNames":"NewCl4 NewCl2
NewCl1","isEditDeleteAllowed":false,"status":0,"pimSplitterInputFile":null,"pimOrgan
izations":[{"organizationId":1,"name":"Default"},{"organizationId":2,"name":"HR"}],"
pimSplitterFileDetails":null},{"pimSplitterId":70,"splitterName":"testws","splitterD
escription":"","splitterType":0,"createdBy":"admin","lastModifiedOn":null,"lastModif
iedBy":null,"contactListNames":"NewCl3 NewCl2 NewCl1
NewCl4","isEditDeleteAllowed":false,"status":0,"pimSplitterInputFile":null,"pimOrgan
izations":[{"organizationId":2,"name":"HR"},{"organizationId":1,"name":"CC"},{"organ
izationId":1,"name":"Default"}],"pimSplitterFileDetails":null},{"pimSplitterId":69,"
splitterName":"test","splitterDescription":"","splitterType":0,"createdBy":"admin","
lastModifiedOn":null,"lastModifiedBy":null,"contactListNames":"NewCl3 NewCl2 NewCl4
NewCl1","isEditDeleteAllowed":false,"status":0,"pimSplitterInputFile":null,"pimOrgan
izations":[{"organizationId":2,"name":"HR"},{"organizationId":-
1,"name":"Default"},{"organizationId":1,"name":"CC"}],"pimSplitterFileDetails":null}
,{"pimSplitterId":68,"splitterName":"analyzesplitterIntType02","splitterDescription"
:"analyze","splitterType":0,"createdBy":"admin","lastModifiedOn":"2019-04-
04T07:12:58.865+0000","lastModifiedBy":null,"contactListNames":"analyzesplitterInt01
analyzesplitterInt02","isEditDeleteAllowed":true,"status":0,"pimSplitterInputFile":n
ull,"pimOrganizations":[{"organizationId":1,"name":"Default"}],"pimSplitterFileDetai
ls":null},{"pimSplitterId":66,"splitterName":"UIAutomationSplitter01","splitterDescr
iption":"UIAutomationSplitter01","splitterType":0,"createdBy":"admin","lastModifiedO
n":"2019-04-
04T06:36:31.358+0000","lastModifiedBy":null,"contactListNames":"UISplitterList01
UISplitterList02","isEditDeleteAllowed":true,"status":0,"pimSplitterInputFile":null,
"pimOrganizations":[{"organizationId":-
1,"name":"Default"}],"pimSplitterFileDetails":null},{"pimSplitterId":65,"splitterNam
e":"recurringscheduleSplitterUI01","splitterDescription":"Stringsplitter","splitterT
ype":0,"createdBy":"admin","lastModifiedOn":"2019-04-
04T06:28:50.578+0000","lastModifiedBy":null,"contactListNames":"recurringscheduleSpl
itterUI01
recirringscheduleSplitterUI02","isEditDeleteAllowed":true,"status":0,"pimSplitterInp
utFile":null,"pimOrganizations":[{"organizationId":-
1,"name":"Default"}],"pimSplitterFileDetails":null},{"pimSplitterId":64,"splitterNam
e":"scheduleSplitterUI01","splitterDescription":"Stringsplitter","splitterType":0,"c
reatedBy":"admin","lastModifiedOn":"2019-04-
03T19:34:53.227+0000","lastModifiedBy":null,"contactListNames":"scheduleSplitterUI01
scheduleSplitterUI02","isEditDeleteAllowed":true,"status":4,"pimSplitterInputFile":n
ull,"pimOrganizations":[{"organizationId":-
1,"name":"Default"}],"pimSplitterFileDetails":null},{"pimSplitterId":63,"splitterNam
e":"SchedulesplitterPhonetype01","splitterDescription":"Stringsplitter","splitterTyp
e":0,"createdBy":"admin","lastModifiedOn":"2019-04-
04T06:16:20.427+0000","lastModifiedBy":null,"contactListNames":"runsplitterScheduleP
hone01
runsplitterSchedulePhone02","isEditDeleteAllowed":true,"status":0,"pimSplitterInputF

Avaya Proactive Outreach Manager Developer Guide 285


ile":null,"pimOrganizations":[{"organizationId":-
1,"name":"Default"}],"pimSplitterFileDetails":null},{"pimSplitterId":62,"splitterNam
e":"SchedulesplitterScheduleType01","splitterDescription":"Stringsplitter","splitter
Type":0,"createdBy":"admin","lastModifiedOn":"2019-04-
03T19:24:12.928+0000","lastModifiedBy":null,"contactListNames":"runsplitterSchedule0
1runsplitterSchedule02","isEditDeleteAllowed":true,"status":4,"pimSplitterInputFile"
:null,"pimOrganizations":[{"organizationId":1,"name":"Default"}],"pimSplitterFileDet
ails":null},{"pimSplitterId":61,"splitterName":"runsplitterFailed02","splitterDescri
ption":"Stringsplitter","splitterType":0,"createdBy":"admin","lastModifiedOn":"2019-
04-
03T19:19:36.657+0000","lastModifiedBy":null,"contactListNames":"runsplitterFailed01
runsplitterFailed02","isEditDeleteAllowed":true,"status":4,"pimSplitterInputFile":nu
ll,"pimOrganizations":[{"organizationId":1,"name":"Default"}],"pimSplitterFileDetail
s":null}],"totalPage":5}

The example provided in this section is based on fetching file splitters based on search and
sort criteria using splitterId
HTTP: GET
/VP_POM_Service/v4/splitters?pageSize=10&pageNumber=1&sortBy=splitte
rId&sortDirection=desc&searchBy=splitterId&searchOperator==&searchVa
lue=65
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"splitterList":[{"pimSplitterId":65,"splitterName":"recurringscheduleSplitterUI01",
"splitterDescription":"Stringsplitter","splitterType":0,"createdBy":"admin","lastMod
ifiedOn":"2019-04-
04T06:28:50.578+0000","lastModifiedBy":null,"contactListNames":"recurringscheduleSpl
itterUI01
recirringscheduleSplitterUI02","isEditDeleteAllowed":true,"status":0,"pimSplitterInp
utFile":null,"pimOrganizations":[{"organizationId":-
1,"name":"Default"}],"pimSplitterFileDetails":null}],"totalPage":1}
__________________________________________________________________________________________
Get Details Of File Splitter
GET /v4/splitters/{splitter_id}
The API allows you to fetch file splitter details for provided splitter ID.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/{splitter_id}

Parameters
path
Parameter Required Description Data Type
splitter_id Yes The unique identifier of existing long
splitter
payload None

Avaya Proactive Outreach Manager Developer Guide 286


JSON response
Parameter Description
pimSplitterId The unique identifier of file splitter.

splitterName String type. The name should be unique per organization.

splitterDescription String type. The short description or purpose of the file splitter

pimSplitterInputFile PimSplitterInputFile type. It requires below fields for master source


file location and configuration. Also advanced parameters for
import are required.
pimSplitterFileDetails List of PimSplitterFileDetails objects. Each object contains
mapping between new or existing contact List it’s zone and splitter
type of filter template.
createdBy The user name which created the file splitter
lastModifiedOn The last updated date and time of file splitter.
lastModifiedBy The user name who modified the file splitter recently.
contactListNames Comma separated contact list names used in the file splitter.
isEditDeleteAllowed The edit and delete functionality is disabled for org user if file splitter
is assigned to multiple organizations.
status Status of the file splitter. Valid values include:
0=New
1=Analyzing
2=Analyzed
3=Running
4=Completed
5=Failed
6=Partially Executed
7=Failed - File not found
8=Failed - Source is a directory
9=Failed - File size is more than configured
10=Failed - splitter already running
PimSplitterInputFile
Parameter Description
splitterFileType The allowed value for file type is as below:
Local file = 0;
File with FTP type= 1;
File with SFTP type = 2;
host IP or hostname of the server where file is
located. It is used for ftp/sftp type of
datasource.
userName The user name configured for ftp/sftp transfer
password The password configured for ftp/sftp transfer
splitterRemoteFilePath The path of file on remote server. It is used for
ftp/sftp type of datasource.
splitterUploadedFilePath The path of file on local server.
ftpSecured Set to true if SFTP is enabled for the data
import. If the contact data source type is FTP,
it is set to false.
splitterFieldSeparator The separators used in the file for separating
fields. The separators can be Comma (,) or

Avaya Proactive Outreach Manager Developer Guide 287


Tab or Colon (:) or Semi colon (;) or Pipe (|) or
Other

emptyContactListBeforeImport Empty of contact list enabled or disabled. Valid


values are true and false
pauseAssociatedCampaignsIfEmptyingContactList If the parameter is set to “true”, all the running
campaigns associated with the contact list will
be paused, contact list will be emptied and the
paused campaigns will be resumed again,
provided that the parameter
“emptyContactListBeforeImport” is set to true.

Note: Use this option with caution. It is


recommended that the use of this option
should be prohibited when dialing is in
progress. If the campaign jobs fail to pause
within a stipulated timeout interval, then they
might remain in PAUSING/PAUSED state until
they are manually resumed.
Valid Values are true and false. Default Value
is false.
ignoreActiveExcludeContactsIfEmptyingContactList If the parameter is set to “true”, contact list will
be emptied ignoring all the active exclude
contacts in the contact list, provided that the
parameter “emptyContactListBeforeImport” is
set to true.
Valid Values are true and false. Default Value
is false.
ignoreCallbackOnContactsIfEmptyingContactList If the parameter is set to “true”, contact list will
be emptied ignoring all the callbacks on the
contacts in the contact list, provided that the
parameter “emptyContactListBeforeImport” is
set to true.
Valid Values are true and false. Default Value
is false.
automaticUpdateTimezone Value of automatic update time zone flag.
Valid values are true and false
automaticUpdateState Value of automatic update of state flag. Valid
values are true and false. This will be useful
only if new global configuration setting is
enabled.
automaticUpdateWireless Value of automatic update of wireless flag.
Valid values are true and false. This will be
useful only if new global configuration setting
is enabled.
checkRejectPattern Set to true if reject pattern checks are enabled
for the datasource.
checkPhoneFormatRule Set to true if phone format checks are enabled
for the datasource.
checkDNC Set to true if DNC checking is enabled for the
datasource.

Avaya Proactive Outreach Manager Developer Guide 288


updateExistingContact Set to true if updating of existing contacts is
enabled for the
datasource.
e.g.
0 meaning updateExisting
1 meaning ignoreNew
ifContactExists Set to updateExisting or ignoreNew.
cleanupPhoneNumber
emptyPhOnRuleMatch
emptyInvalidEmail
PimSplitterFileDetails
Parameter Description
contactListName String type. New or existing list name.
zoneId Integer type. The zone ID for which contact list needs to be
assigned.
PimFilterTemplate The filter template id.

Example
The example provided in this section is based fetching file splitter configuration details of
splitter ID 1.
HTTP: GET /VP_POM_Service/v4/splitters/1
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"pimSplitterId": 1,
"splitterName": "runsplitterIntType02",
"splitterDescription": "Stringsplitter",
"splitterType": 0,
"createdBy": "admin",
"lastModifiedOn": "2019-04-04T21:14:50.054+0000",
"lastModifiedBy": null,
"contactListNames": "runsplitterInt01 runsplitterInt02",
"isEditDeleteAllowed": true,
"status": 4,
"pimSplitterInputFile": {
"pimSplitterInputFileId": 1,
"splitterFileType": 0,
"host": null,
"username": null,
"password": "",
"splitterRemoteFilePath": null,
"splitterUploadedFilePath": "/tmp/splitterAllDatatype.csv",
"splitterFieldSeparator": ",",
"emptyContactListBeforeImport": true,
"pauseAssociatedCampaignsIfEmptyingContactList": false,
"ignoreActiveExcludeContactsIfEmptyingContactList": false,
"ignoreCallbackOnContactsIfEmptyingContactList": false,

Avaya Proactive Outreach Manager Developer Guide 289


"automaticUpdateTimezone": true,
"checkRejectPattern": true,
"ifContactExists": 0,
"checkPhoneFormatRule": true,
"checkDnc": true,
"cleanupPhoneNumber": true,
"emptyPhOnRuleMatch": true,
"emptyInvalidEmail": true,
"automaticUpdateState": false,
"automaticUpdateWireless": false
},
"pimOrganizations": [
{
"organizationId": -1,
"name": "Default"
}
],
"pimSplitterFileDetails": [
{
"pimSplitterFileDetailsId": 1,
"zoneId": -1,
"recordCount": 5,
"splitLocalFilePath":
"/opt/Avaya/avpom/POManager/splitterdir/default/runsplitterIntType02/runsplitterInt0
1.csv",
"contactListName": "runsplitterInt01",
"type": 0,
"detailedStatus": 0,
"pimFilterTemplate": {
"filterTemplateId": 13,
"filterName": "runsplitterInt01"
}
},
{
"pimSplitterFileDetailsId": 2,
"zoneId": -1,
"recordCount": 5,
"splitLocalFilePath":
"/opt/Avaya/avpom/POManager/splitterdir/default/runsplitterIntType02/runsplitterInt0
2.csv",
"contactListName": "runsplitterInt02",
"type": 0,
"detailedStatus": 0,
"pimFilterTemplate": {
"filterTemplateId": 14,
"filterName": "runsplitterInt02"
}
}
]
}
__________________________________________________________________________________________
Delete File Splitter
POST /v4/splitters/{splitter_id}/delete
The API allows deletion of file splitter.

URL

Avaya Proactive Outreach Manager Developer Guide 290


https://<EP Server IP>/VP_POM_Service/v4/splitters/{splitter_id}/delete

Parameters
path
Parameter Required Description Data Type
splitter_id Yes The unique identifier of existing long
splitter
payload None

JSON response
Field name Description
Result Returns true on success.
Example
The example provided in this section shows file splitter deletion for splitter id 5.
HTTP: POST /VP_POM_Service/v4/splitters/5/delete
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Get List Of Schedules For File Splitter
GET /v4/splitters/{splitter_id}/schedules
The API provides existing schedules created for file splitter.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/{splitter_id}/schedules

Parameters
path
Parameter Required Description Data Type
splitter_id Yes The unique identifier of existing long
splitter
payload None

JSON response
List of schedules. Each item consist of below fields:

Field name Description


scheduleId The unique identifier of the schedule
scheduleType The type of schedule. Possible values is 4 for list_splitter type of
schedule.
startTime The start date and time of recurring schedule.

Avaya Proactive Outreach Manager Developer Guide 291


Field name Description
endTime The end date and time of recurring schedule.
frequency The schedule frequency type. It could be runonce of recurring type.
The recurring frequencies could be daily, weekly with selected
weekdays, hourly, monthly or yearly.,
Example
The example provided in this section is based getting list of schedules for specific splitter ID 5
HTTP: GET /VP_POM_Service/v4/splitters/5/schedules
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"schedules": [
{
"scheduleId": 697,
"scheduleType": 4,
"startTime": 1554452462000,
"endTime": 1562314862000,
"frequency": "Monthly"
}
]
}
__________________________________________________________________________________________

Schedule File Splitter


POST /v4/splitters /schedules/runonce
The API provides ability to schedule file splitter execution only for once.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/schedules/runonce

Parameters
path None
payload
Parameter Required Description Data Type
splitterId True The ID for the file splitter long
startTime true Specify the start date and time for the string
triggering file splitter. Ensure that the start
date and format is yyyy/MM/dd HH:mm:ss.
timeZone true Specify the time zone you want to use for string
scheduling the file splitter.
JSON response
Field name Description
result Returns true on success

Avaya Proactive Outreach Manager Developer Guide 292


Example
The example provided in this section is based on scheduling a file splitter with run once
frequency at 10:05:05
HTTP: POST /VP_POM_Service/v4/splitters/schedules/runonce HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"splitterId":"5",
"startTime":"2019/04/02 10:5:5",
"timeZone": "GMT+05:30"
}

RESPONSE JSON:
{"result":true}

__________________________________________________________________________________________
Schedule Recurring File Splitter
POST /v4/splitters/schedules/recurring
The API provides ability to schedule file splitter on recurrent basis.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/schedules/recurring

Parameters
path None
payload
Parameter Required Description Data Type
splitterId true The unique identifier ID of file splitter long
startTime true Specify the start date and time for the string
triggering file splitter. Ensure that the start
date and format is yyyy/MM/dd HH:mm:ss.
timeZone true Specify the time zone you want to use for string
scheduling the file splitter.
recurring true Set to true for recurring type of schedules. boolean
recurringFrequency true The frequency for file splitter. You can string
specify any one of the values:

RunEveryNMins: This option executes file


splitter every N specified minutes.

Daily : This option executes splitter daily at


the start time you mention during
scheduling and continues till the datetime.

Avaya Proactive Outreach Manager Developer Guide 293


Weekly: This option executes file splitter
on specified days and weekly recurring
frequency. You can select the days of the
week. For example, if you select Monday
and Friday, then it creates the weekly jobs
on Monday and Friday at the start time
mentioned during schedule.

Monthly: This option executes file splitter


every month depending on the start date
till the finish date.

Yearly: This option executes file splitter


every yearly depending on the start date till
the finish date.
weekDaysOnly true Valid for Daily type of schedule frequency. boolean
If set to true the schedule will be created
only for weekdays. all days of the week
except the weekend days you mention in
the POM Home >Configurations > Global
Configurations.
selectedDays true Creates a job on all days of the week string
except the weekend days you mention in
global configuration page. Valid values
include Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday and Sunday.
Used for Weekly type of schedule
frequency.
runEveryMinutes true To specify value in minutes for string
RunEveryNMins schedule.
recurringEndTime true The end date and the time for terminating string
the schedule. Ensure that the end date and
the format is yyyy/MM/dd HH:mm:ss.
JSON response
Field name Description
result Returns true on success
Example
The example provided in this section is based on creating recurring schedule for file splitter ID
1 with weekly frequency. It will run on two selected days Monday and Friday every week.
HTTP: POST /VP_POM_Service/v4/splitters/schedules/recurring HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"splitterId":1,
"startTime":"2019/08/02 10:16:48",
"timeZone": "GMT+05:30",
"recurringFrequency":"Monthly",

Avaya Proactive Outreach Manager Developer Guide 294


"runEveryMinutes": null,
"recurringEndTime":"2019/08/08 10:23:10"
}

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Delete File Splitter Schedule
POST /v4/splitters/schedules/{schedule_id}/delete
The API allows deletion of schedule existing for file splitter.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/schedules/{schedule_id}/delete

Parameters
path
Parameter Required Description Data Type
schedule_id Yes The unique ID of schedule int
payload None

JSON response
Field name Description
result Returns true on success
Example
The example provided in this section is based on deletion of splitter schedule existing on POM
system with ID 697.
HTTP: POST /VP_POM_Service/v4/splitters/schedules/697/delete
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Analyze File Splitter
POST /v4/splitters/{splitter_id}/analyze
The API triggers analyze operation for the specified file splitter.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/{splitter_id}/analyze

Parameters
path
Parameter Required Description Data Type

Avaya Proactive Outreach Manager Developer Guide 295


splitter_id Yes The ID of file splitter long
payload None

JSON response
Field name Description
result Returns true on successful trigger.
Example
The example provided in this section is based triggering analyze request for splitter ID 5.
HTTP: POST /VP_POM_Service/v4/splitters/5/analyze
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:{"result":true}

__________________________________________________________________________________________
Save Contact Through Splitter
POST /v4/splitters/{splitter_id}/contacts
The API saves contact to matched contact list after applying filter template criteria’s configured
for mentioned file splitter. Note that, API will not create contact list, user need to ensure that
contact lists mentioned against each filter criteria in the splitter configuration are already
existing on the POM system. The custom contact attributes should be existing too.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/{splitter_id}/contacts

Parameters
path
Parameter Required Description Data Type
splitter_id Yes Unique identifier of splitter Long
Payload
Check example section to get detailed json.
Parameter Required Data Type
contactRecord Yes String
JSON response
Field name Description
systemContactID If returns value >0 if contact saved successfully to contact list.
If -1 returned then possible error causes:

If filter criteria unmatched with configured filter criteria configured in Splitter.


The custom contact attributes mentioned in contactRecord json not found.
The contact list not found on the system.
Validation failures related to contact record. To get more details refer logs.
emptiedAttributes List of phone numbers / emails that are emptied out by POM.

Avaya Proactive Outreach Manager Developer Guide 296


Field name Description
For example-

"emptiedAttributes": [

{"attrName": "PHONE2", "importStatus": "phone_format_failed",


"failDesc": null },
{"attrName": "EMAIL", "importStatus": "validation_failed", "failDesc":
"Import/Add/Update for Contact ID 647 failed. Potential cause for failure
column E-Mail contains invalid value"
}

]
Example
The example below will save contact provided in json format along with predefined and custom
attributes values. The criterias configured in filter template associated with file splitter.

HTTP: POST /VP_POM_Service/v4/splitters/69/contacts HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{
"userContactID": "2",
"title": null,
"firstName": "testFN",
"lastName": "testLN",
"phoneNumber1": "1209",
"phoneNumber1CtryCode": null,
"phoneNumber1TimeZone": null,
"phoneNumber2": 2134321434,
"phoneNumber2CtryCode": 1,
"phoneNumber2TimeZone": "MST",
"email": "test@pomsvmail1.com",
"addressLine1": "addressLine1",
"addressLine2": "addressLine1",
"addressLine3": "addressLine1",
"addressLine4": "addressLine1",
"addressLine5": "addressLine1",
"country": "India",
"zipcode": "411010",
"automaticUpdateTimezone": false,
"automaticUpdateState": false,
"automaticUpdateWireless": false,
"updateExistingContact": true,
"checkRejectPattern": false,
"checkPhoneFormatRule": false,
"cleanupPhoneNumber":true,
"emptyPhOnRuleMatch":true,
"emptyInvalidEmail":true,
"checkDNC": false,
"cleanupPhoneNumber":true,

Avaya Proactive Outreach Manager Developer Guide 297


"emptyPhOnRuleMatch":true,
"emptyInvalidEmail":true,
"customAttributeList": [
{
"attributeName": "xyzIntSalary",
"attributeType": "INTEGER",
"attributeValue": "2003"
},
{
"attributeName": "xyzLongSalary",
"attributeType": "LONG",
"attributeValue": "9223372036854770000"
},
{
"attributeName": "xyzShortAreaCode",
"attributeType": "SHORT",
"attributeValue": "32767"
},
{
"attributeName": "xyzCharGrade",
"attributeType": "CHARACTER",
"attributeValue": "A"
}
]
}

RESPONSE JSON:
{"systemContactID":7162 ,"emptiedAttributes": null }
__________________________________________________________________________________________
Run File Splitter
POST /v4/splitters/{splitter_id}/start
The API triggers analyze and then runs the split activity according to configurations. The API
returns success immediately once trigger is successful.
The background activity sequence is as below:

• Copy master file locally.


• Parse the filter template conditions assigned to each contact list.
• Split the file and copy contact list specific contents to separate contact list specific files.
• Create new contact lists if existing name is not found.
• Create data source for each divided file per contact list.
• Run data source for each contact list.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/{splitter_id}/start

Parameters
path
Parameter Required Description Data Type
splitter_id Yes The ID of file splitter long
payload None

JSON response

Avaya Proactive Outreach Manager Developer Guide 298


Field name Description
result Returns true on successful trigger.
Example
The example provided in this section is based on executing splitter ID 5.
HTTP: POST /VP_POM_Service/v4/splitters/5/start
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Download File Generated by Splitter
GET /v4/splitters/filedetails/download?filePath=””
The API download file splitted after previous analyze or run action.

URL
https://<EP Server IP>/VP_POM_Service/v4/splitters/filedetails/download

Parameters
Query
Parameter Required Description Data Type
filePath Yes The path of file to be downloaded String
payload None

JSON response
Field name Description
result The content of file.
Example
The example provided in this section is based on downloading file generated after analyze
action for file splitter.
HTTP: GET
/VP_POM_Service/v4/splitters/filedetails/download?filePath=/opt/Avay
a/avpom/POManager/splitterdir/default/DNSP1/splitcl1.csv
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/csv
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:

Avaya Proactive Outreach Manager Developer Guide 299


Id,firstname,lastname,phonenumber1,phonenumber2,email,xyzCustPhone3,xyzIntSalary,xyz
LongSalary,xyzShortAreaCode,xyzCharGrade,xyzBooleanAnswer,xyzStringCity,xyzAgentId,x
yzEmailDomain,xyzDate,xyzTime,xyzTimeStamp,xyzFloat
1,abdFN1,abdLN1,2121245021,212123,email1@pomsvmail1.com,212121,2000,9223372036854770
000,32767,A,TRUE,Pune,5861,ngreceiver1@pomsvmail1.com,18-02-2000,17:35:00,18-02-2000
17:35:00,140.5678
2,abdFN2,abdLN2,2121245022,212122,email1@pomsvmail1.com,212121,2001,9223372036853780
000,32767,A,TRUE,Pune,5861,ngreceiver1@pomsvmail1.com,18-02-2000,17:35:00,18-02-2000
17:35:00,140.5678
3,abdFN3,abdLN3,2121245023,212123,email1@pomsvmail1.com,212121,2002,9223372036853790
000,32767,A,TRUE,Pune,5861,ngreceiver1@pomsvmail1.com,18-02-2000,17:35:00,18-02-2000
17:35:00,140.5678
4,abdFN4,abdLN4,2121245024,212122,email1@pomsvmail1.com,212121,2003,9223372036854770
000,32767,A,TRUE,Pune,5861,ngreceiver1@pomsvmail1.com,18-02-2000,17:35:00,18-02-2000
17:35:00,140.5678
5,abdFN5,abdLN5,2121245025,212123,email1@pomsvmail1.com,212121,2004,9223372036854770
000,32767,A,TRUE,Pune,5861,ngreceiver1@pomsvmail1.com,18-02-2000,17:35:00,18-02-2000
17:35:00,140.5678
__________________________________________________________________________________________
Run Data Source
POST /v4/datasources/{data_source_id}/job/start
The API triggers run action for existing data source created for contact list.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/{data_source_id}/job/start

Parameters
path
Parameter Required Description Data Type
data_source_id Yes The data source ID int
payload None

JSON response
Field name Description
result Returns true on success.
Example
The example provided in this section is based executing datasource with ID 55.
HTTP: POST /VP_POM_Service/v4/datasources/55/job/start
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}
__________________________________________________________________________________________
Get Datasource ID From Name
POST /v4/datasources/id

Avaya Proactive Outreach Manager Developer Guide 300


The API get the unique identifier from name provided in the request.

URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/id

Parameters
path None
payload
Parameter Required Data Type
dataSourceName Yes The valid name of the data source existing on system.
JSON response
Field name Description

Example
The example provided in this section is based retrieving datasource having name dsName
HTTP: POST /VP_POM_Service/v4/datasources/id
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache
REQUEST JSON:
{
"dataSourceName": "dsName"
}

RESPONSE JSON:
{
"dataSourceID": "55"
}
__________________________________________________________________________________________
Associate Organizations to Contact List
POST
/v4/contactlists/{contact_list_id}/organizations/{organization_id}/a
ssociate
The API associates organization to existing contact list.

URL
https://<EP Server
IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/organizations/{organization_id}
/associate

Parameters
path
Parameter Required Description Data Type
contact_list_id true The contact list ID int

Avaya Proactive Outreach Manager Developer Guide 301


organization_id true The organization which needs to be int
associated with contact list
payload None

JSON response
Field name Description
result Returns true if organization association is successful.
Example
The example provided in this section is based on associating Default organization ID -1 with
contact list ID 39
HTTP: POST /VP_POM_Service/v4/contactlists/39/organizations/-
1/associate HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{"result":true}

__________________________________________________________________________________________
Get Contact Attribute Details
GET /v4/contactattributes/{contact_attribute_id}
The API allows retrieving details of contact attribute using ID of contact attribute.

URL
https://<EP Server IP>/VP_POM_Service/v4/contactattributes/{contact_attribute_id}

Parameters
path
Parameter Required Description Data Type
contact_attribute_id true The contact attribute ID. int

payload None

JSON response
Field name Description
attributeID Unique identifier of the attribute.
attributeName The name of contact attribute.
fileAttributeName The name of contact attribute matching with import file format.
attributeDataType The data type of the attribute.
The minimum and the maximum values for each data type are:
INTEGER: The minimum value is -2,147,483,648, and the maximum value
is 2,147,483,647 (both values inclusive).

Avaya Proactive Outreach Manager Developer Guide 302


Field name Description
LONG: The minimum value is -9,223,372,036,854,775,808, and the
maximum value is 9,223,372,036,854,775,807 (both values inclusive).

SHORT: The minimum value is -32,768, and the maximum value is 32,767
(both values inclusive).

CHARACTER: A single character is allowed.

FLOAT: 28 precisions and 10 scale. This means 28 characters before the


decimal and 10 characters after the decimal point.

Note:
You cannot enter a float value as a combination on numbers and alphabets.
For example, 123.4f is not a valid float value.

BOOLEAN: The allowed values are TRUE and FALSE, or YES and NO, or T
and F, or Y and N, or 0 and 1.

STRING: Any string up to 3990 characters.

PHONE: Valid phone number up to 80 characters. The system has two


predefined attributes; Phone 1 and Phone 2, for specifying the phone
number. Use this to specify an alternate phone number. When you add a
phone attribute, POM adds 2 child attributes, xxx_ctry_code and xxx_tz,
where xxx is name of the phone attribute.

EMAIL: Any string up to 80 characters.

DATE: Date in the valid format.


Note:
The date format must match the date part specified in the Global Date Format
field on the Manage Global Configuration page under POM Home >
Configurations > Global Configurations.

For example, to specify a custom attribute, Date_Of_Birth, then use the Date
data type.

TIME: Time in the valid format.


Note:
The time format must match the time part specified in the Global Date Format
field on the Manage Global Configuration page under POM Home >
Configurations > Global Configurations.

For example, to specify a custom attribute, Delivery_Time, then use the Time
data type.

TIMESTAMP: Timestamp in the valid format.


Note:
The timestamp must match with the timestamp part specified in the Global
Date Format field on the Manage Global Configuration page under POM
Home > Configurations > Global Configurations.

For example, to specify a custom attribute, Schedule, then use the


Timestamp field.

Avaya Proactive Outreach Manager Developer Guide 303


Field name Description

If you specify the Global Date Format as DD-MM-YYYY hh:mm:ss, then the
valid date format considers DD-MM-YYYY, the valid time format considers
hh:mm:ss, and the valid timestamp considers DD:MM:YYYY hh:mm:ss.
attributeType Possible values are system or predefined.
displayName The display name of the contact attribute.
classPropertyName The class property name used in POJO internally by POM for contact
attribute.
masked The masked attribute not visible to agent. Returned true in case contact
attribute is not visible to agent.
readonly The contact attribute is not editable for logged in agent if true is returned.
sensitive Indicate if the attribute is private and for internal organization use only.
maskedForAllUsers The attribute is masked and not visible to users. Returned true in case
contact attribute is not visible to users.
Example
The example provided in this section is based on retrieving contact attribute details for ID 3.
HTTP: GET /VP_POM_Service/v4/contactattributes/3 HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"attributeID": "3",
"attributeName": "title_predefined",
"fileAttributeName": "titlepredefined",
"attributeDataType": "STRING",
"attributeType": "Predefined",
"displayName": "Title Predefined",
"classPropertyName": "titlePredefined",
"masked": false,
"readonly": false,
"sensitive": false,
"maskedForAllUsers": false
}
__________________________________________________________________________________________
Get Organization and Zone Mapping
GET / v4/orgzone

The API provides a list of organizations and zone mapping created on POM system.
URL
https://<EP Server IP>/VP_POM_Service/v4/orgzone

Parameters
path None
payload None

Avaya Proactive Outreach Manager Developer Guide 304


JSON response
Each organization item will have below fields:

Field name Description


organizationId The unique ID of organization created on POM system
name The name of organization
description Description provided for org.
lastupdate The last update time in milliseconds
zoneId The unique ID of zone created on POM system
version Not in use
name The name of zone
description EP unique zoneId identifier.
timeZone Time zone of the zone selected during zone creation.
status Status of zone on the POM system , 0– Not deleted, 1- Deleted

Example
The example provided in this section is based on retrieving list of organization and zone
mapping for each organization found on POM system.

GET /VP_POM_Service/v4/orgzone HTTP/1.1 Header:


Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
[
{
"organizationId": -1,
"name": "Default",
"description": null,
"lastupdate": null,
"zones": [
{
"zoneId": 2,
"version": "0",
"name": "TestZone2",
"description": "2",
"timeZone": "Asia/Kolkata",
"status": 0
},
{
"zoneId": -1,
"version": "0",
"name": "Default",
"description": "0",
"timeZone": "America/Los_Angeles",
"status": 0
},
{
"zoneId": 3,

Avaya Proactive Outreach Manager Developer Guide 305


"version": "0",
"name": "TestZone3",
"description": "3",
"timeZone": "Asia/Kolkata",
"status": 0
},
{
"zoneId": 1,
"version": "0",
"name": "TestZone1",
"description": "1",
"timeZone": "Asia/Kolkata",
"status": 0
}
]
},
{
"organizationId": 1,
"name": "Org1_Sales",
"description": "ORG",
"lastupdate": 1545663817215,
"zones": [
{
"zoneId": 1,
"version": "0",
"name": "TestZone1",
"description": "1",
"timeZone": "Asia/Kolkata",
"status": 0
},
{
"zoneId": 2,
"version": "0",
"name": "TestZone2",
"description": "2",
"timeZone": "Asia/Kolkata",
"status": 0
},
{
"zoneId": -1,
"version": "0",
"name": "Default",
"description": "0",
"timeZone": "America/Los_Angeles",
"status": 0
}
]
},
{
"organizationId": 3,
"name": "Org3_Deposit",
"description": "ORG",
"lastupdate": 1545663844808,
"zones": [
{
"zoneId": -1,
"version": "0",
"name": "Default",

Avaya Proactive Outreach Manager Developer Guide 306


"description": "0",
"timeZone": "America/Los_Angeles",
"status": 0
},
{
"zoneId": 1,
"version": "0",
"name": "TestZone1",
"description": "1",
"timeZone": "Asia/Kolkata",
"status": 0
},
{
"zoneId": 2,
"version": "0",
"name": "TestZone2",
"description": "2",
"timeZone": "Asia/Kolkata",
"status": 0
}
]
},
{
"organizationId": 4,
"name": "Org4_Test",
"description": "ORG",
"lastupdate": 1545663870777,
"zones": [
{
"zoneId": -1,
"version": "0",
"name": "Default",
"description": "0",
"timeZone": "America/Los_Angeles",
"status": 0
},
{
"zoneId": 1,
"version": "0",
"name": "TestZone1",
"description": "1",
"timeZone": "Asia/Kolkata",
"status": 0
},
{
"zoneId": 2,
"version": "0",
"name": "TestZone2",
"description": "2",
"timeZone": "Asia/Kolkata",
"status": 0
}
]
},
{
"organizationId": 5,
"name": "Org5_Loan",
"description": "ORG",

Avaya Proactive Outreach Manager Developer Guide 307


"lastupdate": 1545663913679,
"zones": [
{
"zoneId": 3,
"version": "0",
"name": "TestZone3",
"description": "3",
"timeZone": "Asia/Kolkata",
"status": 0
}
]
}
]

__________________________________________________________________________________________
Agent Group Authorization
GET /v4/agentGroups/authorization
The API retrives all authorization to logged in user for user group operations

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/authorization

Parameters
Path None
payload None

JSON response
Field name Description
viewAgentGroup True/False as per user access
createAgentGroup True/False as per user access
editAgentGroup True/False as per user access
deleteAgentGroup True/False as per user access
viewAgtGroupAssignment True/False as per user access
agentToGroupAssignment True/False as per user access
Example
The example provided in this section is for admin User.
HTTP: GET /VP_POM_Service/v4/agentGroups/authorization HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"viewAgentGroup": true,
"createAgentGroup": true,
"editAgentGroup": true,
"deleteAgentGroup": true,

Avaya Proactive Outreach Manager Developer Guide 308


"viewAgtGroupAssignment": true,
"agentToGroupAssignment": true
}

Get Agents Group


GET /v4/agentGroups
The API retrives all agent groups.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups

Parameters
Path None
payload None

JSON response
Field name Description
agentGroupId Agent Group ID
name Name of the Agent
orgId Organization Id of Agent
orgName Orgaanization name of Agent
description Description about Organization
Example
The example provided in this section is for admin User to retrive all agent groups.
HTTP: GET /VP_POM_Service/v4/agentGroups HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"agentGroupId": 11,
"name": "collection",
"orgId": 2,
"orgName": "sales",
"description": ""
},
{
"agentGroupId": 13,
"name": "AshuTest",
"orgId": 2,
"orgName": "sales",
"description": "Testing"
}
]

Avaya Proactive Outreach Manager Developer Guide 309


Get Agents Group By Page
GET /v4/agentGroups/page
The API will retrive all agent groups in sorted order with pagination.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/page

Parameters
Path None
payload None
Query
Parameter Required Description Data Type
pageSize No Default page size value is 10 int
contact records if not provided
in request.
pageNumber No Default page number value is 1 int
if not provided in request.
sortedBy Yes Values by which response String
should be sorted.
ValidValues: agentGroupId,
name, orgId, orgName,
description
sortDirection Yes Sorting of respose . Valid String
Values: ASC/DESC

JSON response
Field name Description
agentGroupId Agent Group ID
name Name of the Agent
orgId Organization Id of Agent
orgName Orgaanization name of Agent
description Description about Organization
Example
The example provided in this section is for admin User to retrive all agent groups in sorted
order with pagination.
.
HTTP: GET /VP_POM_Service/v4/agentGroups/page
?pageSize=10&pageNumber=1&sortedBy=name&sortDirection=DESC HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:

Avaya Proactive Outreach Manager Developer Guide 310


{
"agentGroupList": [
{
"agentGroupId": 11,
"name": "collection",
"orgId": 2,
"orgName": "sales",
"description": ""
},
{
"agentGroupId": 13,
"name": "AshuTest",
"orgId": 2,
"orgName": "sales",
"description": "Testing"
}
],
"totalPage": 1
}

Get Agents Group By Search and Sort Page


GET /v4/agentGroups/search/page
The API retrives all agent Groups with input search criteria along with sorting and pagination.
URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/search/page

Parameters
Path None
payload None
Query
Parameter Required Description Data Type
pageSize No Default page size value is 10 Int
contact records if not provided
in request.
pageNumber No Default page number value is 1 Int
if not provided in request.
sortedBy Yes Values by which response String
should be sorted.
ValidValues: agentGroupId,
name, orgId, orgName,
description
sortDirection Yes Sorting of respose . Valid String
Values: ASC/DESC
searchBy Yes Values by which response String
should be searched.
ValidValues: agentGroupId,
name, orgId, orgName,
description
searchOperator Yes Valid values in includes =, String
!=,in, like, notlike according to
data type of the provided
attribute.

Avaya Proactive Outreach Manager Developer Guide 311


searchValue Yes Any valid value according to String
selected search attribute.

JSON response
Field name Description
agentGroupId Agent Group ID
name Name of the Agent
orgId Organization Id of Agent
orgName Orgaanization name of Agent
description Description about Organization
Example
The example provided in this section is for admin User to retrive all agent Groups with input
search criteria along with sorting and pagination.
HTTP: GET /VP_POM_Service/v4/agentGroups/search/page
?pageSize=10&pageNumber=1&sortBy=name&sortDirection=DESC&searchBy=or
gName&searchOperator=contains&searchValue=sales HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"agentGroupList": [
{
"agentGroupId": 11,
"name": "collection",
"orgId": 2,
"orgName": "sales",
"description": ""
},
{
"agentGroupId": 13,
"name": "AshuTest",
"orgId": 2,
"orgName": "sales",
"description": "Testing"
}
],
"totalPage": 1
}

Add Agent Group


POST /v4/agentGroups
The API will add agent groups.
URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups

Avaya Proactive Outreach Manager Developer Guide 312


Parameters
Path None
payload None
Parameter Required Description Data Type
name true Name of the Agnet you want to add string
orgId true Organization id of which agent should be long
associated with
description true Description for the agent string

JSON response
Field name Description
pimAgentGroupId Agent Group ID
Example
The example provided in this section is for admin User to add agent groups.
HTTP: POST /VP_POM_Service/v4/agentGroups
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"name": "Testing123",
"orgId": 2,
"description": "Testing"
}

RESPONSE JSON:
{
"pimAgentGroupId": 14
}

Delete Agent Group


POST /v4/agentGroups/delete
The API will delete agent groups by passing group ID’s as an input.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/delete

Parameters

Avaya Proactive Outreach Manager Developer Guide 313


Path None
payload None
Parameter Required Description Data Type
agentGroupIdList true Array for Agent group ID to be deleted Long

JSON response
Field name Description
agentGroupId Group ID of agent.
errorCode Error Code if any,null in case of sucess
errorMessage Error Message for this Agent, null in case of sucess
isDeleted True/False as per if deletion was successful.
Example
The example provided in this section is for admin User to delete agent groups by passing group
ID’s as an input as agentGroupIdList as 21 and 22.
HTTP: POST /VP_POM_Service/v4/agentGroups
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"agentGroupIdList":["21","22"]
}

RESPONSE JSON:
{
"Testing1023": {
"agentGroupId": 21,
"errorCode": null,
"errorMessage": null,
"isDeleted": true
},
"Testing1123": {
"agentGroupId": 22,
"errorCode": null,
"errorMessage": null,
"isDeleted": true
}
}

Get Agent Group


GET /v4/agentGroups /{agentGroupId}
The API will retrive details of Agent Group

Avaya Proactive Outreach Manager Developer Guide 314


URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/{agentGroupId}

Parameters
Path
Parameter Required Description Data Type
agentGroupId Yes The unique identifier of existing long
Agent Group Id

payload None

JSON response
Field name Description
agentGroupId Group ID
name Name of Agent Group Id
orgId Organization id agent is associated with.
orgName Organization Name agent is associated with.
description Description of Agent Group
Example
The example provided in this section is for admin User to retrive details of Agent Group ID 11.
HTTP: GET /VP_POM_Service/v4/agentGroups/11
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"agentGroupId": 11,
"name": "POMTesting",
"orgId": 2,
"orgName": "sales",
"description": "Updating"
}

Update Agent Group


POST /v4/agentGroups/{agentGroupId}
The API will update details for any agent group

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/{agentGroupId}

Avaya Proactive Outreach Manager Developer Guide 315


Parameters
Payload
Parameter Required Description Data Type
name true Update name for Agent Group string
description true Update Description for Agent Group string

Path
Parameter Required Description Data Type
agentGroupId true Unique Agent Group ID which needs to be long
deleted.

JSON response
Field name Description
result True/False as if the updation was successful or failed.
Example
The example provided in this section is for admin User to update details for any agent group
ID 11.
HTTP: POST /VP_POM_Service/v4/agentGroups/11
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"name": "POMTesting",
"description": "Updating1452"
}

RESPONSE JSON:
{
"result": true
}

Get Agents for Agent Group


GET /v4/agentGroups/{agentGroupId}/agents
The API will get all the agents in perticular agent group.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/{agentGroupId}/agents

Avaya Proactive Outreach Manager Developer Guide 316


Parameters
Payload None
Path
Parameter Required Description Data Type
agentGroupId true Unique Agent Group ID which needs to be long
deleted.

JSON response
Field name Description
pimAgentId PIM Agent Id associated to this agent
agentId Unique Agent Id for the agent
agentName Agent Name
organizationName Organizations agent is associated with
Example
The example provided in this section is for admin User to get all the agents in perticular agent
group with ID 1.
HTTP: GET /VP_POM_Service/v4/agentGroups/1/agents
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"pimAgentId": 163,
"agentId": "1510",
"agentName": "pjangale",
"organizationName": [
"Default",
"sales"
]
}
]

Add Agents to Group Association


POST /v4/agentGroups/{agentGroupId}/agents
The API is to Add agent Group’s to Association

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/{agentGroupId}/agents

Avaya Proactive Outreach Manager Developer Guide 317


Parameters
Payload
Parameter Required Description Data Type
pimAgentIdList true PIM Agent Id’s to br added to the group Long

Path
Parameter Required Description Data Type
agentGroupId true Unique Agent Group ID which needs to be Long
deleted.

JSON response
Field name Description
pimAgentId Pim agent ID of agent.
status Status code ADDED/ ADDFAILED for success and failure.
errorCode Error Code in case of ADDFAILED
errorMessage Error Message in case of ADDFAILED
Example
The example provided in this section is for admin User to Add agent Group’s to Association
with ID 11.
HTTP: POST /VP_POM_Service/v4/agentGroups/11/agents
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"pimAgentIdList":["480"]
}

RESPONSE JSON:
{
"20000-multiCMAgt": {
"pimAgentId": "480",
"status": "ADDED",
"errorCode": null,
"errorMessage": null
}
}

Delete Agents to Group Association


POST /v4/agentGroups/{agentGroupId}/agents/remove

Avaya Proactive Outreach Manager Developer Guide 318


The API is to delete agent Group’s to Association

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/{agentGroupId}/agents/remove

Parameters
Payload
Parameter Required Description Data Type
pimAgentIdList true PIM Agent Id’s to be deleted from group Long

Path
Parameter Required Description Data Type
agentGroupId true Unique Agent Group ID which needs to be Long
deleted.

JSON response
Field name Description
pimAgentId Pim agent ID of agent.
status Status code REMOVED/ REMOVEFAILED for success and failure.
errorCode Error Code in case of REMOVEFAILED
errorMessage Error Message in case of REMOVEFAILED
Example
The example provided in this section is for admin User to delete agent Group’s to Associations
with ID 11.
HTTP: POST /VP_POM_Service/v4/agentGroups/11/agents/remove
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"pimAgentIdList":["480"]
}

RESPONSE JSON:
{
"20000-multiCMAgt": {
"pimAgentId": "480",
"status": "REMOVED",
"errorCode": null,
"errorMessage": null

Avaya Proactive Outreach Manager Developer Guide 319


}
}

Get Agent Group For Organization


GET /v4/agentGroups/organizations/{organizationId}
The API will get agent group’s under any organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/organizations/{organizationId}

Parameters
Payload None
Path
Parameter Required Description Data Type
organizationId true Organization ID for which group’s should Long
be retrived.

JSON response
Field name Description
agentGroupId Unique Agent Group ID no.
name Agent Group Name details.
orgId Organization ID associated with group
orgName Organization name
description Organization description
Example
The example provided in this section is for admin User to get agent group’s under any
organization with ID 2.
HTTP: GET /VP_POM_Service/v4/agentGroups/organizations/2
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"agentGroupId": 13,
"name": "AshuTest",
"orgId": 2,
"orgName": "sales",
"description": "Testing"
},
{

Avaya Proactive Outreach Manager Developer Guide 320


"agentGroupId": 11,
"name": "POMTesting",
"orgId": 2,
"orgName": "sales",
"description": "Updating"
}
]

Get Agent Group For User


GET /v4/agentGroups/users/{pimUserId}
The API will get agent group’s associated with input user id.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/users/{pimUserId}

Parameters
Payload None
Path
Parameter Required Description Data Type
pimUserId true Pim User ID of user Long

JSON response
Field name Description
agentGroupId Unique Agent Group ID no.
name Agent Group Name details.
orgId Organization ID associated with group
orgName Organization name
description Organization description
Example
The example provided in this section is for admin User to get agent group’s associated with
input user id as 7.
HTTP: GET /VP_POM_Service/v4/agentGroups/users/7
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"agentGroupId": 13,
"name": "AshuTest",
"orgId": 2,

Avaya Proactive Outreach Manager Developer Guide 321


"orgName": "sales",
"description": "Testing"
},
{
"agentGroupId": 11,
"name": "POMTesting",
"orgId": 2,
"orgName": "sales",
"description": "Updating"
}
]

Add Agent Group To User Association


POST /v4/agentGroups/users/{pimUserId}/groups
The API is to Add all agent groups to user id provided as input.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/users/{pimUserId}/groups

Parameters
Payload
Parameter Required Description Data Type
agentGroupIdList true List of Agrnt Groups to be added Long
Path
Parameter Required Description Data Type
pimUserId true Pim User ID of user Long

JSON response
Field name Description
agentGroupId Agent Group Id
status Unique Agent Group ID no.
errorCode Agent Group Name details.
errorMessage Organization ID associated with group
Example
The example provided in this section is for admin User to Add all agent groups to user id
provided as input 7.
HTTP: POST /VP_POM_Service/v4/agentGroups/users/7/groups
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:

Avaya Proactive Outreach Manager Developer Guide 322


{
"agentGroupIdList":["13","15"]
}

RESPONSE JSON:
{
"AshuTest": {
"status": "ADDED",
"errorCode": null,
"errorMessage": null,
"agentGroupId": "13"
},
"NEWGroup": {
"status": "ADDED",
"errorCode": null,
"errorMessage": null,
"agentGroupId": "15"
}
}

Remove Agent Group From User Association


POST /v4/agentGroups/users/{pimUserId}/groups/remove
This API will remove all the agent Group Id’s from User.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/users/{pimUserId}/groups/
remove

Parameters
Payload
Parameter Required Description Data Type
agentGroupIdList true List of Agrnt Groups to be added Long
Path
Parameter Required Description Data Type
pimUserId true Pim User ID of user Long

JSON response
Field name Description
agentGroupId Agent Group Id
status Status code REMOVED/ REMOVEFAILED for success and failure.
errorCode Error Code in case of REMOVEFAILED
errorMessage Error Message in case of REMOVEFAILED
Example

Avaya Proactive Outreach Manager Developer Guide 323


The example provided in this section is for admin User to remove all the agent Group Id’s from
User with ID 7.
HTTP: POST /VP_POM_Service/v4/agentGroups/users/7/groups/remove
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"agentGroupIdList":["15"]
}

RESPONSE JSON:
{
"NEWGroup": {
"status": "REMOVED",
"errorCode": null,
"errorMessage": null,
"agentGroupId": "15"
}
}

Get Agent Group Configuration Param


GET /v4/agentGroups/config_parameters
This API will fetch configured params for agent group.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/config_parameters

Parameters
Payload None
Path None

JSON response
Field name Description
MaxAllowedAgentGroups Max agent groups allowed in Organization
MaxAllowedAgentsPerGroup Max Agents allowed in any Agent Group
Example
The example provided in this section is for admin User to fetch configured params for agent
group.
HTTP: GET /VP_POM_Service/v4/agentGroups/config_parameters

Avaya Proactive Outreach Manager Developer Guide 324


HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"MaxAllowedAgentGroups": "500",
"MaxAllowedAgentsPerGroup": "500"
}

Get Agent List


GET /v4/agentGroups/agents
The API will retrive all agent ID’s with logged in user’s and its associated organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/agents

Parameters
Payload None
Path None

JSON response
Field name Description
agtIdList List of all the Agent ID,s.
Example
The example provided in this section is for Supervisor User to retrive all agent ID’s with logged
in user’s and its associated organization.
HTTP: GET /VP_POM_Service/v4/agentGroups/agents
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"agtIdList": [
"20012"
]
}

Avaya Proactive Outreach Manager Developer Guide 325


Get Authorization Details
GET /v4/agents/authorization
The API will get authorization details for different operations for current user.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/authorization

Parameters
Payload None
Path None

JSON response
Field name Description
viewAgent Agent View Opertaion
addAgent Add Agent Opertaion authorization
deleteAgent Delete Agent Opertaion authorization
importAgent Import Agent Opertaion authorization
agentToOrgAssignment Agent Assignment Opertaion authorization

Example
The example provided in this section is for admin User to get authorization details for different
operations for current user.
HTTP: GET /VP_POM_Service/v4/agents/authorization HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"viewAgent": true,
"addAgent": true,
"deleteAgent": true,
"importAgent": true,
"agentToOrgAssignment": true
}

Get Agent Configuration PollingTime


GET /v4/agents/pollingTime
The API is to get the current time of server.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/pollingTime

Avaya Proactive Outreach Manager Developer Guide 326


Parameters
Payload None
Path None

JSON response
Returns current timestamp.

Example
The example provided in this section is for admin User to get the current time of server.
HTTP: POST /VP_POM_Service/v4/agents/pollingTime
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
1557770054786

Get Agents By Search Sort Page


GET /v4/agents/filtered
The API will get agents list with search criteria.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/filtered

Parameters
Payload None
Path None
Quary
Parameter Required Description Data Type
pageSize No Default page size value is 10 int
contact records if not provided
in request.
pageNumber No Default page number value is 1 int
if not provided in request.
sortBy Yes Valid Values: agentId, String
agentName,
organizationNames
sortDirection Yes Valid values include asc and String
desc .
searchBy Yes Valid Values: agentId, String
agentName,
organizationNames

Avaya Proactive Outreach Manager Developer Guide 327


searchOperator Yes Valid values in includes =, String
!=,in, like, notlike according to
data type of the provided
attribute.
searchValue Yes Any valid value according to String
selected search attribute.

JSON response
Field name Description
agentId Unique ID for each agent
agentName Agent Name foreach Agent
organizationNames Organization names associated with Agent
Example
The example provided in this section is for admin User to get agents list with search criteria.
HTTP: POST
/VP_POM_Service/v4/agents/filtered?sortBy=agentName&sortDirection=AS
C&searchBy=agentName&searchOperator=contains&searchValue=ent5
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"agentList": [
{
"agentId": "720552",
"agentName": "agent52",
"organizationNames": "Default"
},
{
"agentId": "720557",
"agentName": "agent57",
"organizationNames": "Default"
},
{
"agentId": "720558",
"agentName": "agent58",
"organizationNames": "Default"
},
{
"agentId": "720559",
"agentName": "agent59",
"organizationNames": "Default"
}
],
"totalPage": 1
} }

Avaya Proactive Outreach Manager Developer Guide 328


Get Agents
GET /v4/agents
The API is to get all the agents with details.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents

Parameters
Payload None
Path None

JSON response
Field name Description
pimAgentId Unique PIM Agent ID
agentId Unique ID for each agent.
agentName Agent Name foreach Agent
organizationName Organization names associated with Agent
Example
The example provided in this section is for admin User to get all the agents with details.
HTTP: GET /VP_POM_Service/v4/agents
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"pimAgentId": 487,
"agentId": "1200",
"agentName": "ldoshi1",
"organizationName": [
"Default"
]
},
{
"pimAgentId": 486,
"agentId": "1201",
"agentName": "Bharti agent1",
"organizationName": [
"Default"
]
}
]

Avaya Proactive Outreach Manager Developer Guide 329


Get Agent By ID
GET /v4/agents/{agent_id}
The API get agent details from Agent ID.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/{agent_id}

Parameters
Payload None
Path
Parameter Required Description Data Type
Agent_id true Agent ID Detail Long

JSON response
Field name Description
agentId Unique ID for each agent.
agentName Agent Name foreach Agent
organizationName Organization names associated with Agent
Example
The example provided in this section is for admin User to agent details from Agent ID 1200.
HTTP: GET /VP_POM_Service/v4/agents/1200
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"agentId": "1200",
"agentName": "ldoshi1",
"organizationName": [
"Default"
]
}

Add Agent
POST /v4/agents
The API is to Add an agent Group to Association

URL
https://<EP Server IP>/VP_POM_Service/v4/agents

Avaya Proactive Outreach Manager Developer Guide 330


Parameters
Payload
Parameter Required Description Data Type
agentId true Unique agent ID Long
agentName true Agent Name to be assigned
organizationName false Organization names to be associated with
agent
Path None

JSON response
Field name Description
agentId Unique Agent Group ID no.
status Status if call was sucessfull
errorCode Agent Group Name details.
errorMessage Organization ID associated with group
Example
The example provided in this section is for admin User to Add an agent Group to Association
with agentID 1963.
HTTP: POST /VP_POM_Service/v4/agents
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"agentId": "1963",
"agentName": "Ashutosh",
"organizationName": [
"sales"
]
}

RESPONSE JSON:
{
"agentId": "1963",
"status": true,
"errorCode": null,
"errorMessage": null
}

Delete Agent
POST /v4/agents/{agent_id}/delete
The API will delete agent given as path param.

Avaya Proactive Outreach Manager Developer Guide 331


URL
https://<EP Server IP>/VP_POM_Service/v4/agents/{agent_id}/delete

Parameters
Payload None
Path
Parameter Required Description Data Type
agent_id true Unique Agent ID Long

JSON response
Field name Description
agentId Agent Id given as input.
status Unique Agent Group ID no.
errorCode Agent Group Name details.
errorMessage Organization ID associated with group
Example
The example provided in this section is for admin User to delete agent given as path param for
agent ID 1200.
HTTP: POST /VP_POM_Service/v4/agents/1200/delete
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"agentId": "1200",
"status": true,
"errorCode": null,
"errorMessage": null
}
]

Delete Agents
POST /v4/agents/delete
The API will delete agent’s given as input list.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/delete

Parameters

Avaya Proactive Outreach Manager Developer Guide 332


Payload
Parameter Required Description Data Type
agtIdList true List of Unique agent ID’s String

Path None

JSON response
Field name Description
agentId Agent Id given as input.
status Unique Agent Group ID no.
errorCode Agent Group Name details.
errorMessage Organization ID associated with group
Example
The example provided in this section is for admin User to delete agent’s given as input list with
agent ID 1201.
HTTP: POST /VP_POM_Service/v4/agents/delete
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
agtIdList:["1201"]
}

RESPONSE JSON:
[
{
"agentId": "1201",
"status": true,
"errorCode": null,
"errorMessage": null
}
]

Get AACC Outbound Skills


GET /v4/agents/skills/outbound/aacc
The API is to get AACC outbound skills configured in the system.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/skills/outbound/aacc

Parameters

Avaya Proactive Outreach Manager Developer Guide 333


Payload None
Path None

JSON response
Field name Description
skillId Skill ID of AACC
skillMapId Skill Mapping ID
skillName Skill Name
Example
The example provided in this section is for admin User to get AACC outbound skills configured
in the system.
HTTP: GET /VP_POM_Service/v4/agents/skills/outbound/aacc
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"skillId": "10001",
"skillMapId": "",
"skillName": "PO_CreditCard"
},
{
"skillId": "9985",
"skillMapId": "",
"skillName": "PO_Default_Skillset"
},
{
"skillId": "10002",
"skillMapId": "",
"skillName": "PO_Collection"
}
]

Get Organization Agents


GET /v4/agents/organizations/{organizationId}
The API is to get the agents in an organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/organizations/{organizationId}

Parameters
Payload None
Path

Avaya Proactive Outreach Manager Developer Guide 334


Parameter Required Description Data Type
organizationId true Organization ID for which agents to be integer
fetched

JSON response
Field name Description
pimAgentId Unique PIM Agent ID
agentId Unique ID for each agent.
agentName Agent Name foreach Agent
organizationName Organization names associated with Agent
Example
The example provided in this section is for admin User to get the agents in an organization with
ID 2.
HTTP: GET /VP_POM_Service/v4/agents/organizations/2
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"pimAgentId": 377,
"agentId": "145263",
"agentName": "Ashutosh",
"organizationName": [
"sales"
]
},
{
"pimAgentId": 376,
"agentId": "1510",
"agentName": "Jangale",
"organizationName": [
"sales"
]
},
{
"pimAgentId": 415,
"agentId": "1513",
"agentName": "Prakash Rungta",
"organizationName": [
"sales"
]
}
]

Avaya Proactive Outreach Manager Developer Guide 335


Add Organization Agents
POST /v4/agents/organizations/{organizationId}
The API is to Add agent to an organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/organizations/{organizationId}

Parameters
Payload
Parameter Required Description Data Type
pimAgentIdList true Array of PIM Agent ID to be added Integer
Path
Parameter Required Description Data Type
organizationId true Organization ID for which agents to be integer
fetched

JSON response
Field name Description
status Status ADDED if call was sucessfull
errorCode Error Code in case of failure.
errorMessage Error Message in case of failure.
Example
The example provided in this section is for admin User to Add agent to an organization with ID
2.
HTTP: POST /VP_POM_Service/v4/agents/organizations/2
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"pimAgentIdList":["375"]
}

RESPONSE JSON:
{
"720551-PJangale": {
"pimAgentId": "375",
"status": "ADDED",
"errorCode": null,
"errorMessage": null
}

Avaya Proactive Outreach Manager Developer Guide 336


}

Remove Organization Agents


POST /v4/agents/organizations/{organizationId}
The API is to remove from organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/organizations/{organizationId}/
remove

Parameters
Payload
Parameter Required Description Data Type
pimAgentIdList true Array of PIM Agent ID to be added Integer
Path
Parameter Required Description Data Type
organizationId true Organization ID for which agents to be integer
fetched

JSON response
Field name Description
status Status REMOVED if call was sucessfull
errorCode Error Code in case of failure.
errorMessage Error Message in case of failure.
Example
The example provided in this section is for admin User to remove from organization ID 2.
HTTP: POST /VP_POM_Service/v4/agents/organizations/2/remove
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"pimAgentIdList":["375"]
}

RESPONSE JSON:
{
"720551-PJangale": {
"pimAgentId": "375",
"status": "REMOVED",

Avaya Proactive Outreach Manager Developer Guide 337


"errorCode": null,
"errorMessage": null
}
}

Import Agents From AACC


POST /v4/agents/import/aacc
This API imports the skills from AACC in background once web service is executed.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/import/aacc

Parameters
Payload
Parameter Required Description Data Type
skillList true Array of Skills to be imported String
Path None

JSON response
Field name Description
status Status if call was sucessfull

Example
The example provided in this section is for admin User to import the skills from AACC in
background once web service is executed with skills 1425 and 5247.
HTTP: POST /VP_POM_Service/v4/agents/import/aacc
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"skillList":["1425","5247"]
}

RESPONSE JSON:
{
"result": true
}

Avaya Proactive Outreach Manager Developer Guide 338


Import Agents From CCelite
POST /v4/agents/import/ccelite
This API imports the skills from CCelite.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/import/ccelite

Parameters
Payload
Parameter Required Description Data Type
skillList true Array of Skills to be imported String
Path None

JSON response
Field name Description
status Status if call was sucessfull
Example
The example provided in this section is for admin User to import the skills from CCelite with
skill 1405 and 5007.
.
HTTP: POST /VP_POM_Service/v4/agents/import/ccelite
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"skillList":["1405","5007"]
}

RESPONSE JSON:
{
"result": true
}

Get Import Agents Status


GET /v4/agents/import/status
This API will fetch the last import service status,(AACC/CCelite)

URL
Avaya Proactive Outreach Manager Developer Guide 339
https://<EP Server IP>/VP_POM_Service/v4/agents/import/status

Parameters
Payload None
Path None

JSON response
Field name Description
userName Username which logged in to initiate the import like admin
importType Import type (AACC/CCelite)
status Status of last import
statusString Imported and failed count after import
errorCode Error code if call failed.
errorMessage Error Message in case of failed status
userNameWithOrganization User name with organization
Example
The example provided in this section is for admin User to fetch the last import service
status,(AACC/CCelite).
HTTP: GET /VP_POM_Service/v4/agents/import/status
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"userName": "admin",
"importType": "AACC",
"status": "COMPLETED",
"statusString": "Imported: 3, Failed: 0 ",
"errorCode": null,
"errorMessage": null,
"userNameWithOrganization": "_admin"
}

Get Import Details


GET /v4/agents/import/details
This API will fetch details of agents imported.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/import/details

Parameters
Payload None

Avaya Proactive Outreach Manager Developer Guide 340


Path None

JSON response
Field name Description
agentId Agent ID imported.
status Status of last import
errorCode Error code if call failed.
errorMessage Error Message in case of failed status
Example
The example provided in this section is for admin User to fetch details of agents imported.
HTTP: GET /VP_POM_Service/v4/agents/import/details
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"agentId": "20059",
"status": true,
"errorCode": null,
"errorMessage": null
},
{
"agentId": "20058",
"status": true,
"errorCode": null,
"errorMessage": null
},
{
"agentId": "20057",
"status": true,
"errorCode": null,
"errorMessage": null
}]

Stop Import
POST /v4/agents/import/stop
This API will used to stop agent import.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/import/stop

Parameters
Payload None

Avaya Proactive Outreach Manager Developer Guide 341


Path None

JSON response
Field name Description
status Status if stop import was successful of not.
Example
The example provided in this section is for admin User to to stop agent import.
HTTP: POST /VP_POM_Service/v4/agents/import/stop
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"result": true
}

Upload File To Import Agents


POST /v4/agents/import/uploadfile
This API imports Agents from file uploaded by user.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/import/uploadfile

Parameters
Payload
Parameter Required Description Data Type
uploadedCSVFile true File select to be uploaded MultipartFormDataInput
Path None

JSON response
Field name Description
status Status if call was sucessfull
Example
The example provided in this section is for admin User to import Agents from file uploaded by
user.
HTTP: POST /VP_POM_Service/v4/agents/import/uploadfile
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: multipart/form-data

Avaya Proactive Outreach Manager Developer Guide 342


X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"result": true
}

Refresh Skills for All Agents


POST /v4/refreshskills/all?supervisor={supervisor_name}

This API is to be used only in CCElite mode. The API refreshes skills of all agents belonging to the
organization of logged in user.
If supervisor name is provided in the API, then skills of logged in agents under that supervisor user are
refreshed.
Skills of agents under supervisor can be refreshed only if supervisor feature is enabled. Else,
exception is thrown.

If admin invokes this API without supervisor name, then skills of all logged in agents will be refreshed.

For this API, JSON body will be ignored.

URL
https://<EP Server
IP>/VP_POM_Service/v4/refreshskills/all?supervisor={supervisor_name}

Parameters
path None
payload None

Query
Parameter Required Description DataType
supervisor No Name of supervisor String

JSON response
List of items zoneStatusMap is returned, each item has fields listed below:
Field name Description
zoneId The Unique identifier of the zone
status Status of agent skill refresh for that particular zone
Example
The example provided in this section is based on the admin user.
HTTP: POST /VP_POM_Service/v4/refreshskills/all HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest

Avaya Proactive Outreach Manager Developer Guide 343


Cache-Control: no-cache

RESPONSE JSON:
[{"zoneId": -1,"status": "Success"},{"zoneId": 1,"status": "Failure"},{"zoneId":
2,"status": "No Active agents found"}]

Refresh Skills for Set of Agents


POST /v4/refreshskills/agents

This API is to be used only in CCElite mode. The API refreshes skills of the logged in agents given in
payload, provided the agents belong to logged in user.

URL
https://<EP Server IP>/VP_POM_Service/v4/refreshskills/agents

Parameters
path None
query None

Payload
Parameter Required Description Data
Type
agentIDs Yes List of agent IDs List
Example
The example provided in this section is based on the admin user.
HTTP: POST /VP_POM_Service/v4/refreshskills/agents HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

REQUEST JSON:
{“agentIDs” : [1,2]}

RESPONSE JSON:
[{"zoneId": -1,"status": "Success"},{"zoneId": 1,"status": "Failure"},{"zoneId":
2,"status": "No Active agents found"}]

Upload File To Import Agents From Local


POST /v4/agents/import/localfile
This API imports Agents from file placed in POM server. User have to give path and this web
service will import the agents.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/import/localfile

Parameters
Avaya Proactive Outreach Manager Developer Guide 344
Payload
Parameter Required Description Data Type
path true Path of server where file is placed String
Path None

JSON response
Field name Description
status Status if call was sucessfull
Example
The example provided in this section is for admin User to import Agents from file placed in
POM server. User have given path "/Ashu/AgentData.csv" and this web service will import the
agents.
HTTP: POST /VP_POM_Service/v4/agents/import/localfile
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"path":"/Ashu/AgentData.csv"
}

RESPONSE JSON:
{
"result": true
}

Get Connector Mode


GET /v4/agents/import/connectormode
This API will return POM installation mode.

URL
https://<EP Server IP>/VP_POM_Service/v4/agents/import/connectormode

Parameters
Payload None
Path None

JSON response
Field name Description
connectorMode Status if call was sucessfull

Avaya Proactive Outreach Manager Developer Guide 345


Example
The example provided in this section is for admin User to get POM installation mode.
HTTP: GET /VP_POM_Service/v4/agents/import/connectormode
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"connectorMode": "AACC"
}

Get Users
GET /v4/users
The API will fetch all the Users.

URL
https://<EP Server IP>/VP_POM_Service/v4/users

Parameters
Payload None
Path None

JSON response
Field name Description
pimUserId Pim User ID of users
userName User Name.
orgName Organization name user associated with.
Example
The example provided in this section is for admin User to fetch all the Users.
HTTP: GET /VP_POM_Service/v4/users
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:

Avaya Proactive Outreach Manager Developer Guide 346


[
{
"pimUserId": 1,
"userName": "admin",
"orgName": ""
},
{
"pimUserId": 2,
"userName": "epadmin",
"orgName": ""
},
{
"pimUserId": 3,
"userName": "init",
"orgName": ""
},
{
"pimUserId": 4,
"userName": "pomadmin",
"orgName": ""
},
{
"pimUserId": 5,
"userName": "supUser",
"orgName": ""
},
{
"pimUserId": 13,
"userName": "test",
"orgName": ""
}
]

Get Users For Organization


GET /v4/users/organizations/{organizationId}
The API is to get users assigned to an organization by the provided Organization Id.

URL
https://<EP Server IP>/VP_POM_Service/v4/users/organizations/{organizationId}

Parameters
Payload None
Path
Parameter Required Description Data Type
organizationId true Organization ID for which agents to be integer
fetched

JSON response
Field name Description
pimUserId Pim User Id

Avaya Proactive Outreach Manager Developer Guide 347


Field name Description
userName User Name of the user
orgName Organization name user associated with.
Example
The example provided in this section is for admin User to get users assigned to an organization
by the provided Organization Id with ID 2.
HTTP: GET /VP_POM_Service/v4/users/organizations/2
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"pimUserId": 7,
"userName": "sales/orgsup",
"orgName": "sales"
},
{
"pimUserId": 10,
"userName": "sales/sup1",
"orgName": "sales"
},
{
"pimUserId": 11,
"userName": "sales/sup2",
"orgName": "sales"
}
]

Get Supervisor Role


GET /v4/users/supervisorRole
The API is to get supervisor role users.

URL
https://<EP Server IP>/VP_POM_Service/v4/users/supervisorRole

Parameters
Payload None
Path None

JSON response
Field name Description
pimUserId Pim User Id

Avaya Proactive Outreach Manager Developer Guide 348


Field name Description
userName User Name of the user
orgName Organization name user associated with.
Example
The example provided in this section is for admin User to get supervisor role users.
HTTP: GET /VP_POM_Service/v4/users/supervisorRole
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
[
{
"pimUserId": 5,
"userName": "supUser",
"orgName": ""
},
{
"pimUserId": 13,
"userName": "test",
"orgName": ""
}
]

Get Purge List


GET /v4/purge/list
The API gets the list of purge configurations of the organization to which the logged in user
belongs.
If the logged in user is Admin user, list of purge configurations of default organization are
returned.

URL
https://<EP Server IP>/VP_POM_Service/v4/purge/list

Parameters
Payload None
Path None

JSON response
Field name Description
purgeList List of purge configurations
purgeName Name of the purge
filePath Path of the file to be purged

Avaya Proactive Outreach Manager Developer Guide 349


Field name Description
retentionPeriod No.of days after which data should be purged
Enabled Boolean to specify if purge is enabled or disabled
configurableForOrgs Boolean to specify if a purge is configurable for organizations
purgeHours Hour value at which data will be purged
purgeMins Minute value at which data will be purged
purgeSecs Second value at which data will be purge
orgId Organization ID
updateRules Boolean indicating if rules with duration greater than Campaign And
Agent Data retention period are enabled or disabled

Example
HTTP: GET /VP_POM_Service/v4/purge/list
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"purgeList": [
{
"purgeName": "ContactList_Import_Files",
"filePath": "/contactlistimport",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Export_Files",
"filePath": "/export",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "DNCImport_Files",
"filePath": "/dncimport",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Splitter_Files",
"filePath": "/splitter",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Campaign_And_Agent_Data",

Avaya Proactive Outreach Manager Developer Guide 350


"filePath": "",
"retentionPeriod": 90,
"enabled": true,
"configurableForOrgs": false
},
{
"purgeName": "Database_Entries_Of_Import",
"filePath": "",
"retentionPeriod": 90,
"enabled": true,
"configurableForOrgs": false
}
],
"purgeHours": 0,
"purgeMins": 0,
"purgeSecs": 0,
"orgId": -1,
"updateRules": false
}

Get Purge List For Organization


GET /v4/purge/list/{org_id}
The API gets the list of purge configurations of a particular organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/purge/list/{org_id}

Parameters
Path
Parameter Required Description Data Type
org_id Yes ID of the organization Int

JSON response
Field name Description
purgeList List of purge configurations
purgeName Name of the purge
filePath Path of the file to be purged
retentionPeriod No.of days after which data should be purged
enabled Boolean to specify if purge is enabled or disabled
configurableForOrgs Boolean to specify if a purge is configurable for organizations
purgeHours Hour value at which data will be purged
purgeMins Minute value at which data will be purged
purgeSecs Second value at which data will be purge
orgId Organization ID
updateRules Boolean indicating if rules with duration greater than Campaign And
Agent Data retention period are enabled or disabled

Avaya Proactive Outreach Manager Developer Guide 351


Example
HTTP: GET /VP_POM_Service/v4/purge/list/1
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"purgeList": [
{
"purgeName": "ContactList_Import_Files",
"filePath": "/contactlistimport",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Export_Files",
"filePath": "/export",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "DNCImport_Files",
"filePath": "/dncimport",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Splitter_Files",
"filePath": "/splitter",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Campaign_And_Agent_Data",
"filePath": "",
"retentionPeriod": 90,
"enabled": true,
"configurableForOrgs": false
},
{
"purgeName": "Database_Entries_Of_Import",
"filePath": "",
"retentionPeriod": 90,
"enabled": true,
"configurableForOrgs": false
}
],

Avaya Proactive Outreach Manager Developer Guide 352


"purgeHours": 0,
"purgeMins": 0,
"purgeSecs": 0,
"orgId": 1,
"updateRules": false
}

Get Purge Definitions


GET /v4/purge/definitions
The API gets the details of configured purge definitions.

URL
https://<EP Server IP>/VP_POM_Service/v4/purge/definitions

Parameters
Payload None
Path None

JSON response
Field name Description
purgeDefId ID of purge definition
purgeName Name of the purge
filePath Path of the file to be purged
configurableForOrgs Holds Boolean value, true if a purge is configurable by organization
admins, false if only super admin is allowed to configure
applyToAllOrgs Holds Boolean value, true if is applicable for all organizations, false
otherwise. If set to true, new organizations getting created will be able
to configure this purge specific to the organization.
defaultRetention Default value for retention period

Example
HTTP: GET /VP_POM_Service/v4/purge/definitions
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"purgeList": [
{
"purgeDefId": 1,
"purgeName": "Campaign_And_Agent_Data",
"filePath": "",

Avaya Proactive Outreach Manager Developer Guide 353


"configurableForOrgs": false,
"applyToAllOrgs": true,
"defaultRetention": 90
},
{
"purgeDefId": 2,
"purgeName": "Database_Entries_Of_Import",
"filePath": "",
"configurableForOrgs": false,
"applyToAllOrgs": true,
"defaultRetention": 90
},
{
"purgeDefId": 3,
"purgeName": "ContactList_Import_Files",
"filePath": "/contactlistimport",
"configurableForOrgs": true,
"applyToAllOrgs": true,
"defaultRetention": 7
},
{
"purgeDefId": 4,
"purgeName": "Export_Files",
"filePath": "/export",
"configurableForOrgs": true,
"applyToAllOrgs": true,
"defaultRetention": 7
},
{
"purgeDefId": 5,
"purgeName": "DNCImport_Files",
"filePath": "/dncimport",
"configurableForOrgs": true,
"applyToAllOrgs": true,
"defaultRetention": 7
},
{
"purgeDefId": 6,
"purgeName": "Splitter_Files",
"filePath": "/splitter",
"configurableForOrgs": true,
"applyToAllOrgs": true,
"defaultRetention": 7
}
]
}

Update Purge Configurations


POST /v4/purge/update
The API updates the purge configurations.

URL
https://<EP Server IP>/VP_POM_Service/v4/purge/update

Avaya Proactive Outreach Manager Developer Guide 354


Parameters
Path None

Payload
Parameter Required Description Data Type
purgeList Yes List of purge configurations Set
purgeName Yes Name of the purge. String
Default purges available are:
ContactList_Import_Files,
Export_Files,
DNCImport_Files,
Splitter_Files,
Database_Entries_Of_Import,
Campaign_And_Agent_Data

retentionPeriod Yes No.of days after which data Int


should be purged

filePath No Path of the file to be purged String


Enabled No Boolean to specify if purge is boolean
enabled or disabled
configurableForOrgs No Boolean to specify if a purge is boolean
configurable for organizations
purgeHours Yes Hour value at which data will be Integer
purged
purgeMins Yes Minute value at which data will Integer
be purged
purgeSecs Yes Second value at which data will Integer
be purge
orgId Yes Organization ID Integer
updateRules No Boolean to specify if rules with Boolean
duration greater than
Campaign And Agent Data
retention period should be
disabled or not

Note:
Parameters purgeName, filePath, configurableForOrgs are not modifiable.New values if
provided for these parameters will be discarded. Organization user cannot update
retentionPeriod and enabled parameters of the purges for which configurableForOrgs flag is
false.
For parameters having int data type, if single digit value is to be given , valid format is: 1 and
not 01 (leading zeros not allowed).

JSON response
Avaya Proactive Outreach Manager Developer Guide 355
Field name Description
booleanResponse Success

Example
HTTP: POST /VP_POM_Service/v4/purge/update
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"purgeList": [
{
"purgeName": "ContactList_Import_Files",
"filePath": "/contactlistimport",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Export_Files",
"filePath": "/export",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "DNCImport_Files",
"filePath": "/dncimport",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Splitter_Files",
"filePath": "/splitter",
"retentionPeriod": 7,
"enabled": true,
"configurableForOrgs": true
},
{
"purgeName": "Campaign_And_Agent_Data",
"filePath": "",
"retentionPeriod": 100,
"enabled": true,
"configurableForOrgs": false
},
{
"purgeName": "Database_Entries_Of_Import",
"filePath": "",
"retentionPeriod": 105,

Avaya Proactive Outreach Manager Developer Guide 356


"enabled": true,
"configurableForOrgs": false
}
],
"purgeHours": 10,
"purgeMins": 9,
"purgeSecs": 8,
"orgId": -1,
"updateRules": false
}

RESPONSE JSON:
{
"booleanResponse": true
}

Purge Data Now


POST /v4/purge/purgeNow
The API will execute purging of data specified in the payload according to rentention period
immediately.

URL
https://<EP Server IP>/VP_POM_Service/v4/purge/purgeNow

Parameters
Path None

Payload
Parameter Required Description Data Type
purgeList Yes List of purge configurations Set
purgeName Yes Name of the purge. String
Default purges available are:
ContactList_Import_Files,
Export_Files,
DNCImport_Files,
Splitter_Files,
Database_Entries_Of_Import,
Campaign_And_Agent_Data

retentionPeriod Yes No.of days after which data int


should be purged

orgId Yes Organization ID Integer


updateRules No Boolean to specify if rules with Boolean
duration greater than
Campaign And Agent Data
retention period should be
disabled or not

Avaya Proactive Outreach Manager Developer Guide 357


Note:
For parameters having int data type, if single digit value is to be given , valid format is: 1 and
not 01 (leading zeros not allowed).

JSON response
Field name Description
booleanResponse Success

Example
HTTP: POST /VP_POM_Service/v4/purge/purgeNow
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

REQUEST JSON:
{
"purgeList": [
{
"purgeName": "Campaign_And_Agent_Data",
"retentionPeriod": 10
}
],

"orgId": -1,
"updateRules": false
}

RESPONSE JSON:
{
"booleanResponse": true
}

Get Monitor Authorities


GET /v4/Supervisor/getAuthorities
The API provides list of monitor authorities for the Supervisor.

URL
https://<EP Server IP>/VP_POM_Service/v4/Supervisor/getAuthorities

Payload - None

Avaya Proactive Outreach Manager Developer Guide 358


JSON response
Field name Description
releaseFromOutbound Returns true if is authorized to release Agent from Outbound
moveToJob Returns true if is authorized to move Agent to another Job
stopDataImport Returns true if is authorized to stop Data Import.
resumeJob Returns true if is authorized to resume the Job
viewLicense Returns true if is authorized to view License Information
viewZoneConfig Returns true if is authorized to view Zone Configuration
stopDncDataImport Returns true if is authorized to stop Dnc Data Import
pauseDncDataImport Returns true if is authorized to pause Dnc Data Import
pauseDataImport Returns true if is authorized to pause Data Import
viewAgentView Returns true if is authorized to view Agent Information
pauseJob Returns true if is authorized to pause the Job
viewDataImport Returns true if is authorized to view Data Import
changeZoneConfig Returns true if is authorized to change Zone Configuration
stopJob Returns true if is authorized to stop the Job
goBreak Returns true if is authorized to Forced Break
viewInboundSkills Returns true if is authorized to view Inbound Skills Information.
resumeDncDataImport Returns true if is authorized to resume Dnc Data Import
viewJobs Returns true if is authorized to view the Jobs
viewDncDataImport Returns true if is authorized to view Dnc Data Import
goLogoff Returns true if is authorized to Forced Logout the Agent
resumeDataImport Returns true if is authorized to resume Data Import

Example
HTTP: GET /VP_POM_Service/v4/Supervisor/getAuthorities HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"releaseFromOutbound": true,
"moveToJob": true,
"stopDataImport": true,
"resumeJob": true,
"viewLicense": true,
"viewZoneConfig": true,
"stopDncDataImport": true,
"pauseDncDataImport": true,
"pauseDataImport": true,
"viewAgentView": true,
"pauseJob": true,
"viewDataImport": true,
"changeZoneConfig": true,
"stopJob": true,
"goBreak": true,

Avaya Proactive Outreach Manager Developer Guide 359


"viewInboundSkills": true,
"resumeDncDataImport": true,
"viewJobs": true,
"viewDncDataImport": true,
"goLogoff": true,
"resumeDataImport": true
}

Get List of Agents assigned to the Supervisor

GET /v4/Supervisor/assignedAgents
This API returns list of agentIds that are configured for the logged in supervisor.

URL
https://<EP Server IP>/VP_POM_Service/v4/Supervisor/assignedAgents

Payload - None

JSON response
Field name Description
showAllAgents True will ensure that user has administrator / deptadministrator role , so
supervisor is allowed to see all agents.
agentIds List of agentIds that supervisor is allowed to monitor/perform operations.

Example
HTTP: GET /VP_POM_Service/v4/Supervisor/assignedAgents HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
"showAllAgents": false,
"agentIds": [
"1207",
"1205",
"1201",
"1200"
]
}

Avaya Proactive Outreach Manager Developer Guide 360


Get Attribute Based Parameters
GET v4/AttributeBasedDialling/{zoneId}/{actionId}/{jobId}
The API retrieves parameters configured for Attribute based Dialling .

URL
https://<EP Server IP>/VP_POM_Service/
v4/AttributeBasedDialling/{zoneId}/{actionId}/{jobId}

Parameters
path
Parameter Required Description Data
Type
zoneId Yes Zone ID int
actionId Yes Action ID int
jobId Yes Job ID int

Payload - None

JSON response
Description
List of Configured Attribute Based Dialling parameters.

Example
The example provided in this section is based on fetching attribute based dialing parameters
for zoneId -1, actionId 100 , jobId 21 .Configured ABD parameters are abdShortAreaCode ,
abdIntSalary , abdAgentId , abdBooleanAnswer.

HTTP: GET /VP_POM_Service/v4/AttributeBasedDialling/-1/100/21 HTTP/1.1


Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: rest
Cache-Control: no-cache

RESPONSE JSON:
{
[{
"abdShortAreaCode": "1",
"count": "2",
"abdIntSalary": "100",
"abdAgentId": "20",
"abdBooleanAnswer": "true"
},
{
"abdShortAreaCode": "2",
"count": "1",
"abdIntSalary": "200",

Avaya Proactive Outreach Manager Developer Guide 361


"abdAgentId": "30",
"abdBooleanAnswer": "true"
},
{
"abdShortAreaCode": "3",
"count": "1",
"abdIntSalary": "300",
"abdAgentId": "40",
"abdBooleanAnswer": "false"
}]
}

Get Topic Names for Org


GET v4/kafka/getTopicList
The API retrieves kafka topic Lists for logged in user’s organization.

URL
https://<EP Server IP>/VP_POM_Service/v4/kafka/getTopicList

Parameters
Payload None
Path None

JSON response
Field name Description
POM_AGENT Agent event topic name
POM_JOB Job event topic name
POM_AGENT_STATISTICS Agent statistics event topic name.
POM_JOB_STATISTICS Job statistics event topic name.
POM_ATTEMPT Pom attempt event topic name.
POM_ENRICHED_ATTEMPT_RESULT Pom enriched attempt topic name.

Example
The example provided in this section is for CC User to get kafka topic list.
HTTP: GET /VP_POM_Service/v4/kafka/getTopicList
HTTP/1.1
Header:
Authorization: Basic xxxxxxxxxxxxxxxx
Content-Type: application/json
X-Requested-With: RESTWeb
Cache-Control: no-cache

RESPONSE JSON:
{
"POM_AGENT": "POM.1.AGENT",

Avaya Proactive Outreach Manager Developer Guide 362


"POM_JOB": "POM.1.JOB",
"POM_AGENT_STATISTICS": "POM.1.AGENTSTATISTICS",
"POM_ENRICHED_ATTEMPT_RESULT": "POM.1.ENRICHEDATTEMPTRESULT",
"POM_JOB_STATISTICS": "POM.1.JOBSTATISTICS",
"POM_ATTEMPT": "POM.1.ATTEMPT"
}

REST API errors codes


The domain specific error codes are listed below, they are divided in separate categories
according to domain with common domain prefix.
• Contact, ContactList, Contact Attribute 1XXX
• DNC Lists, DNC Groups 13XX
• Campaign 2XXX
• Campaign Job 21XX
• Completion Code 32XX
• Agent 33XX
• Callback 34XX
• Organization 35XX
• Campaign Strategy 36XX
• Global Config 38XX 39XX
The fault error code and message will be sent in JSON format as shown in example below, the
displayMessage is for future use.
For example: callback endTime less than previous endTime
REQUEST JSON:
{"callbackId":20051, "endTime":"2017/08/03 10:58:26",
"timeZone":"GMT+05:30","nextAttemptAfterTime":"2017/08/02 10:00:00"}

RESPONSE JSON: {
"displayMessage": null,
"errorCode": "3449",
"errorMessage": " Invalid End time provided. "
}
Error Code Message
Contacts
1001 Contact list not found.
1002 Contact list is not valid for your organization : access denied.
1003 Contact record not found.
1004 Cannot delete contact as the attempt is in progress.
1005 Cannot delete contact as it has active callbacks.
1006 Failed to notify campaign for contact modification.
1007 Contact list operation is in progress for .
1008 Zero available contacts for contact list.
1009 Zero excluded contacts for contact list.
1010 Data source record not found.
1011 Access Denied - Not a valid data source for your organization.
1012 Failed to exclude contacts.

Avaya Proactive Outreach Manager Developer Guide 363


1013 Failed to clear contacts exclusion.
1014 Failed to create contact list. Please associate zone to your organization.
1015 Failed to delete contact list.
1016 Failed to add data source.
1017 Given data source name already exists! Please provide different name.
1018 Invalid value for data source type.
1019 The test connection attempt to database failed.
1020 Please specify the query to select data from source database.
1021 SQL query does not return any records. There might be error with the query.
1022 Mapping for system attribute name is missing. Mapping Field for System Attribute
must be specified.
1023 POM Attribute name is missing. It must be specified.
1024 Mapping for custom attribute name is missing. Mapping Field for Custom Attribute
must be specified.
1025 Custom Attribute name and Mapping Field cannot be -. Please specify mapping for
it or remove it.
1026 Attribute name is invalid. Please specify correct attribute names.
1027 Please specify DNC data source name.
1028 Invalid value for query field name.
1029 Invalid Database Type.
1030 Failed to list data sources.
1031 No data sources found for specified contact list.
1032 Data source cannot be deleted as import job is active.
1033 Datasource deletion is already in progress.
1034 Failed to retrieve data source details.
1035 Failed to edit data source.
1036 Failed to delete data source.
1037 Auto update of state and wireless not allowed as global configuration setting
disabled for area code.
1038 Failed to update phone number.
1039 Failed to get phone number.
1040 Failed to run datasource as import job is already running.
1041 Failed to run data source.
1042 Failed to get data source id.
1043 Automatic import supported only for local file.
1044 Invalid path for automatic import enabled datasource. It must start with
1045 Operation not allowed as auto import found enabled for datasource.
Contact Attributes
1101 Contact attribute record not found.
1102 Contact attribute is not valid for your organization : access denied.
1103 Contact attribute is not valid for this contact record.
1104 Invalid value for contact attribute. Potential cause incompatible value for attribute.
1105 Failed to get attribute list. Empty attribute list found.
1106 Contact list do not have attributes on which campaign is running.

Avaya Proactive Outreach Manager Developer Guide 364


1107 Failed to add contact attribute.
1108 Failed to delete contact attribute.
1109 Failed to edit contact attribute.
1110 Please specify contact attribute name.
1111 Attribute name should not end with '_PREDEFINED' or '_tz' or '_tz_int' or
'_ctry_code' or '_state' or '_wireless'. This is reserved for system purpose.
1112 Attribute name should not end with '_tz' or '_tz_int' or '_ctry_code' or '_state' or
'_wireless'. This is reserved for system purpose.
1113 Cannot add this attribute as maximum allowed limit reached.
1114 Attribute name length should be less than 20 characters for Attributes of type
PHONE.
1115 Attribute name is not valid.
1116 Attribute type is not valid.
1117 Invalid bulk contact attribute list.
1118 Only 20 Attributes can be added at a time
1119 Cannot change/delete attribute. It is associated with Campaign
1120 Cannot change/delete attribute. It is associated with contact data source.
1121 Cannot change/delete attribute. It is associated with campaign strategy
1122 Cannot change/delete attribute. It is associated with Agent Script
1123 You cannot change/delete predefined system Attribute.
1124 Cannot change/delete attribute. It is associated with organizations
1125 Cannot change/delete attribute. It is used in Global Restriction Rules.
1126 Contact attribute is not valid for your organization : access denied.
1127 Attribute is being used for Contact Record Assignment to Agent. Attribute can not
be deleted.
1128 Cannot delete Attribute. It is used in active import job.
1129 You cannot delete global Attribute.
1130 Failed to get attribute list.
1131 Failed to generate csv file.
1132 Access denied. Sub attribute of phone type cannot be edited.
1134 Phone number validation failed.
1135 Phone number matches global reject pattern.
1136 Phone number matches DNC
1137 Invalid sip
1138 Phone number format is invalid.
Contact Lists
1901 Failed to get contact data.
1902 Failed to save contact.
1903 Failed to get attribute value.
1904 Failed to update contact attribute value.
1907 Failed to delete contact record.
1908 Failed to get contact attribute list.
1909 Failed to get contact attributes for given contact list.
1910 Failed to get contact lists.

Avaya Proactive Outreach Manager Developer Guide 365


1911 Failed to get contact list id.
1912 Failed to empty contact list.
1913 Failed to get status of emptying contact list.
1914 Failed to mark contact list as callable.
1915 Failed to mark contact list as uncallable.
1916 Failed to get contact callable status.
1917 Failed to mark contacts callable.
1918 Failed to mark contacts uncallable.
1919 Failed to check DNC address existence.
1920 Failed to add DNC address.
1921 Failed to remove DNC address.
1922 Failed to get data import job details.
1923 Failed to add data source campaign schedule.
1924 user is not authorized for this operation.
1925 Failed to add contact list.
1926 Failed to edit contact list.
1927 Failed to list contacts for contact list.
1928 Invalid value for searchby parameter.
1929 Invalid value for sortby parameter.
1930 Invalid value for search operator parameter. Please specify valid operator.
1931 Invalid value for search operator parameter. Should not contain AND.
1932 Maximum allowed length exceeded. Parameter and value is
1933 Invalid boolean search value specified. Allowed values are
TRUE/FALSE/YES/NO/T/F/Y/N/0/1
1934 Invalid integer search value specified.
1935 Invalid short search value specified.
1936 Invalid long search value specified.
1937 Invalid float search value specified.
1938 Invalid date search value specified. Please specify date matching with date part of
Global Date Format specified in configuration.
1939 Invalid time search value specified. Please specify time matching with time part of
Global Date Format specified in configuration.
1940 Invalid timestamp search value specified. Please specify value matching with the
Global Date Format specified in configuration.
1941 Invalid search value. Please specify valid value according to type of search
attribute.
1942 Organization name maximum allowed length exceeded. Allowed maximum length
is
1943 Search by maximum allowed length exceeded. Allowed maximum length is
1944 Sort by maximum allowed length exceeded. Allowed maximum length is
1945 Sort direction maximum allowed length exceeded. Allowed maximum length is
1946 Search operator maximum allowed length exceeded. Allowed maximum length is
1947 Value of search by maximum allowed length exceeded. Allowed maximum length
is

Avaya Proactive Outreach Manager Developer Guide 366


1948 User name maximum allowed length exceeded. Allowed maximum length is
DNC Lists And DNC Groups
1301 DNC address cannot be null.
1302 Invalid address for DNC.
1303 DNC list not found.
1304 DNC Access Denied.
1305 Address already exists there in DNC list.
1306 Cannot remove address, it does not exist in DNC list.
1307 Failed to check DNC address existence.
1308 Failed to list DNC lists.
1309 No DNC lists found for provided organization.
1310 DNC list is not valid for your organization : access denied.
1311 Please specify DNC list name.
1312 Cannot add DNC list as another DNC List with same name exists.
1313 Failed to add DNC list.
1314 Failed to edit DNC list.
1315 Failed to delete DNC list.
1316 Failed to list DNC lists group.
1317 Cannot remove association because it is assigned as default DNC list.
1318 Please specify DNC list group name.
1319 Failed to add DNC list group.
1320 Failed to edit DNC list group.
1321 Failed to delete DNC list group.
1322 Cannot add DNC list as another DNC List Group with same name exists.
1323 DNC list group not found.
1324 Access Denied - Not a valid DNC list group for your organization.
1325 Failed to get DNC list group details.
1326 Invalid DNC list group ID list.
1327 Failed to delete DNC list groups.
1328 Invalid DNC list name.
1329 Invalid DNC list description.
1330 Failed to associate DNC list to group.
1331 Failed to retrieve list of DNC lists associated for group.
1332 Invalid DNC list IDs list.
1333 DNC list to DNC group assignment already present.
1334 DNC list to DNC group assignment not present.
1335 DNC list and DNC group belongs to different organization.
1336 Runtime exception occurred.
1337 Failed to deassociate DNC list from group.
1338 Failed to update default DNC list for group.
1339 Default DNC list for DNC group is not present.
1340 Failed to get default DNC list for DNC group.
1341 Cannot delete this DNC List, it is associated with DNC group:

Avaya Proactive Outreach Manager Developer Guide 367


1342 Cannot delete this DNC List, it is associated with data source:
1343 Cannot delete this DNC group, it is associated with campaign:
1344 Failed to notify campaign job for DNC group modification.
1345 Failed to notify agent manager for DNC group modification.
1346 Cannot update default DNC list because it is not associated with DNC group.
1347 Default DNC list cannot be reset to None as active campaign job is found.
1348 Cannot delete system type of DNC list.
1349 Failed to list addresses for DNC list.
Campaigns
2001 Campaign record not found.
2002 Campaign is not valid for your organization : access denied.
2003 Infinite campaign without associated contact list.
2004 Campaign attribute record not found. Attribute name is case-sensitive.
2005 Invalid value for campaign attribute. Potential cause incompatible value for
attribute.
2006 Failed to get campaign attribute.
2007 Failed to update Campaign attribute value. Campaign job found in completed
state.
2008 Failed to get contact list names. Infinite without contact list type of campaign
found.
2009 Failed to get contact list names.
2010 Campaign Name is required.
2011 Invalid Campaign Name. Please specify a valid Campaign name. Invalid characters
are space and {, @~`!';#\\$%&?\"<>)} and the length of name cannot exceed 80
characters.
2012 Campaign Name is already exist.
2013 Invalid Campaign Description. Invalid characters are space at the start and
^~`!;$#\\ and the length of description cannot exceed 255 characters.
2014 Invalid Contact List Name.
2015 Contact List is required for campaign of type Finite or InfiniteWithContacts.
2016 Zone Name is Required.
2017 Invalid Zone Name.
2018 Invalid Campaign Type. Valid types are - Finite, InfiniteWithContacts,
InfiniteWithoutContacts.
2019 Minimum 1 and Maximum 4 attributes are required for Contact Record
Assignment to Agent.
2020 Attribute which contains Agent ID is required.
2021 Invalid Attribute(s) for Contact Record Assignment to Agent.
2022 Invalid Agent ID Attribute for Contact Record Assignment to Agent.
2023 Attributes and Agent ID can not share a common attribute.
2024 For Contact Record Assignment to Agent strategy should contain a single call node
per handler with either preview or progressive call pacing.
2025 Invalid type for Contact Record Assignment to Agent.
2026 Invalid CCA Start type. Possible values:CCA_START_ON_CONNECT and
CCA_START_ON_PROGRESS.

Avaya Proactive Outreach Manager Developer Guide 368


2027 Invalid Dialing Prefix. Max length allowed is 20.
2028 Invalid SMS Prefix. Max length allowed is 20 and only numeric values are allowed.
2029 Please specify a valid CCA timeout value.
2030 Please specify a valid Start of Voice timeout value.
2031 Please specify a valid Live Voice timeout value.
2032 Please specify a valid Live Voice timeout value. (The CCA timeout value should be
greater than the sum of start of voice timeout and live voice timeout in
milliseconds).
2033 Please specify a valid False Positive Rate value between 0.0 and 10.0 .
2034 Invalid Completion Code(s).
2035 Error occured in Operation.
2036 Invalid Agent Address Book(s).
2037 Invalid Filter or Finish Condition Type. Valid values are - ALL, ANY, CUSTOM or
NONE
2038 Invalid value for custom condition.
2039 Invalid Contact Attribute Name for Goal Based Finish Criteria.
2040 Invalid Contact Attribute value for Goal Based Finish Criteria.
2041 Invalid Completion Code Name for Completion Code Based Finish Criteria.
2042 Invalid Completion Code Value for Completion Code Based Finish Criteria.
2043 Invalid Attribute Name For Filter Criteria.
2044 Invalid Attribute Value For Filter Criteria.
2045 Invalid Operator For Filter Criteria.
2046 Invalid Date Format For Filter Criteria.
2047 Campaign Name, campaign strategy name are required.
2048 Contact List is not allowed for Campaign of type InfiniteWithoutContacts.
2049 Invalid value for Abort Hours.
2050 Invalid value for Abort Minutes.
2051 Invalid Export Data Columns.
2052 Invalid Export Data Completion Codes.
2053 Enter the fully resolved class Name (e.g com.avaya.pom.custom.myPostProcessor)
and the length of class name cannot exceed 256 characters.
2054 Valid Sort Order values are - ASC or DESC.
2055 All the associated Zones for given Contact Lists are required.
2056 Invalid EPM Server.
2057 CampaignType change is not allowed.
2058 Campaign strategy change is not allowed.
2059 Only job completed campaigns can be deleted.
2060 Waiting Callbacks are present, can not delete campaign.
2061 Exception occured during the operation. Please check the logs.
$POM_HOME/PIM_RestService.log.
2062 Campaign is getting deleted, can not clone the deleting campaign.
2063 Campaign Job is active, can not edit.
2064 Invalid Search/Sort parameters. Search By/Sort By: Name, Strategy and List. Search
Operator: =, !=, in, like, notlike. " + "Sort Direction:ASC, DESC.

Avaya Proactive Outreach Manager Developer Guide 369


2065 Zone is required.
2066 EPM Server for zone is required.
2067 DNC Group(s) for Camapign is required.
2068 Default DNC Group is required.
2069 Default DNC group should present in DNC group(s) for campaign.
2070 Invalid DNC Group(s) for Campaign.
2071 Invalid Default DNC Group.
2072 Selected Default DNC group have empty Default DNC list. Please select Default
DNC Group which has default DNC list.
2073 Invalid Attributes for Event SDK / Recorder .
2074 Maximum 10 Recorder Attributes are allowed.
2075 Campaign type is Infinite without contacts. Sort and Filter criteria is not allowed.
2076 Campaign type is Infinite with/without contacts. TimeBasedFinishCriteria is not
allowed.
2077 Campaign type is Infinite with/without contacts. FinishGoalCriteria is not allowed.
2078 Campaign type is Infinite with/without contacts. FinishCompletionCodeCriteria is
not allowed.
2079 Data Center Name is Required with EPM servers.
2080 Invalid Data Center Name or Invalid Data Center for EPM Server
2081 Invalid Data Center Name format. Valid Format is EPMServer (DataCenterServer).
2082 Voice Server is not configured. Please configure one or more Voice Servers to zone
and then create Campaign.
2083 Atleast one EPM server should be selected from each Data Center.
2084 Invalid Number of attributes for condition. ALL/ANY/CUSTOM type required
minimum two attributes. NONE type required only one attributes.
2085 Invalid attribute value for isnull or isnotnull operator. Do not provide any value for
attribute value field.
2086 You can not enable publish data to context store as no context store server has
been configured.
2087 To use agentIDForContactRecordAssignmentToAgent or
attributesForContactRecordAssignmentToAgent, please provide values for
contactRecordAssignmentToAgent.
2088 To use agentIDForContactRecordAssignmentToAgent, please enable Agent based
Contact Record Assignement.
2089 To use attributesForContactRecordAssignmentToAgent, please enable Attribute
based Contact Record Assignement.
2090 To use dncGroupsForCampaign and defaultDNCGroup, please enable applyDNC.
2091 To use exportDataColumns and exportDataCompletionCodes, please enable
exportContacts.
2092 To use recorderAttributes, please enable sendAttributesToEventSDKRecorder.
2093 Dialing Prefix is not allowed as strategy does not contain voice type channels.
2094 SMS Prefix is not allowed as strategy does not contain SMS type channels.
2095 Maximum Search Value parameter length allowed for Name is 80 characters,
Strategy 256 characters and List 40 characters.
2096 Failed to get VPMS Server List

Avaya Proactive Outreach Manager Developer Guide 370


2097 Failed to get Address Book List
2098 Failed to get Zone List
2099 Failed to get export attempt column

2901 Failed to get campaign list.


2902 Failed to get campaign id.
2903 Failed to get Campaign Details.
2904 Failed to get campaign job list.
2905 Failed to start the campaign job.
2906 Failed to pause job.
2907 Failed to resume job.
2908 Failed to stop job.
2909 Failed to get status of job.
2911 Failed to get campaign attribute list.
2912 Failed to update campaign attribute value.
2914 Fail to get active jobs and their task IDs for given campaign.
2915 Fail to get task ID for specified task name.
2916 Failed to set the maximum call attempts count.
2917 Faild to add contact list to campaign job.
2918 Failed to remove contact list from campaign job.
2919 Failed to add contact from contact list to campaign job.
2920 Failed to remove contact from campaign job.
2921 Failed to check if contact exists in active job.
2922 Failed to add campaign schedule.
2923 Failed to create campaign.
2924 Failed to edit campaign.
2925 Failed to clone campaign.
2926 Failed to delete campaign.
2927 Failed to search campaign.
2928 Failed to start the campaign job because Area Code import job is in progress.
2929 Failed to start the campaign job because another create job request is in progress.
2931 Invalid export frequency type.
2932 Invalid Daily At export Value.Value should be in format [0-23]:[0-59]
2933 To use exportFrequencyType and exportFrequencyValue, please enable
exportContacts.
2934 Invalid Every N Mins export Value.Value should be between 15-10080 (Mins in one
week)
Campaign Attributes
2001 Campaign record not found.
2002 Campaign is not valid for your organization : access denied.
2003 Infinite campaign without associated contact list.
2004 Campaign attribute record not found. Attribute name is case-sensitive.
2005 Invalid value for campaign attribute. Potential cause incompatible value for attribute.

Avaya Proactive Outreach Manager Developer Guide 371


2006 Failed to get campaign attribute.
2007 Failed to update Campaign attribute value. Campaign job found in completed state.
2008 Failed to get contact list names. Infinite without contact list type of campaign found.
2009 Failed to get contact list names.
Campaign Jobs
2101 Job record not found.
2102 No running job found for campaign.
2103 Cannot add contact to job. It already exists.
2104 Invalid job status for contact related action.
2105 Invalid input for job state.
2106 Job state is not active.
2107 Job state is not paused.
2108 Job state is not in paused state nor in active state.
2109 Campaign job is already running.
2110 Invalid value for contact priority.
2111 Zone from given contact list is not associated for campaign.
2112 Cannot remove contact from the job. It is already attempted.
2113 Cannot remove contact from campaign. Contact is not associated with campaign.
2114 Cannot add contact list to job. It already exists.
2115 Cannot remove contact list from campaign. Found campaign job without contact
list.
2116 Call custom pacing not enabled for campaign.
2117 Invalid value for call attempts count.
2118 Active job task not found.
2119 Custom call pacing disabled for task.
2120 Cannot remove contact list from campaign. Contact list is not associated with
campaign.
2121 Job do not belongs to User
2122 Page size is too low/high, please provide value between 1 to 100.
2123 Invalid Sort field
2124 Invalid Sort Direction
2125 Fails to get Jobs list
2126 Invalid Sort Direction
2127 Invalid Sort Direction
2128 Fail to get agent state
2129 Invalid duration parameter,it should be between 1 to 8.
2130 Filter Array is too big, it should not exceed 20.
2131 Campaign validation failed, could not start campaign.
2132 Attribute validation failed for configured associations of contact list and filter
template, could not start campaign.
2133 No associations configured, could not start campaign.
2134 Failed to get nuisance info for the job.
2135 Invalid Combination of zoneId , actionId , jobId

Avaya Proactive Outreach Manager Developer Guide 372


2136 Failed to run a campaign
2137 Campaign type is Infinite with/without contacts. Finish Criteria is not allowed.
2138 Invalid value for Time Time based finish criteria.
2206 Invalid Job Id
Campaign Jobs
3601 Failed to clone campaign strategy
3602 Campaign strategy name is required.
3603 Invalid campaign strategy name.
3604 Campaign strategy is not valid for your organization : access denied.
3605 Failed to delete campaign strategy.
3606 Campaign strategy with given name already exists in Organization. Please provide
different name
3607 Failed to upload campaign strategy
3608 Import failed. The file size is too big.
3609 Please specify a valid campaign strategy name.
3610 Import failed. The strategy in the file is corrupt.
3611 Import failed. Please provide a valid file to import.
3612 Import failed. Failed to read strategy file, the path may be incorrect.
3613 Failed to list campaign strategies.
3614 Failed to delete campaign strategy as it is used for campaign.
3615 Invalid search operator for strategy list.
3616 Invalid search value for strategy name.
3617 Invalid value for isOnlyCompleteStrategies parameter.
3618 Invalid campaign strategy template name.
3619 Invalid campaign strategy template name.
3620 The strategy parsing failed.
Completion Codes
3201 Completion code record not found.
3202 Custom completion codes are not defined for this campaign.
3203 Not a system completion code.
3204 Attempt records not found for pim session ID .
3205 Record for given POM Session ID not found. .
3206 Given Completion code already exists! Please provide different completion code.
3207 Access denied. Cannot update system type of completion code.
3208 Please specify valid completion code description.
3209 Please specify valid completion code name.
3210 Maximum length allowed for completion code name is exceeded.
3211 Maximum length allowed for completion code description is exceeded.
3212 Failed to create completion code.
3213 Failed to update completion code.
3214 Failed to delete completion code.
3215 Failed to get completion codes. Empty completion code list found.
3216 Failed to get completion code list.

Avaya Proactive Outreach Manager Developer Guide 373


3217 Failed to get completion code ID.
3218 Failed to get completion codes for given campaign.
3219 Failed to add completion code.
3220 Failed to update completion code value.
Organizations
3501 Failed to list organization.
3502 Invalid Organization.
Agent Attribute
3301 Active Session not found for agent.
3302 Agent job Summary record not found.
3303 Agent attribute record not found. Attribute name is case-sensitive.
3304 Failed to get agent attribute.
3305 Failed to update agent attribute value. Agent not attached with campaign job.
3306 Invalid value for agent attribute. Potential cause incompatible value for attribute.
3310 Failed to get organization details.
4048 Failed to get agent attribute list.
4049 Failed to update agent attribute value.
Callbacks
3401 Contact record not found.
3402 Attribute record not found. AttributeName is case-sensitive.
3403 Contact list not found.
3404 Campaign record not found.
3405 Failed to schedule callback.
3406 Failed to get job and action id values.
3407 Maximum Agent ID parameter length allowed is 80 characters.
3408 Callback ID list is empty.
3409 Failed to delete callbacks.
3410 Failed to terminate callbacks.
3411 Invalid date format or Timezone is empty. Please enter time in yyyy/MM/dd
HH:mm:ss format.
3412 Callback is not 'Expired' state or Callback is not present.
3413 Next attempt after time is less than current time.
3414 Another callback already exist on the contact in the same job.
3415 Runtime exception occured.
3416 End Time should be greater than Next Attempt After Time.
3417 Failed to get callback details.
3418 Failed to extend active callback.
3419 Callback is not in 'Active Attached To Job' or 'WaitingForJob' state or Callback is not
present.
3420 Page size is invalid.
3421 Invalid value for Search or Sort parameters.
3422 Give proper payload values. timeZone is required.
3423 Fail to get callback list.
3424 Page number is invalid.

Avaya Proactive Outreach Manager Developer Guide 374


3425 Failed to create callback as an attempt for given contact is already in progess.
3426 Invalid callback ID is provided.
3427 Invalid callback ID list.
3428 Failed to get callback list.
3429 Failed to get callback details.
3430 Failed to schedule callback.
3431 Failed to extend callback.
3432 Failed to terminate callback.
3433 Failed to reschedule callback.
3434 Callback is not in 'Active Attached To Job' or 'WaitingForJob' state or Callback is not
present.
3435 Callback in Active Attached To Job or Waiting for Job or In Process states are not
eligible for deletion.
3436 New End Time is less than current time.
3437 New Start Time is less than current time.
3438 Failed to delete callback.
3439 Failed to schedule callback.
3440 Current callback state does not allow the operation.
3441 Notification for current callback might already have been sent.
3442 Current callback End time is in next 5 minutes.
3443 Current callback Next Attempt After time is in next 5 minutes.
3444 New callback Start time is in next 5 minutes.
3445 New callback End time is in next 5 minutes.
3446 New callback Next Attempt After time is in next 5 minutes.
3447 Parameter is not supported.
3448 Invalid Start time provided.
3449 Invalid End time provided.
3450 Invalid Next Attempt After time provided.
3451 Invalid Agent ID provided.
3452 Invalid Callback Type provided.
3453 Callback record not found.
3454 No input parameter is provided.
3455 Current callback type does not support the Agent ID.
3456 Required Agent ID is missing.
3457 New Start Time is not less than current end time or new End Time.
3458 Start Time is not less than current callback Next Attempt After time or new Next
Attempt After time.
3459 Callback is alrteady moved to callback history table, new end time must be
provided.
3460 End Time is not greater than current callback Start time or new Start Time.
3461 End Time is not greater than current callback Next Attempt After time or new Next
Attempt After time.
3462 Current callback type or new callback type does not support Agent ID.
3463 Invalid handler state is provided.

Avaya Proactive Outreach Manager Developer Guide 375


3464 Invalid action name is provided.
3465 Failed to edit callaback.
3466 Failed to bulk edit callback.
3467 Unable to perform operation as callback limit in interval is reached.
3468 Search criteria should not be more than 6.
3469 Invalid value for Search parameter
3470 Failed to check attempt in progress.
Global Configurations
3801 Failed to get global config parameter.
3802 Global config not found.
3803 Failed to update global config parameter.
3804 Invalid value for global config parameter.
3805 Invalid POM-poller interval to poll the EPM for org users, licenses etc.
3806 POM-poller interval should be between 1 and 60 seconds.
3807 Invalid minimum number of Contacts that need to be available for CD to start
calling.
3808 Minimum number of Contacts that need to be available for CD to start calling
should be between 100 and 20000 records.
3809 Invalid dialing prefix for calling number.
3810 Invalid length of dialing prefix for calling number.
3811 Invalid Number: Number is greater than the maximum permissible limit of the
system.
3812 Invalid batch size of the Filter.
3813 Batch size of the filter should be from 10 to 2000.
3814 Invalid batch size of the Contact import.
3815 Batch size of the Contact import should be from 10 to 2000.
3816 Invalid batch size of the Contact deletion.
3817 Batch size of the Contact deletion should be from 10 to 10000.
3818 Invalid batch size of the DNC updates.
3819 Batch size of the DNC updates should be between 10 and 2000.
3820 Invalid maximum in progress call time for POM launched calls.
3821 Maximum in progress call time for POM launched calls should be between 1 and
15 minutes.
3822 Invalid maximum call time for POM launched calls.
3823 Maximum call time for POM launched calls should be between 5 and 120 minutes.
3824 Invalid E-mail address.
3825 Invalid path for Campaign data export folder.
3826 Invalid Campaign data export limit.
3827 Maximum Campaign data export value should be between 1500 and 500000
3828 Invalid maximum nuisance rate.
3829 Maximum nuisance rate should be between 0.1 and 99.0.
3830 Invalid pacing initial hit rate.
3831 Pacing initial hit rate should be between 0.01 and 1.0.
3832 Invalid Initial Handle Time.

Avaya Proactive Outreach Manager Developer Guide 376


3833 Pacing initial handle time should be between 1 and 3600.
3834 Please specify valid port.
3835 Port Number should be from 1024 to 65535.
3836 Invalid FTP Time Out.
3837 FTP Time Out value should be from 10000 to 900000.
3838 Invalid Call Back Expire Time.
3839 Default end time offset should be from 5 to 1440.
3840 Invalid Max Concurrent Jobs value
3841 Max Concurrent Job value should be from 1 to 1000.
3842 Invalid certificate expiry days value.
3843 Max certificate expiry should be from 30 to 60.
3844 Invalid Agent Script Editor Auto save time
3845 Agent Script Editor Auto save time should be from 1 to 10.
3846 Invalid Polling Interval.
3847 Polling Interval should be from 60 to 300.
3848 Invalid Callback Retry Time
3849 Callback Retry Time should be from 5 to 360.
3850 Invalid Callback PreInterval Time.
3851 Callback PreInterval Time should be from 1 to 30.
3852 Invalid Maximum Callback In Queue Time.
3853 Maximum Callback In Queue Time should be from 5 to 60.
3854 Invalid Maximum Preview Time.
3855 Maximum Preview Time should be from 5 to 30.
3856 Invalid Maximum Callback Preview Time.
3858 Maximum Callback Preview Time should be from 0 to 300
3859 Invalid Maximum Strict Agent Callback Attempt Count.
3860 Maximum Strict Agent Callback Attempt Count should be from 1 to 30.
3861 Invalid POM Monitor Interval Data retention period.
3862 POM Monitor Interval Data retention period should be from 62 to 2880.
3863 Invalid POM Monitor refresh interval.
3864 POM Monitor refresh interval should be from 2 to 120.
3865 Invalid contact export batch size.
3866 Contact export batch size should be from 10 to 7000.
3867 Invalid port value.
3868 Port value should be from 100 to 5000.
3869 Invalid minimum job attachment period.
3870 Minimum job attachment period should be from 1 to 480.
3871 Invalid nailing retry interval.
3872 Nailing retry interval should be from 10 to 1800.
3873 Invalid POM monitor concurrent sessions value.
3874 POM monitor concurrent sessions should be from 5 to 500.
3875 Invalid agent job waiting duration.
3876 Max agent job waiting duration should be from 10 to 60.

Avaya Proactive Outreach Manager Developer Guide 377


3877 Invalid agent record waiting duration.
3878 Max agent record waiting duration should be from 10 to 60.
3879 Invalid POM Monitor agent page size.
3880 POM Monitor agent page size should be from 10 to 100.
3881 Empty Address While call attempt configuration is disabled
3882 Recorder configuration is disabled.
3883 Invalid value. Please use either \"Agent Extension\" or \"Nailup call CLID\" or \"Use
campaign ANI\" or \"Free form Text\"
3884 Invalid global config ID list.
3885 Invalid value for home country
3886 Invalid value.Please use either DoNotSkipEmpty or
SkipEmptyAndMoveNextImmediatly or SkipEmptyAndMoveNextLater.
3887 Invalid value for global date time format
3888 Invalid value. Use valid country code separator
3889 Failed to retrieve purge schedule details.
3890 Invalid value for days. Days value should be from 0 to 3650.
3891 Invalid value for hours. Hours value should be from 0 to 23.
3892 Invalid value for minutes. Minutes value should be from 0 to 59.
3893 Invalid value for seconds. Seconds value should be from 0 to 59.
3894 Failed to update purge schedule details.
3895 Invalid value for enabling campaign and agent purge setting.
3896 Invalid value for enabling import data purge setting.
3897 Invalid job statistics event frequency.
3898 Job statistics event frequency should be between 3 and 60 seconds.
3899 Send job statistics events configuration is disabled.
3900 The provided purge schedule is less than the data retention duration required for
rules:
3901 Invalid protocol values, Comma separated protocols (sip/sips/tel) with no spaces in
between are allowed. Also '*' platform will ignore any protocol included in the URI
3902 Invalid nuisance duration agent connect Time Out.
3903 Nuisance duration agent connect value should be from 100 to 10000.
3904 Strict nuisance reporting configuration is disabled.
3905 Operation not allowed for None installation mode" )
3907 Invalid splitter file retention days value.
3908 Max invalid splitter file retention days value is 1 to 60.
3911 Cannot change value of Freeform text for ANI for External Consult when
ANIForExtConsult is not of type Free Form Text
3915 Invalid Callback Time Interval
3916 Callback Time Interval value should be from 0 to 60
3917 Invalid Allowed Callback Count
3918 Allowed Callback Count value should be from 1 to 100
3919 Cannot update Allowed Callback Count value as Callback Time Interval has been
disabled
4050 Failed to fetch topic names for this Org.

Avaya Proactive Outreach Manager Developer Guide 378


8300 Failed to connect to ALM service. Ensure it is running.
8301 Failed to add schedule for splitter.
8302 Failed to create splitter.
8303 Failed to update splitter.
8304 Failed to delete splitter.
8305 Invalid Zone ID.
8306 Invalid Zone ID for org user.
8307 Failed to retrieve splitter details.
8308 Invalid or empty configuration for sub contact lists.
8309 List splitter not found.
8310 Splitter is not valid for given organization"
8311 Failed to get list of splitters.
8312 Splitter name already exist for given organization.
8313 Splitter creation not allowed for other organization.
8314 Organizations for splitter are mandatory.
8315 Failed to retrieve ip addresses for ALM service.
8316 Failed to run splitter.
8317 Failed to list splitter schedules.
8318 Failed to delete splitter schedule.
8319 Failed to analyze splitter.
8320 Access denied for org user. Splitter assigned to multiple organizations.
8321 Invalid contact exists value. Either 0 or 1 allowed as updateExisting and ignoreNew.
8322 Invalid value for file type. Either 0, 1 and 2 allowed for local, FTP and SFTP.
8323 Please specify host name.
8324 Please specify user name.
8325 Please specify password.
8326 Invalid Hostname : Hostname has more than 255 characters.
8327 Invalid Hostname: Hostname cannot begin or end with hyphen.
8328 Invalid Hostname: Hostname cannot have \"..\".
8329 Invalid Hostname: Each label must be between 1 and 63 characters long.
8330 Invalid Hostname: Hostname contains invalid characters.
8331 Invalid Username: value contains one or more invalid characters. Invalid character
can be
8332 Please specify remote path
8333 Please specify file path on the server.
8334 Value is null for
8335 Value is empty for
8336 Value starts with space for
8337 Value contains one or more invalid characters. Invalid character can be
8338 Invalid field separator.
8339 Invalid field separator. Field separator should not be any one of
8340 Duplicate organizations not allowed.
8341 Please specify splitter name.

Avaya Proactive Outreach Manager Developer Guide 379


8342 Invalid schedule frequency value for recurring schedule, cannot be null.
8343 Invalid value for isRecurring. It should be enabled for schedule frequency
8344 Invalid value for
8345 Invalid value for schedule frequency, isWeekDaysOnly can be enabled for Daily
recurring schedule.
8346 Potential cause for failure timeZone contains invalid value.
8347 Invalid date and time received. Cannot be null, expected in format yyyy/MM/dd
HH:mm:ss
8348 Potential cause for failure StartTime value belongs to past time
8349 Potential cause for failure EndTime value need to be greater than StartTime.
8350 Invalid value for schedule frequency, expected as RunEveryNMins. Found recurring
interval value for minutes.
8351 Invalid value for weekly selected days of week.
8352 Invalid value for selected days, found duplicate value for weekly schedule.
8353 Found selected days as per week. Schedule frequency as Weekly can be used
instead.
8354 Invalid value for selected week days for Weekly frequency, selected days cannot be
null.
8355 Invalid file path for download
8356 Download failed for provided file path.
8357 No POM server added to the system
8358 Failed..!! Either of Catagory or Action is invalid..
8359 Audit Log Action failed..!!
8360 Invalid value.Please use either '' (empty value - SYSTEM_TIME_ZONE) or 'UTC' .
8361 Splitter execution is already in progress.
8362 Any filter template cannot be associated with more than one contactlist.
8363 Splitter schedule not found.
8364 Access Denied - Not a valid schedule for your organization.
8365 Zone changes not allowed for existing contact list.
8300 Failed to connect to ALM service. Ensure it is running.
8301 Failed to add schedule for splitter.
8302 Failed to create splitter.
8303 Failed to update splitter.
8304 Failed to delete splitter.
8305 Invalid Zone ID.
8306 Invalid Zone ID for org user.
8307 Failed to retrieve splitter details.
8308 Invalid or empty configuration for sub contact lists.
8309 List splitter not found.
8310 Splitter is not valid for given organization"
8311 Failed to get list of splitters.
8312 Splitter name already exist for given organization.
8313 Splitter creation not allowed for other organization.
8314 Organizations for splitter are mandatory.

Avaya Proactive Outreach Manager Developer Guide 380


8315 Failed to retrieve ip addresses for ALM service.
8316 Failed to run splitter.
8317 Failed to list splitter schedules.
8318 Failed to delete splitter schedule.
8319 Failed to analyze splitter.
8320 Access denied for org user. Splitter assigned to multiple organizations.
8321 Invalid contact exists value. Either 0 or 1 allowed as updateExisting and ignoreNew.
8322 Invalid value for file type. Either 0, 1 and 2 allowed for local, FTP and SFTP.
8323 Please specify host name.
8324 Please specify user name.
8325 Please specify password.
8326 Invalid Hostname : Hostname has more than 255 characters.
8327 Invalid Hostname: Hostname cannot begin or end with hyphen.
8328 Invalid Hostname: Hostname cannot have \"..\".
8329 Invalid Hostname: Each label must be between 1 and 63 characters long.
8330 Invalid Hostname: Hostname contains invalid characters.
8331 Invalid Username: value contains one or more invalid characters. Invalid character
can be
8332 Please specify remote path
8333 Please specify file path on the server.
8334 Value is null for
8335 Value is empty for
8336 Value starts with space for
8337 Value contains one or more invalid characters. Invalid character can be
8338 Invalid field separator.
8339 Invalid field separator. Field separator should not be any one of
8340 Duplicate organizations not allowed.
8341 Please specify splitter name.
8342 Invalid schedule frequency value for recurring schedule, cannot be null.
8343 Invalid value for isRecurring. It should be enabled for schedule frequency
8344 Invalid value for
8345 Invalid value for schedule frequency, isWeekDaysOnly can be enabled for Daily
recurring schedule.
8346 Potential cause for failure timeZone contains invalid value.
8347 Invalid date and time received. Cannot be null, expected in format yyyy/MM/dd
HH:mm:ss
8348 Potential cause for failure StartTime value belongs to past time
8349 Potential cause for failure EndTime value need to be greater than StartTime.
8350 Invalid value for schedule frequency, expected as RunEveryNMins. Found recurring
interval value for minutes.
8351 Invalid value for weekly selected days of week.
8352 Invalid value for selected days, found duplicate value for weekly schedule.
8353 Found selected days as per week. Schedule frequency as Weekly can be used
instead.

Avaya Proactive Outreach Manager Developer Guide 381


8354 Invalid value for selected week days for Weekly frequency, selected days cannot be
null.
8355 Invalid file path for download
8356 Download failed for provided file path.
8357 No POM server added to the system
8358 Failed..!! Either of Catagory or Action is invalid..
8359 Audit Log Action failed..!!
8360 Invalid value.Please use either '' (empty value - SYSTEM_TIME_ZONE) or 'UTC' .
8361 Splitter execution is already in progress.
8362 Any filter template cannot be associated with more than one contactlist.
8363 Splitter schedule not found.
8364 Access Denied - Not a valid schedule for your organization.
8365 Zone changes not allowed for existing contact list.
8300 Failed to connect to ALM service. Ensure it is running.
8301 Failed to add schedule for splitter.
8302 Failed to create splitter.
8303 Failed to update splitter.
8304 Failed to delete splitter.
8305 Invalid Zone ID.
8306 Invalid Zone ID for org user.
8307 Failed to retrieve splitter details.
8308 Invalid or empty configuration for sub contact lists.
8309 List splitter not found.
8310 Splitter is not valid for given organization"
8311 Failed to get list of splitters.
8312 Splitter name already exist for given organization.
8313 Splitter creation not allowed for other organization.
8314 Organizations for splitter are mandatory.
8315 Failed to retrieve ip addresses for ALM service.
8316 Failed to run splitter.
8317 Failed to list splitter schedules.
8318 Failed to delete splitter schedule.
8319 Failed to analyze splitter.
8320 Access denied for org user. Splitter assigned to multiple organizations.
8321 Invalid contact exists value. Either 0 or 1 allowed as updateExisting and ignoreNew.
8322 Invalid value for file type. Either 0, 1 and 2 allowed for local, FTP and SFTP.
8323 Please specify host name.
8324 Please specify user name.
8325 Please specify password.
8326 Invalid Hostname : Hostname has more than 255 characters.
8327 Invalid Hostname: Hostname cannot begin or end with hyphen.
8328 Invalid Hostname: Hostname cannot have \"..\".
8329 Invalid Hostname: Each label must be between 1 and 63 characters long.

Avaya Proactive Outreach Manager Developer Guide 382


8330 Invalid Hostname: Hostname contains invalid characters.
8331 Invalid Username: value contains one or more invalid characters. Invalid character
can be
8332 Please specify remote path
8333 Please specify file path on the server.
8334 Value is null for
8335 Value is empty for
8336 Value starts with space for
8337 Value contains one or more invalid characters. Invalid character can be
8338 Invalid field separator.
8339 Invalid field separator. Field separator should not be any one of
8340 Duplicate organizations not allowed.
8341 Please specify splitter name.
8342 Invalid schedule frequency value for recurring schedule, cannot be null.
8343 Invalid value for isRecurring. It should be enabled for schedule frequency
8344 Invalid value for
8345 Invalid value for schedule frequency, isWeekDaysOnly can be enabled for Daily
recurring schedule.
8346 Potential cause for failure timeZone contains invalid value.
8347 Invalid date and time received. Cannot be null, expected in format yyyy/MM/dd
HH:mm:ss
8348 Potential cause for failure StartTime value belongs to past time
8349 Potential cause for failure EndTime value need to be greater than StartTime.
8350 Invalid value for schedule frequency, expected as RunEveryNMins. Found recurring
interval value for minutes.
8351 Invalid value for weekly selected days of week.
8352 Invalid value for selected days, found duplicate value for weekly schedule.
8353 Found selected days as per week. Schedule frequency as Weekly can be used
instead.
8354 Invalid value for selected week days for Weekly frequency, selected days cannot be
null.
8355 Invalid file path for download
8356 Download failed for provided file path.
8357 No POM server added to the system
8358 Failed..!! Either of Catagory or Action is invalid..
8359 Audit Log Action failed..!!
8360 Invalid value.Please use either '' (empty value - SYSTEM_TIME_ZONE) or 'UTC' .
8361 Splitter execution is already in progress.
8362 Any filter template cannot be associated with more than one contactlist.
8363 Splitter schedule not found.
8364 Access Denied - Not a valid schedule for your organization.
8365 Zone changes not allowed for existing contact list
8650 Failed to get purge list.
8651 No purges configured in the system.

Avaya Proactive Outreach Manager Developer Guide 383


8652 Failed to update purge.
8653 Invalid retention period provided for:
8654 Invalid time value provided. Valid time values are: hours(0-23), mins(0-59),
secs(0-59).
8655 Invalid purge name provided:
8656 Failed to update daily run schedule.
8657 Failed to delete existing purge schedules, purge update failed.
8658 Failed to purge.
8659 Update not allowed by org user for purge:
8660 Failed to create schedules.
8661 Another purge of the same type is already running, exclude this purge from the list
or try running the purge after some time:
8662 Retention period of CAMPAIGN_AND_AGENT_DATA violates enabled rules:
8663 Update purge error. Failed to disable violated rules:
Domain Independent Codes
9001 Invalid File Path. File Path is detected as directory.
9002 File does not exist.
9003 This webservice is obsolete.Please refer the developer guide for available
webservices.
9004 Invalid Boolean Values provided. Please specify either true or false.
9005 Failed to pause campaign jobs. Timeout Occurred.
9006 Access denied for your organization.
9008 Failed to refresh agent skills.

Avaya Proactive Outreach Manager Developer Guide 384


Chapter 3: Custom Connectors,
Interface Definitions and Class Files
During custom implementation few guidelines listed below should be followed:

• The custom classes must use POM’s supported version of jars which are present in
POM lib folders under $POM_HOME location (lib/common, lib/core and lib/web ,etc). It
is risky to use other versions because any new version of jar are not officially tested
and could create unknown issues with POM services and functionality.
• Vulnerability aspects could may also come into picture. Jars deployed on POM are
scanned for vulnerabilities and licenses are also maintained. Any new jar or version
could raise vulnerability and licensing concerns.
• Separate logger not supported currently, the logs from custom class will appear in
campaign manager, campaign director services related log or console out files.
• Changing startup scripts for POM services is not recommended, during future upgrades
or patch installation these scripts could get overwritten and result into breakages from
customer’s perspective. Also, few POM utilities could fail to execute because they try
to modify POM startup scripts during install and upgrades.

Creating a Custom Data Import Connector


Use a custom connector to import data from your database or any other source, such as ERP
systems or a CRM software. To implement the custom interface, implement
ContactListCreator:
public interface ContactListCreator
{
void init() throws Exception;
boolean hasMoreContacts();
ArrayList<PimContact> getNextContactBatch() throws Exception;
}
Before you begin:
To use the provided custom interfaces, copy the following .jar files in your development
environment:
• avaya-pim-common.jar file. This .jar file has reference for below:
-import com.avaya.pim.jdbc.bo.AttributeBO
• avaya-pim-hibernate.jar file. This .jar file references:
- import com.avaya.pim.jdbc.hibernate.PimAttribute
- import com.avaya.pim.jdbc.hibernate.PimContact
- import com.avaya.pim.jdbc.hibernate.PimContactAttribute
• hibernate-core-4.3.11.Final.jar this .jar file references:
- import org.hibernate.Session;
Note:

Avaya Proactive Outreach Manager Developer Guide 385


POM uses the hibernate feature for database interactions. These files are in the
$POM_HOME/lib/common folder.
• avaya-pim-core.jar. You can find this file in the $POM_HOME/lib/core folder.

About this task


To implement the ContactListCreator interface:
Procedure
1. To implement java class, extend the ImportDsJob class.
public class CustomImport extends ImportDsJob implements ContactListCreator
{
.
.
}
2. Use the constructor with the importId parameter.
public CustomImport(Session session, int importId) throws Exception
{
super(session, importId);
}

3. Implement the following methods from Interface ContactListCreator:


- void init() throws Exception - Initialize some global variable or custom attributes as per
requirement
- ArrayList<PimContact> getNextContactBatch()throws Exception - To create a list of
PimContact objects. PimContact is a contact object which can have system attributes and
custom attributes.
- boolean hasMoreContacts() - After every call to getNextContactBatch(), the POM Import
Manager calls this function to check for more contacts.

4. . Inside getNextContactBatch() function create a list of PimContacts:


a. Create an array list to store contacts:
ArrayList<PimContact> numberList = new ArrayList<PimContact>();
b. Create a PIMContact object using contact information from your source (database
or any other source):
Set PimContact object variables with your source data. (Assuming contactId,firstName,
lastName, phoneNumber1, phoneNumber2, email, language, timzone, state1, state2, wireless1,
wireless2 are local variables which hold the data from source.)
Setting up the some of the system attributes:

PimContact contactObj = new PimContact();


contactObj.setUserContactId(contactId); // Must be set
contactObj.setFirstName(firstName);
contactObj.setLastName(lastName);
contactObj.setPhoneNumber1(phoneNumber1);
contactObj.setPhoneNumber2(phoneNumber2);
contactObj.setEmail(email);
contactObj.setLanguage(language);
contactObj.setTimeZone(timzone) ;
contactObj.setPhoneNumber1State(state1);
contactObj.setPhoneNumber2State(state2);
contactObj.setPhoneNumber1Wireless(wireless1);
contactObj.setPhoneNumber2Wireless(wireless2);

Avaya Proactive Outreach Manager Developer Guide 386


Date now = new Date();
contactObj.setLastModifiedOn(now);

c. To set the custom attributes data in PimContact object.


i. First create custom attributes in the POM system.
ii. Get Attribute object as below :
PimAttribute tmpAttribute =AttributeBO.getAttributeObj(attributeName);
Here attributeName is custom attribute name.

Warning:
If this attribute is present in the POM system, the function returns the object. If
the attribute is missing, the function returns null. Ensure that you add the
attribute in the POM system first.
If the attribute you try to import does not belong to your organization, the
function AttributeBO.getAttributeObj(attributeName) throws exceptions, and
you must resolve the exceptions (Make sure that the same attribute is
accessible for the organization). For more information about adding attributes
see Adding Attributes section from the UsingProactive Outreach Manager.

iii. Binds the PimContact(contactObj) object, the attribute object, and the
attribute values together to the contactAttributeObj.
PimContactAttribute contactAttributeObj=new
PimContactAttribute(contactObj,tmpAttribute,attributeValue);

iv. Create a set to store custom contact attributes:


Set <PimContactAttribute>contactAttributeSet = new HashSet<PimContactAttribute>();
contactAttributeSet.add(contactAttributeObj);

Repeat the above steps (ii) and (iii) for each custom attribute and add them
into contactAttributeSet one by one.
v. Associate the set to contact object:
contactObj.setPimContactAttributes(contactAttributeSet);

d. Add this contact object to a contact list:


numberList.add(contactObj);

e. Return this contact list:


return numberList;

If you are creating the contacts in batches and setting up them in numberList then
after each batch hasMoreContacts() must return true. After you finish the contacts,
hasMoreContacts() must return false. Handle this hasMoreContacts() returning true or
false in function getNextContactBatch().

5. Create a jar file from this class, for example CustomImport.jar.


6. Copy the jar file to the $POM_HOME/lib/custom folder on all POM servers.
7. Restart the POM service by typing/sbin/service POM restart.
8. Restart VPMS service by typing/sbin/service vpms restart.
9. To create a data source from the jar:
a. In the left pane, select POM Home > Contacts > Contact Lists.
b. Click Add.

Avaya Proactive Outreach Manager Developer Guide 387


c. Click Create a Data Source.
d. Select the Custom option button.
e. Specify the name and description.
f. Click Next.
g. Specify the class name.
h. Click Finish to finish the data source creation.
Note:
If you do not add attributes and use the custom class to import contact data, the system
does not display any error messages While adding the contact data source, it does not
display any error messages. After running the import, check the Import Monitor to verify if
the import is successful.

package com.avaya.dataimport;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map.Entry;
import java.util.Random;
import java.util.Set;

import org.hibernate.Session;

import com.avaya.pim.dataimport.ContactListCreator;
import com.avaya.pim.dataimport.ImportDsJob;
import com.avaya.pim.jdbc.bo.AttributeBO;
import com.avaya.pim.jdbc.hibernate.PimAttribute;
import com.avaya.pim.jdbc.hibernate.PimContact;
import com.avaya.pim.jdbc.hibernate.PimContactAttribute;

public class CustomImportConnector extends ImportDsJob implements ContactListCreator


{
private int BatchSize = 100;
private long RecordStart = 0L;
private boolean hasMoreContacts = true;
private long TotalRecords = 1000L;
HashMap<String,ArrayList<String>> customAttributeMap = new HashMap<String,
ArrayList<String>>();

public CustomImportConnector(Session sessionObj, int importJobId) throws Exception


{
super(sessionObj, importJobId);
}

/**
* Initialize some global variable or custome attributes as per requirement
*/
@Override
public void init() throws Exception
{
ArrayList<String> bloodGroupList = new ArrayList(Arrays.asList(new String[]

Avaya Proactive Outreach Manager Developer Guide 388


{ "A+ve", "B+ve", "AB+ve", "O+ve" }));
String customAttribute1 = "Bloodgroup";
this.customAttributeMap.put(customAttribute1,bloodGroupList);

ArrayList<String> cityList = new ArrayList(Arrays.asList(new String[]


{ "Pune", "Mumbai", "Delhi"}));
String customAttribute2 = "City";
this.customAttributeMap.put(customAttribute2,cityList);

/**
* This function must return the status of remaning contacts.
*/
@Override
public boolean hasMoreContacts()
{
return this.hasMoreContacts;
}

/**
* Create List of PimContact objects and set the values with data from database or
any other source
*/
@Override
public ArrayList<PimContact> getNextContactBatch() throws Exception
{
ArrayList<PimContact> numberList = new ArrayList<PimContact>();
try
{
System.out.println("*******Inserting Sample Records in Database....");

long rnd_ContactID = this.RecordStart;


long index = 0l;
for (index = this.RecordStart; (index <= this.RecordStart + this.BatchSize) &&
(index < this.TotalRecords); index += 1L)
{
/**
* Add System Attributes
*/
String contactId = Long.toString(rnd_ContactID++);
String firstName = "FName" + contactId;
String lastName = "LName" + contactId;
String phoneNumber1 = Long.toString(index);
String phoneNumber2 = Long.toString(index);
String email = firstName + "." + lastName + "@testdomain.com";
String language = "EN-US";
String timezone = "GMT+05:30";
String state1 = "StateA";
String state2 = "StateB";
String wireless1 = Boolean.toString(true);
String wireless2 = Boolean.toString(false);
PimContact contactObj = new PimContact();
contactObj.setUserContactId(contactId);

Avaya Proactive Outreach Manager Developer Guide 389


contactObj.setFirstName(firstName);
contactObj.setLastName(lastName);
contactObj.setPhoneNumber1(phoneNumber1);
contactObj.setPhoneNumber2(phoneNumber2);
contactObj.setEmail(email);
contactObj.setLanguage(language);
contactObj.setTimeZone(timezone) ;
contactObj.setPhoneNumber1State(state1);
contactObj.setPhoneNumber2State(state2);
contactObj.setPhoneNumber1Wireless(wireless1);
contactObj.setPhoneNumber2Wireless(wireless2);
Date now = new Date();
contactObj.setLastModifiedOn(now);

/**
* Add Custom Attributes
*/

Set<PimContactAttribute> contactAttributeSet = new HashSet();


for (Object o : this.customAttributeMap.entrySet())
{
Entry entry = (Entry) o;

PimAttribute tmpAttribute =
AttributeBO.getAttributeObj(String.valueOf(entry.getKey()));
if (null != tmpAttribute)
{
ArrayList<String> customAttributeValueList =
(ArrayList<String>) entry.getValue();
String attributeValue = customAttributeValueList.get(new
Random().nextInt(customAttributeValueList.size()));
PimContactAttribute contactAttributeObj = new
PimContactAttribute(contactObj, tmpAttribute,attributeValue );
contactAttributeSet.add(contactAttributeObj);
}
}
contactObj.setPimContactAttributes(contactAttributeSet);
numberList.add(contactObj);
}
this.RecordStart = index;
if (this.RecordStart >= this.TotalRecords) {
this.hasMoreContacts = false;
}
return numberList;
}
catch (Exception e)
{
e.printStackTrace();
this.hasMoreContacts = false;
throw e;
}
finally {}
}
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 390


Creating a Custom Class for Post Processing of Jobs
About this task
Ensure you have the avaya-pim-pomapi.jar file.
Procedure
1. Copy the jar file in your development environment. You can find the .jar file in
$POM_HOME/lib/common folder.
2. Use the .jar file to process all successful contacts after campaign execution. Successful
contacts refers to all contacts POM contacted using the campaign. For example, you can
export all contacts with customized details such as campaign name, campaign ID, phone
number, and the email address. The custom class must implement the following
PomJobPostProcessor interface:
public interface PomJobPostProcessor
{
public void processContactAttempt(PomCampaignInfo pomCampaignInfo,
PomCampaignJobInfo pomCampaignJobInfo, PomContactInfo pomContactInfo,
PomAttemptInfo attemptInfo) throw Exception;
}
The interface uses the following four objects:
public class PomCampaignInfo
{
private int campaignId; // campaign ID
private String orgName; // Organization to which the campaign belongs
private String contactStrategyName;// contact strategy used in the campaign
private int isInfinite;// campaign is finite or infinite
private int priority; // campaign priority
private String name; // campaign name
private String description; // campaign description
private boolean enablePacing; // call pacing is enabled or disabled
private String createdBy; // name of the user who created the campaign
private String lastModifiedBy; // name of the user who last modified the campaign
private Date lastModifiedOn; // date and time when the campaign was last modified
private Date lastJobStartTime; // date and time when the last job of the campaign was started
private String dialingPrefix; // the dialing prefix used to make outbound calls
private String smsPrefix;// the SMS prefix used to send SMS
private boolean enableComplianceTimers; // compliance timers used or not
private int startOfVoiceTimeout; // start of voice timeout value for the given campaign
private int liveVoiceTimeout; // start of live voice timeout value for the given campaign
}

Avaya Proactive Outreach Manager Developer Guide 391


public class PomCampaignJobInfo
{
private int jobId; // job ID
private Date startTime;// date and time when the job starts
private Date endTime; // date and time when the job finishes
private String finishReason; // reason for job finish
}
public class PomContactInfo
{
private String contactId; // contact ID
private int contactGroupId;// contact group ID to which the contact belongs
private String contactGroupName; // contact group name to which the contact belongs
private String phoneNumber1; // primary phone number of the contact
private String phoneNumber2; // secondary or alternative phone number of the contact
private String firstName; // first name of the contact
private String lastName; // last name of the contact
private String email; // e-mail address of the contact
private String language; // default language selected for the contact
private String timeZone; // time zone selected for the contact
private Date lastAttemptTime; // when the contact was last attempted
private Date lastSuccessfulAttemptTime; // date and time when the contact was last attempted
private HashMap<String, String>contactAttribute; // key value pairs for contact custom attributes and
their values
public class PomAttemptInfo
{
private long pimSessionId; // POM session ID
private String pimCompletionCode; // system and custom completion code for the specific attempt
private String pimSysCompletionCode; // system completion code
private int pimJobId; // internal contact ID
private String pimServerName;// POM server name
private String sessionId; // voice portal session ID
private Date contactAttemptTime; // date and time when the attempt is made
private Date ringbackStartTime; // date and time of start of ringing
private Date lastNwDispositionTime; // date and time when the last disposition was received
private Date callStartTime; // date and time when the call starts
private Date callCompletionTime; // date and time when the call ends
private Long callConnectTime; // date and time when the call was connected

Avaya Proactive Outreach Manager Developer Guide 392


private Integer startOfVoiceOffset; // offset in milliseconds from the connect time
private Integer firstPromptOffset; // offset in milliseconds of the start of play of the first prompt
private String mediaServerName; // name of the media server
private int channelType; // the type of communication channel used - email, voice or sms
private String address; // address used for the attempt

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 393


Creating a Custom Application Class for Custom
Action
To use custom implementation for a campaign, use the Custom action node instead of using
the standard call, SMS, or email action node. This custom action uses the Application node
and you must specify the custom application class or file name in the Application node.
Before you begin
Ensure you have the following files:
• avaya-pim-pomapi.jar file.
• AgentAPIClient.jar file.
.
Procedure
1. Copy the jar files in your development environment.
You can find the avaya-pim-pomapi.jar file in the $POM_HOME/lib/common folder and the
AgentAPIClient.jar file in the $POM_HOME/lib folder.
Note:
If you are using a custom class, then copy the AgentAPIClient.jar file from the
$POM_HOME/lib folder to the $POM_HOME/lib/custom folder, and restart POM service by
typing /sbin/service POM restart.
2. The custom class must implement the following PomActionProcessor interface:
public interface PomActionProcessor {
public boolean processContact (PomInfo pomInfo, String parentStateName);
}
where pomInfo is an object which contains the information of the contact to be processed
parentStateName is the name of the state under which you add the Custom action node in the
campaign strategy.
3. Call the processContact function for every contact in the campaign.
Example
A sample class file:
public class TestActionImplementation implements PomActionProcessor {
@Override
public boolean processContact(PomInfo pomInfo String parentStateName) {
System.out.println("Inside custom action");
System.out.println("User Contact ID - " + pomInfo.getContactId());
System.out.println("User Contact Group Name - " + pomInfo.getContactGroupName());
System.out.println("Address - " + pomInfo.getAddress());
return true;
}
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 394


Creating a Custom Application Class for Custom
Application Node
While creating a campaign strategy, to use custom implementation for a campaign, you can
use the custom application node for all other values except for Answer Human, Answer
Machine, Call Answered, and Fax Machine. Use the Result node and specify the custom
application class or file name under the Application node. The custom class must implement
the following PomResultProcessor interface:
New interface PomResultProcessor // This will have a function with following signature
public boolean processResult (PomInfo pomInfo, String result);
where pomInfo is an object which has the information of all contacts to be processed, and
result is the value of the result for which the custom application is added in the campaign
strategy.
Before you begin
Ensure you have the following files:
• avaya-pim-pomapi.jar file.
• AgentAPIClient.jar file.
Procedure
1. Copy the jar files in your development environment.
You can find the avaya-pim-pomapi.jar file in the $POM_HOME/lib/common folder and
the AgentAPIClient.jar file in the $POM_HOME/lib folder.
2. If you are using a custom class, then copy the AgentAPIClient.jar file from the
$POM_HOME/lib folder to the $POM_HOME/lib/custom folder and restart POM service by
typing /sbin/service POM restart on the command line.

Example
public class TestResultProcessor implements PomResultProcessor {
@Override
public boolean processResult(PomInfo pomInfo, String result) {
System.out.println("Inside custom result processing for " + result);
System.out.println("User Contact ID - " + pomInfo.getContactId());
System.out.println("User Contact Group Name - " + pomInfo.getContactGroupName());
System.out.println("Address - " + pomInfo.getAddress());
return true;
}
}
__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 395


Creating a Result Processor Custom class For Result
Processor Node
Result processor is invoked on each contact attempted through POM. The result processor
determines the contact’s next course of action depending on the attempt’s completion code
and logic mentioned in Campaign Strategy. For more information on Result Processors, see
Using Proactive Outreach Manager.
You can write your own JAVA class to be invoked while processing result of each contact
attempt.
Note:
Result Processor Custom Class is enabled only when you set the value for Custom
Processor to “Custom”.
The custom class must implement the following
com.avaya.pim.api.PomCustomResultProcessor interface:
New interface PomResultProcessor // This will have a function with following signature
public void processCustomResultProcessor(PomResultInfo pomResultInfo);
where pomResultInfo is an object which has the information of the contact attempt.

Before you begin


Ensure you have the avaya-pim-pomapi.jar file. You can find the avaya-pim-pomapi.jar file in the
$POM_HOME/lib/common foablelder.

Procedure
1.
Copy the avaya-pim-pomapi.jar file in your development environment.
2.
Write your custom result processor class implementing the interface.
Create a jar containing the compiled “.class” file of your custom java class.
3.
4.
Copy your custom jar to $POM_HOME/lib/custom folder.
5.
Restart POM service by typing the /sbin/service POM restart command.
6.
Specify the fully qualified class name in the custom processor parameter of the result
processor node.
Example
public class TestCustomResultProcessor implements PomCustomResultProcessor{
public TestCustomResultProcessor() {
super();
}
@Override
public void processCustomResultProcessor(PomResultInfo pomResultInfo) {
System.out.println("Inside custom result processor for Custom Result Processor");
System.out.println("Campaign Name - " + pomResultInfo.getCampaignName());
System.out.println("Job ID - " + pomResultInfo.getJobId());
System.out.println("POM Session ID - " + pomResultInfo.getPimSessionId());
System.out.println("User Contact ID - " + pomResultInfo.getContactId());

Avaya Proactive Outreach Manager Developer Guide 396


System.out.println("User Contact Group Name - " +
pomResultInfo.getContactGroupName());
System.out.println("Address - " + pomResultInfo.getAddress());
System.out.println("Result - " + pomResultInfo.getResult());
}
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 397


Creating a Custom Class for Selector - Conditions
Node
To use custom condition for a selector node, use the Selector Attribute Type as Custom instead
of using the system and contact. You must specify fully qualified name of your custom class
against the ‘Selector Custom Class’ property under conditions class node of Selector Node.
Your custom class must return a String which will be then evaluated against each of the
condition under the Conditions node to determine the next state of the contact.

Before you begin


Ensure you have the following files:
• avaya-pim-pomapi.jar file.
• AgentAPIClient.jar file.

Procedure
1. Copy the jar files in your development environment.
You can find the avaya-pim-pomapi.jar file in the $POM_HOME/lib/common folder and the
AgentAPIClient.jar file in the $POM_HOME/lib folder.
Note:
If you are using a custom class, then copy the AgentAPIClient.jar file from the
$POM_HOME/lib folder to the $POM_HOME/lib/custom folder, and restart POM service by
typing /sbin/service POM restart.
2. The custom class must implement the following PomActionSelector interface:

public interface PomActionSelector


{
public String processContact (PomInfo pomInfo);
}

where pomInfo is an object which contains the information of the contact to be processed for
selector condition under which you add the selector custom class in the campaign strategy.
3. processContact function will get invoked for every contact in the campaign when the
campaign is run.

Example
A sample class file:
public class TestActionSelector implements PomActionSelector
{
@Override
public String processContact(PomInfo pomInfo)
{
System.out.println("Selecting action for contact " + pomInfo.getContactId());
System.out.println("List name: " + pomInfo.getContactGroupName());

Avaya Proactive Outreach Manager Developer Guide 398


System.out.println("Campaign name: " + pomInfo.getCampaignName());
return "Email";
}
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 399


Creating a Custom Application Class for Custom
Attempt Listener
There is useful where user wants to receive alert about every attempt being created in POM
system. In order to cater this requirement new interface has been introduced.

The custom class must implement the following “PomAttemptListener” interface:


New inter face “PomAttemptListener” // this will have methods will have following signatures
public void attemptCreated(PomContactAttemptInfo contactAttemptInfo);

To reduce the number of configuration this is used in conjunction with custom result processor.
Now Custom class of result processor has to implement above interface to receive notification
about new attempt. Custom class will get invoked for result processing as well as for attempt
creation. In case ONLY Custom Attempt Listener is required then user can provide the
dummy/blank implementation of custom result processor method
“processCustomResultProcessor”.

Before you begin

Ensure you have the following files:


• avaya-pim-pomapi.jar file.
• AgentAPIClient.jar file.

Procedure

1. Copy the jar files in your development environment.


You can find the avaya-pim-pomapi.jar file in the $POM_HOME/lib/common folder and
the AgentAPIClient.jar file in the $POM_HOME/lib folder.
Note:
If you are using a custom class, then copy the AgentAPIClient.jar file from the
$POM_HOME/lib folder to the $POM_HOME/lib/custom folder, and restart POM
service by typing /sbin/service POM restart.
2. The custom class must implement the following PomAttemptListener interface:
public interface PomAttemptListener {
public void attemptCreated(PomContactAttemptInfo contactAttemptInfo);
}

Where contactAttemptInfo is an object which contains the information of the contact


attempt.
Example
A sample class file:
public class PomCustomResultProcessorWithAttemptListener implements
PomCustomResultProcessor, PomAttemptListener {

Avaya Proactive Outreach Manager Developer Guide 400


@Override
public void processCustomResultProcessor(PomResultInfo arg0)
{
System.out.println("PreviousCustomResultProcessor has called ");
System.out.println("PomResultInfo " + arg0);
System.out.println("PreviousCustomResultProcessor has end ");
}

@Override
public void attemptCreated(PomContactAttemptInfo arg0)
{
System.out.println("attemptCreated has called ");
System.out.println("PomContactAttemptInfo " + arg0);
System.out.println("attemptCreated has end ");

}
}
PomContactAttemptInfo – Defines the contact attempt information that will be passed to
custom class. It has following fields
Field Name Description
ContactID User contact id for the retrieved contact record.
address Address on which attempt is made.
addressAttrName Name of the address attribute.
attemptType Indicates system contact attempt type. Each type is
represented as follows:
• 0: Regular
• 1: Callback
• 2: Out_Of_Restrict
• 3: Retry
• 4: High Priority
• 5: Redial
channelType Indicates the channel on which an attempt is being made.
contactAttemptTime Time when the contact is being attempted.
pimJobId Job id from which attempt is being made.
pimSessionId The POM session id for the attempt.
userContactId User contact id of the contact.
campaignName Name of the campaign from which this attempt is being made.
contactId System contact id of the contact.
contactGroupName Contact group name to which the contact belongs.
__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 401


Creating a Custom Class for Custom Rule
You can create your own custom rules to cater to specific business requirement. For example,
you can create a rule to validate the contact/contact attribute with an external system like CRM.
You can create your own custom class for a custom rule. While creating a custom rule using
the User Interface, you have to provide the fully qualified name of this custom java class. The
custom class must implement the following “PomCustomRule” interface:

New interface PomCustomRule // This will have a function with following signature
public PomRuleResult isContactAllowToDialByRule(PomRuleInfo ruleInfo,
PomRuleInputParameterInfo ruleInputParameterInfo)
where ruleInfo is the definition of the rule, ruleInputParameterInfo is the input parameter for
which this rule is invoked, and PomRuleResult is the return type of the custom class. Based
on the PomRuleResult, the Campaign manager either restricts, or allows, or retries the contact.
Note:
The response time of a custom rule directly impacts the number of attempts made in a given
time slot, which in turn results in lower agent utilization.
Before you begin
Ensure you have the avaya-pim-pomapi.jar file. You can find the avaya-pim-pomapi.jar file in
the $POM_HOME/lib/common folder.
Procedure
1. Copy the jar file in your development environment.
2. Write your custom class implementing the interface.
3. Create a jar containing the compiled “.class” file of your custom java class.
4. Copy your custom jar to $POM_HOME/lib/custom folder and restart POM service by
typing /sbin/service POM restart command.
5. Specify the fully qualified class name in the custom rule definition.
Note:
If the custom rule execution takes longer time, for example, more than 5 - 7 seconds,
then there is a possibility of the call becoming a nuisance call.

Example

public class TestCustomRule implements PomCustomRule {


@Override
public PomRuleResult isContactAllowToDialByRule(PomRuleInfo ruleInfo,
PomRuleInputParameterInfo ruleInputParameterInfo)
{
System.out.println("Received ruleInfo :" + ruleInfo);
System.out.println("Received ruleInputParameterInfo :" + ruleInputParameterInfo);
//Execute the custom business logic based on input parameter.
System.out.println("Business logic execution done" );
// Prepare the result
PomRuleResult pomRuleResult = new PomRuleResult();

Avaya Proactive Outreach Manager Developer Guide 402


pomRuleResult.setAllowtoDial(true);
pomRuleResult.setErrorMessage("");
return pomRuleResult;
}
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 403


Creating a Custom Restrictions Class for Restrict
Node
Using restrictions in contact strategy, user can restrict the outbound attempt when certain type
of condition is met. Each restrict condition mentioned under the restrictions node is evaluated
in the order in which they are specified. If any of the condition mentioned in the restrict node
matches for the contact being attempted then the attempt is not made. POM gives 2 types of
restrictions; system and contact. For more information on restrictions, see Using Proactive
Outreach Manager.

You can write your own JAVA application to perform certain type of checks before contact
attempt is made and decide on whether to make the attempt or not. User should specify such
custom java application class name under Custom restrict node. The custom class must
implement com.avaya.pim.api.PomCustomRestriction interface.
This will have a function with following signature:
public boolean processCustomRestriction(PomInfo pomInfo, String parentStateName);
where pomInfo is an object which has the information of all contacts to be attempted, and
parentStateName is the name of the handler from which the attempt is made. If this function
returns false, then the attempt is not restricted. If this function returns true, then the attempt is
restricted.

Before you begin


Ensure that you have avaya-pim-pomapi.jar file. You can find the avaya-pim-pomapi.jar file in
the $POM_HOME/lib/common folder.
Procedure
1. Copy the jar file in your development environment.
2. Write your custom restriction class implementing the interface.
3. Create a jar containing the compiled “.class” file of your custom java class.
4. Copy your custom jar to $POM_HOME/lib/custom folder and restart POM service by
typing /sbin/service POM restart command.
5. Specify the fully qualified class name in the custom class name parameter of the
custom restrict node.

Example

public class TestCustomRestriction implements PomCustomRestriction


{
@Override
public boolean processCustomRestriction(PomInfo pomInfo, String result)
{
System.out.println("Inside custom restriction processing for " + result);
System.out.println("Campaign Name: " + pomInfo.getCampaignName());
System.out.println("Job ID: " + pomInfo.getJobId());
System.out.println("POM Session ID: " + pomInfo.getPimSessionId());
System.out.println("User Contact ID: " + pomInfo.getContactId());

Avaya Proactive Outreach Manager Developer Guide 404


System.out.println("User Contact Group Name:" + pomInfo.getContactGroupName());
System.out.println("Address: " + pomInfo.getAddress());
System.out.println("Address Timezone: " + pomInfo.getAddressTimeZone());
System.out.println("Address Country: " + pomInfo.getAddressCountry());
return false;
}
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 405


Creating a Custom Restrictions Class for Global
Restriction Rule
Using global restriction category in Rule Editor, user can restrict the outbound attempt when
certain type of condition is met. Restrict condition mentioned under the restrictions details is
evaluated. If condition mentioned in the restrictions details matches for the contact being
attempted then the attempt is not made. For more information on restrictions, see Using
Proactive Outreach Manager.

You can write your own JAVA application to perform certain type of checks before contact
attempt is made and decide on whether to make the attempt or not. User should specify such
custom java application class name under Custom Restriction Details for Global restriction
category in Rule Editor. The custom class must implement
com.avaya.pim.api.PomCustomRestriction interface.

This will have a function with following signature:


public boolean processCustomRestriction(PomInfo pomInfo, String parentStateName);
where pomInfo is an object which has the information of all contacts to be attempted, and
parentStateName is the name of the handler from which the attempt is made. If this function
returns false, then the attempt is not restricted. If this function returns true, then the attempt is
restricted.

Before you begin


Ensure that you have avaya-pim-pomapi.jar file. You can find the avaya-pim-pomapi.jar file in
the $POM_HOME/lib/common folder.
Procedure
1. Copy the jar file in your development environment.
2. Write your custom restriction class implementing the interface.
3. Create a jar containing the compiled “.class” file of your custom java class.
4. Copy your custom jar to $POM_HOME/lib/custom folder on all POM servers and restart
Rule Engine service on all POM servers by typing /sbin/service ruleng restart command.
5. Go to Global restriction category in Rule editor and check Custom restriction
checkbox.
6. Specify the fully qualified class name in the custom class name parameter under
Custom Restriction details.

Example

public class TestCustomRestriction implements PomCustomRestriction


{
@Override
public boolean processCustomRestriction(PomInfo pomInfo, String result)
{
System.out.println("Inside custom restriction processing for " + result);
System.out.println("Campaign Name: " + pomInfo.getCampaignName());

Avaya Proactive Outreach Manager Developer Guide 406


System.out.println("Job ID: " + pomInfo.getJobId());
System.out.println("POM Session ID: " + pomInfo.getPimSessionId());
System.out.println("User Contact ID: " + pomInfo.getContactId());
System.out.println(“User Contact Group Name:" + pomInfo.getContactGroupName());
System.out.println("Address: " + pomInfo.getAddress());
System.out.println("Address Timezone: " + pomInfo.getAddressTimeZone());
System.out.println("Address Country: " + pomInfo.getAddressCountry());
System.out.println("Address State " + pomInfo.getAddressState());
System.out.println("Address Wireless " + pomInfo.getAddressIsWireless());
return false;
}
}

__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 407


Creating a Custom Connector Class for ActiveMQ
Publish
Use to select the custom processor class that POM invokes for each completion code.
Procedure
1. Run the client program by typing $POM_HOME/bin/testResProcClient.sh.
2. Create custom client program to connect to ActiveMQ on POM server.
a. Create java project in your eclipse. Create com.test package and add below
sample java class into it.
b. Create libs folder and copy avaya-pim-pomapi.jar into it.
c. Download activemq-all-5.15.10.jar from internet and copy in libs folder.
d. Change Java build path and add avaya-pim-pomapi.jar and activemq-all-
5.15.10.jar to classpath.
e. Export the project as jar and copy it to POM system at location
$POM_HOME/lib/custom
f. Change strategy to enable Publish for Result processors node.
g. cd $POM_HOME/lib/custom directory and start client using command:
h. /etc/alternatives/java_sdk_1.8.0//bin/java -cp
/opt/Avaya/avpom/POManager/lib/common/*:/opt/Avaya/avpom/POManager/li
b/custom/*:/opt/Avaya/avpom/POManager/apache-activemq-5.10.0/lib/*
com.test.ResProcJMSSubscriber
i. Start the campaign.
j. Enter quit to exit.

The sample client program below is contains 3 subsections:


• Connecting to JMS
• Receiving messages
• The received event data shown on Console

package com.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
import com.avaya.pim.api.PomResultInfo;

Avaya Proactive Outreach Manager Developer Guide 408


public class ResProcJMSSubscriber implements ExceptionListener
{
private Connection connection = null;
private String brokerIp = null;
private String brokerPort = null;
private Session session = null;
private static MessageConsumer msgConsumer = null;
private static boolean flag = true;
private static int ctr = 0;
public ResProcJMSSubscriber(String brokerIp, String brokerPort)
{
super();
this.brokerIp = brokerIp;
this.brokerPort = brokerPort;
}

/*
* Function to connect to JMS broker
*/
private void connectToJMS(String brokerIpAddress, String port)
{
try
{
if (brokerIpAddress == null)
{
msgConsumer = null;
return;
}
// Create a ConnectionFactory
ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory("tcp://" + brokerIpAddress + ":"
+ port);
// Create a Connection
connection = connectionFactory.createConnection();
connection.start();
connection.setExceptionListener(this);

Avaya Proactive Outreach Manager Developer Guide 409


// Create a Session
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination (Topic or Queue)
Destination destination = session.createTopic("pom.attempt.result.topic");
// Create a MessageConsumer from the Session to the Topic or Queue
msgConsumer = session.createConsumer(destination);
} catch (Exception e)
{
e.printStackTrace();
}
}

/*
* Function to receive messages from JMS topic for attempts result
*/
public void receiveMessage()
{
try
{
if (msgConsumer == null)
{
connectToJMS("localhost", this.brokerPort);
}
if (msgConsumer == null)
{
Thread.sleep(1000);
System.out.println("Cannot open connection!!");
return;
}
Message message = msgConsumer.receive(1000);
if (message == null)
{
if (ctr > 30)
{
System.out.println("Waiting for Attempt Result Message...");
ctr = 0;
}

Avaya Proactive Outreach Manager Developer Guide 410


ctr++;
Thread.sleep(10);
return;
} else if (message instanceof ObjectMessage)
{
ObjectMessage objMessage = (ObjectMessage) message;
PomResultInfo pomResultInfo = (PomResultInfo)
objMessage.getObject();
System.out.println("***Received event = " + pomResultInfo);
} else
{
System.out.println("Received Unexpected Message Type: " +
message);
}
} catch (Exception e)
{
e.printStackTrace();
try
{
Thread.sleep(1000);
} catch (InterruptedException e1)
{
e1.printStackTrace();
}
connectToJMS(this.brokerIp, this.brokerPort);
}
}
public void closeSubscriberConnection()
{
System.out.println("Closing connections..");
try
{
if (msgConsumer != null)
msgConsumer.close();
if (session != null)
session.close();
if (connection != null)

Avaya Proactive Outreach Manager Developer Guide 411


connection.close();
} catch (JMSException e)
{
e.printStackTrace();
}
}
@Override
public void onException(JMSException exp)
{
System.out.println("Exception: " + exp.getMessage());
}
public static void main(String args[])
{
System.out.println("Enter quit to exit");
ResProcJMSSubscriber custResProcSubsriber = null;
try
{
custResProcSubsriber = new ResProcJMSSubscriber("localhost", "51616");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in,
Charset.defaultCharset()));
while (flag)
{
custResProcSubsriber.receiveMessage();
try
{
if (br.ready())
{
String line = br.readLine();
if (line != null && line.equals("quit"))
{
flag = false;
}
}
} catch (IOException e)
{
e.printStackTrace();
}

Avaya Proactive Outreach Manager Developer Guide 412


}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
if (custResProcSubsriber != null)
custResProcSubsriber.closeSubscriberConnection();
}
}
}

Once the campaign is running, you should see below output:

***Received event = PomResultInfo [campaignName=GlobalRestriction1ConditionCamp02, jobId=270,


pimSessionId=1182, contactId=3, contactGroupId=250,
contactGroupName=GlobalRestriction1Condition02, address=2121245023,
addressAttributeName=phoneNumber1, result=Answer_Human, zoneName=Default, info1=null,
info2=null, info3=null, ucid=10001006961592402071]

***Received event = PomResultInfo [campaignName=GlobalRestriction1ConditionCamp02, jobId=270,


pimSessionId=1184, contactId=5, contactGroupId=250,
contactGroupName=GlobalRestriction1Condition02, address=2121245025,
addressAttributeName=phoneNumber1, result=Restricted_Other, zoneName=Default, info1=null,
info2=null, info3=null, ucid=null]

__________________________________________________________________________________________

pomInfo Class Information


The class pomInfo has following members:
Field name Description

The name of the campaign from which this attempt is being made or
String campaignName
the custom application is being called
The name of the campaign from which this attempt is being made or
int jobId
the custom application is being called
The POM session id for the attempt. Value of this field will be 0 for
long pimSessionId
custom restrictions.
User given contact id on which this attempt is being made or the
String contactId
custom application is being called
The contact list id of the contact on which this attempt is being made
int contactGroupId
or the custom application is being called

Avaya Proactive Outreach Manager Developer Guide 413


String The contact list name of the contact on which this attempt is being
contactGroupName made or the custom application is being called
The phone number or email address of the contact on which this
String address
attempt is being made or the custom application is being called
The time zone of the phone number or the email address of the
String addressTimeZone contact on which this attempt is being made or the custom
application is being called
The country code of the contact on which this attempt is being made
Integer addressCountry
or the custom application is being called.
String addressState The state of the phone number on which this attempt is being made
String
addressIsWireless The dialed phone number is wireless or not.

________________________________________________________________________________________

pomResultInfo Class Information


The pomResultInfo has following members:
Field name Description
The name of the campaign from which this attempt was
String campaignName
made
The id of the campaign job from which this attempt was
int jobId
made
long pimSessionId The POM session id of the contact attempt
String contactId User given contact id on which the attempt was made
The contact list id of the contact which was attempted
int contactGroupId
through the campaign
The contact list name of the contact which was attempted
String contactGroupName
through the campaign
The phone number or email address of the contact which
String address
was attempted through the campaign
String result The completion code of the attempt which was made
The zone name to which the contact belongs which was
String zoneName
attempted through the campaign
Name of the attribute which was used as address in the
String addressAttributeName
attempt
The rule engine can set the String info1 field if the contact
attempt is restricted by the custom rule class and the rule
String info1
developer wants to store more information about the
restriction
The rule engine can set the String info2 field if the contact
attempt is restricted by the custom rule class and the rule
String info2
developer wants to store more information about the
restriction
The rule engine can set the String info3 field if the contact
attempt is restricted by the custom rule class and the rule
String info3
developer wants to store more information about the
restriction

Avaya Proactive Outreach Manager Developer Guide 414


String ucid The UCID for the attempt.
__________________________________________________________________________________________

PomRuleInfo Class Information


The PomRuleInfo class contains the rule definition, and has following fields:
Field name Description
ruleID Indicates the unique database rule id.
ruleName Indicates the name of the rule.
restrictionOn Indicates whether the rule applies at campaign level, or at global level.
“0” indicates global, “1” indicates campaign rule.
channelType Indicates the sum of all channels for which the rule is applicable. Every
channel is represented with following integer values.
1 - Voice
2 - Email
4 - SMS
8 - Custom
For example, value 3 indicates the rule is applicable for Voice and
Email channel type.
excludeCurrentAttemptType Indicates the sum of what all attempt type is
excluded in rule definition.
1 - Preview
2 - Callback.
For example, value 3 indicates the rule is excluded for Preview and
Callback. If value is 0, then it means the rule is not excluded for
anything.
ruleType Indicates the type of the rule. “0” indicates system defined rule, and
“1” indicates user defined rule.
addressAttributeName Indicates the attribute name of the address on which the rule is
applied.
restrictionCompletionCodeId Indicates the restriction completion code id in the rule definition.
keyValueMap Indicates the Map of key-value pair as defined in the rule definition.

__________________________________________________________________________________________

PomRuleInputParameterInfo Class Information


The PomRuleInputParameterInfo class defines the input parameter for which the rule will be
executed, and has the following fields:
Field name Description
messageId Unique Id generated by campaign manager for each request. You can
use the messageId for debugging.
sysContactId System contact id of the contact.
userContactId User contact id of the contact.
address Address on which attempt is made.
addressAttributeName Name of the address attribute.
channelType Indicates the channel on which an attempt is being made.
campaignId Indicates the Id of the campaign.
jobid Indicates the Id of the campaign.
zoneid Indicates the Id of the zone.
attemptPacingType Indicates the pacing type. The pacing types are represented by following
values:

Avaya Proactive Outreach Manager Developer Guide 415


• 0: ECR
• 1: CruiseControl
• 2: CruiseControlW
• 3: Progressive
• 4: Custom
• 5: Preview
• 6: TimeBased
• 7: SkillBased
• 8: None
addressTimeZone Timezone of the contact.
sysContactAttemptType Indicates system contact attempt type. Each type is represented as
follows:
• 0: Regular
• 1: Callback
• 2: Out_Of_Restrict
• 3: Retry
• 4: High Priority
___________________________________________________________________________________

PomRuleResult Class Information


The PomRuleResult class defines the return type of the custom class invocation, and has
following fields:

Field name Description


executionStatus Indicates whether the rule execution is successful or not. If parameter is
set to “true”, the Campaign Manager looks for “allowtoDial” flag to see
whether the contact is restricted or allowed for dialing. If parameter is
set to “false”, the Campaign Manager retries this contact until the value
of this parameter is set to “true”, which means the dialing will be halted
for that retry time.
allowtoDial If this parameter is set to “true”, the contact is allowed to dial. If this
parameter is set to “false”, the contact attempt is restricted.
errorMessage Indicates an additional message in case “executionStatus” is set to
“false”. The errorMessage is useful for debugging.
restrictionCompletionCode If “allowtoDial” is set to “false”, the contact attempt is restricted with this
completion code. If this completion code is not set by the custom class,
the Restrict Completion Code in the rule definition is used to restrict
the contact.
info1 A custom class can set this additional message which will be available
in the attempt history.
info2 A custom class can set this additional message which will be available
in the attempt history.
info3 A custom class can set this additional message which will be available
in the attempt history.

Avaya Proactive Outreach Manager Developer Guide 416


Chapter 4: Pluggable Data Connector
POM PDC Overview
Pluggable Data Connector (PDC) of Proactive Outreach Manager (POM) is an Avaya
Orchestration Designer plug-in.The PDC extends capability of Orchestration Designer
application to interface and integrate with POM using core functionality of PDC framework. The
PDC implements functionality of seamless connectivity with POM for various types of data
exchange and establishes a connection between Orchestration Designer application and POM
server. The PDC also extends functionality of Data node palette of Graphical Call flow editor
in Orchestration Designer. The PDC provides nodes to customize actions for POM.
__________________________________________________________________________________________
Installing PDC
Before you begin
Install the Avaya Orchestration Designer 8.x.
Note:
You must take backup of all existing applications having enabled POM PDC connector.
Download the POM PDC installer jar from http://support.avaya.com
Procedure
• Unzip the PomPDCInstallerSite_4.00.00.145.zip file to extract the
PomPDCInstallerSite_4.00.00.145.jar of POM PDC installable.
• Start Eclipse.
• From the menu options, select the Help > Install New Software > Available software
tab.
• Click Add > Archive. From the list of available software, browse to the
PomPDCInstallerSite_4.00.00.145.jar file.
• Click Open and select the PomPDCInstallerSite_4.00.00.145.jar file.
• Click Next and select the checkbox with Avaya Proactive Outreach Manager
Connector.
• The system first displays the Progress Information screen and then displays the
Summary Information screen.The system might display a Security Information screen.
You must acknowledge the message to continue with the installation.
• Click Finish.
• The system displays the Operation In Progress screen. Click Details to view the details
of the installation. The system displays the Software Update screen and a message to
restart the server.
• Click Yes to restart Eclipse for the changes to take effect.

__________________________________________________________________________________________
Upgrading PDC
If you have an earlier version of PDC installed, upgrade the PDC to work with the new
release of POM.

Note:
You must take a backup of all existing applications having enabled POM PDC connector.

Procedure

Avaya Proactive Outreach Manager Developer Guide 417


• Unzip the PomPDCInstallerSite_4.00.00.145.zip file to extract the
PomPDCInstallerSite_4.00.00.145.jar of POM PDC installable.
• From the Eclipse menu option, select Help > Install New Software > Available software.
• Click Add Site and then click Archive.
• On the local file system, select the PomPDCInstallerSite_4.00.00.145.jar file.
• Click Open.
• The system adds jar file to list of available software. From the Eclipse menu option,
select Help > About Eclipse SDK > Installation Details.
• Select existing connector for Proactive Outreach Manager.
• Click Update.
• The system displays Operation In Progress screen.
• Follow the installation progress wizard. Restart Eclipse.
• Save applications and enable PDC plug-in to update project variables and jar files.

__________________________________________________________________________________________
Configuring PDC
Enable POM PDC and Providing Credentials
Procedure
• Create a new Avaya Orchestration Designer Speech Project, or use an existing
Speech Project.
• Select the project name in the Speech Navigator tab.
• Right-click the project name and go to Properties.
• In the left pane, select Orchestration Designer.
• Select the Pluggable Connectors tab.
• Select Avaya POM Connector from list.
• Specify the configuration settings as:
• (Optional) Primary Host: Specify the IP address or the host name of the primary
POM server.
• (Optional) Secondary Host: Specify the IP address or the host name of the
secondary POM server.
• User: Specify the login name of the Avaya Experience Portal user. If you turn
on multitenancy, the user obtains privileges to view, update, and add data to the
user organization.
• Password: Specify the password of the Avaya Experience Portal user.
• Click OK.

Libraries
Procedure
• Use “Export Runtime Support Files” wizard to update the application server
environment on both development and production systems.
• Ensure to use and rebuilt existing OD applications with axis2 1.7.9 version for POM 4.x
system.

Providing TrustStore for Application


Impact

Avaya Proactive Outreach Manager Developer Guide 418


• If you have an existing POM PDC application from POM 3.x releases, it did not use any
truststore while establishing SSL connection. From POM 4.x onwards FIPS can be
enabled.
• Existing customers who continue to use Non-FIPS mode in POM 4.x and onwards, won’t
have any impact.
• For customer who wish to use the POM PDC enabled OD applications in FIPS mode or
even wish to use truststore in Non-FIPS mode will have to provide truststore as described
in this section.

Procedure
• The configuration can be done using APIClient.properties file added at the same
path(WEB-INF/lib) where AgentAPIClient.jar is located, when POM PDC connector is
enabled for the OD application.
• Configure the following 4 values in properties file:
• AGENT_API_CLIENT_USE_TRUSTSTORE
▪ Valid Values are TRUE/FALSE (case-insensitive).
▪ No Value or other values than TRUE will be considered as FALSE
• AGENT_API_CLIENT_TRUSTSTORE_PATH
▪ Path for pomTrustStore. If application server is remote then copy it from
$POM_HOME/config location of POM server after successful certificate
exchange.
• AGENT_API_CLIENT_TRUSTSTORE_TYPE
▪ Valid values are JKS/BCFKS
• AGENT_API_CLIENT_TRUSTSTORE_PASSWORD

Example
• Non-FIPS mode
APIClient.properties

AGENT_API_CLIENT_USE_TRUSTSTORE=TRUE
AGENT_API_CLIENT_TRUSTSTORE_PATH=/opt/Avaya/avpom/POManager/config/pom
TrustStore
AGENT_API_CLIENT_TRUSTSTORE_TYPE=JKS
AGENT_API_CLIENT_TRUSTSTORE_PASSWORD=changeit

• FIPS mode
APIClient.properties

AGENT_API_CLIENT_USE_TRUSTSTORE=TRUE
AGENT_API_CLIENT_TRUSTSTORE_PATH=/opt/Avaya/avpom/POManager/config/pom
TrustStore.bks
AGENT_API_CLIENT_TRUSTSTORE_TYPE=BCFKS
AGENT_API_CLIENT_TRUSTSTORE_PASSWORD=changeit

Avaya Proactive Outreach Manager Developer Guide 419


Using PDC Nodes
Before you begin
Ensure you have at least one data node in the Palette.
About this task
Follow the steps to add data nodes to the Palette.
Procedure
• From the Palette tab, select Data node.
• Drag and drop the data node in the call flow.
• Double-click the data node.
• In the Palette tab, you can view the list of POM specific nodes.
• Drag and drop required POM specific node in call flow.
• Click the Properties tab and select appropriate properties.
__________________________________________________________________________________________
Project Variables
Following are the variables Orchestration Designer provides:
• Simple variables - Simple variables hold only one variable value at a time. This type is,
perhaps, the most widely known type of variable in programming practice.
• Complex variables - Complex variables hold multiple values within a single variable.
• Orchestration Designer accomplishes this with the use of associated fields. To be
functional, a complex variable must have one or more variable fields assigned to it.
When you enable POM PDC, it creates three complex type project variables as listed below:

pomInfo
The system deletes pomInfo complex variable when you disable POM PDC. The following
fields are part of this complex variable:
Variable name Data type
ContactID String
ContactGroupName String
ContactGroupID String
Title String
FirstName String
LastName String
PhoneNumber1 String
PhoneNumber1CountryCode String
PhoneNumber1Timezone String
PhoneNumber1State String
PhoneNumber1Wireless String
PhoneNumber2 String
PhoneNumber2CountryCode String
PhoneNumber2Timezone String
PhoneNumber2State String
PhoneNumber2Wireless String
EmailID String
ContactNumber String
AddressLine1 String
AddressLine2 String
AddressLine3 String
AddressLine4 String
AddressLine5 String
Country String

Avaya Proactive Outreach Manager Developer Guide 420


Variable name Data type
ZipCode String
CampaignName String
CompleationCode String
Address String
PrimaryPOMServer String
SecondaryPOMServer String
SessionID String
JobID String
TextID String
VDN String
Language String
CompletionCode String

pomDynamicAttributes
This complex variable holds the array of custom attributes associated with contact record. The
fields in the variable are:
• AttributeName
• AttributeType
• AttributeValue
phoneInfo
This complex variable has following phone number specific fields:
• CountryCode
• PhoneAttributeName
• PhoneNumber
• Timezone
__________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 421


PDC nodes
__________________________________________________________________________________________
Get Contact Info
Use this PDC node to get the existing contact information. The configured EP user must have
access to the contact lists and private attributes. The following table lists the property names
and the property values:
Property name Value
POM Contact Info Variable Use new or existing pominfo complex variable.
Note:
POM Contact Info Variable is a mandatory property.
Dynamic Attribute Variable Use new or existing pomDynamicAttributes complex
variable.
Note:
Dynamic attributes are stored as arrays in
pomDynamicAttributes dynamic variable
__________________________________________________________________________________________

Add Contact Info


Use this PDC node to create a new contact, or update an existing contact record in the contact
list. The configured EP user must have access to contact lists and custom attributes associated
with contact list. The following table lists the property names and values:
Property name Value
Adding a new contact:
ContactID Variable Use new complex variable or set new user contact ID
within existing pominfo complex variable and select it from
drop-down list.
Note:
You must set value for this mandatory attribute.
ContactID Variable Field Use appropriate field from complex variable. This will be
saved as user contact ID for the contact record.
Contact List Name Variable Use new complex variable or select the existing pominfo
complex variable from the drop-down list.
Note:
You must set value for this mandatory attribute. Use
appropriate field from complex variable for contact list
name.
Contact list Name Variable Field Use appropriate field from complex variable for contact list
name.
First Name Variable Create a complex variable or select the existing pominfo
complex variable from the drop-down list.
First Name Variable Field Use available fields from the complex variable.
Last Name Variable Create a complex variable or select the existing pominfo
complex variable from the drop-down list.
Last Name Variable Field Use available fields from the complex variable.
Phone # 1 Variable Create a complex variable or select the existing pominfo
complex variable from the drop-down list.
Phone # 1 Variable Field Use available fields from the complex variable.
Phone # 1 Country Code The constant value can be hardcoded that will be saved
for country code of PhoneNumber1 system attribute.

Avaya Proactive Outreach Manager Developer Guide 422


Property name Value
Phone # 1 Time Zone The constant value can be hardcoded that will be saved
for time zone of PhoneNumber1 system attribute.
Phone # 1 State The state of phone number 1.
Phone # 1 Wireless Whether phone number 1 is wireless or not.
Phone # 2 Variable Create a complex variable or select the existing pominfo
or phoneinfo complex variable from the drop-down list.
Phone # 2 Variable Field Use available fields from the complex variable.
Phone # 2 Country Code The constant value can be hardcoded that will be saved
for country code of PhoneNumber2 system attribute.
Phone # 2 Time Zone The constant value can be hardcoded that will be saved
for time zone of PhoneNumber2 system attribute.
Phone # 2 State The state of phone number 2.
Phone # 2 Wireless Whether phone number 2 is wireless or not.
Email ID Variable Create a complex variable or select the existing pominfo
complex variable from the drop-down list.
Email ID Variable Field Use available fields from the complex variable.
Language Field The constant value can be hardcoded that will be saved
for language attribute.
AddressLine1 Field The constant value can be hardcoded that will be saved
for AddressLine1 system attribute.
AddressLine2 Field The constant value can be hardcoded that will be saved
for AddressLine2 system attribute.
AddressLine3 Field The constant value can be hardcoded that will be saved
for AddressLine3 system attribute.
AddressLine4 Field The constant value can be hardcoded that will be saved
for AddressLine4 system attribute.
AddressLine5 Field The constant value can be hardcoded that will be saved
for AddressLine5 system attribute.
Country Field The constant value can be hardcoded that will be saved
for country system attribute.
Zip code Field The constant value can be hardcoded that will be saved
for zip code system attribute.
Automatically update time zone Select true from drop down to automatically update the
for phone numbers Field time zone for the phone numbers depending on the
country code specified while entering the phone number.
Check phone numbers for Select true from drop down, if you do not want to save the
reject patterns Field phone numbers matching the reject patterns.
Check phone numbers for Select true from drop down, if you do not want to save the
phone formats rule Field phone numbers matching the phone formats.
Check phone numbers and Select true from drop down, if you do not want to save the
emails for DNC Field phone numbers and email addresses existing in the DNC
list.
Update existing on duplicate Select true from drop down, if you want to update an
record found Field existing contact. You can choose to either update the
existing record, or ignore the newly added record.
No of additional attributes Use to specify any additional custom attributes as integer
value. If you add custom attributes, you must specify the
attribute name and the attribute value for each custom
attributes.

Avaya Proactive Outreach Manager Developer Guide 423


Property name Value
For updating a contact:
ContactID Variable Use new complex variable or set existing user contact ID
within existing pominfo complex variable and select it from
the drop-down list.
ContactID Variable Field Use appropriate field from the complex variable. This will
be saved as user contact ID for the contact record.
ContactList Name Variable Use new complex variable or select the existing pominfo
complex variable from the drop-down list.
ContactList Name Variable Field Use appropriate field from complex variable for contact list
name.

For fields like Phone number, First Name, Last Name, and Email ID provide updated values.
__________________________________________________________________________________________
Get Phone Number
Use the get phone number PDC node to retrieve the phone number of existing contact.
The following table lists the property names and the property values:
Property name Value
Phone Attribute Name Variable Use a complex variable like phoneInfo.
Phone Attribute Name Variable Use the field containing name of PHONE type of attribute
Field (custom or system type) to be updated in contact.
Phone Attribute Name Variable The constant value (hardcoded) of attribute name that will
Constant be used to identify PHONE type of attribute.
Phone Info Result Variable Use complex variable like phoneInfo the retrieved values
PhoneNumber, PhoneAttributeName, CountryCode and
TimeZone will be stored into assigned variable.

________________________________________________________________________________________
Get Contact Attribute
Use this PDC node to get the existing contact information for a specific user contact ID. The
Configured EP user must have access to the provided contact list and contact attributes.
Note:
If you need to get values of multiple contact attributes through an Avaya Orchestration
Designer speech or message application, use the get contact info node. The get contact
info node reads the entire contact record in one request. You can then iterate through the
required attributes instead of retrieving the attribute values individually.

The following table lists the property names and the property values:
Property name Value
Attribute Name Variable Use new or existing pominfo complex variable.
Attribute Name Variable Field Use the field containing name of the custom or system attribute
to be retrieved from contact.
Attribute Name Variable The constant value (hardcoded) for the attribute name that will
Constant be used to identify the attribute to be retrieved.
Result Variable Use new or existing complex variable.
Note:
POM stores retrieved value of the specified attribute in this
result
variable.
Result Variable Field Use field from complex variable to store retrieved value of the
attribute.

Avaya Proactive Outreach Manager Developer Guide 424


__________________________________________________________________________________________
Update Contact Attribute
Use PDC node to update specific attribute or change the existing contact information.
The ConfiguredEP user must have access to the contact lists and custom attributes.
Note:
Ensure that the custom attribute you want to update exists on the POM server. The
predefined attributes are case-sensitive, and you must map the system contacts attributes
according to the following table:

Attribute name Name to be used in the node


Id UserContactId
First Name FirstName
Last Name LastName
Phone Number1 PhoneNumber1
Phone Number1 Country PhoneNumber1CtryCode
Code
Phone Number1 Time Zone TimeZone
Phone Number 1 State String
Phone Number 1 Wireless String
Phone Number2 PhoneNumber2
Phone Number2 Country PhoneNumber2CtryCode
Code
Phone Number2 Time Zone PhoneNumber2Tz
Phone Number 2 State String
Phone Number 2 Wireless String
Email Email
Language Language
Title TitlePredefined
Address Line1 AddrLine1Predefined
Address Line2 AddrLine2Predefined
Address Line3 AddrLine3Predefined
Address Line4 AddrLine4Predefined
Address Line5 AddrLine5Predefined
Country CountryPredefined
Zip Code ZipcodePredefined
Time Zone TimeZone
The following table lists the property names and the property values:
Property name Value
Attribute Name Variable Use new or existing complex variables.
Attribute Name Variable Field Use the field containing name of the custom or system attribute to
be updated in contact.
Attribute Name Variable The constant value (hardcoded) for the attribute name that will be
Constant used to identify the attribute to be updated.
Attribute Value Variable Use new or existing complex variables.
Attribute Value Variable Field The value provided in the field will be updated for specified attribute.
Attribute Value Variable The constant value can be hardcoded that will be updated for
Constant provided attribute name.

_________________________________________________________________________________________
Update Phone Number

Avaya Proactive Outreach Manager Developer Guide 425


Use this PDC node to update the values in PHONE type of attributes for existing contact record.
The following table lists the property names and the property values:
Property name Value
Phone Attribute Name Variable Use a complex variable like phoneInfo
Phone Attribute Name Variable Use the field containing name of PHONE type of attribute
Field (custom or system type) to be updated in contact.
Phone Attribute Name Variable The constant value (hardcoded) of attribute name that will be
Constant used to identify PHONE type of attribute.
Phone Attribute Value Variable Use new or existing complex variable like phoneInfo.
Phone Attribute Value Variable Select field from complex variable containing new value to be
Field updated for the phone attribute.
Phone Attribute Value Variable The constant value can be hardcoded that will be updated for
Constant provided PHONE type of attribute.
CountryCode Value Variable Use existing complex project variable like phoneInfo.
CountryCode Value Variable Field Use variable field from complex variable containing new value
for country code. If phoneInfo is used select CountryCode
variable.
CountryCode Value Variable The constant value can be hardcoded that will be saved for
Constant country code of provided phone attribute.
TimeZone Value Variable Use complex project variable like phoneInfo.
TimeZone Value Variable Field Use variable field from complex variable containing new value
for time zone. If phoneInfo is used select TimeZone variable.
TimeZone Value Variable The constant value can be hardcoded that will be saved for time
Constant zone of provided phone attribute.
State Value Variable Use new or existing complex variable like phoneInfo.
State Value Variable Field Select field from complex variable containing new value to be
updated for the phone attribute.
State Value Variable Constant The constant value can be hardcoded that will be saved for state
of provided phone attribute.
Iswireless Value Variable Use new or existing complex variable like phoneInfo.
Iswireless Value Variable Field Select field from complex variable containing new value to be
updated for the phone attribute.
Iswireless Value Variable Constant The constant value can be hardcoded that will be saved for
wireless of provided phone attribute.
Automatic Update for TimeZone Select true from drop down to automatically update the time
Variable zone for the phone number depending on the country code
specified while updating the phone number.
Check for Rejection Patterns Select true from drop down, if you do not want to save the phone
number matching the reject patterns.
Check for Phone Formats Rule Select true from drop down, if you do not want to save the phone
number matching the phone formats.
Check for DNC Addresses Select true from drop down, if you do not want to save the phone
number existing in the DNC list.

__________________________________________________________________________________________
Add Contact To Running Job
Use this PDC node to add contact record dynamically to running campaigns job. This operation
adds the contact in job’s dialing list at specified priority bypassing the filter and sort criteria
defined for the campaign.
Before you add any contact to a running job, ensure you have at least one instance of the job
running. The configured EP user must have access to the specified campaign. The following
table lists the property names and the property values:
Property name Value

Avaya Proactive Outreach Manager Developer Guide 426


Campaign Name Variable Use a new or existing pominfo complex variable
Campaign Name Variable Field The campaign name value specified using the campaign
name variable.
Campaign Name Variable Constant The constant value (hardcoded) of campaign name that will
be used to identify job.

__________________________________________________________________________________________
Add to DNC list
Use the Add to DNC list PDC node to add phone numbers or email addresses to the DNC list.
You can add contacts to the DNC list only if the POM web service user is a global user and not
an Org user.

Note:
A global admin users does not belong to any organization and performs the POM
Administration and POM Campaign Manager roles. An organization user or Org user belongs
to an organization created in Avaya Experience Portal and have the Org specific POM
Campaign Manager role.

The following table lists the property names and the property values:
Property name Value
Address for DNC List Variable Use complex project variable.
Address for DNC List Variable Field Select variable field from the complex variable
containing the address value you want to add to DNC
list.
Address for DNC List Variable Constant The constant value (hardcoded) for the
address(phone number or email) that will be added
into DNC list.
Organization for DNC List Variable Use complex project variable to identify specific DNC
list based on organization name.
Organization for DNC List Variable Field Select field from complex variable containing value for
the organization.
Organization for DNC List Variable Constant The constant value (hardcoded) for the organization
name that will be used to identify the DNC list.
Check phone numbers for reject patterns Select true if you do not want to save the phone
numbers matching the reject patterns.
Check phone numbers for phone formats Select true if you do not want to save the phone
rule numbers matching the phone formats.
__________________________________________________________________________________________
Remove from DNC list
Use the remove from DNC list node to remove phone numbers, email addresses from the DNC
list. You can remove contacts from the DNC list only if configured EP user is a global user and
not an Org user.
Note:
A global user does not belong to any organization and performs the POM Administration and
POM Campaign Manager roles. An organization user or Org user belongs to an organization
created in Avaya Experience Portal and performs the Org POM Campaign Manager role.
The following table lists the property names and the property values:
Property name Value
Address for DNC List Variable Use complex project variable.
Address for DNC List Variable Select variable field from the complex variable
Field containing the address value you want to remove to
DNC list.

Avaya Proactive Outreach Manager Developer Guide 427


Address for DNC List Variable Constant The constant value (hardcoded) for the
address(phone number or email) that will be removed
into DNC list.
Organization for DNC List Variable Use complex project variable to identify specific DNC
list based on organization name.
Organization for DNC List Variable Field Select field from complex variable containing value for
the organization.
Organization for DNC List Variable Constant The constant value (hardcoded) for the organization
name that will be used to identify the DNC list.
Check phone numbers for reject patterns Select true if you do not want to save the phone
numbers matching the reject patterns.
Check phone numbers for phone formats Select true if you do not want to save the phone
rule numbers matching the phone formats.
__________________________________________________________________________________________
Update Disposition
Use PDC node to update custom completion code, for contact attempt. The configured EP user
must have access to POM campaign and completion codes.
The following table lists property names and property values:
Property name Value
Completion Code Name Variable Use complex variable.
Note:
Ensure that the custom completion codes are
associated with running campaign and strategy.
Completion Code Name Variable Field Use field from complex variable.
Completion Code Name Constant The constant value (hardcoded) of custom completion
code that will be updated for attempt.
________________________________________________________________________________________

Avaya Proactive Outreach Manager Developer Guide 428


Avaya Proactive Outreach Manager Developer Guide 429

You might also like