Professional Documents
Culture Documents
POM4Rest
POM4Rest
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.
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.
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
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
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
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
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
__________________________________________________________________________________________
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
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
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
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":
__________________________________________________________________________________________
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.
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,
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"
}
]
}
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
}
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.
__________________________________________________________________________________________
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.
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":[]}]
__________________________________________________________________________________________
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
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
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
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,
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,
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
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
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
REQUEST JSON:
{"userContactId":"acc10123"}
RESPONSE JSON:
{"systemContactID":994}
________________________________________________________________________________________
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).
SHORT: The minimum value is -32,768, and the maximum value is 32,767
(both values inclusive).
Note:
You cannot enter a float value as a combination on numbers and
alphabets. For example, 123.4f is not a valid float value.
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
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.
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
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
REQUEST JSON:
{"userContactId":"21030"}
URL
https://<EP Server IP>/VP_POM_Service/v4/contactlists/{contact_list_id}/contacts
Parameters
path
"emptiedAttributes": [
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",
RESPONSE JSON:
{"SystemContactID":242,"emptiedAttributes": null }
_________________________________________________________________________________________
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
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
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
REQUEST JSON:
{"userContactId":"1",
"contactAttributeValue":"411013"}
RESPONSE JSON:
{"updatedAttribute":true}
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
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": [
RESPONSE JSON:
{
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.
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
REQUEST JSON:
{
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
}
__________________________________________________________________________________________
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
Payload - None
JSON response
Field name Description
result It returns true on success.
Note:
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
}
__________________________________________________________________________________________
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
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",
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"
}
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
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.
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
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
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.
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
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
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
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
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.
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/
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
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
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:
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:
__________________________________________________________________________________________
Get Campaign Jobs
GET /v4/campaigns/{campaign_id}/joblist
#returns jobs with all available states.
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:
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
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
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}
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
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
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
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.
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}
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,
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.
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}
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}
___________________________________________________________________________
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
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,
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}
URL
https://<EP Server IP>/VP_POM_Service/v4/datasources/check
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
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.
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}
__________________________________________________________________________________________
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.
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
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
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
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:
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
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
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
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.
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
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}]}
__________________________________________________________________________________________
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.
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
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.
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:
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.
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.
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:
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}
__________________________________________________________________________________________
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
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
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
REQUEST JSON:
{
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).
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.
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
__________________________________________________________________________________________
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
JSON response
Each attribute will have below fields:
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
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"
}
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:
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}
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
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:
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
For example :
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.
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
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.
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
__________________________________________________________________________________________
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
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"
}
__________________________________________________________________________________________
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.
REQUEST JSON:
{"callbackId":11,"endTime":"2017/05/16 15:45:26","timeZone":"GMT+05:30"}
RESPONSE JSON:
{
"11": "ExtendSuccessful"
}
__________________________________________________________________________________________
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.
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"
}
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
}
_________________________________________________________________________________
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.
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:
{
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
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.
JSON response
Field name Description
errorCode Display errorCode If error occurred during edit operation
errorMessage Display errorMessage If error occurred during edit operation
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
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]
REQUEST JSON:
{"callbackIdList":[20063,300,283,294],"agentID":"111"}
RESPONSE JSON:
{
"283": {
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
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
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
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:
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
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
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.
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
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.
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
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
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.
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}
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.
JSON response
Each item of the list will have below fields.
RESPONSE JSON:
{
"strategyBatch": [
{
__________________________________________________________________________________________
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.
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"}]
__________________________________________________________________________________________
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.
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
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.
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.
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
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:
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:
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
JSON response
Each parameter will have below fields:
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
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
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
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.
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
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
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",
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
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
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,
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
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”
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.
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,
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
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
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
}
]
}
__________________________________________________________________________________________
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.
Parameters
path None
payload None
JSON response
List of CCElite Outbound Skills list items, each item consists:
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"
}
]
__________________________________________________________________________________________
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.
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.
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.
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
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.
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.
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"
}
}
__________________________________________________________________________________________
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
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.
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:
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
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
JSON response
Field name Description
result true
Example
The example is for adding new holiday.
HTTP: POST /VP_POM_Service/v4/holiday
Header:
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}
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
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
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}
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.
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.
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
__________________________________________________________________________________________
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.
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"}
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
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}
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
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?
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.
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,
"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"
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
JSON response
jobLevelInfo
contactListLevelInfo
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:
[]
"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,
"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
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,
"completedCallbackCount": 0,
"pendingRetryCount": 0,
"tempRestrictedCount": 2,
"percentageAttemptedRecord": 50,
"percentageUniqueAttemptedRecord": 50,
"percentageComplete": 50,
"numberOfAttemptedRecord": 2,
"numberOfUniqueAttemptedRecord": 2
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
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,
"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
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": [
"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
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
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,
},
"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,
},
"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.
Example
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
This API fetches the Completion Code details for the provided Agent_Id on ContactList level.
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:
{
"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": {
"id": 74,
"name": "agentapi_cc",
"rpc": false,
"success": false,
"closure": false,
"count": 3
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
Response:
{
"currentJobCSInfo": {
"JavaSDKList01": {
"success": 0,
"closure": 0
},
"rulelistcall01": {
"success": 2,
"closure": 1
},
"allJobCSInfo": {
"JavaSDKList01": {
"success": 0,
"closure": 0
},
"rulelistcall01": {
"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.
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:
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.
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\"}"
}
__________________________________________________________________________________________
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.
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\"}"
}
__________________________________________________________________________________________
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
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"
},
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
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
Example
The example provided in this section deletes the filter template with ID 23
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
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
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
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
Example
The example provided in this section updates the contact list filter template associations for
campaign with campaign ID 1
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
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.
REQUEST JSON:
{
"associations": [
{
"contactList": "filterCL1",
"filterTemplateName": "filter1",
"dialingAllocation": 100
},
{
"contactList": "filterCL2",
"filterTemplateName": "filter2",
"dialingAllocation": 100
}
],
"applySameFilterToAllClist": false,
"noDialAlloc": false
}
__________________________________________________________________________________________
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
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\"}"
}
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
REQUEST JSON:
{
{"contactListFilterTemplateMapping" : {"7":3}}
}
RESPONSE JSON:
{
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.
REQUEST JSON:
{
{"contactListFilterTemplateMapping" : {"7":3},{"9":-1},{"18":13}}
}
RESPONSE JSON:
{
"count": 1811
}
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.
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",
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"
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.
"emptiedAttributes": [
]
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
},
RESPONSE JSON:
{
"splitterID": 71,
"emptiedAttributes": null
}
__________________________________________________________________________________________
Edit File Splitter
POST /v4/splitters/{splitter_id}
The API allows updating existing file splitter configuration.
URL
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
"emptiedAttributes": [
]
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": {
{
"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
}
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
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
splitterDescription String type. The short description or purpose of the file splitter
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,
URL
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:
RESPONSE JSON:
{
"schedules": [
{
"scheduleId": 697,
"scheduleType": 4,
"startTime": 1554452462000,
"endTime": 1562314862000,
"frequency": "Monthly"
}
]
}
__________________________________________________________________________________________
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
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:
REQUEST JSON:
{
"splitterId":1,
"startTime":"2019/08/02 10:16:48",
"timeZone": "GMT+05:30",
"recurringFrequency":"Monthly",
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
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:
"emptiedAttributes": [
]
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.
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,
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:
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
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:
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
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
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).
SHORT: The minimum value is -32,768, and the maximum value is 32,767
(both values inclusive).
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.
For example, to specify a custom attribute, Date_Of_Birth, then use the Date
data type.
For example, to specify a custom attribute, Delivery_Time, then use the Time
data type.
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
Example
The example provided in this section is based on retrieving list of organization and zone
mapping for each organization found on POM system.
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,
__________________________________________________________________________________________
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,
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"
}
]
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:
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.
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
}
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
}
URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/delete
Parameters
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
}
}
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"
}
URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/{agentGroupId}
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
}
URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/{agentGroupId}/agents
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"
]
}
]
URL
https://<EP Server IP>/VP_POM_Service/v4/agentGroups/{agentGroupId}/agents
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
}
}
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
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"
},
{
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,
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:
RESPONSE JSON:
{
"AshuTest": {
"status": "ADDED",
"errorCode": null,
"errorMessage": null,
"agentGroupId": "13"
},
"NEWGroup": {
"status": "ADDED",
"errorCode": null,
"errorMessage": null,
"agentGroupId": "15"
}
}
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
REQUEST JSON:
{
"agentGroupIdList":["15"]
}
RESPONSE JSON:
{
"NEWGroup": {
"status": "REMOVED",
"errorCode": null,
"errorMessage": null,
"agentGroupId": "15"
}
}
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
RESPONSE JSON:
{
"MaxAllowedAgentGroups": "500",
"MaxAllowedAgentsPerGroup": "500"
}
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"
]
}
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
}
URL
https://<EP Server IP>/VP_POM_Service/v4/agents/pollingTime
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
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
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
} }
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"
]
}
]
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
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.
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
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
}
]
URL
https://<EP Server IP>/VP_POM_Service/v4/agents/skills/outbound/aacc
Parameters
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"
}
]
URL
https://<EP Server IP>/VP_POM_Service/v4/agents/organizations/{organizationId}
Parameters
Payload None
Path
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"
]
}
]
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
}
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",
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
}
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
}
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"
}
URL
https://<EP Server IP>/VP_POM_Service/v4/agents/import/details
Parameters
Payload 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
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
}
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
RESPONSE JSON:
{
"result": true
}
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.
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
RESPONSE JSON:
[{"zoneId": -1,"status": "Success"},{"zoneId": 1,"status": "Failure"},{"zoneId":
2,"status": "No Active agents found"}]
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"}]
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
}
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
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:
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
RESPONSE JSON:
[
{
"pimUserId": 7,
"userName": "sales/orgsup",
"orgName": "sales"
},
{
"pimUserId": 10,
"userName": "sales/sup1",
"orgName": "sales"
},
{
"pimUserId": 11,
"userName": "sales/sup2",
"orgName": "sales"
}
]
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
RESPONSE JSON:
[
{
"pimUserId": 5,
"userName": "supUser",
"orgName": ""
},
{
"pimUserId": 13,
"userName": "test",
"orgName": ""
}
]
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
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",
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
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
}
],
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": "",
URL
https://<EP Server IP>/VP_POM_Service/v4/purge/update
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
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,
RESPONSE JSON:
{
"booleanResponse": true
}
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
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
}
URL
https://<EP Server IP>/VP_POM_Service/v4/Supervisor/getAuthorities
Payload - None
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,
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"
]
}
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.
RESPONSE JSON:
{
[{
"abdShortAreaCode": "1",
"count": "2",
"abdIntSalary": "100",
"abdAgentId": "20",
"abdBooleanAnswer": "true"
},
{
"abdShortAreaCode": "2",
"count": "1",
"abdIntSalary": "200",
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",
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.
• 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.
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);
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);
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().
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;
/**
* 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[]
/**
* 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....");
/**
* Add Custom Attributes
*/
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 {}
}
}
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
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;
}
}
__________________________________________________________________________________________
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());
__________________________________________________________________________________________
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:
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());
__________________________________________________________________________________________
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”.
Procedure
@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.
__________________________________________________________________________________________
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
__________________________________________________________________________________________
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.
Example
__________________________________________________________________________________________
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.
Example
__________________________________________________________________________________________
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;
/*
* 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);
/*
* 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;
}
__________________________________________________________________________________________
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
________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
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
__________________________________________________________________________________________
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.
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
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
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
__________________________________________________________________________________________
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.
_________________________________________________________________________________________
Update Phone Number
__________________________________________________________________________________________
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
__________________________________________________________________________________________
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.