Quadient Cloud - User Guide 12.5 (EN)

You might also like

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

User Guide

Version 12.5

Quadient Group AG

© 2019 Quadient Group AG https://www.quadient.com/documentation


Quadient Cloud
User Guide
Product version 12.5

Document version 12.5.0.3

Release date: October 2019

Quadient Group AG

www.quadient.com

For more samples, articles, documentation and product discussions join our community portal at Quadient University.

Should you have any queries, suggestions or comments concerning these materials, please do not hesitate to contact us at
documentation@quadient.com.

Multiple sites of the Quadient group of companies hold certificates to ISO 9001, ISO 27001 and ISO 14001.

Legal Disclaimers and Copyright

Information contained within this document may contain technical inaccuracies or typographical errors. Changes will be added periodically
and modifications will be made thereto without prior notification. Quadient does not enter into any obligations or responsibilities regarding
the content of this document and does not assume any legal liability – neither expressed or implied – for its accuracy, completeness and/or
usefulness.

This document may contain links to third-party web sites. These links are solely provided as a convenience and not as an endorsement by
Quadient of the contents found on those third-party web sites. Quadient is not responsible for the content of linked third-party sites and
does not guarantee the accuracy of materials found on them. Quadient does not endorse any products presented on third-party websites.
If you decide to access any linked third-party web sites, you do so at your own risk.

Copying of the software or manual on to any data storage medium or in any other way, except for explicit company internal use, is strictly
forbidden without the prior written authorization of Quadient. Failure to comply with these restrictions is liable to prosecution.

Trademarks

Quadient® and its logo are trademarks of Quadient Group AG.

Adobe® and Adobe PDF Library™ are trademarks or registered trademarks of Adobe Systems Inc. in the US and other countries. The names,
logos and international property rights of other companies regarding products and services remain the property of their respective owners.
Table of Contents

1 Introduction 1

2 Administration 3
2.1 Administration Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.1 Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 Ordering Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1 Company Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2 Users and Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.3 Customers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.4 Account Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.5 Domain Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.3.6 SMS Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.3.7 Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.3.8 API Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.3.9 Authentication (SSO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.3.10 Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.3.11 Migrate and Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.3.12 About Quadient Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.4 My Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

3 Customer Journey Map 95


3.1 Application Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.2 User Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.2.1 Standard Companies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.2.2 Customer Companies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.2.3 Concurrent Access and Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.3 Preparing Map Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.3.1 Whiteboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.3.2 Personas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.3.3 Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.3.4 Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.3.5 Tag Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.4 My Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.4.1 Map Management Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.4.2 Creating Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.4.3 Map Detail Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.4.4 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.4.5 Map Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.5 Document Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3.6 Social Commenting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
3.6.1 Social Commenting in Touch Point Detail Window . . . . . . . . . . . . . . . . . . . . . . . . . 171
3.6.2 Social Commenting in Document Detail Window . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.6.3 Social Comment Exchanging with Related Applications . . . . . . . . . . . . . . . . . . . . . . 174
3.7 Map Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.7.1 Strategy Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.7.2 Global Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
3.8 Content Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
3.9 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Quadient Cloud | iv

3.9.1 Touch Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183


3.9.2 Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
3.10 API Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
3.10.1 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
3.10.2 Sending HTTP Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.10.3 API Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
3.11 Application Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
3.12 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
3.12.1 Integration with Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
3.12.2 Integration with Omnichannel Coordination . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

4 Customer Preference Management 213


4.1 Application Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
4.2 Using Customer Preference Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
4.2.1 Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
4.2.2 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
4.3 Managing Jobs via the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
4.3.1 Creating and Starting a Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
4.3.2 Closing a Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.3.3 Downloading Simplified Job Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.3.4 Downloading Advanced Job Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
4.3.5 Deleting a Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

5 Digital Services 242


5.1 Application Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
5.2 Using Digital Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
5.2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
5.2.2 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
5.2.3 Authentications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
5.2.4 User Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
5.2.5 Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
5.2.6 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
5.3 API Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
5.3.1 Client API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
5.3.2 Enterprise API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
5.3.3 Generic Cloud Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
5.3.4 Ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
5.3.5 API Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537

6 Insights 540
6.1 Application Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
6.2 Dashboard Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
6.2.1 Preparing Dashboard Component Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
6.2.2 Preparing Data and Connecting Them to Component Templates . . . . . . . . . . . . . . . . . . 547
6.2.3 Uploading Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
6.2.4 Assembling Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
6.3 Dashboard Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
6.3.1 layout:Insights.Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
6.3.2 layout:Insights.Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
6.3.3 layout:Insights.Rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
6.3.4 layout:Insights.Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
6.4 Dashboard Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
6.4.1 widget:Insights.BostonMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
6.4.2 widget:Insights.ColumnAndLineChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
6.4.3 widget:Insights.ColumnChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
6.4.4 widget:Insights.Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Quadient Cloud | v

6.4.5 widget:Insights:DataDownloadButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617


6.4.6 widget:Insights.Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
6.4.7 widget:Insights.Donut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
6.4.8 widget:Insights.EmbeddedHtml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
6.4.9 widget:Insights.Gauge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
6.4.10 widget:Insights.Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
6.4.11 widget:Insights.LineChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
6.4.12 widget:Insights.StackedBarChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
6.4.13 widget:Insights.Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
6.4.14 widget:Insights.Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
6.4.15 widget:Insights.TagFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
6.4.16 widget:Insights.Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
6.4.17 widget:Insights.WordCloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
6.5 Using Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
6.5.1 My Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
6.5.2 Dashboard Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
6.5.3 Component Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
6.5.4 Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
6.5.5 Custom Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
6.5.6 API Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
6.5.7 Download Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
6.5.8 Frequently Used Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679

7 Messenger 681
7.1 Application Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
7.2 Using Messenger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
7.2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
7.2.2 Emails and SMS Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
7.2.3 Download Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
7.2.4 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
7.2.5 Unsubscribe Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
7.3 API Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
7.3.1 Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
7.3.2 Retrieving CSRF Token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
7.3.3 Managing Batches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
7.3.4 Managing Extended Delivery Data (Delta Query) . . . . . . . . . . . . . . . . . . . . . . . . . . 751
7.3.5 Managing Recipient Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
7.3.6 Replacing Resources in Sent Emails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
7.3.7 Analyzing Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
7.4 Solution Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
7.4.1 Designing and Sending Emails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
7.4.2 Designing and Sending SMS Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
7.4.3 Documents + Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
7.5 Integration with Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777

8 Omnichannel Coordination 778


8.1 Application Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
8.2 Before You Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
8.2.1 Compatibility Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
8.2.2 User Role Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
8.2.3 Sample Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
8.3 Using Omnichannel Coordination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
8.3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
8.3.2 Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
8.3.3 Channel Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
8.3.4 Channel Process Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
Quadient Cloud | vi

8.3.5 Data Structure Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800


8.3.6 Delivery Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
8.3.7 Delivery Rules Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
8.3.8 Permissions and Sharing Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
8.3.9 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
8.3.10 Content Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
8.3.11 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
8.3.12 Download Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
8.3.13 Customer View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
8.4 API Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
8.4.1 Retrieve Session-Id (Login) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
8.4.2 Retrieve commandtoken (SessionInfo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
8.4.3 Retrieve Company ID (GetCompanyIdByName) . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
8.4.4 Retrieve Templates List (GetTemplateModifiedInfoList) . . . . . . . . . . . . . . . . . . . . . . . 825
8.4.5 Update Templates List (SaveTemplates) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
8.4.6 Retrieve Delivery Rule ID (GetDeliveryRuleIdByName) . . . . . . . . . . . . . . . . . . . . . . . 828
8.4.7 Retrieve Delivery Rules List (PublicGetDeliveryRuleListQuery) . . . . . . . . . . . . . . . . . . . 829
8.4.8 Export Delivery Rules (PublicExportDeliveryRuleQuery) . . . . . . . . . . . . . . . . . . . . . . . 830
8.4.9 Import Delivery Rules – Request (PublicDeliveryRuleImport) . . . . . . . . . . . . . . . . . . . . 831
8.4.10 Import Delivery Rules – Result (PublicImportDeliveryRuleGetResultQuery) . . . . . . . . . . . . . 832
8.4.11 Upload CSV Input File (CsvInputFile) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
8.4.12 Check CSV Input Upload Status (CsvInputFileUploaded) . . . . . . . . . . . . . . . . . . . . . 833
8.4.13 Create Job (SaveJob) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
8.4.14 Save Job Including CSV Input (PublicSaveJob) . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
8.4.15 Retrieve Job ID (GetJobIdByName) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
8.4.16 Start Job (StartJob) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837
8.4.17 Retrieve Job Data (PublicGetJobDataQuery) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
8.5 Sample Solutions and Configuration Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
8.5.1 Deployment Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
8.5.2 Scaler Environment Variables Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
8.5.3 Scaler Workflows Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
8.5.4 Integration with Inspire Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
8.5.5 Preconfigured Channel Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
8.5.6 Preconfigured WFD Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
8.5.7 Preconfigured Delivery Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
8.5.8 Hotfolder and Sharefolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
8.5.9 Running a Demo Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
8.5.10 Creating Mobile and Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
1 Introduction
1 Introduction | 2

The aim of this guide is to provide end users with information on how to work with Quadient Cloud. The guide
describes the administration part, so company administrators, and company users, can easily configure their
company account. It also helps with functionality of every Quadient Cloud application.
2 Administration

2.1 Administration Overview


2.2 Dashboard
2.3 Administration
2.4 My Settings
2 Administration | 4
2.1 Administration Overview

2.1 Administration Overview


The administration functionality of Quadient Cloud allows administrators of company accounts to manage users,
roles, customers, credits, transaction history, domains, authentication, SMS gateways, and notifications.

Quadient Cloud

Administration

Company Account Users and Roles Customers

Account Policy Domain SMS Gateway


Configuration

Maintenance Authentication Notifications

About Settings

2.2 Dashboard
2 Administration | 5
2.2 Dashboard

The first thing you see when you log in to Quadient Cloud is the Dashboard. It overviews your company's use of
the platform, such as the number of users, current credit, and applications details.

● Default

● Application Based

2.2.1 Widgets
Default
The default overview every Cloud user sees:

● Server Date and Time

● User Administration

● Credit Balance

● Company Data

● Feedback & Support

● Application Store

● Messenger

1 Server Date and Time

The Quadient Cloud server date and time.

2 User Administration

The number of company users registered in Cloud. Click this widget to go to the user administration.

3 Credit Balance

Your current company credit balance for sending SMS messages and emails. When it reaches specific amount
you set as the minimum credit limit, it is highlighted with orange color. Click this widget to go to the Overview.
2 Administration | 6
2.2 Dashboard

4 Company Data

Total storage space your company's data occupies.

5 Feedback & Support

Click this widget to go to the support page http://www.quadient.com/contact-us .

6 Application Store

You can order additional Quadient Cloud applications. Click this widget to go to the Application Store. See the
Ordering Applications section for more information.

7 Messenger

The number of email and SMS batches. Also displays email statistics from the past 14 days. Click this widget to
go to Messenger | Overview.
2 Administration | 7
2.2 Dashboard

Application Based
Based on your purchased Cloud applications and services, additional overview is displayed:

● Insights

● Customer Preference Management

● Digital Services

● Customer Journey Map

8 Insights

Number of shared Insights dashboards. Click this widget to go to Insights | My Dashboards.

9 Customer Preference Management

Number of jobs and templates in Customer Preference Management. Click this widget to go to Customer Preference
Management | Jobs.
2 Administration | 8
2.2 Dashboard

10 Digital Services

Number of service errors and expired certificates in Digital Services. Click this widget to go to Digital Services |
Overview.

11 Customer Journey Map

Number of customer companies that have Customer Journey Map enabled, and the number of programs and
tasks you have in your CJM. Click this widget to go to Customer Journey Map | Strategy Dashboard.

2.2.2 Ordering Applications


Here you can find the application descriptions and select the applications you want to order.
2 Administration | 9
2.2 Dashboard

1 Available Available applications you can order for your company account.

2 Already Installed Applications you have already purchased and enabled for your company account.

NOTE Inspire Messenger is available for every Cloud company by default.

3 Description Brief description of the application.

4 Shopping Cart Cart containing the selected applications you want to order.
2 Administration | 10
2.2 Dashboard

Sending the Order

To order an application:

1. Click ADD TO CART to add the applications you want to order to the shopping cart.

2. Open the shopping cart in the upper-right corner.

3. Optionally, type in a Message for Cloud support.

4. Click SEND ORDER to confirm.

5. As soon as you send the order, you receive a confirmation email.

Wait until Cloud support contacts you for additional information.


2 Administration | 11
2.3 Administration

2.3 Administration
Here you can select from the sections:

Company Account

Users and Roles

Customers

Account Policy

Domain Verification

SMS Gateway

Maintenance

API Keys

Authentication

Notifications

Migrate and Update

About Quadient Cloud


2 Administration | 12
2.3 Administration

2.3.1 Company Account


Here you can select from the sections:

● Overview

● Transaction history

● Credit Top Up

● Billing Information

● Price List

● Settings

2.3.1.1 Overview
Displays an overview about Quadient Cloud Credits, sent emails, SMS messages, and other transactions.
2 Administration | 13
2.3 Administration

General Tab

You can find information about:

● Credit Balance

● Company Data

● Get More Credits

● Available Transactions

● Credit Spending

1 Credit Balance
Your current company credit balance. When it reaches the specified minimum credit limit amount, it is highlighted
in orange.
2 Administration | 14
2.3 Administration

2 Company Data
Total storage space your company's data occupies.

3 Get More Credits


Clicking on this widget redirects you to the Credit Top Up.

4 Available Transactions
The number of available email transactions you can make with your current credit balance.

5 Credit Spending
Use For this calendar month, or From and To date pickers to specify the period and filter the data to see the
charts.
2 Administration | 15
2.3 Administration

Credit Balance History Credit balance history, i.e. credit top up and spending.

Credits Spent Per Transaction Type Credit spending for each selected transaction type:
2 Administration | 16
2.3 Administration

● Email – Standard email.

● Email with DC – Email containing dynamic communications.

● BCC email – Email resent to another email address (blind carbon copy).

● BCC email with DC – Email containing Dynamic Communications documents resent to another email
address (blind carbon copy).

● SMS – SMS message.

Top Spenders Credit spending for each daughter (linked) company. This chart is visible only if you have other
companies linked to your company.

Linked Companies Overview


Daughter (linked) companies see only credit spending:
2 Administration | 17
2.3 Administration

Linked Companies Tab


Here you can select a specific daughter (linked) company and see details about its credit spending:
2 Administration | 18
2.3 Administration

● Credits spent

● Credit spending history

● Credit spent per transaction type

NOTE This tab is only available to parent companies with linked companies to them.

2.3.1.2 Transaction History


Displays the transaction history of your company account. You need Quadient Cloud Credits to send SMS messages
and emails. You can order credits in the Top Up section. All emails and SMS messages are sent via Inspire Mes-
senger .
2 Administration | 19
2.3 Administration

Manage transactions with the following controls:

Download Report as XLSX Downloads an XLSX file with transaction history.

Display Batch in Messenger Opens email/SMS messages list in Inspire Messenger.

NOTE You cannot display batches of daughter (linked) companies in Messenger.

The transaction history differs based on the company type (parent or linked):

● Parent company

● Daughter (linked) company

Parent Company
This section is divided into columns:

Application Cloud application the transaction was made with: Messenger.

Transaction Type of the transaction credit was spent on:

● Email – Standard email.

● Email with DC – Email containing dynamic communications.

● BCC email – Email resent to another email address (blind carbon copy).

● BCC email with DC – Email containing Dynamic Communications documents resent to another email
address (blind carbon copy).

● Sms – SMS messages.

Company Parent/Daughter (linked) company that made the transaction. The naming convention for linked
companies is yourcompany-linkedcompany, e.g. vital-froodeco.
2 Administration | 20
2.3 Administration

Deducted Credits Number of credits spent on the transaction (deducted from your company account).

New Balance Current credit balance after the transaction.

Date Date and time the transaction was made.

Daughter (Linked) Company


The daughter (linked) company only sees these columns:

Application Cloud application the transaction was made with.

Transaction Type of transaction credits were spent on.

Date Date and time the transaction was made.

TIP For easier orientation, click the related icon to sort the history.

Filtering Transactions
To filter transactions:

1. Click SHOW FILTER to display the filter options.

2. Use the From and To date pickers, and select the Transaction Type:

● All

● Sms

● Email

● Email with DC

3. You can also filter using the Application and Company options.

NOTE The Company option is only available for parent companies.

If you have a lot of transactions listed, you can specify the number of notifications per page in the bottom-left
corner. You can also navigate through pages using the navigators.
2 Administration | 21
2.3 Administration

Downloading an XLSX Report File


You can download an XLSX file with transaction history. To do so, click Download Report as XLSX. The file
contains columns:

Date and time Date when a transaction was made (UTC format).

Spent On Type of a message credit was spent on:

● MessengerEmail

● MessengerEmailWithDC

● MessengerEmailBcc

● MessengerEmailBccWithDC

● MessengerSms

Deducted Credits How much credit was spent on a transaction (deducted from your company account).

Content Number of messages in the batch.

EXAMPLE An XLSX file with transaction history.

Date and time (UTC+0) Spent On Deducted Credits Content

2016-02-10 14:40:12Z MessengerEmailWith- 0.5 100


DC

2015-10-30 13:31:52Z MessengerEmail 0.5 100

2.3.1.3 Credit Top Up


Displays information about credit top up history and allows ordering credits.
2 Administration | 22
2.3 Administration

Manage credits with the following control:

Credit Top Up Orders credits.

The section is divided into columns:

Credit Amount How much credit was added to your company account.

Price Price of the top up.

Currency Currency used for the price calculation: EUR, USD or GBP.

Topped Up Via Payment method used to pay for credit: Credit card or Local office order.

Payment ID ID generated by the Stripe provider.

Topped Up By User who added the credit to the company account.

Card Number Number of the credit card used to pay for credit. For safety reasons, only the last 4 digits are
visible.

Topped Up Date Date when the payment was made.

TIP For easier orientation, click the related icon to sort the top up history by credit amount, price,
topped up via, topped by or date.

Ordering Credits
To order credits, click Credit Top Up. The Credit Top Up window opens.
2 Administration | 23
2.3 Administration

1. Specify the 1 Type how you want to pay:

● By credit card – This method is powered by the Stripe service , for secure mobile payments.

IMPORTANT You must fill in the billing information before you can pay by credit card.

The By credit card option is not available for new companies by default. Contact support to
enable it.

● Via local office order – When selected, fill in your email address and click SEND. You will be contacted
by Quadient support. If you want to be contacted via phone instead, fill in your telephone number.
2 Administration | 24
2.3 Administration

2. If you selected By credit card, specify the 2 Top Up:

Quadient Cloud Credits Amount of credits you want to order.

Price Amount of money you want to spend.

Currency Currency you want to pay in: EUR, USD or GBP. The final Price is calculated.

TIP Click SHOW CALCULATOR to use the Top Up Calculator.

3. Click CHECKOUT to confirm.


2 Administration | 25
2.3 Administration

4. Fill in your card number, expiration date, and the 3-digit CVC code.

Optionally, check Remember me to pre-fill your credit card details the next time you make a payment.

5. Click Pay to place the order.

Once you have successfully ordered credits, a confirmation email is sent to your email address. It contains
a payment ID if you needed to contact the Stripe service support.

Top Up Calculator
Use the Top Up Calculator to calculate the credit amount you need when you select to pay By credit card. The
estimated amount of credits needed is calculated based on the entered values.

Emails

Expected volume of emails Number of emails to be sent.

TIP For more details, see the Price list.

Getting Help with Ordering Credits


To get help with ordering credits, click CONTACT SUPPORT in the top-right corner. The Contact Support
dialog opens. Fill in:
2 Administration | 26
2.3 Administration

Phone number Valid phone number you want to be contacted on.

Problem description Briefly describe your issue, e.g. I'm not able to order credits. The description is mandatory.

Click SUBMIT to confirm. Quadient support will contact you as soon as possible.

Downloading Invoices
As soon as we provide you with an invoice for purchasing Quadient Cloud credits, you can download it on the
Invoices tab.

TIP Set up a notification that will notify you if a new invoices ready.

2.3.1.4 Billing Information


Before you order credits and pay by a credit card, please fill in the billing information. We at Quadient will use
the information for invoicing you.
2 Administration | 27
2.3 Administration

Billing Address

Company name Enters the officially registered name of your company.

This doesn't have to correspond to your Cloud company name (specified when registering your account ).

Street Address / City / State/Province / ZIP/Postal / Country Enters the full official billing address of your
company.

Tax ID Enters the tax identification number assigned to your company.

This is not mandatory, but may be required on invoices by your company accountants.

2.3.1.5 Price List


Determines the cost of sending emails via Messenger. You can also use the Price Calculator.

Fixed Pricing
The price for sending emails is set by the Cloud administrator. The amount of transactions does not influence the
cost. The cost is displayed for every 1,000 transactions and may change.
2 Administration | 28
2.3 Administration

EXAMPLE This is only an example and the final price may differ.

TIP Change the currency in the top-right corner.

Price Calculator
Use the Price Calculator to calculate how many credits you will need for your transactions. It works the same
as the Top Up Calculator.

Additional Information

Emails
The maximum size of an email is 7MB, including attachments.
2 Administration | 29
2.3 Administration

Dedicated IP Address
Quadient cannot control what Cloud companies send. By default, Cloud companies share the same IP address
provided by the service provider (e.g. MailJet), and this could result in the service provider blacklisting the IP address.
You can buy your own dedicated IP address to eliminate this problem. Contact support for more information.

SMS Messages
The maximum length of an SMS message is:

● 160 characters including emoticons in ASCII format.

● 70 characters including emoticons in Unicode format.

NOTE SMS message concatenation is only supported in ASCII format.

2.3.1.6 Settings
Low Credit Balance Warning
You can set a minimum Credit limit warning, so when your company credit balance reaches the set number of
credits, a warning email is sent to every company user. Warning emails are sent only once a day.

By default, the limit is set to 0. No warning email is sent when you keep the default value (0).

TIP You can also notify users about the low credit via notifications.

Credit Top Up Options


Use the ON / OFF switch to enable Automatic credit top up. This sends a request to Cloud support with a
specified top-up Credit amount when your balance reaches the credit limit.
2 Administration | 30
2.3 Administration

Sign-in Notice
Because of various legal standards in different countries, you can add legal text which is then displayed as a
notice when your company users sign in.

1. Contact Cloud support and provide them with the legal text.

2. Wait until Display sign-in notice is enabled by support.

3. Use the ON / OFF switch to display the message to users when they sign in.

NOTE If you want to change the legal text, contact support.

2.3.2 Users and Roles


In this section, you can add new users to your company account, create user roles, and assign them to the users.
2 Administration | 31
2.3 Administration

● Users

● Roles

NOTE You need to have the Company Administrator user role or User management permission assigned
to manage users.

2.3.2.1 Users
Displays a list of all company users registered in Cloud.

Manage users with the following controls:

Invite Adds a new user.

Import Imports users from an XLSX file.

Edit Edits users' roles and permissions.

Resend Activation Email Resends the activation email.

Delete Deletes the selected user.

This section is divided into columns:

Name User name displayed throughout the Quadient Cloud GUI.

Status Current user status:


2 Administration | 32
2.3 Administration

Active User has activated the account via the activation email.

Pending activation User hasn't activated the account via the activation email.

Role User roles a user has assigned. There are predefined roles and you can also create new ones.

Phone indicates a valid phone number.

Email Address User email address. Users receive activation and notification emails to this address.

User Details
To see user details, click the related icon.

Roles Assigned roles for the user.

Linked sign in accounts List of linked external accounts used to sing in to Cloud.

NOTE You cannot delete the last remaining user in a company.

Adding New Users


To add a new user:

1. Click Invite. The New User window opens.


2 Administration | 33
2.3 Administration

2. Fill in the user's Name, valid Email address, and Phone number.

3. Click TEST to send a test SMS message to the phone number. The phone number must be in the valid
format <CountryCode><PhoneNumber>, e.g. 0420XXXXXXXXX, +420XXXXXXXXX.

4. Select a user role for the users:

● Messenger Application Administrator

● Company Administrator

● Insights Application Administrator

● Insights Dashboards Manager

● CJM Program Manager

● Digital Services Application Administrator

● Digital Services Developer

● Digital Services Business User

The Basic User role is selected by default, so that every new user has at least this user role.
2 Administration | 34
2.3 Administration

TIP These roles are predefined by default. To create your own, see the Creating New Roles section.

5. Click CREATE to confirm. The user gets an activation email.

Importing Users from an XLSX file


You can import users from an XLXS file. To do so:

1. Click Import. The Import Users dialog opens.

2. Click the icon and select the XLSX file with users' records. The records are validated.

The XLSX file must have the correct data structure. Click DOWNLOAD SAMPLE to download a sample
file with a proper data structure.

Correct XLSX file data structure.


The correct XLSX file data structure is:

Name Email Role PhoneNumber

John Smith j.smith@test.com Company Administrator +420123456789

IMPORTANT When you import users:

● You cannot import users with the same email address as an existing user.

● 2 or more new users cannot have the same email address.

● XLSX columns must be in this exact order: Name | Email | Role | PhoneNumber.

● A specified role must exist and it is case sensitive.

3. Click IMPORT to confirm. The users are imported and activation emails are sent to their email addresses.

Optionally, you can download a validation report to see which records are not valid.
2 Administration | 35
2.3 Administration

2.3.2.2 Roles
Roles define users' permissions – what actions company users can do, e.g. invite new users, send batches via
Inspire Messenger etc.

Manage roles with the following controls:

New Adds a new role.

Edit Edits the role name and permissions.

Assign Users Assigns users to the roles.

Delete Deletes the selected role.

This section is divided into columns:

Role Role name.

User Count Number of users assigned to a role.

Users Users assigned to a role.

Updated Date and time a role was updated.

Role Details
To see role details, click the related icon.
2 Administration | 36
2.3 Administration

Permissions Enabled permissions.

Users Assigned users.

Predefined Roles and Their Permissions


These roles are available by default for every new company account:

User Role Permissions

Basic User Basic access to all applications (based on the available applications
for particular companies). For example, email and SMS message
overview in Messenger, Company Account overview in Administration
etc. Every created user has this role set by default.

NOTE You cannot change permissions for this user role.

CJM Program Manager ● CJM access

● CJM program management

Company Administrator ● User management

● Customer management

● Administration settings

● Low credit notification

● Alert management

Digital Services Business User Reports and statistics


2 Administration | 37
2.3 Administration

User Role Permissions

Digital Services Developer ● Reports and statistics

● Content and user management

Digital Services Application Adminis- ● Reports and statistics


trator
● Content and user management

● Development and administration

Insights Dashboards Manager ● Dashboard management

● Customer management

Insights Application Administrator ● Dashboard management

● Component templates management

● Customer management

Messenger Application Administrator Batch management

TIP Click the role text in the role list to view permissions enabled for the role.

Permissions
● Administration

● Customer Journey Map

● Digital Services

● Insights

● Messenger

● Omnichannel Coordination

Administration
Related to the Quadient Cloud administration.
2 Administration | 38
2.3 Administration

User management Adds and manages users in the company. Creates and manages roles and assigns them
to users.

Customer management Creates and edits customer companies accounts. Manages users in those companies.
Allows additional applications for customers.

Administration settings Enables additional Cloud sections (functionality) for the user: SMS Gateway and Domain
Verification.

Low credit notification Sends a low credit notification and email to company users with this permission when
the credit balance of your company reaches the specified limit.

Alert management Creates and manages alerts for all users in the company.

Customer Journey Map


Related to Quadient Customer Journey Map .

CJM access Allows access to the Customer Journey Map application.

CJM administration Allows CJM configuration in the Settings section.


2 Administration | 39
2.3 Administration

CJM customer contribution Allows accessing the CJM application in customer (tenant) companies.

CJM program management Manages program sharing and ownership of programs.

NOTE You can only set these permissions when your company has Quadient Customer Journey Map
available. For more information, see the detailed User Role description in the CJM documentation.

Digital Services
Related to Digital Services .

Reports and Statistics View reports and statistics for individual applications. Can browse documents and ap-
plications templates.

Content and User Management Creates and manages documents, application templates and user lists. Creates
and manages services.

Development and Administration Creates and edits applications and publishes application templates. Manages
the authentication list.

NOTE You can only set these permission when your company has Digital Services available. As soon as
you have Digital Services available, these permissions are automatically set to the Company Administrator
user role.

For more information, see the detailed User Role description in the Digital Services documentation.

Insights
Related to Inspire Insights .
2 Administration | 40
2.3 Administration

Dashboard management Views and manages dashboards. Creates, previews, edits and distributes dashboards
to customers.

Component templates management Uploads dashboard components. Manages data storage. Creates and
manages API keys.

NOTE You can only set these permission when your company has Inspire Insights available.

Messenger
Related to Inspire Messenger .

Batch management Views and starts email and SMS message batches. Views batch details, schedules the
start and expiration date of batches. Designs email templates.

Omnichannel Coordination
Related to Inspire Omnichannel Coordination .

Omnichannel access Allows access to the Omnichannel Coordination application.

Omnichannel administration Allows advanced management of Omnichannel Coordination and its content
(sharing, permissions, import/export).
2 Administration | 41
2.3 Administration

NOTE You can only set these permission when your company has Inspire Omnichannel Coordination
available. For more information, see the detailed User Role description in the OCC documentation.

Creating New Roles


To create a new role:

1. Click New. The New Role window opens.

2. Fill in the Role name, e.g. Customer Manager.

3. Use the ON / OFF switch to set the permissions.

4. Click CREATE to confirm.

TIP Click the info icon to open Role Summary to see all the permissions for the role.
2 Administration | 42
2.3 Administration

Assign Users to Roles


As soon as you create a new role, you can assign users to it.

1. Select a role and click Assign Users. The Assign User dialog opens.

2. Check the Role name to be sure you are adding users to the right role.

3. Click the icon in the Manage Users section.

4. Check related check-boxes to select users. To clear the selection, click CLEAR ALL.

TIP Type a name in the text field to filter users.

5. Click SAVE to confirm.

2.3.3 Customers
As a service provider, you can provide your customers with a Quadient Cloud account and access to Inspire
Messenger, Quadient Customer Journey Map, Inspire Insights, and/or Inspire Omnichannel Coordination.
2 Administration | 43
2.3 Administration

Manage customers with the following controls:

New Creates a new customer account.

Edit Edits customer details, such as company logos, colors.

Users Opens the Customer Users management.

Applications Manages customer's applications.

Delete Deletes the selected customer.

This section is divided into columns:

Customer Name Name of the customer company.

Users Number of customer users.

Created Date and time a customer was created.

Creating New Customers


To create an account for a customer:

1. Click New. The Create Customer dialog opens.


2 Administration | 44
2.3 Administration

2. Specify:

1 General

Name Customer name, e.g. Vital International.

URL URL address is generated automatically based on the customer name and your company name.

For Vital International, it will be https://companyname-vitalinternational.quadientcloud.eu. You


can change the generated URL address to your needs. It can only contain lower case letters, numbers
and hyphens.

WARNING The URL address cannot be changed later.


2 Administration | 45
2.3 Administration

2 Colors

Company color Color of all highlighted elements (e.g. active edit boxes and highlighted text buttons).
The default color is #72bf44 (green).

Basic color Text or background color of elements that use inverted colors. Select a color which contrasts
with white. The default color is #40484b (gray).

Selecting Company Colors


To set a color:

● Use a hex code, e.g. #ff0000 for red. When you insert the hex code, the color is previewed.

● Use the advanced color picker:

TIP Click the icons to switch between pickers: / / .

3 Company Logos

Application logo Image used as a logo in the top-left corner in the Cloud GUI. The image must be in the
PNG format with dimensions 250x50 pixels. If you don't upload a customized application logo, the
default Cloud logo is used.

Sign-logo Image used as a logo on the Cloud sign-in page. The image must be in the PNG format with
dimensions 400x300 pixels.

● To upload a logo, click the icon and select the image.

● Click the icon to delete a logo.

3. Click CREATE to confirm.


2 Administration | 46
2.3 Administration

EXAMPLE A customer's sign-in page using:

● Company color: #05B9F0.

● Basic color: #40484b (default).

● Customized logo with a TEST COMPANY text.

TIP If you want to preview the look of a customer's Cloud GUI, create a new user account in their company
and log in with the created account.

Customer Users
Click Users. The Customer Users window opens.

Manage customer users with the following controls:

New Creates new customer users.


2 Administration | 47
2.3 Administration

Edit Edits customer user names.

Resend Activation Email Resends the activation email.

Delete Deletes the selected customer user.

This section is divided into columns:

Name Name displayed throughout the Quadient Cloud GUI.

Email User email address. Users receive activation and notification emails to this address.

Status User current status:

Active – User has activated the account via the activation email.

Pending activation – User hasn't activated the account via the activation email.

Created Date and time a user was created.

Creating New Customer Users


To add other users:

1. Click New. The Create User dialog opens.

2. Fill in a user Name and a valid Email address.

3. Click CREATE to confirm. As soon as you create the account, the customer receives an activation email.
2 Administration | 48
2.3 Administration

EXAMPLE

WARNING If a customer has only Inspire Insights enabled, the users receive an activation email only
after you have shared a dashboard with them.

Enabling Applications for Customers


To provide an access to other Quadient Cloud applications for your customers:

1. Click Applications. The Allowed Applications window opens.


2 Administration | 49
2.3 Administration

2. Use the ON / OFF switch to enable/disable Messenger, Customer Journey Map, Insights, and/or Om-
nichannel Coordination.

3. Use the Activate all applications ON / OFF switch to enable/disable all applications at once.

4. Click OK to confirm.

2.3.4 Account Policy


Here you can configure various account security features:

● Password Policy

● History and Lockout Policy

● IP Filtering

WARNING It is recommended to enable all the Password Policy and History and Lockout Policy options.
You can keep the default values or set higher ones. For more information about password security and
methods to avoid security risks, see the Authentication General Guidelines .

IMPORTANT Any changes in the account policy also apply to your customers – consult those changes
with them.
2 Administration | 50
2.3 Administration

2.3.4.1 Password Policy


Required password strength:

Available Options Dependent Options

Minimum password length Minimum number of N/A


characters used to access Quadient Cloud.

Complex password security Defines whether other Number of enforced security features Minimum
password security features must be defined. number of other password security features that
must be defined.

Available security features Available password


security features which you can enforce:

● Uppercase characters (A-Z)

● Lowercase characters (a-z)

● Numeric characters (0-9)

● Special characters (*, #, @)

Use the ON / OFF switch to enable/disable the de-


pendant options.

2.3.4.2 History and Lockout Policy


Password age and login restrictions:
2 Administration | 51
2.3 Administration

Available Options Dependent Options

Password history Defines whether a new password Remembered passwords How many previously
can be exactly the same as some of the previously used passwords cannot be used when creating
used passwords. a new password.

Enforce minimum password age Defines whether User cannot change password for (days) How long
a password must exist for a certain number of a new password must exist before it can be
days before it can be changed again. changed (in days).

Enforce maximum password age Defines whether User must change password after (days) How long
passwords expire. a password can exist before it must be changed
(in days).

Enforce account lockout policy Defines whether to Number of allowed failed login attempts How
block accounts' access to your Quadient Cloud many failed account login attempts before the
company after a certain number of failed login account blocked.
attempts.
Account lock timeout (seconds) For how long to
block an account after the defined number of
2 Administration | 52
2.3 Administration

Available Options Dependent Options

failed login attempts (in seconds).

Inactive accounts expire Defines whether the ac- Expire inactive accounts in (days) How long an
counts within your Quadient Cloud company ex- account can be inactive before it expires (in days).
pire after a certain number of days of inactivity.
Use the ON / OFF switch to enable/disable the de-
pendant options.

Click SAVE to save all the changes.

2.3.4.3 IP Filtering
You can restrict access to Quadient Cloud so that your company users can only access it from the specified IP
addresses.

WARNING

● If you enable Allow IP filtering, all addresses that are not specified in the list may be blocked from
all Quadient Cloud services. We recommend testing the configuration to avoid any issues.

● If you remove your IP address (Your IP address) from which you sign in, you won't be able to sign
in from that IP address anymore. Also, you cannot remove all addresses – at least one allowed IP
address is required.

1. Use the ON / OFF switch to enable Allow IP filtering.

2. Click ADD IP ADDRESS to add a new IP address. The maximum number of IP addresses is 100.

3. Specify the Name and IP Address. IP addresses must be in the valid format, i.e. 127.0.0.1.

4. Optionally, click the icon next to an address to remove it from the list.

5. Click SAVE to confirm the changes.


2 Administration | 53
2.3 Administration

2.3.5 Domain Verification


Here you can manage email addresses to send emails via Inspire Messenger with your (or customer's) authentic
email address displayed as the sender, instead of those automatically generated addresses and domains added
by an external provider.

NOTE The maximum number of verified email addresses for the MailJet connector a company can have
is 100. If you want to have more verified email addresses, contact Cloud support.

Manage email addresses and domains with the following controls:

New Adds a new email address.

Messenger Trial Mode Enables the Messenger Trial Mode.

Edit Edits the email connectors.

Domain Configuration Opens the Domain Configuration.

Refresh Refreshes the selected domain state.

Delete Deletes the selected email address.

This section is divided into columns:

Email Address Email address bulk emails are sent from, e.g info@froodecco.com.

Domain Name Unique company domain, e.g. test.com, quadient.com, vital.com.

IMPORTANT Domain verification is only for private domains, so you can't verify free webmail email
address/domains, such as gmail.com, yahoo.com, me.com.

Primary Connector Name Name of the primary email connector (external provider) set by the Cloud adminis-
trator.

Primary Connector Connector's current state checked automatically every 2 weeks:


2 Administration | 54
2.3 Administration

Valid Both, the email address and domain, are verified.

Not Valid Sender has not verified the email address and/or the domain has not been verified
yet.

SPF missing SPF configuration is not valid.

Checking state Refreshing the current state.

Backup Connector Connectors selected when adding the email address. If the Primary Connector fails to send
batches, the first valid backup connector is used instead.

Last Change Date and time the configuration was changed.

Email Address Details


To see email address details, click the related expand icon.

Service provider External service provider which sends the emails: MailJet or SparkPost.

Connector name Name of the email connector set by the Cloud administrator.

State Domain/email address verification state.

DMARC DMARC (Domain-based Message Authentication, Reporting and Conformance) state. DMARC
checks that the domain in the email's "From:" field is aligned with other authenticated domain names. This
applies to all email addresses (senders) which have the same domain.

NOTE DMARC authentication is optional and only available for the MailJet provider. Contact support
to obtain it.

Description Brief description of possible verification issues.

Verifying Email Addresses (Senders)


To add a new email address that you want to verify:

1. Click New. The Add Email Address dialog opens.


2 Administration | 55
2.3 Administration

2. Specify the:

Email address Valid email address, used as the "From" value in the sent email header.

IMPORTANT This email address must already be activated and accessible.

Primary connector External email provider (set by the Cloud administrator) used for sending batches
via Messenger. If you want to use custom connectors, contact support.

Backup connector Connector used if the Primary Connector fails to send batches. You can add and use
backup connectors only when they are set by the Cloud administrator.

3. Click CREATE to confirm. A verification email is sent to this email address.

4. Open the email and click VERIFY EMAIL ADDRESS. The confirmation window opens.

5. Click CONFIRM to confirm.

TIP It is not necessary to log in to Quadient Cloud to confirm an email address from the verification
email.
2 Administration | 56
2.3 Administration

EXAMPLE A verification email:

Verifying Domains
To verify a domain:

1. Click Domain Configuration. The Domain Configuration dialog opens.


2 Administration | 57
2.3 Administration

Here you can find settings configuration for DKIM, SPF and DNS (optionally for DMARC if you have it
enabled).

2. Contact your domain provider and give them DKIM, DNS and SPF settings. You can select the text values
and copy them to the clipboard.

IMPORTANT When verifying a domain for your customer, contact the customer’s IT department.

3. Wait until the domain provider sets the DNS based on the configuration you provided.

4. Click Refresh to check the verification status.

As soon as the domain provider sets the DNS and the domain is verified but the sender has not verified the email
address, the state becomes Sender is not verified.

NOTE Once a domain is successfully verified, every new added email address with this domain only
needs the email/sender verification.

EXAMPLE An example DKIM, DNS and SPF settings:

DKIM Record Name

mailjet._domainkey.froodecco.com.
2 Administration | 58
2.3 Administration

DKIM Record Value

k=rsa;
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqLewrgR...

DNS TXT Record Name

mailjet._da2d936.froodecco.com.

DNS TXT Record Value

da2d99361bc1d2bae3919f1b9abb3ab0

SPF Record Value

v=spf1 include:spf.mailjet.com ?all

Using the Trial Mode


If you want to try out sending emails via Inspire Messenger without verifying your domain, use the Messenger
Trial Mode.

To enable the trial mode click Messenger Trial Mode and enable the Trial Mode switch.

NOTE The Messenger Trial Mode is only for testing purposes, emails are sent from an email address
defined by the Cloud administrator, e.g. j.smith@inspirecloudtrial.com.

2.3.6 SMS Gateway


SMS Gateway has these subsections:
2 Administration | 59
2.3 Administration

● Transmission channels

● Connectors

2.3.6.1 Transmission Channels


Add your custom transmission channels so you can define specific sending rules, e.g. SMS messages to France
will be sent via the Tata provider with a "VitalFR" alias.

NOTE The default provider/connectors:

● quadientcloud.eu – Tata SMS

● quadientcloud.com – Tata SMS

● quadientcloud.com.au – MessageMedia

Manage channels with the following controls:

New Adds a new channel.

Edit Edits the selected channel.

Delete Deletes the selected channel.


2 Administration | 60
2.3 Administration

NOTE You cannot delete the default channel.

This section is divided into columns:

Name Channel name.

Connector Connector provider: Tata / BulkSMS / Message Media.

Country Valid country code, e.g. +33 for France.

SMS Masking Yes/No indicates active SMS masking used to send SMS messages with your own sender name
(alias) instead of the default Info.

State Channel current state:

Enabled

Disabled

Sender ID Alias/phone number used as the sender.

Adding New Channels


To add a new channel:

1. Click New. The Create New Transmission Channel dialog opens.

2. Name the channel, e.g. FR Channel.


2 Administration | 61
2.3 Administration

3. Select the Connector: Tata, BulkSMS or Message Media.

NOTE The connector depends on the Quadient Cloud instance you use, and the connectors you
have configured.

4. Enable the Send to specific country ON / OFF switch if you want to use this channel to send SMS
messages to a specific country.

5. Fill in the Country code, e.g. +1 for USA.

6. Select Yes/No for SMS masking:

● Yes – The SMS messages' sender name will be the Sender ID value.

WARNING When you send SMS messages with the active SMS Masking, the recipients
cannot unsubscribe from receiving SMS messages. Additionally, sending SMS messages with
a custom Sender ID might not be supported by all mobile carriers in some countries. Check
the availability for your selected countries and mobile carriers.

● No – The SMS messages' sender phone number will be the Sender ID value.

7. Click CREATE to confirm. The channel is added.

NOTE If you add a custom channel with a specific country code, the specified country is excluded from
the default Cloud channel for that provider.

2.3.6.2 Connectors
You don't have to use the default channel/connector configured by the Cloud administrator. You can configure
your own BulkSMS / Tata SMS/ MessageMedia account here.
2 Administration | 62
2.3 Administration

NOTE This section is optional. To get the Connectors feature, contact support.

Adding Custom Connectors


To add a custom connector:

1. Click ADD NEW CONNECTOR.

2. Select your provider: BulkSMS / Tata / MessageMedia.

3. Specify the connector's details:

Connector name Name of the connector.

Credentials

URL Valid connector URL.

User name / Password Your account credentials.

Sandbox mode For MessageMedia provider only. Enable the ON / OFF switch if you only want to use
this connector for testing purposes.

IMPORTANT If Sandbox mode is enabled, no SMS messages will be sent to recipients.

2.3.7 Maintenance
Displays Cloud maintenance events prepared by the Cloud administrator.
2 Administration | 63
2.3 Administration

The section is divided into columns:

Event Maintenance type: Extraordinary or Planned.

Scheduled Time Date and time the maintenance is scheduled to be done (was done).

Duration Duration of the maintenance.

Created Date and time the maintenance event was created.

WARNING You can experience different malfunctions during the maintenance, watch the Scheduled
Time for any upcoming events.

2.3.8 API Keys


Here you can manage API keys which are used when calling API services for integration with other Quadient
components.

NOTE This section is only available for users with one of these permissions:

● Digital Services – Development and administration

● Messenger – Batch management

● Omnichannel Coordination – Omnichannel administration

Manage API keys with the following controls:

New Creates a new API key.


2 Administration | 64
2.3 Administration

Edit Edits the API key name and description.

Delete Deletes the selected API key.

This section is divided into columns:

API Key API key string masked for security reasons. Use COPY TO CLIPBOARD in the Edit API Key dialog
to copy the unmasked API key.

Name API key name.

Description Brief description.

Created Date and time the API key was created.

Creating New API Keys


To create a new API key:

1. Click New. The Create API Key dialog opens.

2. Fill in the Name, and optionally the Description.

3. Click CREATE to confirm.

Copying API Keys to Clipboard


For security reasons, a mask is used on API keys. To get the unmasked API key string:

1. Select an API key for which you want to get the unmasked string.

2. Click Edit.

The Edit API Key dialog opens.


2 Administration | 65
2.3 Administration

3. Click COPY TO CLIPBOARD.

The unmasked API key string is copied to your clipboard.

2.3.9 Authentication (SSO)


You can set up user authentication through different identity providers, so users can log in to Quadient Cloud
with multiple accounts.

To add an identity provider, click ADD IDENTITY PROVIDER.


2 Administration | 66
2.3 Administration

● OpenID

● OAuth

● LDAP

● Google

● Azure

● Facebook

● LinkedIn

● Salesforce

● Jira

IMPORTANT You have to click SAVE to save the configuration.

Basic Settings
Each provider has the basic settings:
2 Administration | 67
2.3 Administration

Provider name Specify the name to differentiate providers of the same type.

Button label Button text displayed on the Cloud login page.

Button color Button color displayed on the Cloud login page.

Button text color Button text color displayed on the Cloud login page.

Custom button icon If enabled, you can upload your own icon for the button.

Custom icon Click the icon to upload a custom icon. The icon image must be a PNG type with a size of
20x20 pixels.

Button preview Displays how the button will look on the Cloud login page.

NOTE You can only customize the button icon and colors for the OpenID and OAuth providers.

Selecting Colors
There are different methods to select a color:

● Use the hex code, e.g. #ff0000 for red. When you insert the hex code, the color is displayed.

● Use the advanced color picker:


2 Administration | 68
2.3 Administration

TIP You can switch between pickers by clicking on the icons: / / .

OpenID
Configure the OpenID advanced settings:
2 Administration | 69
2.3 Administration

Settings

Callback Callback URI that must be registered in the external identity provider's configuration as the "Authorized
redirect URI". Otherwise, it won't be authorized. The URI is automatically generated when you save the
configuration.

Authority Standard OpenID connect authority URI of the external provider.

Client ID Unique identifier given by the identity provider.

Client Secret Unique string given by the identity provider.

Logout URL pattern You can specify a URL address with a special token {returnUrl}. The token will be replaced
with a concrete return URL address when an interactive logout is initiated. Leave empty if the identity provider
supports standard OpenID connect endsession endpoint.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

OAuth
Configure the OAuth advanced settings:
2 Administration | 70
2.3 Administration

Settings

Callback Callback URI that must be registered in the external identity provider's configuration as the "Authorized
redirect URI". Otherwise, it won't be authorized. The URI is automatically generated when you save the
configuration.

Client ID Unique identifier given by the identity provider.

Client Secret Unique string given by the identity provider.

Issuer Value of the "iss" claim of ID tokens issued by Digital Services.

Authorization endpoint OAuth authorization endpoint URI of the identity provider.

Token endpoint OAuth token endpoint URI of the identity provider.

User information endpoint OAuth user information URI of the identity provider.

Scopes Requested scopes on OAuth endpoints during the authentication process.

Click the icon to add more scopes.

Claims mapping Translates incoming data to internal types.

Click the icon to add more claims mapping.

JSON Media Type User information endpoint for JSON media type responses, e.g. application/json.

Logout URL pattern You can specify a URL address with a special {returnUrl} token. The token will be replaced
with a concrete return URL address when an interactive logout is initiated. Leave empty if the identity provider
supports standard OpenID connect endsession endpoint.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

LDAP
Configure the LDAP advanced settings:
2 Administration | 71
2.3 Administration

Settings

Host name Host name of your LDAP server, e.g. ldap.quadient.eu or 192.168.0.1.

Port Port of your LDAP server. The default value for the TLS or nonsecure connection is 389, and 636 for the
SSL connection.

Use SSL If checked, the SSL protocol is used, and you can use a self-signed Public certificate for testing purposes.

Protocol version Protocol version of your LDAP server.

LDAP – User Authorisation Configuration

Authorization type Select the authorization type your server supports.

Search scope With the Base option selected, the server looks for users only on the DN level. With OneLevel
selected, the server looks for users on one level of directories. With Subtree selected, the server looks for
users in all directories and subdirectories.

Base DN The exact user address on your LDAP server. You can use {UserName} as the key string. It will be replaced
with the user's login name.
2 Administration | 72
2.3 Administration

User name pattern Pattern of LDAP user names. You can use {UserName} as the key string. With an AD server,
it will be the same as the user login value. In other LDAPs, it will be uid=Einsetin,ou=users, dc=example,
dc=com.

User object filter Filter used when searching for user objects or elements, e.g. (objectclass=*).

Claims mappings

Name/Email Translates incoming LDAP data to the internal types.

Google
Configure the Google advanced settings:

Settings

Callback Callback URI that must be registered in the external identity provider's configuration as the "Authorized
redirect URI". Otherwise, it won't be authorized. The URI is automatically generated when you save the
configuration.

Authority Base URL address of the Google OpenID Connect authority.

Client ID Unique identifier given by the identity provider.

Client Secret Unique string given by the identity provider.

Azure
Configure the Azure advanced settings:
2 Administration | 73
2.3 Administration

Settings

Callback Callback URI that must be registered in the external identity provider's configuration as the "Authorized
redirect URI". Otherwise, it won't be authorized. The URI is automatically generated when you save the
configuration.

Authority Standard OpenID connect authority URI of the external provider.

Client ID Unique identifier given by the identity provider. In the Microsoft Azure portal, it corresponds to the
Application (client) ID parameter.

Client Secret A secret string that the application uses to prove its identity when requesting a token. Also can
be referred to as application password.

Logout URL pattern You can specify a URL address with a special {returnUrl} token. The token will be replaced
with a concrete return URL address when an interactive logout is initiated. Leave empty if the identity provider
supports standard OpenID connect endsession endpoint.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

EXAMPLE Configuring an Azure AD identity provider via Quadient Cloud (SSO – single sign on) and the
Microsoft Azure portal.

1. Register your application as per the Register an application with the Microsoft identity platform
instructions.

2. In the Microsoft Azure portal, get the corresponding values to enter into the Authentication Azure
AD configuration in Quadient Cloud.

a) Copy the Directory (tenant) ID value in the Overview section of your registered application
and paste it at the end of https://login.microsoftonline.com/. Enter the final value in the
2 Administration | 74
2.3 Administration

Authority field (e.g. https://login.microsoftonline.com/c2xxd20c-6xd2-4689-bdb6-


8d880xxx6bb6).

For more information, see the Specifying the AAD authority instructions.

b) Copy the Application (client) ID value and paste it into the Client ID field.

c) In the Certificates & secrets section of your registered application, enter a new sentence into
New client secret, and copy it into the Client Secret field.

d) Click SAVE to confirm.

To register the URIs, go to the Authentication section of your registered application in Microsoft Azure
and enter the generated Callback value into the Redirect URI section, and the generated Sign out callback
value into Advanced settings | Logout URL.

Facebook
Configure the Facebook advanced settings:

Settings

Callback Callback URI that must be registered in the external identity provider's configuration as the "Authorized
redirect URI". Otherwise, it won't be authorized. The URI is automatically generated when you save the
configuration.

App ID Unique identifier of your Facebook application.

App secret Unique string of your Facebook application.

Approved items Facebook login permissions, e.g. email, public_profile, or user_friends. To see supported
Facebook approved items, check the App Review subsection on the Facebook's site for developers.

Click the icon to add more approved items.

API version Current Facebook API version.

LinkedIn
Configure the LinkedIn advanced settings:
2 Administration | 75
2.3 Administration

Settings

Callback Callback URI that must be registered in the external identity provider's configuration as the "Authorized
redirect URI". Otherwise, it won't be authorized. The URI is automatically generated when you save the
configuration.

Client ID Unique identifier given by the identity provider.

Client secret Unique string given by the identity provider.

Authorization endpoint OAuth authorization endpoint URI of the identity provider.

Token endpoint OAuth token endpoint URI of the identity provider.

User information endpoint OAuth user information URI of the identity provider.

Scopes Requested scopes on OAuth endpoints during the authentication process.

Click the icon to add more scopes.

Salesforce
Configure the Salesforce advanced settings:
2 Administration | 76
2.3 Administration

Settings

Callback Callback URI that must be registered in the external identity provider's configuration as the "Authorized
redirect URI". Otherwise, it won't be authorized. The URI is automatically generated when you save the
configuration.

Client ID Unique identifier given by the identity provider.

Client secret Unique string given by the identity provider.

Authorization endpoint OAuth authorization endpoint URI of the identity provider.

Token endpoint OAuth token endpoint URI of the identity provider.

User information endpoint OAuth user information URI of the identity provider.

Scopes Requested scopes on OAuth endpoints during the authentication process.

Click the icon to add more scopes.

Claims mappings Translates incoming data to the internal types.

Click the icon to add more claims.

JIRA®
Configure the JIRA® advanced settings:
2 Administration | 77
2.3 Administration

Settings

Base URL Valid URL address which you use to access JIRA®, e.g. https://quadient.atlassian.net.

Consumer key Unique key string, e.g. OuathKey you can find in your JIRA® configuration: Settings | Applications
| Application links | Your Application | Incoming Authentication | Consumer Key.

Consumer RSA private key Private key in the PEM format (public key from this pair must be used in the JIRA®
configuration: Settings | Applications | Application links | Your Application | Incoming Authentication | Public
Key.

IMPORTANT The private key must have a valid header and footer.

EXAMPLE A valid private key:


-----BEGIN RSA PRIVATE KEY-----
MIICWgIBAAKBgETrIslgVt4gZ1O/PxfpEts6JlRuaCbGzPmNFW30AYtI30d/soFj
VKz4ibEkQP3bdNnd6A1Fm9hflmnL2Q464Ryzjp9q6+RJ0arjgZ4hZU2xsQM82VWS
2IOQK+kU6SY5Zbq+67b/xsm5YLAmDEXqMETMQ+RmwT+qXT2GxgD9LxRpAgMBAAEC
gYArEBl+ZtoglXK624ca86G6pg0JOKuPfyzYyZUYTR0h4PjS/jGVs3FXWzz+GL8b
DT1b99coaYMRBvzlAkBoEBotVnEbudPCX2WBF5MwFmQbq3bJZtBUxrylPzH7YxrP
qONfjE1Xc8pvlunnYQv4k+wElGFF/+GDH8TJeUey
-----END RSA PRIVATE KEY-----

See the JIRA® OAuth documentation for more information.

WARNING If you change the connector settings, external CJM tasks using it will be deleted.

Linking Accounts
To be able to sign into Quadient Cloud using your external account, you need to link accounts first:

1. Go to My Settings (top-right corner).


2 Administration | 78
2.3 Administration

2. Click Link account for the provider to connect your Cloud user account with your external account.

3. You are redirected to the external provider. If you sign into the external provider for the first time, allow
the connection.

4. You can sign out and sing in again using the newly set up account.
2 Administration | 79
2.3 Administration

2.3.10 Notifications
System notifications are sent to Quadient Cloud users and specifies the events about which the users are notified.
They are displayed to the users in the upper-right corner of the screen.

Manage notifications with the following controls:

Settings Opens the notification settings.

Mark All as Read Marks all notifications as read.

Click SHOW ALL NOTIFICATIONS to see the notification history.

TIP Click a notification to open the corresponding section/application, e.g. a maintenance notification
opens the Maintenance section.

● History

● Notification Settings

2.3.10.1 History
Lists all the events about which Cloud users were notified, such as scheduled maintenance events.
2 Administration | 80
2.3 Administration

NOTE Notifications are automatically removed from the notification list in the top-right corner and history
after 90 days.

Filtering Notifications
To filter the notification history, click SHOW FILTER and specify the parameters:

Notifications from / To Date period.

Applications Notifications based on applications:

● General

● Customer Journey Map

● Digital Services

● Omnichannel Coordination

Status Notification status:

● Read

● Unread
2 Administration | 81
2.3 Administration

TIP If you have a lot of notifications listed, you can specify the number of notifications per page in the
bottom-left corner. You can also navigate through pages using the navigators.

2.3.10.2 Settings
Configure the notifications and alerts on these tabs:

● Notifications

● Alerts

Notifications
You can select which events you want to receive notifications about. You can set them to be sent immediately,
every day or once a week.

General
To enable/disable general notifications, use the ON / OFF switch and check the particular events you will be
notified about:
2 Administration | 82
2.3 Administration

1 Company account

Events related to your company account.

Low credit balance Credit balance reached the specified low limit.

New invoice ready You have a new invoice for ordering credits.

Domain status changed Domain status has changed.

Application added New Quadient Cloud application was enabled for your company.

Password about to expire User password is about to expire. The expiration is based on the History and Lockout
Policy.

2 Maintenance

Events related to maintenances.

New maintenance New scheduled maintenance.

Maintenance removal Scheduled maintenance was removed.

Maintenance update Scheduled maintenance was updated.

Customer Journey Map


To enable/disable notifications for Quadient Customer Journey Map, use the ON / OFF switch and check the
particular events that the CJM users will be notified about:
2 Administration | 83
2.3 Administration

1 Map

Events related to maps.

● Map sharing

● Map update

● Map removal

2 Strategy

Events related to strategies.

● Strategy creation

● Strategy update

● Strategy removal

3 Tag

Events related to tags.

● Category creation

● Category update

● Category removal

● Tag creation

● Tag update

● Tag removal
2 Administration | 84
2.3 Administration

4 Persona

Events related to personas.

● Persona creation

● Persona update

● Persona removal

5 Task

Events related to tasks.

● Task creation

● Task update

● Task removal

6 Touch Point

Events related to touch points.

● Touch point creation

● Touch point update

● Touch point removal

Digital Services
To enable/disable notifications for Digital Services, use the ON / OFF switch and check the particular events
that the Digital Services users will be notified about:

Certificate expiration
Events related to certificate expiration.

● Certificate expiring

● Certificate expired

Omnichannel Coordination
To enable/disable notifications for Omnichannel Coordination, use the ON / OFF switch and check the partic-
ular events that the Omnichannel Coordination users will be notified about:
2 Administration | 85
2.3 Administration

Share Events
Events related to item sharing.

● Omnichannel Coordination item shared

● Omnichannel Coordination item unshared

● Omnichannel Coordination item deleted

● Omnichannel Coordination item modified

Click SAVE to save the settings.

Selecting Channels
You can select between Web only, Web and Email, or Web and SMS notifications for particular events so users
get Cloud and email/SMS message notifications. SMS message notifications are sent immediately.

Sending Email Notification Reports


You can send daily/weekly emails with notification reports to Cloud users. To do so, select Web Email (daily) /
Web Email (weekly) for particular events.
2 Administration | 86
2.3 Administration

EXAMPLE Daily notification report sent via email:

Alerts
You can also define alert notifications with custom rules. These alerts inform your Cloud users about important
events, such as low credit balance.
2 Administration | 87
2.3 Administration

1 Predefined Alerts
These alerts are defined by the company administrator for selected users, or every user (Global Alert: ).

IMPORTANT You need to have the Alert managemnt permission to edit them.

2 Custom Alerts
To add a new custom alert:

1. Click ADD NEW ALERT.

2. Select the Type:

● Low credit balance

● Email bounce rate

● Remaining licenses

3. Specify the alert notification trigger Limit.

4. Select the Deliver Channel via which the notification will be delivered.

Click SAVE to confirm the changes.


2 Administration | 88
2.3 Administration

2.3.11 Migrate and Update


Here you can see the information about possible company account migrations and upcoming Quadient Cloud
updates.

If you want to migrate your company account to another instance, and test the upcoming version of Quadient
Cloud, click the MIGRATE COMPANY ACCOUNT. Wait until your account is migrated.

For more information about migrating and updating, see the Quadient Cloud Version Upgrade Process document.

CAUTION Do not interact with the Migrate and Update functionality if you don't want to update your
Quadient Cloud company accounts outside of the standard release cycle.

NOTE

● This section is only available for users with the Administration settings user permission.

● If you migrate your company account, every linked and tenant company account belonging to your
company will also be migrated.

2.3.12 About Quadient Cloud


Here you can see licenses, EULA and Copyright.
2 Administration | 89
2.4 My Settings

To see open source licences, click Applicable to Quadient Products.

To see service agreement, click Terms and Conditions.

2.4 My Settings
Click My Settings in the top-right corner to access your user settings.
2 Administration | 90
2.4 My Settings

Changing Personal Details

User Name
To change your Cloud user name, click the icon.

Email Address
To change your email address, click Change. The Change Email dialog opens.

Fill in the new Email address you want to use, and your current password. Click SET to confirm, the activation
email is sent to your old email address.

NOTE You need to activate the new email address. Click ACTIVATE EMAIL ADDRESS in the activation
email.

Phone Number
To add/change your phone number, click Add/Change. The Set/Change Phone Number dialog opens.
2 Administration | 91
2.4 My Settings

Fill in the your Phone number in a valid format (including the country code), e.g. +420777123456. Click SET to
confirm. This number is then used to receive SMS message notifications.

TIP Click TEST to send a test SMS message to the phone number.

Changing Password
To change your password, click Change. The Change Password dialog opens.

Fill in your Current password, and New password. Reenter it as the Confirm password. Click CHANGE PASS-
WORD to confirm.

NOTE The password policy is based on the Account Policy.

CAUTION For Customer Journey Map users – If you change your password, the authentication token
for calling API services resets.
2 Administration | 92
2.4 My Settings

Managing Sign-In Accounts


Here you can manage accounts you use to log in to Quadient Cloud.

For more information on how to link sign-in accounts, see the Authentication section.

Login History
Here you can see the date and time of your previous Quadient Cloud login, and an IP address from which the
login was made.

NOTE You can also see a notification about the previous login every time you log in to Cloud.
2 Administration | 93
2.4 My Settings

Changing Language and Date/Time Formats


Here you can change the language, date, and time formats according to your needs.

Language

Date format
2 Administration | 94
2.4 My Settings

Time format

Click SAVE to confirm your settings changes.


3 Customer Journey Map

3.1 Application Overview


3.2 User Roles
3.3 Preparing Map Resources
3.4 My Maps
3.5 Document Detail
3.6 Social Commenting
3.7 Map Overview
3.8 Content Export
3.9 Settings
3.10 API Services
3.11 Application Restrictions
3.12 Integration
3 Customer Journey Map | 96
3.1 Application Overview

3.1 Application Overview

Customer Journey Map creates interactive journey maps, so you can easily track your customers' experience. See
An Overview of Quadient Cloud for a quick introduction to the components and functionality.

Designer CX Manager Operational Manager


Insights Customer Journey Mapping Inspire Designer / Inspire Interactive

Strategy
Dashboards Whiteboards Templates
Dashboard

Components Programs

Omnichannel Coordination

→ Data Storage Tags Tasks Delivery


Rules
Metadata  

External
Tracking Tool

The Customer Journey Map application (CJM) helps customer experience (CX) teams to:

● Create actionable journey maps with touch points that your customers can interact with.

● Connect relevant information to the touch points (contacts, web links, audio/video files as evidence, or
charts with data as components).

● Monitor a customer's experience, which is likely to be different at each touch point in the feeling map,
which is a part of each map.

● Assign tags to CJM objects to visually mark issues related to them, or for object categorization.

● Get an overview of the existing maps via a strategy dashboard and/or a global map.

● Note down any kind of project related notes, especially brainstorming outcomes, open points, or small
"to-do" tasks in whiteboards, and, optionally, create tasks directly into your external tracking tool based
on the issues discussed.

● Collaborate with document designer teams (that use other Quadient applications) and share real time
feedback via social commenting, as well as upload documents (templates) at the same time.

Metadata from CJM are sent to Insights to provide information about CJM objects that can be displayed as com-
ponents from Insights or via a strategy dashboard.
3 Customer Journey Map | 97
3.2 User Roles

EXAMPLE

3.2 User Roles


Customer Journey Map can be used by standalone companies that create journey maps for their end users. It
also provides an environment for two-tier usage: e.g. a service provider company can have multiple customers
(tenants), and they can cooperate on creating journey maps.

● Standard companies

● Customer companies (tenants)

3.2.1 Standard Companies


When you purchase CJM your company has full access to its functionality. As a company administrator, go to
ADMINISTRATION | Users and Roles, and assign user roles with these permissions to your company users.

Permissions
CJM access Users with this permission have the CJM application available. They will have access to these CJM
sections:

● Whiteboards

● My Map

● Personas

● Tasks
3 Customer Journey Map | 98
3.2 User Roles

● Strategies

● Tag Management

CJM administration Users with this permission can access the Settings section.

CJM customer contribution Users with this permission can access the CJM of their customers (tenants).

NOTE By default, users with the CJM customer contribution permission cannot switch to the tenant
view. To do this, they must have the Customer management permissions assigned.

CJM map management Users with this permission can access and interact with these sections (functionality):

● Strategy Dashboard

● Services

● Global Map

To work with components from Insights (e.g. to create strategy dashboards), the users must have one of the
following Insights-related roles assigned:

● Insights Application Administrator (predefined in ADMINISTRATION)

● Insights Dashboards Manager (predefined in ADMINISTRATION)

● Any custom role with the Dashboard management permission.

For more information, see the Users and Roles description.

Switching to Customer View


As a service provider, you can switch to your customer (tenant) CJM view, and work with them to create their
journey maps, prepare their strategy dashboards and components from Insights etc.

The switch is only displayed if:

● A customer company account has been created.

● The signed in user is assigned a user role that has the CJM customer contribution and Customer man-
agement permissions.

● The company has at least one customer (tenant) with CJM enabled.
3 Customer Journey Map | 99
3.2 User Roles

TIP If these conditions are met, you can access customer's CJM before their company account
has been activated.

The switch lists tenants by their company names. If switched to a tenant, the tenant company name is listed too.
your company is distinguished from the tenants by an icon.

CAUTION Tenants inherit the default strategy dashboard from the service provider company. Dashboards
meant to display sensitive data should be assembled separately for each tenant company.

3.2.2 Customer Companies


You can provide CJM to your customers (tenants). Customer companies have limited CJM functionality.

Customer Company Limitations

● Cannot add a component from Insights.

● Cannot set up or change their strategy dashboard.

● Cannot access the Settings section. You need set up the evidence and multiple touch point links function-
ality for your customers.

● Cannot access the Services section.

● Cannot have a connection to an external tracking tool.

● Cannot use line width based on data from Insights.

See Customers description for more information.

3.2.3 Concurrent Access and Notifications


Multiple users can use CJM concurrently, which means that changes made by other users manifest themselves
immediately across the application. If another user deletes an object you are editing, an error message notifies
you about it.

To be informed about the other users' actions, users can set up notifications in ADMINISTRATION:

1. Select desired notifications (based on the object and action):


3 Customer Journey Map | 100
3.2 User Roles

2. You will be notified when another user from your company adds, changes, or deletes an object. You will
not receive notifications about your own actions and maps that you do not have access to. Tenants also
receive notifications about actions done by their service provider companies (using the switch the view)
on their behalf.
3 Customer Journey Map | 101
3.3 Preparing Map Resources

3. Hover the pointer over the notification message for details.

4. Click a notification to open the related object, e.g. an affected map.

3.3 Preparing Map Resources


Before you start designing your customer journey maps, coordinate with your colleagues using our whiteboards,
and prepare your map resources:

● Whiteboards

● Personas

● Tasks

● Strategies

● Tag Management

3.3.1 Whiteboards
In the Whiteboards section, multiple company users can simultaneously make any kind of project-related notes;
especially pre-design notes, brainstorming outcomes, open points, or small "to-do" tasks.

Manage whiteboards with the following controls:

New Creates a new whiteboard.

Edit Edits the contents of the selected whiteboard. Alternatively, double-click the whiteboard.

Delete Deletes the selected whiteboard.


3 Customer Journey Map | 102
3.3 Preparing Map Resources

Working with Whiteboards


1. Click New. The Create Whiteboard dialog opens.

2. Name the whiteboard.

3. Click CREATE to confirm and open the whiteboard.

4. Start dragging notes of the desired color to the whiteboard.

Notes

● Text can be entered immediately, changed after double-clicking on the note, or after selecting Edit
from the context menu.

● The note is resized vertically according to the length of the text that is added.

● Click a note to select it, then reposition it, resize it, or delete it.
3 Customer Journey Map | 103
3.3 Preparing Map Resources

● The selected note is always displayed on top of the other notes.

● A similar notes feature is also used by maps as a supporting object.

3.3.2 Personas
When creating a map, you must indicate who your target persona is. You can create your own persona or use
one of the predefined ones.

Manage personas with the following controls:

New Creates a new persona.

Edit Edits a persona's settings. Alternatively, double-click the persona.


3 Customer Journey Map | 104
3.3 Preparing Map Resources

Delete Deletes the selected persona.

Creating Personas
1. Click New. The Create Persona dialog opens

2. Configure the persona's properties:

Upload image

● The minimum image resolution is 120 x 120 px. Larger images will be lowered to this resolution.

● The image must be 1:1 ration, otherwise it will not upload.

● The supported image formats include: JPEG, PNG, GIF, SVG, and BMP.

3. Click CREATE to confirm the persona.

3.3.3 Tasks
Use tasks to track project requests (e.g. a process optimization, a research, a document update, a new strategy
formation, etc.). To get a quick overview of what needs to be done you can sort them as well as assign the effort-
benefit balance for each of them.
3 Customer Journey Map | 105
3.3 Preparing Map Resources

Manage tasks with the following controls:

New Creates a new internal / external task.

View Displays the selected task's details. Alternatively, double-click the task.

Edit Edits the selected task's details. Additionally, if the task is assigned to an object, click Unassign
Object in the Edit Task dialog to unassign it.

Delete Deletes the selected task.

Tasks can be solved:

● Internally in CJM, where only the CX team works on them.

● In an external tracking tool, where multiple departments need to work together.

TIP You can prioritize tasks using Boston Matrix in the Strategy Dashboard.

The task table is divided into columns which represent, except the type, task fields:

Type Task type:

Internal Task Default task in CJM.

External Task JIRA® task in CJM.

Name Task name. It doesn't have to be unique.

Link URL link to an external tracking tool.

NOTE Links for external task are generated automatically.

Assigned Object Object name the task is assigned to.

NOTE You can only assign tasks to maps and touch points. Each task can only be assigned to one
object.

Effort/Benefit Graphical representation of the Action Priority Matrix segment based on specified efforts and
benefits.
3 Customer Journey Map | 106
3.3 Preparing Map Resources

Quick Wins ● Effort: 0-


50

● Benefit:
51-100

Major Projects ● Effort:


51-100

● Benefit:
51-100

Fill in Jobs ● Effort: 0-


50

● Benefit:
0-50

Thankless Tasks ● Effort:


51-100

● Benefit:
0-50

Effort Estimated effort represented by a number.

Benefit Estimated benefit represented by a number.

Status Current status for:

● Internal tasks – New, In progress, Completed, or Rejected.

● External tasks – Statuses are taken from the external tracking tool's item-type workflow. When you
create an external task, the initial status is applied to it, e.g. To Do in JIRA®.

Task Details
To display full task details, click View to open the Detail of Internal/External Task dialog. It contains the details
specified when you created the task, and the object the task is assigned to.
3 Customer Journey Map | 107
3.3 Preparing Map Resources

TIP Click the link to open the external tracking tool and the assigned object link to open the corresponding
map/touch point.

Creating Internal Tasks


To create an internal task:

1. Click New. The Create Task dialog opens.

2. Define the task's properties:


3 Customer Journey Map | 108
3.3 Preparing Map Resources

Name Mandatory task name.

Link Valid URL address to your external tracking tool.

NOTE If you enter a link to your external tracking tool, it doesn't synchronize. It's only for
better visualization.

Project Assign a task to a project to keep track of which tasks relate to which projects. You can sort the
task list according to the Project column.

Also, you can use projects as a filter in the task list that is available as a sample component within
the Insights Starter Kits.

Effort / Benefit Use numbers to evaluate the effort and the benefit of each task. You can view the tasks
in the task list chart (a Boston matrix) available as a sample component within the Insights Starter
Kits.

Status Select a predefined value: New, In progress, Completed, Rejected.

3. Click CREATE to confirm.

Creating External Tasks


To create an external task:

1. Make sure you have prepared the connection to an external tracking tool.

2. Click New. The Create Task dialog opens.


3 Customer Journey Map | 109
3.3 Preparing Map Resources

3. Select your desired external tracking tool (any other than Internal as the Type).

4. Define the task's properties based on your mapped fields. Name is the only mandatory property.

5. Click CREATE to confirm.

The task is added to CJM and the external tracking tool.

NOTE

● If you delete an external task from CJM, it isn't deleted from JIRA®.

● Fields which are mapped with corresponding fields from the external tool can only be edited in
there.
3 Customer Journey Map | 110
3.3 Preparing Map Resources

3.3.4 Strategies
When you create a map, you must assign a strategy to it. You can create your own strategies or use one of the
predefined ones.

Manage strategies with the following controls:

New Creates a new strategy.

Edit Edits the strategy's name. Alternatively, double-click the strategy.


3 Customer Journey Map | 111
3.3 Preparing Map Resources

Delete Deletes the selected strategy.

Creating Strategies
To create a strategy:

1. Click New.

2. Name the strategy.

3. Click CREATE to confirm.

3.3.5 Tag Management


Tags are used within maps to indicate an issue related to a journey map object (e.g. Performance|Low, Capa-
city|High), or to categorize it (e.g. Status|Production, Approval|Rejected).
3 Customer Journey Map | 112
3.3 Preparing Map Resources

Tag Management has these tabs:

● Categories

● Tags

Manage tags with the following controls:

New Creates a new Category or Tag .

Edit Edits category/tag properties. Alternatively, double-click the category/tag.

View Usage Tracks tag usage in the specific category.

Delete Deletes the selected category/tag.

NOTE

● If you delete an object that uses a tag, the tag remains in the system. It can only be deleted in the
Tag Management section.

● You are unable to delete a tag if it is being used by a journey map object.
3 Customer Journey Map | 113
3.3 Preparing Map Resources

3.3.5.1 Categories
CJM provides various default categories you can edit according to your needs. You can also add new categories.

This tab is divided into columns:

Name Unique name of the category.

Tags Number of tags the category contains.

Tag Usage Count Number of map objects tagged by tags in the specific category.

TIP Categories are represented as colored circles, while tags as arrows, or squares (compact view).

Creating Categories
To create a category:

1. Click New, and select Category. The Create Category dialog opens.

2. Define the category's properties:


3 Customer Journey Map | 114
3.3 Preparing Map Resources

Name

● The category name must consist of only one word.

● The name must be unique.

● The following characters cannot be used in the category name: ; # @ * ? : \ / ~ $ ] [ } { (


) ° | ", or new line, tab, space, and page break.

● The category name is displayed when you hover over a tagged object.

Tag Select the tags the category will contain.

● The category can contain multiple tags.

● Click the icon to select more tags simultaneously.

Color Assign a color to the category.

TIP Use the same color for related categories. The default categories have these colors:

● Green – Document related.

● Blue – Service quality related.

● Grey – Touch point related.

● Orange – Stage related.

● Red – Legal related.

● Yellow – IT system related.

3. Click CREATE to confirm.

3.3.5.2 Tags
CJM provides various default tags you can edit to your needs. You can also add new categories.
3 Customer Journey Map | 115
3.3 Preparing Map Resources

This tab is divided into columns:

Name Unique name of the tag.

Categories Number of categories the tag is assigned to.

Tag Usage Count Number of map objects tagged by the tag.

TIP Tags can be filtered. Use the filter tool in the top-right corner.

Creating Tags
To create a tag:

1. Click New, and select Tag. The Create Tag dialog opens.

2. Define the tag's properties:


3 Customer Journey Map | 116
3.3 Preparing Map Resources

Name

● The tag name must consist of only one word.

● The name must be unique because you cannot assign identically named tags to the same object.

● The following characters cannot be used in the tag name: ; # @ * ? : \ / ~ $ ] [ } { ( ) °


| ", or new line, tab, space, and page break.

Category Select a category the tag will be assigned to.

● The tag can be assigned to multiple categories.

● At least one category is mandatory for each tag.

● Click the icon to select more categories simultaneously.

Color Assign a color to the tag.

TIP You can assign the same color to tags related to the same area of issues. For example,
the same color can be assigned to customers' feelings about processes, and other colors to
issues related to other areas, or to represent a simple traffic light.

3. Click CREATE to confirm.

Assigning Tags
Objects you can tag:
3 Customer Journey Map | 117
3.3 Preparing Map Resources

Maps Indicators

Touch points Text areas

Rectangles Notes

Images

Tag Behavior
If you assign tags of the same category to an object, the amount of tags of the category is indicated in a circle
(category color). Hover over the number to see the individual tags.

If you assign more than 1 tag category to an object, the amount of categories are indicated in a white circle.
Hover over the number to see the categories and amount of tags.

The assigned tags are visible not only at the objects in the map detail window, but also on the global map for
each map phase.

Tracking Tag Usage


Tags can be assigned to multiple objects in CJM. To get an overview of all objects where a tag is used:

1. Select a tag or category in the Tag Management section.

2. Click the related icon to expand the tag/category details.


3 Customer Journey Map | 118
3.3 Preparing Map Resources

3. Click the tag/category to highlight it.

4. Click View Usage. The Tag Usage dialog opens.

5. Study the usage:

Name Name of a object the tag is used by.

Type Type of the object.

Map List of maps using the selected tag.

TIP Click a row in the Tag Usage dialog to open the object.

Filtering Tags in Maps


To filter tags in a map, click the Add Tag Filter, and select the tags you want to see.
3 Customer Journey Map | 119
3.4 My Maps

Tag Filter Settings

AND / OR switch Adjusts the behavior of the filter:

● OR – Displays only categories with the selected tags.

● AND – Displays categories with the selected tags if an object (e.g. a touch point) combines them
all.

CLEAR ALL Deselects all tags/categories, making all the tags/categories visible again.

CLOSE Closes the dialog.

NOTE In concurrent access, the tag filter settings are unique for each user.

3.4 My Maps
Maps are the core functionality of Customer Journey Map. This is where you capture your moments of truth.
3 Customer Journey Map | 120
3.4 My Maps

The map list is divided into columns:

Rights Map rights that you have.

Owner The user are the owner (creator) of the map, and has full rights.

View The user can access the map in the read-only mode.

Edit The user can edit the map.

Share The user can edit the map and manage its access rights.

Name Name of the map.

Persona Customer persona specified for the map.

Pains/Gains Pains and gains (customer feeling related) calculated for the map. The number in round brackets
represents the number of touch points in the map.

Improvement Improvement (customer feeling related) calculated for the map.

Changed By Last user who changed the map.

Changed Date and time the map was changed.

Map Details
To see map details, click the related expand icon.

Strategy Strategy specified for the map.

Owner Owner of the map specified in Map Properties.

Contact Owner's contact details specified in Map Properties.

Description Brief description of the map specified in Map Properties.

Tags Tags assigned to the map.

TIP You can filter maps by tags in the top-right corner of the map list.
3 Customer Journey Map | 121
3.4 My Maps

Map owner User who created the map.

Learn how to build maps in detail in these sections:

● Map Management Tools

● Creating Maps

● Map Detail Window

● Objects

● Map Actions

3.4.1 Map Management Tools

New Creates a new map. Properties Edits the details of the selected
map.
Import Imports a map into Customer Journey Export Exports the selected map.
Map.

Edit Opens the Map Detail window of the se- Export to PDF Exports the journey map into a PDF
lected map. file.

Share Manages the access rights to the selec- Duplicate Duplicates the selected map.
ted map.

Delete Deletes the selected map.

TIP Click SHOW GLOBAL MAP in the upper-right corner to view the global map.
3 Customer Journey Map | 122
3.4 My Maps

Map Export/Import
Especially for demonstration purposes, CJM enables exporting maps into a file and importing them to another
company.

TIP For a direct map duplication to the same company or a customer company, use map duplication.
Unlike during import/export, Insights components are kept.

1. To export a map, select it from the list, and click Export.

● The export file contains all objects with their properties, except for links to maps, and social commenting.
Only the latest version of the document in the touch point detail is available.

● The export file name contains the name of the map with the .CJM extension.

● The maximum size of the map that can be exported is 500 MB.

● The Insights components are exported only as placeholders without their data content.

2. To import a map, click Import.

● If that map name already exists, a number in brackets is added behind its name, e.g. (1).

● If there are tags and/or categories in the map that is being imported and not in Tag Management,
they are added when the map is imported. If the target company:

○ Does not have a category with the same name – The category is created.

○ Does not have a tag of the same name – The tag is created and assigned.

○ Has a category with the same name – The category is mapped.

○ Has a tag with the same name, but not in the same category – The tag is mapped and assigned.

○ Has a tag with the same name, and in the same category – The tag is mapped.

● If you import a map containing Insights components, their placeholders (original name, description,
component type, position, size) are displayed in the map for better component recreating.

WARNING

● To import a map, the Quadient Cloud instance, into which you are importing must be of the
same version as the one, from which the map was exported.

● A successful import is ensured only in the version from which the map has been exported.
3 Customer Journey Map | 123
3.4 My Maps

Map Access Rights


1. Select the map whose access rights you wish to manage.

2. Click Share.

3. In the opened Share dialog, do the following:

a) Select a user whose rights to the given map you wish to change.

NOTE

● Rights granted to individual users take precedent over the rights granted to Everyone.

● If you impersonate a tenant user, you can change these rights to:

○ Other company users who are assigned a user role that contains the Customer man-
agement permissions.

○ Other tenant users.

● Tenant users can only assign these rights to other tenant users.

b) Select specific rights to assign to the selected user:

● No rights – No access to the map, i.e. it is invisible to the selected user.

● View only – Access to only view the map.

● Edit – Access to view the map and edit its content and properties.
3 Customer Journey Map | 124
3.4 My Maps

● Share and edit – Full access to the map, including access to the map sharing rights.

● Owner – Map authors automatically become owners with full access to their maps. The owner
rights can be re-assigned to another user.

Only one owner can be assigned to a map at any one time. If no owner is assigned to the given
map, the access rights will not be saved.

NOTE Specific rights granted to Everyone apply to every user that belongs to the company
that owns the map.

4. Click OK to confirm the defined access rights.

Users Who Can Manage Map Access Rights

● Users with the CJM Program Manager user role assigned to them.

● Map owners – Authors of maps automatically become their owners.

● Users who have been granted the Share and edit rights by another user with map access rights.

PDF Export
Converts the journey map into a PDF file which you can download. You can also download the PDF file in the
Map Detail window.

The exported file contains this information:

● Map settings (name, strategy, owner, contact, persona, description).

● Preview of the map.

● Touch point details.

● Object list with details, thumbnails, tags and social comments. The Object List order is as they appear on
the map from left to right, i.e. the leftmost object is listed first and the rightmost object last.

NOTE External components are exported into the PDF document unless their size exceeds the 15 second
loading time limit. If exceeded, the map is exported without the affected external component.

Branded PDF
If you provide CJM to your customers, the downloaded PDF will have their company color and logo specified in
Administration | Customers.
3 Customer Journey Map | 125
3.4 My Maps

EXAMPLE

Map Duplication
To easily create similar maps, you can start by duplicating an existing one, and then modifying it, i.e. use it as a
template.

TIP To copy a map into a completely different company, especially for demonstration purposes, use map
export/import.

The duplicated map contains all objects with their properties, except for links to another maps and social com-
menting. Only the latest version of the document in the touch point detail is available.

To duplicate a map, select it from the list, and click Duplicate.

● Companies with no customers can duplicate maps only to their own company. No dialog is displayed.

● Companies with customers can select to duplicate a map to their company or to one of the customers.
3 Customer Journey Map | 126
3.4 My Maps

If the map name already exists, typically for cases when you duplicate it to the same company, a number in
brackets is added behind its name, e.g. (1).

The maximum size of the map that can be duplicated is 500 MB.

3.4.2 Creating Maps


To begin creating customer journey maps, decide which of the maps or products that your company offers will
be mapped, and create the corresponding maps in CJM.

1. Click New. The Create Map dialog opens.


3 Customer Journey Map | 127
3.4 My Maps

2. Define the map's properties on the 1 General tab:

Name Map name.

Icon Click CHANGE to either select either an icon from the gallery, or upload custom icons.

● The supported icon resolution is 80 x 80 px.

● The image icons must be square shaped, otherwise they will not upload.

● The supported image formats include: JPEG, PNG, GIF, SVG, and BMP.

● Up to the last 31 uploaded icons are displayed, sorted according to the most recently used.

● Right-click the icon to rename it.

Description Brief description of the map to define the goal and aim.

Strategy Select a strategy.

Persona Select a persona.

Owner Owner of the map. E.g. a CX Team.

Contact Owner contact.

3. On the 2 Tags tab, click SET TAG to assign tags to the map.
3 Customer Journey Map | 128
3.4 My Maps

4. On the 3 Tasks tab, click ASSIGN TASK to Create New tasks or Assign Existing tasks to the map.

Manage tasks assigned to the map with the following controls:

View Displays the selected task's details.

Edit Edits the selected task's details.

Unassign Unassings the selected task from the map.

5. Click CREATE to confirm.

6. In the opened Map Detail window, start designing your maps using the available objects.

Each newly created maps is pre-set with a swimlane and three phases. This will help you get started with
creating the journey map.

TIP To learn how to manage created maps, go to the Map Management Tools section.

3.4.3 Map Detail Window


Here you create the customer journey map.
3 Customer Journey Map | 129
3.4 My Maps

1 Map Name and Icon 6 Phase

2 General Toolbar 7 Swimlane

3 Map Control Toolbar 8 Communication Swimlane

4 Tag filter 9 Feeling Map

5 Objects / Touch Point List / Task List Toggle

NOTE The contents of the map detail window are instantly saved with every change.

Map Name and Icon


Visuals set in the Create Map dialog.
3 Customer Journey Map | 130
3.4 My Maps

General Toolbar

Help Opens the Quadient Cloud User Guide.

CJM Analysis Displays an overview of the customer's (persona) feeling throughout the map. The metrics in the
CJM Analysis window is calculated based on touch points and their feeling. Click the CJM Analysis bar to
open the details.

Touch Points Amount of touch points on the map.

Pains Shows the frustration level of the customer (persona) across the entire journey (map). Compare the
sum of negative experience (feeling value) to the maximum theoretical negative value.

EXAMPLE You have 3 touch points on the map.

● The first touch point feeling value is -5.

● The second touch point feeling value is -3.

● The third touch point feeling value is -1.


3 Customer Journey Map | 131
3.4 My Maps

● The total negative value is -9.

● Their maximum theoretical negative value is -15.

When you compare these 2 values (-9 : -15), it equals 60%.

Gains Shows the satisfaction level of the customer (persona) across the entire journey (map). Compare the
sum of positive experience (feel value) to the maximum theoretical positive value. See the Pains example
and use positive values. The logic is the same.

Improvement Shows how the customer (persona) experience improved (or not) by the end of the journey.
The customer starts the journey with a certain level of satisfaction, and finishes the journey with a new
level of satisfaction. The improvement value shows the difference between those 2 states.

EXAMPLE The initial feeling starts at the 0 value. The last touch point feeling value is +4.

When you compare these 2 values (0 : +4), it equals a +4 improvement.

CJM Analysis Controls

Metrics Description Opens a detailed CJM Analysis metrics description.

Close Closes the CJM Analysis details. You can also click CLOSE.

View Persona Displays the persona details.

Share Opens the Share dialog where you can manage the map access rights.

Export to PDF Converts the journey map into a PDF file which you can download. See the PDF Export
description in Map Management for more information.

Edit Map Properties Displays the Edit Map Properties dialog, where you can change any of the properties
set in the Create Map dialog when creating the map.

Close Map Detail Closes the map detail and returns you to the Map list.
3 Customer Journey Map | 132
3.4 My Maps

Map Control Toolbar

Undo Change / Redo Change Undoe/redo an object action. This is useful if you delete an object by
mistake. See Map Actions for more information.
Zoom Out / Zoom In Zooms the map out/in. This is useful if you have a map with a lot of
phases/swimlanes, and you need to scroll the screen. You can also use the slider, select the value from
the combo box, or enter the value manually.

NOTE You can only zoom between 10-100%.

Fit Width Zooms the map so it fits the width of your screen.

Refresh / Activation Manages components on the map. See the components description for more in-
formation.

Minimap Displays a minimap which shows the entire map canvas and your current position (green rect-
angle). This is useful to navigate on a large map.

● Click anywhere in the map to change the position.

● Drag the green rectangle to navigate through the map.

● Drag the Minimap window to change its position on the screen.

● Selected objects are highlighted in green on the minimap (e.g. a touchpoint ).

● Click the close icon or Minimap button to close the minimap.

Objects / Touch Point List / Task List Toggle

Objects Opens the Objects toolbar. It provides you with all the objects you can use to build journey maps.
Drag the objects into the desired position to add them to the map.
3 Customer Journey Map | 133
3.4 My Maps

The following object groups are available:

● Map layout

● Journey objects

● Descriptive objects

● Indicators

Click the collapse icon to hide the individual groups.

Click the Objects toggle or the hide icon to close the toolbar.

TIP Drag the right-side border line to resize the toolbar.


3 Customer Journey Map | 134
3.4 My Maps

Touch Point List Opens a list of all touch points of the map with additional information and tags.

The List of Touch Points window can be filtered by a string (type directly into the filter) or by tags (click
Add Tag Filter). Touch points that are filtered must match all conditions specified in the filter (not only
one of the conditions).

Click the Touch Point List toggle or the hide icon to close the list.

TIP Double-click a touch point to open the Touch Point Detail window.

Task List Opens a list of all tasks of the map with the same information as in the main task section.

Click the Task List toggle or the hide icon to close the list.

TIP Double-click a task to open the Detail of Task dialog.

3.4.4 Objects
This section lists all the objects that make up your customer journey maps.

● Map Layout

● Journey Objects

● Descriptive Objects

● Indicators

Object Actions
Each map object has its actions, such as editing details, deleting etc. You can access these actions:

● On a toolbar which appears when you select an object.


3 Customer Journey Map | 135
3.4 My Maps

● In a context menu which appears when you right-click an object.

TIP For more information about individual actions, see the object descriptions.

3.4.4.1 Map Layout


This section lists the objects you use to build your customer journey map layout:

● Swimlanes

● Phases

Swimlanes
Swimlanes divide the journey map vertically. They can help you visually distinguish views on customer journey,
e.g. onstage experience as perceived by customer, backstage as provided by the company to support the onstage
experience, story swimlane to capture a phase highlight in text or image, resources consumed during the phase.

1. Decide how many swimlanes you need for your journey map. By default, one is created with each new
map.

2. Drag the Swimlane icon from the toolbar into the map detail workspace.

3. Name the swimlane. The swimlane names are locked in a fixed position when scrolling horizontally.

4. Hover over the separator line and drag it in the required direction to change the swimlane height.
3 Customer Journey Map | 136
3.4 My Maps

In most cases, resizing swimlanes is used to get more space to add objects, i.e. users need to move the
items, that are below, with the swimlane. When you resize or add a swimlane, all objects that are under
the swimlane you are resizing move with it, as if they were part of the swimlane. All objects above the
separator line keep their position.

Swimlane Actions
These actions are available if you select a swimlane or open its context menu.

Rename Renames the swimlane.

Delete Deletes the swimlane. You cannot delete the last swimlane, as at least one swimlane must be in
the map.

NOTE These actions are not available for the communication swimlane and feeling map.

Communication Swimlane
The communication swimlane provides an overview of what communication is represented by a touch point. It
automatically shows the preview of the latest document version / uploaded (website) preview from the touch
point, if it has been uploaded to the touch point.
3 Customer Journey Map | 137
3.4 My Maps

Communication Behavior Notes

● The size of the preview changes according to the touch point size set in the Edit Touch Point dialog.

● Previews from multiple touch points are adjusted to fit the height of the communication swimlane, which
cannot be changed.

● To display larger previews, hover the pointer over them.

● To see which preview belongs to which touch point, click either one to highlight both objects.

● The communication swimlane is always located between the last swimlane and the feeling map, and
cannot be moved or deleted.

Communication Actions
These actions are available if you select a communication or open its context menu.

Open Touch Point Detail Opens the Touch Point Detail window. You can also double-click the communic-
ation preview to open it.

Open Document Detail Opens the Document Detail window.

Hide Hides the preview from the map.

TIP To display the preview again, check Show preview on map in the Touch Point Detail window.

Feeling Map
A feeling map helps you to add a customer's feedback about each phase or touch point of the customer journey.
Their feelings may change, and the graph (with adjustable feel points) represents their emotional experience.
3 Customer Journey Map | 138
3.4 My Maps

There are 3 types of feel points:

Icon Type Y-axis Position

( touch point feeling) Positive 1 to 5

( touch point feeling) Neutral 0

( touch point feeling) Negative -1 to -5

Touch Point Feeling


If you add a touch point, you can specify its feeling which is then displayed as a hexagon-shaped feel point on
the feeling map. The feel point always has the same X-axis position as its touch point.

If you move a touch point, its feel point is also moved. Double-click a touch point feel point to edit its feeling, or
drag it on the Y- axis.

NOTE You cannot set names for touch point feel points.

If you create a map, it doesn't contain any feel points. To add a feel point:

1. Click on a place on the feeling map where you want to add the feel point. The Edit Feel Point dialog opens
3 Customer Journey Map | 139
3.4 My Maps

2. Specify these options:

3. Icon Sets the icon of the feeling point Four icons are available for positive and four for negative feel
points; one for the neutral feel point. When you drag the feel points to change their type from positive
to negative, or vice versa, the last icon used for the feel point type is used. If there is no feel point of
that type yet, the default icon for the feel point type is used.

Name Sets the name of the feeling point. The names of the feel points are displayed only in the map
detail window, not on the global map.

Feeling Sets the value of the feeling from -5 (horrible) to 5 (awesome). This value corresponds to the Y-
axis position on thev feeling map.

TIP Add a feel point if the feeling between 2 touch point feelings changes, e.g. the customer is frustrated
because of waiting.

Feel Point Actions


These actions are available if you select a feel point or open its context menu.

Edit Opens the Edit Feel Point dialog. You can also double-click the feel point to open it.

Delete Deletes the feel point.

More Options Opens the arrange options. See Arranging Objects for more information.
3 Customer Journey Map | 140
3.4 My Maps

The displayed feel points and their names always fit the height of the feeling map, which cannot be changed.
The feeling map is always located below the communication swimlane. Its height cannot be modified. Also, the
feeling map cannot be deleted, it is an essential part of the journey map.

Phases
A phase is a part of a customer journey where a customer's objective resides in a given state. The objective state
transition is a reason for adding a phase. Each customer journey map can be divided into multiple phases for
which you define one or more touch points, add other objects, and set a customer's feelings:

1. Decide what parts the customer journey consists of.

2. Drag the Phase icon from the toolbar into the map detail workspace.

3. Name the phase. The phase names are locked in a fixed position when scrolling.

4. Hover over the separator line and drag it in the required direction to change the phase width.

In most cases, resizing phases is used to get more space to add objects, i.e. users need to move the items,
that are to the right, with the phase. When you resize or add a phase, all objects that are to the right move
with the phase to the right, as if they were part of the phase. All objects to the left keep their position.

The minimum width is defined by the position of all objects in the journey map for the last phase. If only
one phase is used, the width is automatically adjusted for all of them to fit in. Only labels can extend
outside the phase.

Phase Actions
These actions are available if you select a phase or open its context menu.

Rename Renames the phase.

Delete Deletes the phase. You cannot delete the last remaining phase as at least one phase must be on
the map.
3 Customer Journey Map | 141
3.4 My Maps

3.4.4.2 Journey Objects


These objects are characterized by the fact that they can be interconnected:

● Touch Points

● Decisions

● Rectangles

● Links to Another Maps

Touch Points
Touch points represent the contact between your company and the customer at a certain phase of the customer
journey. You can place multiple touch points into each phase.

TIP If a touch point consists of independently managed communications, break it down into separate
touch points. E.g. Acceptance of terms & conditions, and a contract signature.

Adding Touch Points


To add a touch point:

1. Drag the Touch Point icon from the toolbar into the desired position. The Edit Touch Point opens.
3 Customer Journey Map | 142
3.4 My Maps

2. On the 1 General tab, specify these details:

Name Name of the touch point displayed throughout the map, touch point list, exported PDF/XSLS file
etc.

Type Options to distinguish between different types of touch points:

● Standard

● Unknown – For touch points that lack information.

● External – For touch points you have limited control over.

Icon Click CHANGE to either select an icon from the gallery or upload a custom icon.

● The supported icon resolution is 80 x 80 px.

● The image icons must be 1:1 ratio, otherwise they will not upload.

● The supported image formats include: JPEG, PNG, GIF, SVG, and BMP.

● The last 31 uploaded icons are displayed, sorted according to the most recently used.

● Right-click the icon to rename it.

Size Touch point size on the map: Mini, Small, Standard, Big, Huge.

3. On the 2 Tags tab, click SET TAGS to assign tags to the touch point.
3 Customer Journey Map | 143
3.4 My Maps

4. On the 3 Tasks tab, click ASSIGN TASK to Create New tasks / Assign Existing tasks to the touch
point.

NOTE Each task can only be assigned to one object.

Manage tasks assigned to the touch point with the following controls:

View Displays the selected task's details.

Edit Edits the selected task's details.

Unassign Unassings the selected task from the map.

EXAMPLE If you assign a task to a touch point, it is represented as a black badge with a
number indicating the amount of tasks.

Hover over the badge to see details about the tasks.

● If a touch point has only 1 task assigned, you can see its name, effort/benefit and status.

● If a touch point has multiple tasks assigned, you can see the number of tasks for each
status.
3 Customer Journey Map | 144
3.4 My Maps

5. On the 4 Feeling tab, use the Feel Point ON / OFF switch to determine whether or not the feel point
will be displayed on the feeling map.

Set the Feeling value here or later by double-clicking a touch point feel point.

6. Rearrange the created touch points by dragging them into a required position and connect them.

7. Double-click a touch point, or alternatively select Open Touch Point Detail from the action tool bar
or context menu to: add additional information (description, owner, contact, link), assign tags, upload a
document, or use social commenting in the Touch Point Detail window.

8. Optionally, click Touch Point List toggle to open a list of all touch points.

Touch Point Actions


These actions are available if you select a touch point or open its context menu.

Open Touch Point Detail Opens the Touch Point Detail window. You can also double-click the touch point
to open it.

Edit Opens the Edit Touch Point dialog.

Duplicate Duplicates the touch point.

Delete Deletes the touch point.

More Options Opens the arrange options. See Arranging Objects for more information.

Connecting Touch Points


You can connect two touch points with a line (a bezier curve with an arrow):

1. Hover the pointer over a touch point.

2. Click and hold one of the six connection points.


3 Customer Journey Map | 145
3.4 My Maps

3. Drag the line to another connection point. When it is near enough a connection point, the touch points
can be connected.

The arrow always points to the target touch point (object).

4. Double-click the line to open the Line Detail dialog:

Name You can enter a name (a description) to better describe what is happening between the touch
points.

Width The line width can be set as a fixed value: 3, 6, 9, 12, or 15 pixels.

TIP Use the line width to express the dramatics of the transition between touch points.

Data path / Property name Alternatively, the line width can be based on data from Insights. The sup-
ported values are numbers from 1 to 5. The Data path and Property name specified here must cor-
respond to the data in Insights.

In case of invalid data, the width set in Width is used.

EXAMPLE Line Width Based on Data from Insights


This simple example shows how to use line width based on data from Insights. To test it, do
the following:

a) Go to Insights and generate an API key.

b) Create a JSON file (JSON definition of raw push data) with data that will be uploaded into
Insights and use the API key in it:
{
"apiKey": "h4SrUiva5bYUNfw15HQ5BtkV8DaWWfuhQFNj7lRJIZg=",
"data": {
"cjmLineWeight": {
"width1": 1,
"width2": 2,
3 Customer Journey Map | 146
3.4 My Maps

"width3": 3,
"width4": 4,
"width5": 5
}
}
}

c) Set 'cjmLineWeight' as Data path and 'width5' as the Property name in the Line Detail
dialog.

d) Upload the data into Insights.

'cjmLineWeight' data will be created in Data Storage in Insights and the line width will
change to a thick line based on the value (5) of 'width5'.

Line Actions
These actions are available if you select a line or open its context menu.

Edit Opens the Edit Line dialog.

Delete Deletes the line.

The Z-order of the connection is the same as the Z-order of the object where the connection begins.

Touch Point Detail Window


Every touch point represents some kind of communication with your customer. There are several possibilities for
adding information to these points in the Touch Point Detail window:
3 Customer Journey Map | 147
3.4 My Maps

1 Touch Point Name and Icon 5 Social Commenting in Touch Point

2 Preview and Version 6 Tags in Touch Point

3 Evidence 7 Managing Document

4 Additional Information 8 Insert Component

Touch Point Name and Icon


These were set when the touch point was added into the map.

Preview and Version


An image or a document can help explain how the customer connects to the map.

Whenever a preview file is uploaded, a new version of the preview is added, and it is also displayed in the com-
munication swimlane. You can hide the preview in the communication swimlane by unchecking Show preview
on map which is checked by default.

Only a preview of the document can be seen in the touch point detail window. You can view all pages of the
document, interact with Dynamic Communications, and select areas for social commenting in the document detail
window. Click the preview to open it.
3 Customer Journey Map | 148
3.4 My Maps

NOTE

● Preview files can also be uploaded from the supported applications: Inspire Interactive or Inspire
Designer.

● All versions of the uploaded preview files and social comments are stored in touch points indefinitely.

Evidence
Share any media files or online resources as evidence that relates to the touch point.

Click ADD EVIDENCE to select whether to share a media file or a URL link as evidence. Each file you can
upload is limited to 200 MB.

Any user with map editing rights can manage the shared evidence:

Download Evidence Downloads the shared media file.

View Evidence Takes you to the shared URL link.

Edit Evidence Replaces the evidence (file or link) or changes its name.

Delete Evidence Deletes the evidence.

CAUTION This feature poses a security threat because a harmful file can be uploaded by users, so it is
disabled by default. To enable it, company administrators can use the switch in Settings | Touch point
evidence.

If you disable this feature with files already uploaded, they remain in the system and become available
again once you enable the feature.

Additional Information
To edit Description, Owner, Contact, or Links, click Edit Additional Information . Then click OK to save your
changes.

TIP You can edit the link labels in Settings.


3 Customer Journey Map | 149
3.4 My Maps

Tags in Touch Point


Assign tags to a touch point. See Assigning Tags.

Social Commenting in Touch Point


Shows comments made by users involved in the touch point. See Social Commenting.

Managing Documents
Manage document files with the following controls:

Upload File Uploads a file whose preview will be shown.

Create Website Snapshot Creates a snapshot of a website to which you added the link.

Add Website Link Adds a link to a website.

Download File Downloads the uploaded file.

Delete File Deletes the current document version.

NOTE If the document version contains comments and marked areas, they are also deleted.

Uploading Preview Files


To upload a preview file:

1. Click Upload . The Open File dialog opens.

2. Browse for the desired file. The supported file formats include: JPEG, PNG, GIF, BMP, TNO (with embedded
PDF included), PDF, HTML simple and Dynamic Communications. The maximum size is limited to 200 MB.

NOTE For security reasons, if you upload an HTML file containing JavaScript, and it is not Dynamic
Communications, it is not uploaded.

TIP Avoid using production data within your preview files, and rather use sample documents to
lower the related security risks.

Try to keep the number of preview file pages to a minimum to ensure they do not exceed the size
limit. Keep in mind that multiple file versions could result in very large sized touch points.

Adding Website Links


To add a link to a website:

1. Click Add Website Link . The Add Link dialog opens.


3 Customer Journey Map | 150
3.4 My Maps

2. Enter a valid URL address.

3. Click ADD to confirm. The link is added to the touch point detail.

Creating Website Snapshots


You can create a print screen image from websites, and use it as a touch point's preview alongside the link:

1. Click Create Website Snapshot . CJM automatically creates a preview image from the given website.

2. Click the preview to view the preview in full size. The Document Detail window opens.

Downloading Preview Files


To download a preview file:

1. Select the version of the file you wish to download.

2. Click Download File .

All files are downloaded in the format they were uploaded into CJM, except for TNO files which are
downloaded as PDF files.

With every new preview creation, a new document version is created, and it is also displayed in the communication
swimlane.

NOTE Some websites may block this kind of access. In case it has existed before the current create
preview request, the previous document version is kept. CJM cannot capture a snapshot if the target page
is accessible only when signing in.

Once you have finished editing the touch point, click Close Touch Point Detail to return to the Map Detail
window.

Versioning Preview/Document
Whenever a new preview is uploaded in the touch point detail window, a new document is uploaded in the
document detail window, or from a related application, a new version is added.

1. Select any of the existing versions of the document using the combo box, and review the document:
3 Customer Journey Map | 151
3.4 My Maps

2. After you close the touch point detail or the document detail window, the latest document version is shown
in the communication swimlane. Previous versions can be selected and reviewed only in the touch point
detail and the document detail windows.

Insert Component
Enables you to insert the component with data either from Insights or from an external source. When you click
the button, the Add Component dialog opens. The maximum space available for the component in the touch
point detail window is 306 x 305 px. Larger components are cropped.

When you hover the mouse over the component, you can access the buttons to edit or remove the component:

Click Edit component to open the Edit Component dialog that offers the same settings as the Add Component
dialog (for either a component from Insights or an external component, depending on which component type you
have added).

Decisions
Decision points represent moments when customers make decisions. Drag the Decision icon from the toolbar
into the desired position.

TIP Create the object on the journey path to highlight that a customer decides consciously, and fast.

Decision Actions
These actions are available if you select a decision or open its context menu.

Duplicate Duplicates the decision.

Delete Deletes the decision.

More Options Opens the arrange options. See Arranging Objects for more information.
3 Customer Journey Map | 152
3.4 My Maps

Decision points can be connected to other objects. You can add a custom description to the connections.

Rectangles
Rectangles represent events or states.

1. Drag the Rectangle icon from the toolbar into the desired position.

2. The Edit Rectangle dialog opens:

On the General tab, add text that will be displayed within the rectangle, and set its Size.

TIP Use the rectangle size to show the status' importance.

On the Tags tab, select the tags that you want to assign to the rectangle.

3. Click the rectangle to reposition it, double-click it to add/change the text or tags.

Rectangles can also be connected to other objects.

Rectangle Actions
These actions are available if you select a rectangle or open its context menu.

Edit Opens the Edit Rectangle dialog.

Duplicate Duplicates the rectangle.

Delete Deletes the rectangle.

More Options Opens the arrange options. See Arranging Objects for more information.
3 Customer Journey Map | 153
3.4 My Maps

Links to Another Maps


When you work with journey maps, it may be useful to reference another existing map. You can add a link to
another map.

1. Drag the Link to Another Map icon from the toolbar into the desired position.

2. The Add Link to Another Map dialog opens:

Select the map you want the link to lead to, and click ADD.

3. The link is inserted into the journey map:

TIP Double-click the link to another map object to open the linked map.

Link to Another Map Actions


These actions are available if you select a link to another map or open its context menu.

Edit Opens the Edit Link to Another Map dialog.

Duplicate Duplicates the link to another map.

Delete Deletes the link to another map.

NOTE A map that is linked to another map cannot be deleted.


3 Customer Journey Map | 154
3.4 My Maps

More Options Opens the arrange options. See Arranging Objects for more information.

3.4.4.3 Descriptive Objects


This section lists all the objects that you can use to support your customer journey maps with additional data or
visual enhancements:

● Images

● Components

● Groups

● Notes

● Text Areas

● Labels

Images
Images can be added in the map detail window or in the global map.

1. Drag the Image icon from the toolbar into the desired position.

2. The Add Image dialog opens:

3. Either click Upload New Image or select an existing image, and click ADD to confirm.

● Only JPEG, PNG, GIF, SVG, and BMP formats are supported. The maximum size is 200 MB.

● Up to the last 29 uploaded images are displayed, sorted according to the most recently used. The
uploaded images can be filtered by a string (typed directly into the filter).

4. Optionally, resize or move the image. When you resize the image using corner points, the aspect ratio is
kept. To get a bigger view of the image, double-click the image, and see it in the Image Detail dialog.
3 Customer Journey Map | 155
3.4 My Maps

NOTE If the image size exceeds the maximum size of 300 px (longer side of the image), it is added
with this maximum size. It can be resized as needed. Its original resolution is kept.

5. Optionally, only for images created in the map detail window, select Edit Tags from its action toolbar
or context menu to assign tags.

Image Actions
These actions are available if you select an image or open its context menu.

Open Opens the Image Detail window with a larger view of the image. You can also double-click the image
to open it.

Edit Tags Opens the Edit Tags window where you can assign tags to the image.

Duplicate Duplicates the image.

Delete Deletes the image.

More Options Opens the arrange options. See Arranging Objects for more information.

SVG Image Support


These are the requirements for a successful SVG image upload:

● SVG images must match 1.0 or 1.1 specification.

● SVG images must contain viewBox, i.e. the svg tag has to contain the viewBox attribute. The recommended
viewBox values are viewBox = "0 0 width height", where width and height are set in pixels.

EXAMPLE
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xm→
lns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 40 40"> ... </svg>

SVG images do not include fonts. If you do not have the fonts referenced in the image on your computer, the default
system font will be used.

SVG images cannot be uploaded as a preview for a touch point.

Components
Components display data (as a chart, a table, or even a video) that help you understand a project. Depending
on where the data come from you can select the type of component:

● Component from Insights – Data from assigned data sets (provided by CJM, other Quadient Cloud applic-
ations, or uploaded as push data).
3 Customer Journey Map | 156
3.4 My Maps

To be able to add an Insights component in CJM, it must be uploaded into Insights either by a dashboard
designer in Insights or by a CJM user with correctly defined permissions in Roles (in the Administration
section of Quadient Cloud).

Tenants cannot work with components from Insights. Their service provider company prepare and upload
them to tenant companies.

● YouTube video – Embedded YouTube video that can be played in the map or touch point.

● External component – HTML code from an external application (e.g. from Tableau).

To add a component:

1. Drag the Component icon from the toolbar into the desired position.

2. The Select Component dialog opens. Select the component type:

● Inspire Insights

● YouTube

● Embed Code

NOTE Tenants cannot work with components from Insights. They do not have the option to select
a component from Insights.

Inspire Insights Must firstly be prepared by an application administrator (with the Insights-related
Role set in Administration) and uploaded into Insights.
3 Customer Journey Map | 157
3.4 My Maps

Category Both the Category combo box and filter help you find the component you want
to use.

NOTE When you add a component to a tenant company, your components are dis-
played, because tenants cannot work with components from Insights. Tenant related
data in Insights should ideally be distinguished by individual data sources.

Properties In the Properties section:

● For Object Counts and Map List, select if the component covers the whole system (Default),
or provides data only for one of the existing strategies or target groups.

● For query-based components, set up the data filter.

See the Integration with Insights chapter for more information on the Insights component type.

YouTube For YouTube videos, you can simply add the URL link.
3 Customer Journey Map | 158
3.4 My Maps

Video URL Enter a valid YouTube video URL, e.g. https://www.youtube.com/watch?v=dtqxd-


JypLnU. It is not necessary to get the embed code.

Embed Code It can be set up directly from within the Add External Component dialog.

WARNING High number of these external components (or a single big component) in the
map or touch point can overload the browser.

Custom code Use the HTML code (for embedding) of an object from an external application.

3. Resize the component from its default size so that all data is visible.

4. Double-click the component to see a preview and to interact with it, e.g. for the table widget type, to sort
the columns; for the external component type, to play a video. The Component Detail dialog opens. If you
want to interact with all components at once, use the Activation control.

Component Actions
These actions are available if you select a component or open its context menu.

Open Opens the Component Detail window. You can also double-click the component to open it.
3 Customer Journey Map | 159
3.4 My Maps

Edit Opens the Edit Component window which offers the same settings as the Add Component dialog
(for either a component from Insights or an external component, depending on which component type
you have added).

Duplicate Duplicates the component.

Delete Deletes the component.

Reload Refreshes the component data.

TIP Components can also be added in the touch point detail window or in the global map.

Refreshing Components
Click Refresh Components in the top right corner to refresh all components in the map detail. You get the
newest data only for the components with no need to reload the whole page.

Activating Components
Double-click each component to activate them separately. In the Component Detail dialog you can preview it
and interact with it, e.g. for the table widget type, you can sort the columns; for the external component type, you
can play a video.

Additionally, to interact with all used components at once, you can use the Activation control on the Map
Control toolbar of the map detail window and/or the global map:

When switched on (icon highlighted in green):

● All used components move to the front.

● You can interact with them, e.g. one component displays data based on what you set in another compon-
ent's settings, a table in a component can be sorted.

● Objects from the Objects Toolbar cannot be added.

When switched off after interaction:

● All used components move to the back.

● They keep the settings from the interaction with them, e.g. data filters applied, columns in a table sorted.

In concurrent access, the Activation control is unique for each user.

NOTE After you close the map detail or global map and open them again, the default values in components
are shown, and the component activation control is off.
3 Customer Journey Map | 160
3.4 My Maps

Groups
Groups can be used to mark a group of objects and to add a heading (or any text).

1. Drag the Group icon from the toolbar into the desired position.

2. The Edit Group dialog opens, where you can set the properties:

Groups are always in the background, and they cannot be arranged otherwise. The group added last is in front
of the previously added groups.

Group Actions
These actions are available if you select a group or open its context menu.

Edit Opens the Edit Group window.

Duplicate Duplicates the group.

Delete Deletes the group.

Notes
A feature similar to whiteboard notes.

1. Drag the Note icon to the desired position.

2. Format the text using rich text editing, and select the color of the note.
3 Customer Journey Map | 161
3.4 My Maps

Note Actions
These actions are available if you select a note or open its context menu.

Edit Opens the Edit Note window with rich text editing.

Edit Tags Opens the Edit Tags window where you can assign tags to the note.

Duplicate Duplicates the note.

Delete Deletes the note.

More Options Opens the arrange options. See Arranging Objects for more information.

Text Areas
Add additional information to your journey maps using text areas:

1. Drag the Text Area icon from the toolbar into the desired position.

2. Enter the text.

The text area is resized vertically according to the length of the text that is added.

3. You can format the text using rich text editing.

4. Click the text area to resize it, or reposition it.

5. Optionally, only for text areas created in the map detail window, select Edit Tags from the context menu
to assign tags.

Text Area Actions


The same actions as for notes are available if you select a text area or open its context menu.

Rich Text Editing


Use rich text editing to format text:
3 Customer Journey Map | 162
3.4 My Maps

● Makes the selected text bold (<Ctrl> + <B>).

● Makes the selected text italics (<Ctrl> + <I>).

● Inserts a link (<Ctrl> + <K>):

To insert a link, either:

1. Select the text.

2. Click .

3. Insert a valid URL address.

4. Click OK to confirm.

Or:

1. Click .

2. Insert a valid URL address.

3. Optionally, set the text to be displayed instead of the URL address.

4. Click OK to confirm.

TIP Hold the <Ctrl> key and click the link to open a hyperlink.
3 Customer Journey Map | 163
3.4 My Maps

● Font size – Sets the font size.

● Border – Switches the border ON / OFF .

Labels
Add additional information directly to a touch point using labels:

1. Drag the Label icon from the toolbar to the touch point.

2. Attach the label to one of the 12 connection points.

3. Enter the label text. Click outside the label to finish editing.

4. Drag the label to reposition it, i.e. change the distance from the label to the touch point; the direction
(angle) of the connection cannot be changed.

Label Actions
These actions are available if you select a phase or open its context menu.

Edit Edits the label text.


3 Customer Journey Map | 164
3.4 My Maps

Delete Deletes the label.

3.4.4.4 Indicators
This section lists the objects that you can use to indicate how much time, money, and effort your customer had
to invest during their journey.

● Time

● Money

● Effort

To add an indicator:

1. Drag an indicator from the toolbar into the desired position. The Edit Indicator dialog opens.

2. On the 1 General tab, specify the indicator's description which will then be visible on the map, and select
the type which represents its severity:

Indicator Type

Time Fast

Normal
3 Customer Journey Map | 165
3.4 My Maps

Indicator Type

Slow

Money Small

Moderate

Huge

Effort Little

Significant

Massive

NOTE The default type value for indicators is the middle one (Normal, Moderate, Significant).

3. On the 2 Tag tab, click SET TAGS to assign tags to the indicator.

4. Click OK to confirm.

Indicator Actions
These actions are available if you select an indicator or open its context menu.

Edit Opens the Edit Indicator window.

Duplicate Duplicates the indicator.

Delete Deletes the indicator.

More Options Opens the arrange options. See Arranging Objects for more information.

3.4.5 Map Actions


3.4.5.1 Undo/Redo
Use Undo Change / Redo Change to undo/redo an object action. This is useful if you delete an object by
mistake.
3 Customer Journey Map | 166
3.4 My Maps

It is possible to undo (resp. redo) up to 100 create, delete, move, or edit type actions. These actions are calculated
for all CJM users working with it (not for each user separately) in concurrent access, and always for each map
separately. Redo reverts any undo action, i.e. it can only be used if there was no new action done since you used
undo.

NOTE It is not possible to use the undo/redo functionality on the global map.

Undo/Redo for Touch Point Detail


Settings in the touch point detail window are not subject to the undo/redo functionality, except for tags.

Undo/Redo for Link to Another Map


In case you have deleted a map to which the link to map that you want to use undo/redo for leads, the Invalid
Link to Map object is displayed.

Select Edit from its context menu or action toolbar, and select the map it should lead to.

Undo/Redo for Objects with Tags


In case you have deleted an object with tags, deleted the tags in Tag Management, and used undo for the object,
the object is displayed again, but the deleted tags are not created again. Go to Tag Management, create the
tags, and assign them again.

Undo/Redo for Connections


In case you have deleted an object to which a connection leads and used undo for the object, the connection is
displayed again.

3.4.5.2 Arranging Objects


You can arrange objects in the Map Detail window and in the global map in the Z-order:

1. Select the object you want to rearrange. Its action bar appears.

2. Click More Options on the action bar and select one of the options:

Move to Front

Move to Back

Move Forward

Move Backward

Alternatively, right-click the object, and select one of the options from the context menu. E.g. the context
menu for a touch point:
3 Customer Journey Map | 167
3.4 My Maps

● Groups are always in the background and their Z-order cannot be changed. Components are above the
groups and their Z-order cannot be changed.

● Connections have the Z-order of the object where they begin.

● All feel points in the feeling map have the same Z-order index.

● The position of labels is the same as the position of the touch point they belong to.

● The Z-order is kept when resizing or moving the selected object.

3.4.5.3 Selecting Objects


You can select multiple objects at once. This is useful, e.g. when you want to move or delete multiple objects.

To select multiple objects:

1. Click and hold the left mouse button. The pointer appears when you start selecting the area.

2. Select the desired objects.

3. Hold the <Ctrl> key and click to select additional objects.

NOTE

● If you add a new object from the toolbar, it is selected automatically.

● You cannot select multiple feel points.

● You cannot select multiple communications, they are automatically selected if their corresponding
touch points are selected.
3 Customer Journey Map | 168
3.4 My Maps

3.4.5.4 Deleting Objects


To delete an object:

● Select it and press <Delete>.

● Select it, and then click Delete on its action toolbar (where applicable).

● Right-click it, and select Delete from its context menu (where applicable).

NOTE In concurrent access, you are notified if another user deletes an object that you are working on.

3.4.5.5 Copy/Paste
You can copy and paste CJM objects for easier creation of maps in the map detail window, use <Ctrl> + <C> on
a selected object and <Ctrl> + <V>. The pasted object is placed in the upper-left corner of the map or map.

Copy and paste is possible:

● Within one map.

● Between maps that belong to one company.

● Between maps that belong to a service provider company and their tenants.

NOTE It is not possible to use the copy/paste functionality on the global map.

All object properties are copied, except for social commenting in a touch point. Only the latest version of the
document (uploaded preview) is available, when a touch point with documents is copied and pasted.

When you copy touch points where custom icons are used or when you copy custom images to another company
(e.g. to a tenant company), the images are added to the Recent & Upload tab. You cannot copy tags between
companies using Copy/Paste. If copied within one company, there is no duplicity of images, the original ones are
used.

Browser Specific Information


Edge The minimum versions for the copy and paste functionality to work are Edge 38.14393.0.0 and EdgeHTML
14.14393.

Internet Explorer 11 Internet Explorer may prompt you with the message: Do you want to allow this webpage
to access your Clipboard?
3 Customer Journey Map | 169
3.5 Document Detail

If you click Allow access, the copy and paste functionality will work without prompting you again till you
close the browser. This behavior can be modified by the following setting: Internet Explorer browser > Internet
Options > Security tab > Custom Level button > Security Settings > Scripting > Allow Programmatic clipboard
access. However, it is not recommended to enable the option for all internet sites.

3.5 Document Detail


Click the uploaded document preview in the Touch Point detail to open the Document Detail window. You can
easily display and comment on:

● Image and Website Preview

● TNO and PDF Preview

● Dynamic Communications Preview

Image and Website Preview

Manage previe files with the following controls:

Zoom Out Zooms out a document preview.

Zoom In Zooms in a document preview.

Actual Size Displays the real size of a document page.

Fit Width Adjusts the page size to fit to the full width of the preview window-pane.

Fit Page Adjusts the page size to fit the whole page to the preview window.
3 Customer Journey Map | 170
3.5 Document Detail

TNO and PDF Preview

Managing Previews
For TNO and PDF previews, you have the same tools as for images and websites available. You can also browse
through documents and pages.

Dynamic Communications Preview


3 Customer Journey Map | 171
3.6 Social Commenting

Managing Previews
For a Dynamic Communication preview, you can fully interact with the document. You can also choose a device
on which the preview will be displayed:

Desktop

Tablet

Mobile

TIP You can switch between Landscape / Portrait previews for Tablet and Mobile.

3.6 Social Commenting


Social comments are a means of exchanging ideas within a team reviewing issues related to customer journey.
It helps to bring together non-technical points of view with input from design-related users. For example, it can
be useful for commenting on drafts before their approval and getting a swift response including the updated
version of the document.

You can make social comments in:

● Touch point detail window – To communicate about the touch point content.

● Document detail window – To discuss the content or form of the document linked with the touch point.

● Related applications – To discuss the content or form of the document linked with the touch point, among
a team that works with other applications.

3.6.1 Social Commenting in Touch Point Detail Window


In the touch point detail window:

1. Click in the Social Commenting text field.


3 Customer Journey Map | 172
3.6 Social Commenting

2. Type in your comment, and press <Enter>, or click SUBMIT to send it.

3. Click REPLY to reply to a social comment.

There is only one level of comments (i.e. you cannot submit a reply to a reply; submit a reply to the original comment
instead).

TIP Social comments can also be added in the Document Detail window, where you can additionally
mark an area of the document that the comment is related to. The chat is automatically updated regardless
of where you enter the comment.

Deleting Comments
To delete a comment, click the icon next to it, and select Delete Comment.

You can also delete a whole thread of comments ( Delete Thread), and individual comments in threads.

When you delete a comment with a marked area, the area is also deleted.

NOTE Only map owners and/or users with the CJM map management permission can delete comments.
3 Customer Journey Map | 173
3.6 Social Commenting

3.6.2 Social Commenting in Document Detail Window


Social comments can be related to the preview image (or document) that you upload in the touch point detail
window. You can use social commenting in the same way as in the touch point detail window; you can additionally
mark an area of the document that your comment is related to if relevant.

1. Click an uploaded preview image and the Document Detail window opens.

2. Draw an area in the document detail to mark the document part you want to comment on, i.e. click
ADD AREA, and draw it within the document.

You can:

● resize,

● move,

● REMOVE AREA.

NOTE The area cannot be added for the Dynamic Communications file format. Only comments
without an area can be submitted.

3. Add a social comment, and click SUBMIT or press <Enter> to send it.
3 Customer Journey Map | 174
3.6 Social Commenting

3.6.3 Social Comment Exchanging with Related Applications


Social commenting, available in the touch point detail window and in document detail, are ways of exchanging
ideas across the Quadient application portfolio. Customer Journey Map users (e.g. Customer Experience Managers)
can communicate with Inspire Interactive users or Inspire Designer users (Template Designers and their Super-
visors).

Then, documents linked to touch points can be uploaded, not only from the touch point detail window, but also
directly from the related applications where they were created (and approved).

Customer Journey Mapping Inspire Interactive

UX Manager Supervisor Template Designer

Inspire Designer

Template Designer

To exchange social comments (and/or document versions) between applications, they have to be connected via
touch points in Inspire Interactive or Inspire Designer. You can recognize when touch points are connected with
another application (i.e. linked specifically from within the application) as a logo is added to the touch point icon,
i.e.:

Then, the following actions are available:

● Social comments can be read, replied to or new ones added, with or without marking an area in the doc-
ument.

● Updated templates can be uploaded from Inspire Interactive or Inspire Designer, and will be displayed as
a new version of the document in the document detail.
3 Customer Journey Map | 175
3.6 Social Commenting

NOTE The list of comments gets refreshed regularly both in Inspire Interactive / Inspire Designer and
CJM.

Connection with Inspire Interactive

1. After the application administrator sets up the connection to Quadient Cloud (in Inspire Content
Manager), users with the template designer or supervisor role can see the CJM-related settings in Inspire
Interactive's Content Manager.

2. They can proof the template WFD, and connect it to the selected touch point from the selected CJM
map.

3. Social comments with CJM are visible in the preview mode of the template editor.

4. The template preview can be sent to CJM as a new version of the document.
More information can be found in the Inspire Interactive Configuration Guide .

Connection with Inspire Designer

1. After the application administrator sets up the connection to Quadient Cloud (i.e. log in to Quadient
Cloud in Proof), users can add the Social Commenting window-pane in Proof to see the CJM related
settings.

2. They can proof the template WFD, and link it to the selected touch point from the selected map.

3. Social comments with CJM are available in the Social Commenting window-pane.

4. The template from Proof can be uploaded to CJM as a new version of the document.
More information can be found in Inspire Designer User Manual .

EXAMPLE Using Social Comments


This use case shows how social comments help the team that cooperates across the solution:

● Phil Barret, the Customer Experience Manager, working with CJM.

● Domenico Ursini, the Template Designer, working with Interactive.

● Patricia Bloomfield, the Supervisor, working with Interactive (Domenico's superior).

1 Phil opens the Terms and Conditions touch point, and sees room for improvement. He comments
on the document in the document detail: he selects the area on page 4 of the document, and adds a
comment that the brochure mentioned in the document has been renamed, and requires an updated
version.

2 Patricia sees his comment in Interactive, and asks her colleague to change it in the template.

3 The work is done in Inspire Interactive, and Domenico uploads the new document with a reply to
Patricia.

The resulting social communication hierarchy is then visible in CJM, and the Customer Experience Manager
can see the updated version. He can also switch between the two version (Version 1 with the incorrect
name and Version 2 with the correction).
3 Customer Journey Map | 176
3.7 Map Overview

3.7 Map Overview


Customer Journey Map provides you with the following features to help you focus on the maps that need closer
attention:

● Strategy Dashboard – By default, it shows the amount of maps in strategies and an overview of tags in
maps, but can be customized using components from Insights.

● Global Map – Enables connecting maps according to their dependencies.

3.7.1 Strategy Dashboard


Select Strategy Dashboard in the CJM left-side application menu to display it.

You can assemble your own strategy dashboards from components from Insights according to the information
which is important for you to see. You also manage the strategy dashboards for your customers (tenant) who
do not have the rights to work with components from Insights, i.e. you choose the strategy dashboard while
switched to the tenant view. For more information on which components are available in Insights, see the Integ-
ration with Insights section.
3 Customer Journey Map | 177
3.7 Map Overview

A default dashboard is available for each new company with CJM. The default components (JSON files) used for
it are automatically added to Insights. The default dashboard shows 3 main categories:

● Tasks

● Maps

● Tags

3.7.1.1 Tasks
Here you see a Boston Matrix displaying your tasks based on benefit and effort, and a table listing all tasks. Click
the icon to filter tasks by types and statuses.

Task Details
Click the related icon to see details.
3 Customer Journey Map | 178
3.7 Map Overview

TIP You can find more details about this data in CJM Data Set Values.

3.7.1.2 Maps
Here you see a list of your maps in CJM. Click the icon to filter maps by strategies and personas.

When you select particular maps, it automatically filters data in the tag categories.

Map Details
Click the related icon to see map details.

TIP You can find more details about this data in CJM Data Set Values
3 Customer Journey Map | 179
3.7 Map Overview

3.7.1.3 Tags
Here you see a list of your tags in CJM. Click the icon to filter tasks by categories and/or select particular tags.

Tags data are subsequent to maps, so select the desired maps first. You can also click particular object types in
the main counter to see tags for that objects.

Tag Details
Click the related icon to see tag category details.

TIP You can find more details about this data in CJM Data Set Values
3 Customer Journey Map | 180
3.7 Map Overview

Changing the Default Dashboard


To change your dashboard:

1. Make sure you have the user rights to work with components from Insights.

2. Set up your CJM strategy dashboard in Insights.

3. Back in CJM, click CHOOSE DASHBOARD to select it.

NOTE When you select a strategy dashboard for a customer (tenant), switch the view to the
tenant, and click CHOOSE DASHBOARD to select it.

3.7.2 Global Map


A global map is a graphical overview of the created maps that shows the relations between them.

Click SHOW GLOBAL MAP in the upper-right corner in the My Maps section to access the map.

1 Map Control Toolbar Controls the basic map actions, such as zoom and the minimap. See Map Control
Toolbar for standard maps which works the same.
3 Customer Journey Map | 181
3.7 Map Overview

2 Tag Filter Filters tags on the global map. See Filtering Tags.

3 Objects Opens the Objects toolbar. It shows the objects you can use on the global map. Drag the
objects into the desired position to add them to the map.

● Map – When dragged into the map, the Add Map to Global Map dialog opens.

Select a map from the list and click ADD to confirm.

Map Actions
These actions are available when you select a map or open its context menu.

Open Opens the Map Detail window. You can also double-click the map to open it.

Delete Deletes the map from the global map.

More Options Opens the arrange options. See Arranging Objects for more information.
3 Customer Journey Map | 182
3.8 Content Export

NOTE

○ Tags for individual objects used in the maps are grouped for each phase of the map
and displayed above the phase name; tags for the maps themselves are displayed
above the persona icon.

○ If the phase name does not fit the map representation in the global map, hover over
the phase name to view it.

● Image

● Component

● Text Area

Click the Objects toggle or the hide icon to close the toolbar.
4 Map List Opens the list of all maps in the global map with the same information as in the main My
Maps section.

Click the Map List toggle or the hide icon to close the list.

5 Connecting Maps Connect related maps with a line (a bezier curve with an arrow). It works the same as
for connecting touch points.

NOTE The global map settings (e.g. the position of maps) are saved instantly.

3.8 Content Export


For the purpose of further data analysis, the content of Customer Journey Map can be exported to an XLSX file.
The Excel file includes all maps with touch points, personas, tasks, strategies, and notes.

1. Go to the Services section.

2. Click EXPORT.

EXAMPLE Exported Content

In the exported Excel file, there are separate sheets for maps (maps and touch points), notes, personas,
tasks, and strategies.

On the Maps sheet, the data in the columns always refer to the type of item specified in column A (map
/ touch point). Settings that are not available for the respective item are marked red with N/A in the fields:
e.g. goal is not available for touch points. Settings that were not filled in CJM are left blank.
3 Customer Journey Map | 183
3.9 Settings

3.9 Settings
The Settings section has these tabs:

● Touch Points

● Tasks

NOTE Only users with the CJM administration permission can access Settings.

3.9.1 Touch Points

1 Enabling Touch Point Evidence

If you enable the Touch point evidence option, you can share any media files or online resources evidence related
to touch points on the Evidence tab in the Touch Point detail.

NOTE This feature poses a security threat because a harmful file can be uploaded by users, so it is disabled
by default.
3 Customer Journey Map | 184
3.9 Settings

2 Defining Link Labels for Touch Point Detail

Here you can change the link labels displayed under Additional Information in the Touch Point detail so the users
understand what links they should add. The default labels are: Specification, CRM, Campaign, and Archival.

3.9.2 Tasks
Here you configure a connection to an external project tracking tool (such as JIRA®) so you can create tasks there
directly from CJM.

1 Connecting to External Project Tracking Tool


Before you can connect to an external tracking tool, you need to set up an identity provider in ADMINISTRATION
| Authentication. Once you have set up the identity provider authentication, do the following:

Link Accounts

1. Go to My Settings (top-right corner).


3 Customer Journey Map | 185
3.9 Settings

2. Click Link account for the Jira provider to connect your Cloud user account with your JIRA® account.

3. If you sign in to the external tracking tool for the first time, allow the connection.

NOTE You can now sign into Cloud using your external tracking tool account.

4. Go back to CJM | Settings.

Connect to JIRA®

1. Enable the External Project Tracking Tool ON / OFF switch.


3 Customer Journey Map | 186
3.9 Settings

2. Select Jira as the Connector.

3. Clink on the JIRA button to connect.

4. Select the JIRA project to which you want to create tasks as the Project, and its issue type as the Item
type.

NOTE

● You should have the administration user role in JIRA® to configure the connection properly.

● The Project and Item type selection depends on the logged in user's rights.

You are now connected to your JIRA® project.

2 Mapping Standard Fields


Map your default CJM task fields with JIRA® fields.

NOTE

● Name is the only mandatory field you need to map. Always map it with Summary.

● CJM can only map with these JIRA® field types: string, number, and enumeration.
3 Customer Journey Map | 187
3.10 API Services

3 Mapping Custom Fields


You can map custom fields to synchronize additional fields between JIRA® and CJM.

To do so:

1. Click ADD FIELD.

2. Specify:

Label Label displayed in the Create Task dialogue.

Field JIRA® field you want to map your task with.

Optionality Condition whether you need to set this field when you create a new task.

NOTE

● Optionality should correspond with JIRA®.

● If you change and save the mapping schema, tasks using the previous mapping are deleted from
CJM.

You have successfully prepared the JIRA® connection, and you can start adding tasks.

3.10 API Services


This section describes APIs that provide remote access to essential CJM functionality including:

● Strategy Management

● Persona Management

● Task Management

Typical API process:

1. Authentication

2. Sending HTTP Requests

3.10.1 Authentication
The only authentication method is via a token in the HTTP header which you will acquire using the API Generat-
eToken method.
3 Customer Journey Map | 188
3.10 API Services

GenerateToken
Retrieves a token you need to use in the header for every publish request.

URI /api/publish/Users/GenerateToken

Format JSON

Method POST

Authentication None

Parameters
Use these parameters in the request body:

● Email – Email address used for logging in to Quadient Cloud (string).

● Password – Password used for logging in to Quadient Cloud (string).

EXAMPLE Request body:


{
"Email": "j.smith@domain.com",
"Password": "pwd"
}

Response body:
{
"token": "b72a6373-fbb6-40fa-9cfe-e58d8697ce85",
"eventId": 25470684,
"time": "\/Date(1519385776603)\/"
}

WARNING If you want to change the authentication token, change your Cloud user password.

3.10.2 Sending HTTP Request


3.10.2.1 Strategy Management
● Add Strategy

● Edit Strategy

● List Strategies

● Delete Strategy

Add Strategy
Adds a new strategy.
3 Customer Journey Map | 189
3.10 API Services

URI /api/publish/Cjm/PublicAddStrategyCommand

Format JSON

Method POST

Authentication Token

Parameters
Use these parameters in the request body:

● Name – Name of the strategy (string).

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Request body:


{
"Name": "New Strategy"
}

Response body:
{
"allocatedId": 1714538,
"eventId": 27369174,
"time": "\/Date(1527072602894)\/"
}

Edit Strategy
Edits specified strategy's name.

URI /api/publish/Cjm/PublicEditStrategyCommand

Format JSON

Method POST

Authentication Token

Parameters
Use these parameters in the request body:

● StrategyId – Unique ID of the strategy (integer).


3 Customer Journey Map | 190
3.10 API Services

TIP Use the PublicGetStrategyListQuery API to get the ID.

● Name – New name of the strategy (string).

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Request body:


{
"StrategyId": 1715054,
"Name": "New Strategy 2"
}

Response body:
{
"eventId": 27372116,
"time": "\/Date(1527074127815)\/"
}

List Strategies
Lists all the strategies for the company.

URI /api/query/Cjm/PublicGetStrategyListQuery

Format JSON

Method GET

Authentication Token

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85
3 Customer Journey Map | 191
3.10 API Services

EXAMPLE Response body:


{
"items": [
{
"id": 1,
"name": "New Customer Acquisition",
"programCount": 0
},
{
"id": 2,
"name": "Minimize Churn Rate",
"programCount": 1
},
{
"id": 3,
"name": "Upsell",
"programCount": 0
},
{
"id": 4,
"name": "Paper to Digital",
"programCount": 0
}
]
}

Delete Strategy
Deletes the specified strategy. You can only delete unused strategies.

URI /api/publish/Cjm/PublicDeleteStrategyCommand

Format JSON

Method POST

Authentication Token

Parameters
Use these parameters in the request body:

● StrategyId – Unique ID of the strategy.

TIP Use the PublicGetStrategyListQuery API to get the ID.


3 Customer Journey Map | 192
3.10 API Services

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Request body:


{
"StrategyId": 1715054
}

Response body:
{
"eventId": 27369087,
"time": "\/Date(1527072437817)\/"
}

3.10.2.2 Persona Management


● Add Persona

● Edit Persona (upload)

● Edit Persona

● List Personas

● Delete Persona

Add Persona
Adds a new persona.

URI /api/upload/Cjm/PublicMultipartAddTargetGroup

Format multipart/form-data

Method POST

Authentication Token
3 Customer Journey Map | 193
3.10 API Services

Keys
Use these keys in the request header:

● File

● Name

● Description

Parameters
Use these parameters in the request header:

● File – Image file of the persona.

● Name – Name of the persona (string).

● Description – Short description of the persona (string).

NOTE Only the File and Name parameters are mandatory.

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

File

Name

Description

EXAMPLE Request body:


POST /api/upload/Cjm/PublicMultipartAddTargetGroup HTTP/1.1
Host: company.quadientcloud.eu
Token: b72a6373-fbb6-40fa-9cfe-e58d8697ce85
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Cache-Control: no-cache

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="Icon.jpeg"
Content-Type: image/jpeg

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="name"

New Target Group


------WebKitFormBoundary7MA4YWxkTrZu0gW
3 Customer Journey Map | 194
3.10 API Services

Content-Disposition: form-data; name="description"

Lorem ipsum...
------WebKitFormBoundary7MA4YWxkTrZu0gW--

Response body:
{
"targetGroupId": 29322069
}

Edit Persona (upload)


Edits the specified persona.

URI /api/uplaod/Cjm/PublicMultipartEditTarget-
Group/$TargetGroupId$/

Format multipart/form-data

Method POST

Authentication Token

IMPORTANT You must specify the TargetGroupId value in the request URL.

Keys
Use these keys in the request header:

● File

● Name

● Description

Parameters
Use these parameters in the request header:

● File – New image file of the persona.

● Name – New name of the persona (string).

● Description – New description of the persona (string).

NOTE Only the File parameter is mandatory.


3 Customer Journey Map | 195
3.10 API Services

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

File

Name

Description

EXAMPLE Request body:


POST /api/upload/Cjm/PublicMultipartEditTargetGroup/29322079 HTTP/1.1
Host: doctest.inspirecloudtest.net
Token: b72a6373-fbb6-40fa-9cfe-e58d8697ce85
Cache-Control: no-cache
Postman-Token: cd3c96fd-1ec5-495e-9c92-587eff067a3b
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="Image2.jpg"
Content-Type: image/jpeg

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="name"

New Name
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="description"

New desc
------WebKitFormBoundary7MA4YWxkTrZu0gW--

Response body:
{
"targetGroupId": 29322079
}

Edit Persona
Edits the specified persona name and description.

URI /api/publish/Cjm/PublicEditTargetGroupProperti-
esCommand

Format JSON
3 Customer Journey Map | 196
3.10 API Services

Method POST

Authentication Token

Parameters
Use these parameters in the request body:

● TargetGroupId – Unique ID of the persona (integer).

TIP Use the PublicGetTargetGroupListQuery API to get the ID.

● Name – New persona name (string).

● Description – New persona description (string).

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Request body:


{
"TargetGroupId": 1940065,
"Name": "New Name",
"Description": "New description"
}

Response body:
{
"eventId": 29143860,
"time": "\/Date(1529487564245)\/"
}

List Personas
Lists all the personas for the company.

URI /api/query/Cjm/PublicGetTargetGroupListQuery

Format JSON

Method GET

Authentication Token
3 Customer Journey Map | 197
3.10 API Services

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Response body:


{
"items": [
{
"id": 8,
"name": "Generation X",
"description": "",
"imgUrl": "api/query/Cjm/GetProgramTargetGroupImgQuery?CompanyId=256513&TargetGroupId=8&Up→
loadGuid=cjm-program-target-group-0-8-target-generation-x-big"
},
{
"id": 9,
"name": "Generation Y",
"description": "",
"imgUrl": "api/query/Cjm/GetProgramTargetGroupImgQuery?CompanyId=256513&TargetGroupId=9&Up→
loadGuid=cjm-program-target-group-0-9-target-generation-y-big"
}
]
}

Delete Persona
Deletes the specified persona. You can only delete unused personas.

URI /api/publish/Cjm/PublicDeleteTargetGroupCommand

Format JSON

Method POST

Authentication Token

Parameters
Use these parameters in the request body:

● TargetGroupId – Unique ID of the persona (number).

TIP Use the PublicGetTargetGroupListQuery API to get the ID.


3 Customer Journey Map | 198
3.10 API Services

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Request body:


{
"TargetGroupId": 1715054
}

Response body:
{
"eventId": 27369087,
"time": "\/Date(1527072437817)\/"
}

3.10.2.3 Task Management


● Add Task

● Edit Task

● List Tasks

● Delete Task

Add Task
Adds an internal task.

URI /api/publish/Cjm/PublicAddTaskCommand

Format JSON

Method GET, POST

Authentication Token

Parameters
Use these parameters in the request body:

● Name – Name of the task (string).


3 Customer Journey Map | 199
3.10 API Services

NOTE Name is the only mandatory parameter.

● Description – Brief description (string).

● Project – Name of a project (string).

● Effort – Estimated effort (integer). The number must be between 0-100.

● Benefit – Estimated benefit (integer). The number must be between 0-100.

● Link – A valid URL (string).

● Status – Current status (string): New, In progress, Completed, or Rejected.

NOTE The Status value is case sensitive.

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Request body:


{
"Name": "Test Task",
"Description": "Test description",
"Project": "Test Project",
"Effort": 33,
"Benefit": 44,
"Link": "https://www.quadient.com",
"Status": "New"
}

Response body:
{
"allocatedId": 1491620,
"eventId": 23609423,
"time": "\/Date(1519229733182)\/"
}

Edit Task
Edits the selected internal task.
3 Customer Journey Map | 200
3.10 API Services

URI /api/publish/Cjm/PublicEditTaskCommand

Format JSON

Method POST

Authentication Token

Parameters
Use these parameters in the request body:

● TaskId – Unique ID of the task (number).

TIP Use the PublicGetTaskListQuery API to get the ID.

● Any other parameter you want to change.

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Request body:


{
"TaskId": 1716733,
"Name": "New Name",
"State": "In Progress"
}

Response body:
{
"tasks": [
{
"id": 1491473,
"name": "Test Task",
"description": "Test description.",
"project": "Test Project",
"effort": 10.0,
"benefit": 20.0,
"status": "New",
"statusId": "0-New",
"typeId": 0,
"type": "Internal",
"link": "www.link.test"
}
]
}
3 Customer Journey Map | 201
3.10 API Services

List Tasks
Lists all the tasks for the company.

URI /api/query/Cjm/PublicGetTaskListQuery

Format JSON

Method GET

Authentication Token

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Response body:


{
"tasks": [
{
"id": 1491473,
"name": "Test Task",
"description": "Test description.",
"project": "Test Project",
"effort": 10.0,
"benefit": 20.0,
"status": "New",
"statusId": "0-New",
"typeId": 0,
"type": "Internal",
"link": "www.link.test"
}
]
}

Delete Task
Deletes the specified task.

URI /api/publish/Cjm/PublicDeleteTaskCommand

Format JSON

Method POST

Authentication Token
3 Customer Journey Map | 202
3.11 Application Restrictions

Parameters
Use these parameters in the request body:

● TaskId – Unique ID of the task (number).

TIP Use the PublicGetTaskListQuery API to get the ID.

EXAMPLE Request header:

Key Value

Token b72a6373-fbb6-40fa-9cfe-e58d8697ce85

EXAMPLE Request body:


{
"TaskId": 1923434
}

Response body:
{
"eventId": 27369087,
"time": "\/Date(1527072437817)\/"
}

3.10.3 API Limitations


● Maximum number of request is 100/s.

● Maximum size of one request is 1MB.

● Customers (tenants) cannot use API services.

3.11 Application Restrictions


This section lists various Customer Journey Map restrictions that you should keep in mind while working with the
application.
3 Customer Journey Map | 203
3.11 Application Restrictions

Persona Images
The following restrictions apply to persona images:

● The minimum image resolution is 120 x 120 px. Larger images will be lowered to this resolution.

● The image must be square shaped, otherwise it will not upload.

● The supported image formats include: JPEG, PNG, GIF, SVG, and BMP.

Map Icons
The following restrictions apply to the map representing icons:

● The supported icon resolution is 80 x 80 px.

● The image icons must be square shaped, otherwise they will not upload.

● The supported image formats include: JPEG, PNG, GIF, SVG, and BMP.

● Up to the last 31 uploaded icons are displayed, sorted according to the most recently used.

Evidence Files
The following restrictions apply to the evidence files:

● The maximum size is limited to 200 MB.

Touch Point Preview Files


The following restrictions apply to the touch point preview files:

● The maximum file size is 200 MB.

● The supported file formats include: JPEG, PNG, GIF, BMP, TNO (with embedded PDF included), PDF and
Dynamic Communications.

Touch Point Preview Links


The following restrictions apply to the links you can reference as previews:

● The width of the preview is 1280 px, and the height is taken from to the website.

Touch Point Components


The following restrictions apply to the components you can add into touch points:

● The maximum space available for the component in the touch point detail window is 306 x 305 px.
3 Customer Journey Map | 204
3.12 Integration

Image Supporting Objects


The following restrictions apply to the images that you can use as supporting objects:

● Only JPEG, PNG, GIF, SVG, and BMP formats are supported.

● The maximum file size is 200 MB.

● Up to the last 29 uploaded images are displayed in the image selection.

● These are the requirements for a successful SVG image upload:

○ SVG images must match 1.0 or 1.1 specification.

○ SVG images must contain viewBox, i.e. the svg tag has to contain the viewBox attribute. The recommen-
ded viewBox values are viewBox = "0 0 width height", where width and height are set in pixels.

EXAMPLE
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xm→
lns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 40 40"> ... </svg>

Map Export / Import / Duplication


The maximum size of a map you can export/import/duplicate is 500 MB.

Undo/Redo History
The Undo/Redo history is deleted with every new version of Quadient Cloud.

3.12 Integration
3.12.1 Integration with Insights
Inspire Insights gives its subscribers tools for creating customized dashboards for monitoring different production
processes. Dashboards can be assembled and shared internally (e.g. with production or account managers
within a Service Provider), or externally (e.g. with enterprise clients). Data can be pushed to Insights from any
on-premise source (Inspire Automation or Scaler; client bespoke or 3rd party) and from other Quadient Cloud
applications, such as Customer Journey Map.

The data displaying components prepared in Insights can also be used directly within Customer Journey Map in
these objects: Map detail, Touch point detail, Global map and Strategy dashboard.

NOTE Customers (tenants) cannot work with components from Insights. You must prepare them.
3 Customer Journey Map | 205
3.12 Integration

The integration with Insights is explained in detail in these sections:

● Integration Steps

● Customer Journey Map Data Accessible in Insights

● Default Components for Strategy Dashboard

3.12.1.1 Integration Steps


Using Insights Components in CJM

1. Prepare the component's JSON definition outside the Quadient Cloud GUI.

To learn how to do this, follow the instructions in these sections from the Insights chapter:

● Preparing Dashboard Component Templates – Explains the JSON definition of Insights components.

● Preparing Data and Connecting Them to Component Templates – Explains what kinds of data you
can populate the components with.

2. Upload the prepared component into the designated Insights storage. Do this by following the instructions
in the Storing Component Templates section from the Insights chapter.

3. Add the component to the map detail, Touch point detail or the Global map.

Replacing Default Strategy Dashboard


Once you have prepared the components, which you intend to use to build your own strategy dashboard, and
uploaded them into Insights:

1. Using the prepared components, assemble your Strategy dashboards. Do this by following the instructions
in the Assembling Dashboards section from the Insights chapter.

2. In Customer Journey Map, go to the CJM Strategy Dashboard, click CHOOSE DASHBOARD, and choose
the one you just assembled.

3.12.1.2 Customer Journey Map Data Accessible in Insights


Connecting Insights Components to CJM Data Source
Include the dataNode object into the component's JSON definition and configure it using these properties:

application Specify the Customer Journey Map data source by using the cjm value:

path References a specific set of data to be displayed. Learn about the available CJM data set values in the CJM
Data Set Values section.

EXAMPLE
"dataNode": {
"application": "cjm",
"path": "objectCounts"
}
3 Customer Journey Map | 206
3.12 Integration

CJM Data Set Values


● objectCounts

● taskList

● taskTypeList

● taskStatusList

● strategyList

● targetGroupList

● programList

● basicCategoryList

● basicTagList

● tagList

● tagDetailList

● tagObjectDistribution

objectCounts
Data set relating to various counts of CJM objects, i.e. the number of maps, touch points, phases and tags. To
specify the types of objects whose counts widgets will display, define each dataProperty within the widgets inside
the currently configured component template by selecting one of these values:

dataProperty Description

programCount Number of maps.

phaseCount Number of phases.

touchPointCount Number of touch points.

tagCount Number of tags.

taskList
Data set relating to a list of tasks including their names, effort, benefit and status. To specify the types of task
data widgets will display, define each dataProperty within the widgets inside the currently configured component
template by selecting one of these values:

dataProperty Description

id Task ID.

name Task name.

description Task description.

project Project name.


3 Customer Journey Map | 207
3.12 Integration

dataProperty Description

effort Effort related to the task.

benefit Benefit related to the task.

status Task status.

statusId Task status ID.

type Type of the task (internal or provider name).

typeId Provider ID.

link Task link to external tracking tool.

NOTE In case of the Spd.BostonMatrix widget, the values above are not assigned to the dataProperty,
but to the specific Boston matrix properties, e.g. as follows:

"xValueDataProperty": "effort",
"yValueDataProperty": "benefit",
"labelDataProperty": "name",
"tooltipDataProperty": "description",

taskTypeList
Data set relating to a list of task types defined in CJM. To specify the types of data widgets will display, define
each dataProperty within the widgets inside the currently configured component template by selecting one of
these values:

dataProperty Description

id Task type ID.

name Provider name.

taskCount Number of tasks having the type assigned.

taskStatusList
Data set relating to a list of task statuses defined in CJM. To specify the types of data widgets will display, define
each dataProperty within the widgets inside the currently configured component template by selecting one of
these values:

dataProperty Description

id Task status ID.

name Task status name.

taskCount Number of tasks having the status assigned.


3 Customer Journey Map | 208
3.12 Integration

strategyList
Data set relating to a list of strategies defined in CJM. To specify the types of data widgets will display, define
each dataProperty within the widgets inside the currently configured component template by selecting one of
these values:

dataProperty Description

id Strategy ID.

name Strategy name.

programCount Number of maps using the strategy.

targetGroupList
Data set relating to a list of personas defined in CJM. To specify the types of data widgets will display, define
each dataProperty within the widgets inside the currently configured component template by selecting one of
these values:

dataProperty Description

id Persona ID.

name Persona name.

programCount Number of maps having the persona assigned.

programList
Data set relating to a list of maps including their names, strategies and personas to which each of them is assigned.
Counts of touch points, phases and tags can also be displayed under the programList value.

To specify the types of map data widgets will display, define each dataProperty within the widgets inside the
currently configured component template by selecting one of these values:

dataProperty Description

phaseCount Number of phases in the map.

strategy Map strategy.

targetGroup Map persona.

id Map ID.

name Map name.

tagCount Number of tags related to the map.

strategyId Strategy ID.

targetGroupId Persona ID.

owner Owner assigned to the map.

contact Contact assigned to the map.

ownerName User responsible for the journey map digital form.


3 Customer Journey Map | 209
3.12 Integration

basicCategoryList
Data set relating to a list of categories for tags defined in CJM. To specify the types of data widgets will display,
define each dataProperty within the widgets inside the currently configured component template by selecting
one of these values:

dataProperty Description

id Category ID.

name Category name.

colorCode Category color code.

tagCount Number of tags the category has assigned.

basicTagList
Data set relating to a list of tags defined in CJM. To specify the types of data widgets will display, define each
dataProperty within the widgets inside the currently configured component template by selecting one of these
values:

dataProperty Description

id Tag ID.

name Tag name.

colorCode Tag color code.

categoryCount Number of categories the tag is assigned to.

tagList
Data set relating to a list of tags defined in CJM. To specify the types of data widgets will display, define each
dataProperty within the widgets inside the currently configured component template by selecting one of these
values:

dataProperty Description

tagId Tag ID.

tagName Tag name.

tagColor Tag color code.

relationId Unique ID of the in a category.

categoryId Category ID.

categoryName Category name.

categoryColor Category color code.


3 Customer Journey Map | 210
3.12 Integration

tagDetailList
Data set relating to a list of tags defined in CJM. To specify the types of data widgets will display, define each
dataProperty within the widgets inside the currently configured component template by selecting one of these
values:

dataProperty Description

tagId Tag ID.

tagName Tag name.

tagColor Tag color code.

relationCount Number of tags for the object.

programName Map name.

strategyId Strategy ID.

relationId Unique ID of the tag in a category.

categoryId Category ID.

categoryName Category name.

categoryColor Category color code.

targetGroupId Persona ID.

objectType Type of the object the tag is assigned to:

● Map

● Image

● Process

● StickyNote

● TextArea

● TouchPoint

● TimeIndicator

● DaysIndicator

● MoneyIndicator

● EffortIndicator

tagObjectDistribution
Data set relating to tags and objects they are assigned to in CJM. To specify the types of data widgets will display,
define each dataProperty within the widgets inside the currently configured component template by selecting
one of these values:
3 Customer Journey Map | 211
3.12 Integration

dataProperty Description

programId Map ID.

programName Map name.

strategyId Strategy ID.

targetGroupId Persona ID.

programTagCount Number of tags assigned to the map.

touchPointTagCount Number of tags assigned to the map's touch points.

rectangleTagCount Number of tags assigned to the map's rectangles.

noteTagCount Number of tags assigned to the map's notes.

textAreaTagCount Number of tags assigned to the map's text areas.

imageTagCount Number of tags assigned to the map's images.

timeIndicatorTagCount Number of tags assigned to the map's time indicators.

daysIndicatorTagCount Number of tags assigned to the map's days indicators.

moneyIndicatorTagCount Number of tags assigned to the map's money indicators.

effortIndicatorTagCount Number of tags assigned to the map's effort indicators.

3.12.1.3 Default Components for Strategy Dashboard


This section lists the default components used within the built-in Strategy Dashboard. The components are divided
into groups:

● Tasks

● Maps

● Tags

TIP Download the Insights Starter Kits to get more examples of dashboard components that display
CJM data.

Tasks
The Tasks group is composed of these components:

● CJM - Task Type Filter

● CJM - Task Status Filter

● CJM - Task Boston Matrix and Table


3 Customer Journey Map | 212
3.12 Integration

Maps
The Maps group is composed of these components:

● CJM - Strategy Filter

● CJM - Target Group Filter

● CJM - Program Table

Tags
The Tags group is composed of these components:

● CJM - Tag Counters

● CJM - Category Filter

● CJM - Tag Filter

● CJM - Tag Detail Column Chart and Table

3.12.2 Integration with Omnichannel Coordination


You can create a connection from Omnichannel Coordination to your touch points in CJM.

How to Add a Link to a Touch Point

1. Click Link to Touch Point when you create a new rule, and/or insert a new action, in Delivery Rules in
Omnichannel Coordination to select the related map and touch point in CJM.

2. Click the link to open the related touch point in CJM, where they can:

● See the related discussion in social commenting and add comments of their own.

● Edit any touch point properties, except for a component from Insights in the touch point detail, which
cannot be inserted, modified, or deleted.

They cannot access the whole map in CJM.


4 Customer Preference Management

4.1 Application Overview


4.2 Using Customer Preference Management
4.3 Managing Jobs via the API
4 Customer Preference Management | 214
4.1 Application Overview

4.1 Application Overview

Customer Preference Management creates invitation emails with preference settings, and sends them to the re-
cipients via Messenger. See An Overview of Quadient Cloud for a quick introduction to the components and
functionality.

Quadient Cloud

Template Editor Recipients' preferred channel

Customer Batch Inspire Emails


Preference Management Messenger

Recipients

CSV file Downloaded


with recipients' results
data

The above schema shows a job process in CPM:

● Importing recipients' info.

● Creating a template in the Template Editor.

● Creating a job with the selected template.

● Sending the job as invitation emails with preference settings to the recipients via Messenger.

● Downloading job results.

4.2 Using Customer Preference Management


Customer Preference Management has the main sections:

● Jobs

● Templates
4 Customer Preference Management | 215
4.2 Using Customer Preference Management

4.2.1 Jobs
A job is a process of:

1. Importing recipients' info, such as an email address, name, surname, country.

2. Sending invitation emails with a link to the preference setting page to recipients.

3. Gathering data, such as how many invitation emails haven't been delivered; how many recipients have
opened the invitation email; recipients' preference.

4. Downloading results as a CSV file; evaluation of the gathered data.

Manage jobs with the following controls:

New Creates a new job.

Edit Reopens the last step in the job process.

Close Closes a job. Click CLOSE JOB to confirm.

Refresh Refreshes the job details. Only started job details can be refreshed.

Download Simplified Results Downloads a CSV file with basic results.

Download Advanced Results Downloads a CSV file with advanced results.

Start Starts a job (if you chose to start it later when creating the job). As soon as you start a job, its state
becomes Running in the State column. You can find the batch in Inspire Messenger email batches.

Delete Deletes the selected job. Only Closed and New jobs can be deleted.

In general, you can manage jobs:

● Manually via the web browser

● Automatically via API


4 Customer Preference Management | 216
4.2 Using Customer Preference Management

The list of jobs is divided into columns:

Name Unique job name. When creating a job without selecting a predefined template, it is given a number in
order. When you select a predefined template, it is given name according to the template name plus a
number in order, e.g. TestTemplate – 3.

State Job state: New, Running, Closed.

Created / Started / Closed Date and time a job was created / started / closed.

TIP For easier orientation, click the related icon to sort the list of jobs.

Job Details
To see more details and charts, such as how many invitation emails have been delivered; how many recipients
have opened the invitation email; the preference chart, click the related icon.

Job ID Unique identifier generated automatically for each job.

Last results download status Date and time the results were downloaded.

Invitations Chart

Sent Number of sent invitation emails.

In Progress Number of invitation emails being sent.

Failed Number of invitation emails that failed to send.

Delivered Invitations Chart

Opened Number of opened invitation emails.

Unopened Number of unopened invitation emails.


4 Customer Preference Management | 217
4.2 Using Customer Preference Management

Subscriptions Chart

Unsubscribed Number of recipients who have clicked on the UNSUBSCRIBE button on the unsubscribe page
and unsubscribed from receiving invitation emails.

Subscribed Number of recipients who have opened their first invitation email and subscribed to receiving invit-
ation emails.

Preferences Chart

Preferences Preferred channels recipients have selected plus those, who had opened the preference setting
page but did not select any channel.

4.2.1.1 Creating and Starting a Job


Creating jobs includes:

● Importing data

● Parsing data

● Selecting/Creating a template

● Validation

To create a new job, click New. The Import Data window opens.

Importing Data
4 Customer Preference Management | 218
4.2 Using Customer Preference Management

To import recipients' info from a CSV file:

● Drag and drop the file into the Import Data window.

Or

● Click ADD CSV FILE and select the file.

IMPORTANT The CSV file must contain a header in the first row. Only a column with email ad-
dresses is mandatory, its header must be Email. CSV can only contain one Email column.

A CSV file with recipients' personal details should be used and CPM creates variables from the fields contained
in the file. Each column's field name will be used to name the variables.

EXAMPLE A CSV file containing the following data would create variables called Name, Surname, Email,
Company and Country.

Name Surname Email Company Country

John Smith smith@test.com gfBank USA

Liv Truman truman@test.com Vital England

Jerneja Raul raul@test.com Froodeco Brazil

Stig Walsh walsh@test.com gfBank Scotland

Mosi Nelson nelson@test.com Froodeco Egypt

Ariadna Van Rompu rompu@test.com Froodeco The Netherlands

Parsing Data
Once the CSV file has been successfully uploaded, the CSV Preview with found variables is displayed. If special
characters are not displayed properly, select the right Encoding: Unicode (UTF-8), Central European (Windows),
Cyrillic (Windows), Western European (Windows) or Greek (Windows).
4 Customer Preference Management | 219
4.2 Using Customer Preference Management

Click PARSE. The variables are recognized and parsed either with the "," or ";" separator. The confirmation
message with particular variables appears.

To continue, click NEXT. Alternatively, click CLEAR to clear the data you have just uploaded.
4 Customer Preference Management | 220
4.2 Using Customer Preference Management

Selecting/Creating a Template

Once you have successfully prepared the data, you need to either:

● Select a template from your the list of created templates and click NEXT.

Or

● Create a new template in the next step. To do so, click NEXT.

In the Template Editor, you can edit the selected template or create a new one. To save the newly created template,
click Save in the top-right corner. Once your template is prepared, click NEXT to continue.

Validation
In this validation step, CPM checks if all variables and email addresses are valid, e.g. there are "@" and "." char-
acters. At least one record (recipient) must be set and valid, otherwise the validation results in error.

As soon as the validation is done, you see the number of valid recipients. Then you can start the job by clicking
on:

● START NOW button.

● START LATER button, its state becomes New in the State column in the list of jobs.

TIP Click IMPORT DATA | SELECT TEMPLATE | EDIT | VALIDATE in the top panel to navigate through
the steps.
4 Customer Preference Management | 221
4.2 Using Customer Preference Management

4.2.1.2 Closing a Job


To close a job, click Close and click CLOSE JOB to confirm.

WARNING Once you have closed a job, it cannot be restarted.

As soon as you close a job, its state becomes Closed in the State column in the list of jobs.

Downloading Job Results


You can download a CSV file with:

● Simplified job results

Or

● Advanced job results

Simplified Job Results


Simplified job results is a CSV file containing the same columns as the source CSV file and 2 extra columns:
Preference and Issues. The Issues column displays: Unsubscribed, Invalid Email or Missing required variables.

EXAMPLE A CSV file containing simplified job results.

Name Surname Email Preference Issues

John Smith smith@test.com Email

Liv Truman truman@test.com Letter

Jerneja Raul raul@test.com Email Unsubscribed

Stig Walsh walsh@test.com Letter

Mosi Nelson nelson@test.com Email

Ariadna Van Rompu rompu@test.com Email Invalid Email

Advanced Job Results


Advanced job results is a CSV file containing different columns as the source CSV file. Types of messages:
4 Customer Preference Management | 222
4.2 Using Customer Preference Management

Invitation Result
Information about sent invitation emails:

● Message Type – Type of a message: InvitationResult, SelectedPreference, TrackUrl, InvalidRecipient.

● Email ID – Unique number generated automatically for each message.

● To Email Address – Email address of the recipient.

● Sending State – State of the message: Sent or Failed.

● Delivered – Boolean number: 1 is for delivered, 0 for undelivered messages.

● Delivery Error Description – Delivery error message received from the email server the message was
sent to. E.g. Recipient's inbox folder is full.

● Date and Time of First Opening by Recipient – The first time a recipient opened the invitation email.

● Date and Time of Last Opening by Recipient – The last time when a recipient opened the invitation
email.

● Number of Times Opened – Total number of times a recipient opened the invitation email.

● Unsubscribed – Boolean number: 1 is for unsubscribed, 0 for still subscribed.

● Email Service Used – Email service used to send the message, e.g. Mandrill.

● Custom Field – Custom field for metadata used by Inspire Messenger. It stays empty for CPM job results.

● Last Preference Selected by Recipient – The last preferred channel a recipient selected.

Selected Preference

● All preferred channels a recipient selected on the preference setting page (from oldest to newest).

Track URL
Information about entries to the preference setting page:

● URL – URL address of the preference setting page. The only available value is currently the LandingPage.

● Date and Time of Opening – Date and time when the recipient opened the preference setting page.

● IP Address of Client – IP address the recipient opened the preference setting page from.

Invalid Recipient
Information about invalid recipients:

● Index of Recipient Row in Input CSV File – Number of a row in which recipient's data is in the input
CSV file.

● Email – Email address of the invalid recipient (if included in the input CSV file).

● Description of Problem – Invalid email, Missing required variables or Unsubscribed.

A CSV file containing advanced job results has the same format as Inspire Messenger report CSV file.
4 Customer Preference Management | 223
4.2 Using Customer Preference Management

EXAMPLE A row containing InvitationResult message type from a CSV file with the advanced job
results.
InvitationResult;2;smith@test.com;Sent;1;;2015-10-29 09:20:06Z;2015-10-29 09:20:06Z;1;1;Mandrill;;

4.2.2 Templates
Templates can be created so you can repeat similar invitation emails and ensure that they have a unified look to
invitation emails and preference setting pages you send to recipients. They can be customized with rich-text
editing or HTML according to your needs.

Manage templates with the following controls:

New Creates a new template, the Template Editor opens.

Import Imports a template.

Edit Opens the Template Editor with the selected template.

Export Exports the selected template.

Clone Clones the selected template.

Delete Deletes the selected template.

The list of templates is divided into columns:

Template Name Template name.

Last Update Date and time the template was edited.

Updated By User who updated the template.


4 Customer Preference Management | 224
4.2 Using Customer Preference Management

TIP For easier orientation, click to sort the list of templates by name, last update, updated.

Importing and Exporting Templates


You can import and export templates to/from CPM. To do so, use Import / Export. The exported file has
the .export extension, e.g. Template.export.

IMPORTANT The template file you want to import must have the .export extension and its maximum
size is 10MB.

4.2.2.1 Template Editor

The Template Editor creates, configures and edits templates which are then used for:

● Invitation emails – Contain the invitation and a link to the preference setting page.

● Preference setting pages – Contain preference channels recipients select from.

● Confirmation messages – Are displayed when a recipient has successfully sent his preferences.

● Unsubscribe pages – Are displayed when a recipient has clicked on an unsubscribe page link in the invit-
ation email. A link to the unsubscribe page can be added in the WYSIWYG editor.

To unsubscribe from receiving invitations emails, users click UNSUBSCRIBE. Once they have clicked on
the button, the confirmation message appears: You have been successfully removed...

NOTE The unsubscribe page and confirmation message are predefined and cannot be edited.
The unsubscribe page has the same logo, text styles and language as the selected template.
4 Customer Preference Management | 225
4.2 Using Customer Preference Management

The template editor consists of:

● WYSIWYG editor

● Configuration panel

● Preference setting page preview

Top-Right Corner Controls

Save Saves the changes.

CAUTION The Template Editor doesn't save changes automatically.

Edits the template name.

WYSIWYG Editor
Here you can define a template for the invitation email. For rich-text editing, use the toolbar above the main
section, which contains many standard text formatting options with some less common ones. You can also use
HTML editing.

EXAMPLE An invitation email created in the WYSIWYG editor:


4 Customer Preference Management | 226
4.2 Using Customer Preference Management

An invitation email created in the HTML editor:

HTML Switches from rich-text to HTML editing.

Format Sets the text style:

● Normal text

● Quote

● Code

● Heading 1

● Heading 2

● Heading 3

● Heading 4

● Heading 5

● Heading 6

NOTE These styles are predefined and cannot be edited.

Bold Makes selected text bold.

Italic Makes selected text italic.


4 Customer Preference Management | 227
4.2 Using Customer Preference Management

Underline Underlines selected text.

Lists

● Unordered List – Creates an unordered list with bullet points.

● Ordered List – Creates an ordered list with numbers.

Indent Moves the paragraph farther away from the margin.

Outdent Moves the paragraph closer to the margin.

Link Inserts a link. To insert a link either:

1. Select a text.

2. Click Link and select Insert link.

3. The Insert Link dialog opens.

4. Either type in or copy the URL address from the clipboard.

5. Check Open link in new tab to open the link in a new tab when users click it.

6. Click INSERT to confirm.

Or:

1. Click Link and select Insert link.

2. The Insert Link dialog opens.

3. Either type in or copy the URL address from the clipboard.

4. Optionally, set the text to be displayed instead of the URL address.


4 Customer Preference Management | 228
4.2 Using Customer Preference Management

5. Check Open link in new tab to open the link in a new tab when users click it.

6. Click INSERT to confirm.

● To edit a link, select it and click EDIT or click Link and select Edit link.

● To unlink a link, either select it and click UNLINK or click Link and select UNLINK option.

Alignment Aligns the text:

● Align Left

● Align Center

● Align Right

● Align Justify

Text Color Sets the text color.

Background Color Sets the text background color.

Size Sets the text size.

Font Sets the font:

● Arial

● Helvetica

● Georgia

● Times New Roman

● Monospace

Upload Image Uploads an image. To upload an image:

1. Click Upload Image . The Open File dialog opens.

2. Select an image.

3. Click the Open button.

To edit an image, select it and click EDIT. The Edit dialog opens.
4 Customer Preference Management | 229
4.2 Using Customer Preference Management

Here, you can set:

Title Image title.

Caption Caption displayed under the image.

Link URL which users are redirected to when they click the image. Check Open link in new tab to
open the link in a new tab when users click the image.

Position Image position:

● None

● Left

● Center

● Right

Click SAVE to save changes.

WARNING Once you click DELETE, the image is deleted from Customer Preference Management.

Variables Adds a variable as a link to the preference setting page, the unsubscribe page, or inserts variables
imported from the CSV file or created variables on the Invitation tab. Variables validation is not case
sensitive.
4 Customer Preference Management | 230
4.2 Using Customer Preference Management

NOTE The Preference setting page and Unsubscribe page variables are mandatory and must
be inserted into the invitation email.

Configuration Panel
Consists of:

● Invitation tab

● Preference tab

NOTE Every option with the symbol is mandatory.

Invitation tab
Here, you can define details for the invitation email, e.g. set sender's information, email subject and add variables.
Sender's information and email subject are then displayed in the invitation email header. Variables can be added
into the email body in the WYSIWYG editor.

Sender Sender's name and email address.

IMPORTANT The sender Email address must be one of the verified email addresses in the Domain
Verification section, otherwise the invitation emails will not be sent.

Email Subject Email subject.

Variables Variables, their names and values. Displays also variables imported from the CSV file. You can
insert these variables into the email body. The variables imported from the CSV file must match variables
in this list, so that their values will be used in the emails.
4 Customer Preference Management | 231
4.2 Using Customer Preference Management

Manage variables with the following controls:

ADD NEW VARIABLE Adds a new variable.

Edits variable name and value.

Deletes the related variable.

Preference tab
Here, you can define a template for the preference setting page (such as logo, fonts and colors) and the confirm-
ation message. Click the Preference to open the preference setting page preview.

Language Confirmation page language:

● English USA

● English United Kingdom

● Français

● Español

● Deutsch

● Italiano

Selected language is used for automatically generated unsubscribe pages and their confirmation pages.
4 Customer Preference Management | 232
4.2 Using Customer Preference Management

Heading and Logo Preference setting page heading and company logo.

To upload a company logo:

1. Click Upload company logo . The Open File dialog opens.

2. Select an image.

3. Click Open to confirm.

To delete a company logo, click the icon next to it.

Content Preference setting page title, message content and send button text.

NOTE The maximum length of the title is 50 characters; and the message 10,240 characters.

Channels Preference channels displayed on the preference setting page.


4 Customer Preference Management | 233
4.2 Using Customer Preference Management

Manage channels with the following controls:

ADD NEW CHANNEL Adds a new channel. To add a channel, type in the name and click the ADD
NEW CHANNEL button

Deletes the related channel.

NOTE At least 2 channels are mandatory, maximum is 10.

Terms and Conditions Terms and conditions recipients must accept to when selecting their preferences.

To set terms and conditions:

1. Check Use Terms and Conditions on page.

2. Fill in the confirmation message.

To see how Terms and Conditions look on the preference setting page, see the Preference setting
page preview.

Confirmation Message Confirmation message title and content.


4 Customer Preference Management | 234
4.2 Using Customer Preference Management

Company Brand Preference setting page style, e.g. font size, style and color.

Font family Font type:

● Arial

● Courier New

● Comic Sans MS

● Georgia

● Lucida Sans Unicode

● Tahoma

● Times New Roman

● Trebuchet MS

● Verdana

Font size Header font size in pixels.


4 Customer Preference Management | 235
4.2 Using Customer Preference Management

Font style Header font style:

● Regular

● Italic

● Bold

● Bold Italic

Font color Header font color.

Background color Header background color.

Title size Title font size in pixels.

Title style Title font style.

Title color Title color.

Text size Content text size in pixels.

Text style Content text style.

Text color Content text color.

Background color Content background color.

Button text color Send button text color.

Button color Send button color.

TIP To set a color, use a hex code, e.g. #ff0000 for red.
4 Customer Preference Management | 236
4.3 Managing Jobs via the API

Preference Setting Page Preview


Previews the preference setting page while editing its template on the Preference tab, so you can see how your
design looks. Once a recipient has selected his preferred channel and clicked on the SEND button, the confirmation
message appears. They are also sent a confirmation email.

EXAMPLE A preference setting page with preference channels.

4.3 Managing Jobs via the API


You can manage jobs via the API using Inspire Designer and provided sample WFD documents:

● Creating and Starting a Job

● Closing a Job

● Downloading Simplified Job Results

● Downloading Advanced Job Results

● Deleting a Job

IMPORTANT Make sure you have the newest Accelerator provided by Quadient Support to manage
jobs via API services.
4 Customer Preference Management | 237
4.3 Managing Jobs via the API

4.3.1 Creating and Starting a Job


1. Within Inspire Accelerator provided to you by Quadient Support, locate the cpmCreateJob.wfd file and
open it using Inspire Designer.

2. Open the Param Input module.

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the CPM job that
you wish to create and start. The configuration includes:

email Registered email address you entered when signing up for Quadient Cloud.

pass Password you entered when signing up for Quadient Cloud.

serverUrl Company URL, e.g. https://companyname.quadientcloud.eu.

uploadFilePath Path to the source CSV file.

uploadFileEncoding Encoding used in the CSV file.

templateName Name of a template you want to use for the job.

4. Press the <F5> key and start the production, which triggers the script in the Imposition Script module
and creates and starts a new job in CPM.
4 Customer Preference Management | 238
4.3 Managing Jobs via the API

4.3.2 Closing a Job


1. Within Inspire Accelerator provided to you by Quadient Support, locate the cpmCloseJob.wfd file and open
it using Inspire Designer.

2. Open the Param Input module.

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the CPM job that
you wish to close. The configuration includes:

email Registered email address you entered when signing up for Quadient Cloud.

pass Password you entered when signing up for Quadient Cloud.

serverUrl Company URL, e.g. https://companyname.quadientcloud.eu.

jobId ID of a job you want to close.

4. Press the <F5> key and start the production, which triggers the script in the Imposition Script module
and closes the specified job in CPM.

4.3.3 Downloading Simplified Job Results


1. Within Inspire Accelerator provided to you by Quadient Support, locate the cpmGetSimpleJobResult.wfd
file and open it using Inspire Designer.

2. Open the Param Input module.


4 Customer Preference Management | 239
4.3 Managing Jobs via the API

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the CPM job that
you wish to download simplified job results for. The configuration includes:

email Registered email address you entered when signing up for Quadient Cloud.

pass Password you entered when signing up for Quadient Cloud.

serverUrl Company URL, e.g. https://companyname.quadientcloud.eu.

jobId ID of a job you wish to download simplified job results for.

outputCodec Encoding that will be used for the generated data.

4. Press the <F5> key and start the production, which triggers the script in the Imposition Script module
and downloads simplified job results for the specified job from CPM.

TIP Downloaded simplified job results data is stored in Inspire Designer and can be used for further
workflow.

4.3.4 Downloading Advanced Job Results


1. Within Inspire Accelerator provided to you by Quadient Support, locate the cpmGetAdvancedJobResult.wfd
file and open it using Inspire Designer.

2. Open the Param Input module.


4 Customer Preference Management | 240
4.3 Managing Jobs via the API

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the CPM job that
you wish to download advanced job results for. The configuration includes:

email Registered email address you entered when signing up for Quadient Cloud.

pass Password you entered when signing up for Quadient Cloud.

serverUrl Company URL, e.g. https://companyname.quadientcloud.eu.

jobId ID of a job you wish to download advanced job results for.

outputCodec Encoding that will be used for the generated data.

4. Press the <F5> key and start the production, which triggers the script in the Imposition Script module
and downloads advanced job results for the specified job from CPM.

TIP Downloaded advanced job results data is stored in Inspire Designer and can be used for
further workflow.

4.3.5 Deleting a Job


1. Within the Inspire Accelerator package (provided to you by Quadient Support), locate the cpmDeleteJob.wfd
file and open it using Inspire Designer.

2. Open the Param Input module.


4 Customer Preference Management | 241
4.3 Managing Jobs via the API

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the CPM job that
you wish to delete. The configuration includes:

email Registered email address you entered when signing up for Quadient Cloud.

pass Password you entered when signing up for Quadient Cloud.

serverUrl Company URL, e.g. https://companyname.quadientcloud.eu.

jobId ID of a job you wish to delete.

4. Press the <F5> key and start the production, which triggers the script in the Imposition Script module
and deletes the specified job from CPM.
5 Digital Services

5.1 Application Overview


5.2 Using Digital Services
5.3 API Services
5 Digital Services | 243
5.1 Application Overview

5.1 Application Overview

Digital Services creates and manages Android, iOS and web applications. It also manages authentications and
identity providers and serves as a Digital Advantage Suite data hub. Profiting from the information Digital Services
provides, online data capture assets can be quickly fine tuned. See An Overview of Quadient Cloud for a quick
introduction to the components and functionality.

OAuth token
Identity provider
Verify auth

API key
OAuth Firebase Cloud Messaging / App certificate
Get notification Apple Push Notifications Service Send notification

Quadient Cloud
App ID + OAuth token App ID + API key
CDS (list, get) CDS (upload, delete)
Digital Services
Service ID + OAuth token Service ID + API key
DS (SID, SaRRD) DS (MultiRetrieveData)

On-premise system

Client
Inspire Scaler Inspire Interactive

Dynamic Communications
or
Custom Application
Inspire
Database
Production Server

The above schema shows components used for the Digital Services solution:

● Identity Provider – 3rd party provider or Inspire Authentication which Digital Advantage Suite uses for
end-client authentication.

● Firebase Cloud Messaging / Apple Push Notification Services – Google and Apple's third-party platform
services that send notifications to mobile devices.

● Client side – Standalone (Ad-hoc) Dynamic Communications, mobile / web application built on an applic-
ation template or custom mobile / web application built on Digital Advantage SDK . Licensed clients use
it on their devices to receive Dynamic Communications and notifications.

● Content Delivery Service – Stores documents uploaded via GUI, Inspire Designer , or API services.

● On-Premise system – Server with Inspire solution installed in the enterprise infrastructure.

● API services – The communication between your applications and Digital Services is established using a
variety of API services.

NOTE Digital Advantage SDK (software development kit) is a bundle of libraries, tools and examples
(for Android and iOS) that simplifies the process of creating mobile / web applications containing Dynamic
5 Digital Services | 244
5.1 Application Overview

Communications. You can use our Digital Advantage SDK to incorporate your Dynamic Communications
in native applications (iOS and Android) without requiring any installation.

User Role Permissions


User role permissions determine the user’s level of access to certain features of the application. You can set per-
missions as the company administrator in Administration | Users and Roles.

Digital Services users can have the following user role permissions assigned:

Reports and Statistics Allows viewing the Overview, Reports and Statistics for individual applications and
browsing documents, resources, application templates and user lists in read only mode.

Content and User Management Allows creating and managing documents, application templates, user lists
and services; as well as browsing Authentications and Settings and viewing application configuration in
read only mode.

Development and Administration Gives full access to the Digital Services application (allows creating and
managing applications, identity providers, etc.)

NOTE For detailed information on the assignment of user roles and permissions, see the Users and Roles
section in Administration documentation.

Licensing
Production companies (which can use all licensing features, e.g. statistics, user blocking) must purchase B2B /
B2C licenses so clients can use mobile / web applications and data communication.

● Each logged in client (user) consumes one license. If the mobile / web application does not require users
to log in, using the application on a specific device consumes one license.

When licenses are depleted and reach the set maximum limit tolerance, no new clients (users) can log in
to the application.

● For the current state of client licenses, see the Statistics tab in the Overview section. You can also set
notifications for depleting purchased licenses in Administration.

NOTE For information on how to set the maximum limit tolerance, and how to purchase more B2B / B2C
licenses, contact Quadient support.
5 Digital Services | 245
5.2 Using Digital Services

5.2 Using Digital Services


The Digital Services application has the following main sections:

● Overview

● Applications

● Authentications

● User Management

● Services

● Settings

5.2.1 Overview
Shows basic statistics of all applications, documents, services, licensing and expiring certificates.
5 Digital Services | 246
5.2 Using Digital Services

Overview has the following tabs:

● Statistics

● Service Monitoring

● Expiring Certificates
5 Digital Services | 247
5.2 Using Digital Services

Statistics

Applications and Licenses

B2B / B2C Clients Number of used B2B / B2C client licenses.

Applications Number of B2B / B2C applications.

Active Clients and License Limits Line chart with the number of total purchased B2B / B2C client licenses,
maximum limit tolerance (20% above purchased licenses by default), and active clients per month. Data
displayed can differ from the actual value by 5%.

WARNING If license limits are exceeded, users registered prior to exceeding the license limits can
still log in, but new users are unable to log in to the application.

NOTE License limits and the maximum tolerance are set by the Cloud administrator. For more in-
formation on how to purchase more B2B / B2C licenses, contact Quadient support.
5 Digital Services | 248
5.2 Using Digital Services

Transaction Statistics

Notifications Number of sent notifications.

Dynamic Documents Number of sent / opened dynamic documents.

Document Conversions Number of finished / opened dynamic documents.

TIP Select a date period (From and To) to filter specific data.

Service Monitoring
Shows details about the latest communication events between the client (mobile application or web browser)
and Digital Services, and between enterprise (on-premise server) and Digital Services. You can check this list to
make sure all services work properly, additionally, see the issues and errors depending on the used services.

IMPORTANT Only the first 500 errors of the day are kept on the list.

The tab is divided into columns:

Type Type of the event:

Client communication Data submitted by the client.

Enterprise communication Data returned by the enterprise server.

Error / Enterprise Error Data communication submitted by the client failed / response to the
data communication by the enterprise server failed (e.g. concurrent col-
lision, duplicate nodeId, nodes reached maximum amount of processing
attempts, or the request was unauthorized).

Channel Type Type of the channel:

Digital Services

Messenger

Omnichannel Coordination

Service Name Service name for better distinction.


5 Digital Services | 249
5.2 Using Digital Services

Service ID Unique identifier of the service that tracked the event.

Time Date and time the event was logged.

NOTE All the communications use the API services.

Event Details
To see more details, click the related icon.

Detail Brief description of the event, e.g. Given service does not exist.

Source IP address of the source (client / enterprise).

Instance ID Internal Quadient Cloud server ID (information relevant for e.g. Quadient Support).

Expiring Certificates
Shows details about expiring notification and sign certificates within created applications. If there are no expiring
/ expired certificates, this tab is empty.

The tab is divided into columns:

Certificate Certificate type:

iOS notifications certificate – Used for sending push notifications to iOS mobile devices.

iOS / Android sign certificate – Used for building iOS / Android applications.

Application Application in which the certificate is used.

Build Build in which the certificate is used.

Status Expiration state:


5 Digital Services | 250
5.2 Using Digital Services

Expiring soon Certificate close to expiring. Certificates become Expiring soon 1 month before they
expire.

Expired Certificate past its expiration date.

CAUTION You cannot build applications or send notifications if your certificates are expired.

Expiration Date Date the certificate expires / expired.

Click a certificate to open the Application's Basic Settings / Builds configuration.

NOTE This tab can be highlighted in different colors:

Orange An expiring certificate.

Red An expired certificate.

5.2.2 Applications
Applications in Digital Services serve as the backend for developed mobile or web applications (used on clients'
devices). Developed applications are based on the Digital Advantage SDK or designed via Inspire Designer's
Dynamic Communications . They can be built directly inside Digital Services using the build configuration tool
or with your own developer tools.

Applications can be sorted and viewed in the Table View or the Grid View. Click the Switch Display Type icon
(in the top-right corner of this section) and from the drop-down menu click Grid View or Table View to
switch between the views. Additionally, you can view or hide soft deleted applications by clicking Show Deleted
Applications or Hide Deleted Applications.

Managing Applications
Available actions in the action bar and in context menu change based on the selected items and their settings:

New Creates New Applications, or Imports Application via an exported application package.

Refresh Refreshes the application info, e.g. the State.

Edit Edits all application settings.


5 Digital Services | 251
5.2 Using Digital Services

Content Manages content, i.e. uploads, edits, and deletes documents.

Resources and Templates Manages Application Templates, Email Templates, and Image
Resources.

Builds Opens the build configuration tool.

Reports Views Reports and Statistics for documents and notifications, and Error Reporting for
statistics and management of errors in the application.

Export Exports an application package containing application settings.

Lock Deletion Prevents the application from being deleted. A locked application is still editable and fully
functional.

WARNING A locked application can only be unlocked by Quadient Support.

Delete Deletes the selected application (soft or permanent deletion).

Deleted applications can later be restored (while an application is soft deleted, it is not functional, e.g. it
cannot receive notifications, users cannot login, etc.). To permanently delete the application, check PER-
MANENTLY DELETE.

Restore Restores the soft deleted application to its working state.

View Views the configuration of the soft deleted application in a read-only mode.

NOTE Depending on the size of the screen and the number of actions listed in the action bar, you can
click More Actions to access additional actions.

The Table view is divided into columns:

Lock If the application is locked, the Lock icon is displayed.

Application Name Name of the application. It does not have to be unique.

Documents Number of documents and application templates stored in the application.

Identity Provider General information about authentication services used for clients' authentication.

State Application state:

Ready Ready to send documents and notifications, identity provider correctly


configured.

Non-optimal configura- Application functionality is limited, or it may not function correctly under
tion specific circumstances (e.g. sending notifications is not set properly, clients
will not receive notifications.)

Faulty configuration Application contains errors.


5 Digital Services | 252
5.2 Using Digital Services

To ensure the application is functional, errors must be resolved (e.g. Authen-


tication is not configured properly, clients might not sign into web / mobile
applications.)

Checking State State is being checked. This occurs when loading or refreshing the page.

Deleted Application is soft deleted (it is currently non-functional). It can be viewed


in read-only mode, restored or permanently deleted.

Created Date and time the application was created.

TIP In the Grid view , the items can be sorted using the same criteria as the columns.

Application Details
To see more details, click the related icon.
5 Digital Services | 253
5.2 Using Digital Services

1 Application Settings

Application ID Automatically generated unique identifier used for further integration with the application in
Digital Advantage SDK.

Authentication Client ID Unique identifier which is necessary to log in to the application using an identity provider.
It is automatically generated for built applications.

Description Description used for passing information to other users.

Registered devices Number of registered clients' devices to receive documents and notifications.

2 Status

Shows the status of each step in the application configuration.

3 Providers

Name Name specified when adding the provider, and the provider type, e.g. (Inspire Authentication).

State Provider state:

Ready

Identity Provider Incorrectly Configured

4 Content

Number of documents Number of documents saved.

Number of saved states Number of document states clients saved.


5 Digital Services | 254
5.2 Using Digital Services

5 Certificate Expiration

iOS Notifications Date and time the certificate for sending notifications to iOS devices expires.

iOS Date the signing certificate for building iOS applications expires.

Android Date the signing certificate for building Android applications expires.

NOTE The color highlighting works the same as for the Overview section.

TIP In the Grid view , select the relevant application thumbnail and click Display detailed information
about the application to view this information.

5.2.2.1 Creating Applications


To create an application:

1. Click New in Digital Services | Applications.

2. Select New Application.

The New Application window opens.


5 Digital Services | 255
5.2 Using Digital Services

3. Click the navigation sidebar to navigate through the different sets of options which you can configure:

● Basic Settings

● Authentication

● Notifications

● Metadata

● Build Configurations

● Custom Deep Links

● Store Listing

● Events Monitoring

The status of each configuration set is indicated


by icons:

Contains no errors and is saved.

Requires your attention (e.g. authentica-


tion provider cannot be verified).

Contains errors (e.g. expired certificates).

Does not require any further action


(configuration is disabled).

4. Use the ON / OFF switch to enable / disable options within each section, configure the options and
SAVE to confirm.

Basic Settings
Specify the basic global settings of your application:
5 Digital Services | 256
5.2 Using Digital Services

1 General Settings

Application name Name under which the application will be listed. It doesn't have to be unique.

Application ID Unique identifier automatically generated for every application.

Application icon Application icon displayed on the home screen of mobile devices (it is also used as a thumbnail
of the application in the Grid view of the Applications section).

Select a previously uploaded icon or click UPLOAD ICON to upload an icon via the resource manager
which generates it in all required resolutions. Minimum image resolution and required aspect ratio for the
application icon are 1024 x 1024px / 1:1. The supported image formats include: JPEG, PNG, GIF, and BMP.

TIP You can fully manage icons and other images in the Image Resources section.

Application description Description used for passing information to other users.


5 Digital Services | 257
5.2 Using Digital Services

Type Application type based on the business (company vs. customer) purpose:

B2B – For your customers, i.e. clients of your customer use the mobile application on their devices (business
to business).

B2C – For your company use, i.e. clients of your company use the mobile application on their devices
(business to customer).

Public If Allow document sharing is checked, clients can share the URL address of the Dynamic Communications
and anyone can open it. Otherwise it cannot be opened through a URL link.

NOTE The ContentPublishDocument API request is not functional if the option is disabled.

2 Data Collection

Error reporting If enabled, application errors are collected and can be examined in the Error Reporting section.
If disabled, incoming logs are not saved and no error data is returned when requested via API services.

3 Application Debug Settings

Activate debug mode If enabled, the debug mode serves as a troubleshooting tool for your application. If there
is an issue you wish to investigate, enable the option so the application creates additional and more detailed
logs of its activity. This information can be accessed via the Debug URL address which you can generate
by clicking GENERATE NEW URL (you can then click COPY TO CLIPBOARD). The URL address only works
if Activate debug mode is enabled and has not expired (the Expiration date value is set to 24 hours after
the URL is generated).

TIP If you wish to access the debug information without connecting to Quadient Cloud, enable it in
the specific builds' properties.

4 Additional Settings

Custom domain Defines the form of URL links which the application will use throughout Digital Advantage
Suite, e.g. deep links, web application links, etc. To configure custom domains, contact Quadient support.

Authentication
Authentication is the process of confirming the identity of the application users. If an application has user-specific
data, authentication is used for security: users must provide valid credentials to be verified and to access their
information.

Configure and save the authentication of the end-clients for the current application:
5 Digital Services | 258
5.2 Using Digital Services

1 Global Properties
These parameters are used to integrate with other Inspire components and Quadient Cloud applications:

Authentication Client ID Unique identifier used in all standard or extended OpenID connect endpoints in Digital
Service. This ID is generated automatically and then used for all added identity providers.
5 Digital Services | 259
5.2 Using Digital Services

2 Login Properties

Permanent login If enabled, users won't be logged out after a certain time period (the default value or the value
set in Custom setup).

NOTE If this option is disabled, the permanent login will not be functional even if the client application
settings request to enable it.

Custom setup If enabled, sets a custom login Expiration (absolute refresh token lifetime).

If disabled, the default value of 30 days will be used (this value is dynamic and may change in the future).

Expiration Number of days after which the user will be logged out.

3 User Management

User store specification User stores use Inspire Authentication or LDAP. Alternatively, users can be managed
through other identity providers without being stored directly in Quadient Cloud.

User store Sets Quadient Cloud user stores that contain user information.

IMPORTANT Firstly, you need to create a user store in User Management.

Inspire Authentication If enabled, it is possible to log in to the applications via public Inspire APIs using the
username and password specified in the user store.

If disabled, the service provider is not listed in public APIs and it is not possible to log in to the application.
In this case, the user store is only used to list and manage clients and login is done through other providers.

Limited access If enabled, specifies which user groups can access the application.

IMPORTANT Firstly, you need to create a group in User Management.

Show the user list publicly If enabled, the application user can view a list of all users, e.g. in order to share
documents with them).

4 Identity Providers
The end client service validates the user authentication of the applications built with Digital Advantage SDK
against the third party identity providers. To add an identity provider, click ADD IDENTITY PROVIDER.
5 Digital Services | 260
5.2 Using Digital Services

Default parameters
Each identity provider has default parameters which are generated automatically for every application. These
parameters are mainly used to integrate with other Inspire and Quadient Cloud components.

Provider type Type of the identity provider.

Callback Callback URI that must be registered in the external identity provider's configuration as the "Authorized
redirect URI". Otherwise, the application won't be authorized.

Sign out callback Sign out callback URI that must be registered in the external identity provider's configuration
as the "Authorized redirect URI". Otherwise, the application won't be authorized.

URIs

Redirect URIs Redirect user to the specified path in your application after they have logged in or signed out via
this external identity provider. The URIs are subject to the OpenID Connect standard and their format is
scheme://host, e.g. openid://demo.

The server may append the path with some authorization parameters:

code – Authorization code that the application requested. The application can use it to request an access
token from the token endpoint.

scope – Space separated list of the requested scope values. They represent the access the client will have,
e.g. profile scope represents access to the end-user's basic personal information, like his full name. The
parameter must include at least the openid value.

state – Action being taken (login or logout).

session_state – A unique value that identifies the current user session.


5 Digital Services | 261
5.2 Using Digital Services

EXAMPLE Here is an example with line breaks for readability:


openid://demo?
code=AcBy6Phc4nvGDm9wZW5pZDovL2RlbW8tZy9jeGVZZ2JDNVRlN2JnV1NRvLmpwZwNjc6vH8A6&
scope=openid%20email%20profile%20roles%20dcb%20offline_access&
state=login&
session_state=4HOFDxMUs7btrHBwusp7T-vVRdC32UtNuJyqjjmz1iU.03add3f651036a30b291f

JavaScript Origin URIs Used with requests from a browser. It needs to be specified when hosting your web
client applications from other than Quadient Cloud, where the same-origin policy applies automatically.
If you're using a non-standard port, you must include it in the origin URI. The format is scheme://host:port,
e.g. htpps://quadientcloud.eu:123. You can get it by e.g. opening the template in a browser and entering
location.origin into the console, this will return the JavaScript Origin value.

IMPORTANT You need to configure an identity provider in Authentication first.

Combining Identity Providers


You can use two or more identity providers so that clients can sign into applications with multiple accounts. To
add an additional provider, click the button.

For ease of management of multiple providers of the same type, you can rename them.

NOTE Combining identity providers has some restrictions. You cannot use:

● More than one Google, Facebook or Salesforce provider.

● LDAP with any other providers.

● Active Directory with any other providers.

● Simple Authentication with any other providers.

Notifications
If you want to configure platform-specific options for sending push notifications to your web / mobile applications,
enable Activate build options. Notifications configuration is optional and therefore is disabled by default.

TIP Further notifications options are configured in the build configuration tool.

Specify, verify and save the notifications settings:


5 Digital Services | 262
5.2 Using Digital Services

Platform Settings

1 Android Notifications

Connection details for communication between Digital Services and push notification servers of any Android
service.

Once the notifications are configured, a POST request notification is sent to a push notification server whenever
there is a notification from the enterprise system. Subsequently, the push notification server sends the notification
to your client's mobile devices.

Server key Server API key string identifying your Android application in Firebase Cloud Messaging . This key
is provided by Google when registering your application.
5 Digital Services | 263
5.2 Using Digital Services

2 iOS Notifications

Connection details for communication between Digital Services and push notification servers of any Apple service.

Activate options If enabled, configures iOS notifications.

Purpose Specifies whether the notifications will be used in Developer (testing purposes) or Production mode.

iOS certificate Authenticates your Apple application. This APNs (Apple Push Notification service) certificate is
generated in the Member Centre of the Apple Developer portal. It is in the P12 format.

Click the icon to upload it.

NOTE For more information, read the How to Create an iOS APNs Certificate instructions. Note
that it is also necessary to enable Associated Domains in Apple administration (App IDs | Particular
Application properties).

Apple PNS password The certificate's password obtained from the Apple Developer portal.

3 Web Notifications

Enables communication between Digital Services and notification servers of any web service.

Additional Settings

4 Data Storing

Quadient Cloud can store detailed data about push notifications sent to the clients.

Data storing If checked, the data are stored and can be downloaded from the Notification Statistics section.
5 Digital Services | 264
5.2 Using Digital Services

5 Subscription Expiration

Subscription to notifications can have a custom expiration period. If client does not extend their notification sub-
scription before this time (by using the application or via API services), no more notifications will be sent to them.

Subscription Expiration If enabled, set an expiration period for notifications. Note that in some cases the expir-
ation may occur a day later than the specified value.

If disabled, the default value of 5 days will be used (this value is dynamic and may change in the future).

Expiration Sets the number of days, after which subscription to notifications will expire.

TIP Each time the user logs into the application, the subscription is extended.

Metadata
Metadata offer additional information which mobile applications can use as a filter for displaying content or any
other processing (e.g. metadata of the File type can be used when assigning icons to content). This metadata
template with placeholders will be available when you create new documents.

To add a metadata template, click ADD METADATA. Define and save the Metadata Template for Application
Content:

Name Names the item. The name must be unique across all metadata types.

Type Selects an item type: Text, Number, File, Date.

Build Configurations
If you want to build the application using the Digital Services's GUI, enable Activate build options. Build config-
urations are optional and therefore disabled by default.

Specify and save the options:


5 Digital Services | 265
5.2 Using Digital Services

1 Platforms

iOS If enabled, the application can be built for the iOS platform.

Sign certificate Uploads a valid, signed certificate for iOS by clicking the icon (certificates are generated in
the Member Centre of the Apple Developer portal). Optionally, delete the certificate by clicking the
icon.

Password Enter the password of the uploaded certificate.

Android If enabled, the application can be built for the Android platform.

Sign certificate Upload a valid, signed certificate for Android by clicking the icon (any self-signed certi-
ficate with arbitrary expiration date can be used).
5 Digital Services | 266
5.2 Using Digital Services

Optionally, delete the certificate by clicking on the icon.

NOTE For more information on how to create a self-signed certificate, read the How do I Create a
Self-Signed Certificate for an Android App instructions.

Password Enter the password of the uploaded certificate.

Web If enabled, the application will be available as a web interface.

TIP You can upload signed certificates later via the build configuration tool. You can easily access the
tool by clicking MANAGE BUILDS.

2 Appearance

Splashscreen image Selects an image that will be displayed on the screen when you open the application.

Upload it by clicking UPLOAD SPLASHSCREEN.

Splashscreen color Splashscreen main color in the hex code.

TIP You can upload these resources later via the resource manager and edit the application appearance
via the build configuration tool.

Custom Deep Links


If you want to build custom applications using Digital Advantage SDK and your own developer tools (and not
the Quadient Cloud build tools), enable Activate custom deep links. Custom deep links configuration is optional
and therefore is disabled by default.

Specify and save the platform options to use your own deep links for authentication or document states:
5 Digital Services | 267
5.2 Using Digital Services

Platform Settings

1 iOS

Apple Team ID Identifier for signing your custom built applications. It allows Quadient Cloud to recognize them.
You can get it from your Apple Developer portal account.

Bundle ID Unique identifier used for the build number in application stores. The value allows Quadient Cloud
to recognize and connect to your custom application. It must be in reverse domain name notation format:
com.company.app. You can get it from e.g. App Store Connect .

2 Android

App links hash certificate SHA-256 fingerprint certificate which is used for support of Android App Links .

If you enter a fingerprint of a certificate you signed your custom application with, clicking a deep link in the
device directly opens the application without the user having to select it in the disambiguation dialog (if the
application is installed on the user's device, users who don't have your application installed are redirected
to your website).
5 Digital Services | 268
5.2 Using Digital Services

You can get it from the Google Play Console (select an application and go to Release management | App
signing and copy the SHA-256 fingerprint of your signing certificate).

SHA-256 fingerprint consists of 32 hex couples separated by colon, e.g.:

F3:6F:98:51:9A:DF:C3:15:4E:48:4B:0F:91:E3:3C:6A:A0:97:DC:0A:3F:B2:D2:E1:FE:23:57:F5:EB:AC:13:30

Bundle ID Unique identifier used for the build number in application stores (it is also referred to as Package
name or Application ID). The value allows Quadient Cloud to recognize and connect to your custom application.
It must be in reverse domain name notation format: com.company.app. You can get it from the Android Studio.

NOTE For more information, read the Create a project and Set the application ID instructions.

3 Web

Web redirect URL URL address redirecting to the root application hosted on your server. You can redirect to
this URL address instead of addresses generated by Quadient Cloud.

Store Listing
Store listing settings can configure application's listing for multiple application stores (e.g. App Store, Appaloosa,
and Google Play) at a time, i.e. their descriptions, data and screenshots.

IMPORTANT You must first create the store listings in your chosen application stores.

Specify and save the store listing settings:


5 Digital Services | 269
5.2 Using Digital Services

1 Basic Global Parameters

Title Name of the application displayed in the store listing.

Language Language definition used for the App Store and Google Play (the Appaloosa store does not require
a strict language definition). Select Other to define a Custom language by using code in the BCP 47 format
(e.g. fr-FR for French).

NOTE Quadient Cloud store listing configuration allows only one language per store listing.

Bundle ID Unique ID used for publishing in app stores.

Listing icon Application icon displayed in the store listing.

Full description Description of the application displayed in the store listing.

2 Screenshot Packages
Screenshot packages are bundles of images (of the different screens seen in the application) which cover all of
the required resolutions for given platforms (see also the Managing Image Resources section). They will be dis-
played in the store listing.
5 Digital Services | 270
5.2 Using Digital Services

To insert a screenshot package:

1. Click INSERT PACKAGE.


5 Digital Services | 271
5.2 Using Digital Services

The Insert Screenshot Package dialog opens.

2.

Select one or all of the packages. The listed packages are those which you previously prepared in the
Screenshots section.

3. Click INSERT.

The screenshot packages are added to the store listing configuration. You can drag and drop the packages
to change their order, or you can edit and remove them by left-clicking or right-clicking and using the
context menu.

IMPORTANT You can insert a maximum of 10 screenshot packages.


5 Digital Services | 272
5.2 Using Digital Services

App Store requires at least 1 screenshot package and Google Play store requires at least 2. Each store
also has a maximum: Appaloosa allows 5 packages; App Store 10; and Google Play 8.

TIP In case you have not created any screenshot packages yet (or the package is in a Not ready state),
you can easily access the Screenshots section by clicking SCREENSHOTS SETTINGS or MANAGE
SCREENSHOTS.

3 Application Stores Settings


Here you can configure store listing details of application stores you have previously set up in the Deployment
section, and upload this data to application stores, e.g. Google Play.

NOTE You must have at least one deployment store configured. You can easily access the Deployment
section by clicking DEPLOYMENT SETTINGS.
5 Digital Services | 273
5.2 Using Digital Services

To add an application store configuration, click ADD NEW STORE and specify the details of the particular
store:

Google Play

Feature graphic An image in the jpg or png (24-bit - without alpha) format with 1024 x 500px resolution. It is
the main image displayed when the user opens your application's store listing.

Short description Short description of the application. The maximum length is 80 characters.

Contact email Public support email for the application.

Contact phone Public support phone number for the application.

Contact website Public website for the application.

Status

Created The store listing was created.

Queued The store listing was placed in queue for upload of data to the ap-
plication store.

In Progress The store listing data are being currently uploaded.

Successful The store listing data were successfully uploaded.

Canceled The store listing data upload was aborted by the user.

Error (click for more informa- The store listing data upload failed. You can click the error message
tion) to view more details about the failed upload.
5 Digital Services | 274
5.2 Using Digital Services

App Store

Vendor ID Unique identifier of the application separating it from other applications given by the provider, it is
used for tracking assets and reporting.

The Vendor ID can only contain alphanumeric characters and underscores. It is case-sensitive and must not
start with an underscore. If it is numeric, it is treated as a string (e.g. a vendor identifier with the value
00000000012345 is different from 12345). The Vendor ID must be minimally 2 characters long, but its overall
size cannot be more than 100 bytes.

NOTE The Vendor ID is the application’s SKU in App Store Connect .

Version Version of the application set in App Store Connect .

Promotional text Promotional text of the application in the specified language. It is used to inform App Store
users of any current application features without requiring an updated submission. The text appears above
the description on the App Store for users with devices running iOS 11 or later. The maximum length is 170
characters.

What's new List of updates to your app, it is used to communicate changes to users. This text appears on your
product page and on the Updates tab. You must use this field when adding a new locale to a revised app;
it is optional when updating a locale of a revised app. The text must be minimally 4 characters and maximally
4000 characters long.

Keywords One or more keywords that describe the application and make it more effectively searchable on the
App Store. You can supply a single keyword or a phrase, or multiple keywords separated by commas. The
maximum number of characters for all keywords (including commas) is 100 characters. Keywords are required
for initial listing of the application.
5 Digital Services | 275
5.2 Using Digital Services

IMPORTANT Make sure the keywords do not violate the rights or trademarks of any third parties.
Keywords must be related to the application content and cannot contain offensive or trademarked
terms, other app names, or company names.

Marketing URL Website where users can get more information about the application. The URL address must
be minimally 2 characters long, but its overall size cannot be more than 255 bytes.

Privacy Policy URL URL address linking to your privacy policy. A privacy policy URL is required for all applications
(the field is optional for updates of the application after initial listing).

Support URL URL address linking to the support website. The support URL must lead to actual contact inform-
ation so that your users can contact you regarding application issues, general feedback, and feature enhance-
ment requests. The URL must be minimally 2 characters, but its overall size cannot be more than 255 bytes
(the field is optional for updates of the application after initial listing).

Status App Store store listing status is identical to the Google Play store.

Appaloosa
Appaloosa store listing is separated into tabs according to the platform (Android and iOS).

Catchphrase A short description of the application. It cannot be longer than 255 characters.

Status Appaloosa store listing status is identical to the Google Play store.

Uploading listing data to application stores


If you want to upload your data to a store listing, click UPLOAD DATA TO STORE LISTING in a particular applic-
ation store's tab (once your listing is updated, you must manually release the updated version in each application
store's website).

IMPORTANT Uploading data to an Appaloosa store listing requires the application to have been deployed
to Appaloosa store at least once with the same Bundle ID. When uploading data to an App Store store
listing, you will be prompted to enter your Apple ID password.

The data upload can take a different amount of time depending on the application store (Google Play and
Appaloosa stores can take up to 5 minutes, the App Store can take up to 1 hour).

NOTE Global store listing settings and screenshot packages cannot be modified while data is being
uploaded to one of the stores (it is however possible to edit individual store tabs).
5 Digital Services | 276
5.2 Using Digital Services

Store tabs are also highlighted in different colors depending on their status.

Events Monitoring
Enable Activate events monitoring, specify and save the Monitoring options to track users' logging in to applic-
ations, notifications subscription / delivery and collect information about saved states of dynamic communications
documents. Events monitoring is optional and therefore disabled by default.
5 Digital Services | 277
5.2 Using Digital Services

You can track events with one service (All events tracked by), or enable Advanced monitoring and split tracked
events between different services:

Advanced monitoring Use the ON / OFF switch to enable advanced monitoring options.

User login monitoring Tracks information about clients' login to the applications (an event gets logged for
every login and token refresh).

Notifications subscription Tracks information about subscription to notifications (push notifications sent
from an enterprise system to client mobile device), this includes information about unsubscription and
subscription expiration.

Notifications delivery Tracks information about notification delivery to clients' devices.

Saved states of DC Tracks information about dynamic communications document states.

User metadata changes Tracks information about changes clients have made in user metadata.

Document metadata changes Tracks information about changes clients have made in document metadata.

IMPORTANT To access and track data generated by events monitoring, you must configure data collection
using, e.g. Enterprise API and Inspire Scaler. Without the enterprise solution, the data will be collected
until the event limit is reached and the monitoring will cease.

NOTE Only the User Activity Tracking service can be used for events monitoring (you need to create this
service type in Services first).

5.2.2.2 Importing Applications


In this window you can import an exported application package containing an application's configuration (un-
available for trial mode).

To import an application:

1. Click New and select Import in Digital Services | Applications. The Import Application window
opens.
5 Digital Services | 278
5.2 Using Digital Services

2. Select one of the import options:

● As a new application

● Update existing

Importing a new application

a) Click the icon to select the application package file.

If required, enter the Password defined during the export.

b) Click NEXT. The application settings included in the file display.


5 Digital Services | 279
5.2 Using Digital Services

The section is divided into columns:

Option Names List of application settings, builds, and connected services included in the file. Click
on the option rows to expand them and specify further details.

Included Settings included in the application package file, indicated by the icon.

Select This column is only displayed if the exported Store Listing configuration has a specified de-
ployment store (only the content of the Application Stores Settings tab will be imported, this option
remaps the configuration to available matching deployment stores).

If the option is enabled but you have not selected any specific store, the icon displays in the
column, prompting you to select one.

Import Use the YES / NO switch to disable or enable the specific application settings you want
to import (Basic Settings cannot be disabled).
5 Digital Services | 280
5.2 Using Digital Services

Updating an existing application

a) Select the Application which will be updated with the application package file settings.

b) Click the icon to select the application package file.

If required, enter the Password defined during the export.

c) Click NEXT. The application settings included in the package file display.
5 Digital Services | 281
5.2 Using Digital Services

The section is divided into columns:

Option Names List of application settings, builds and connected services included in the file. Click
on the option rows to expand them and specify further details.

Current Current settings of the application, indicated by the icon.

Update Settings included in the application package file, indicated by the icon.

Select This column is only displayed if the Store Listing configuration has a specified deployment
store (only the content of the Application Stores Settings tab will be imported and remapped to
available matching deployment store).

If the option is enabled but you have not selected any specific store, the icon displays in the
column, prompting you to select one.

Overwrite Use the YES / NO switch to disable or enable the specific application settings you
want to import or overwrite (Basic Settings cannot be disabled).
5 Digital Services | 282
5.2 Using Digital Services

CAUTION Always make sure the package is not of malicious origin before importing it. Check
the details in the expanded Package Info.

You will be notified if the package could not be verified, e.g. package information does not exist or
was deleted from the source instance of Quadient Cloud, or the URL address is in the wrong format.

3. Once you have specified the import options, click IMPORT (or IMPORT ANYWAY in case the package
could not be verified and you are sure it is of a safe origin). The application containing the defined settings
is imported.

5.2.2.3 Managing Content


Here you can manage documents stored in Digital Services' Content Delivery Service. Uploaded documents are
immediately delivered to clients based on the access rights.

WARNING Content that you store can contain code. Make sure no malicious content is stored to prevent
clients from interacting with potentially harmful code.

You can upload documents:

● Directly in Digital Services

● Via Enterprise API services

● Via Inspire Designer / Messenger

Click Content in Digital Services | Applications to see application's content.


5 Digital Services | 283
5.2 Using Digital Services

Managing Content
The available actions in the action bar (and in the context menu) change based on the selected items:

New Creates a new document.

Import Imports a document.

Edit Edits basic settings, visibility and metadata of the document.

Additionally, you can upload an edited document with different data structure.

Export Exports one or multiple selected documents as a package file containing document data.

Send Notification Sends notifications to registered clients to the particular application.

Delete Deletes the document.

CAUTION It also deletes the document from clients' devices.

The section is divided into columns:

Type Document type:

Dynamic Documents

PDF File

General File format (images, text etc.)

Document Name Name of the document.

Document ID Unique identifier of the document.

Size Document size.

Visibility Document visibility rights. Rights can be created for: Group, Client or Public. Additionally, if more than
one visibility right is set, the document is visible in Multiple ways. If no visibility right is set, the document is
Hidden.

Groups / Clients Document visibility to specific groups or clients. Documents that are public are visible to
Everyone, and documents that have no visibility right set are visible to None of the groups or clients.

Document Expiration Date and time the document expires and is deleted from clients' mobile devices and Di-
gital Services.

Last Update Date and time the document info was updated.

IMPORTANT When the window is initially opened, only the latest 1000 documents appear. To access
other documents, use the filter.
5 Digital Services | 284
5.2 Using Digital Services

TIP Clicking a document's name opens the Edit Document dialog.

Document Details
To see more details, click the related icon.

1 Document Info

Document ID Unique identifier used for sending documents via Digital Advantage SDK and Digital Communic-
ations Data module , and referencing in API services.

Description Brief description.

Service Service the document is connected to. This services tracks data communication and collects statistical
data about the document.

Document version Version number increased every time the document is updated (new version uploaded).

Data structure version When you upload (update) a document with a different data structure, the version
number increases by 1, and all Saved States are deleted (they are no longer available for application users).

Saved states Number of saved states for the selected document.

Downloaded count The number of times the document has been downloaded.

Upload type Method by which the document was uploaded: Messenger, GUI, Import or API.

Batch ID Unique identifier of the batch document was uploaded with. Only visible if done via Messenger.

Author Author (uploader) of the document. When you upload a document via API services, define the author
manually.
5 Digital Services | 285
5.2 Using Digital Services

NOTE Importing documents marks the uploader of the document as its author.

2 Document History

Last update Date and time the document was updated.

Uploaded Date and time the document was uploaded.

3 Privacy & Rights

Public / Group / Client Document access rights.

Right Operations clients can do with the content.

4 Metadata

Only visible when you add your custom metadata, e.g. Age.

Creating Documents
To create a new document:

1. Click New in the Content section. The New Document dialog opens.

2. Specify the details:

1 General

Document's basic details.


5 Digital Services | 286
5.2 Using Digital Services

Name Name of the document used for better management. It does not have to be unique.

Document file Selects the document you want to upload into Content Delivery Service. Click the icon
to select the file.

NOTE When uploading a ZIP file generated by Inspire Designer, Quadient Cloud will store
resources in an optimized manner.

Description Document description.

Service Links the document to the service you created in Services. This services then tracks data com-
munication and collects statistical data about the document.

Expiration date Date and time the document expires and is deleted from Digital Services and clients'
devices.

NOTE Importing a document extends its expiration date.

2 Document Visibility

Determines who the document will be visible to. If you do not create any visibility rights, the document
won't be accessible to end-clients.
5 Digital Services | 287
5.2 Using Digital Services

IMPORTANT The application has to be connected to Inspire Authentication or another identity


provider, otherwise the visibility settings are not available (the tab is highlighted in orange) and
documents are Hidden.

To create visibility rights, click ADD RIGHT and specify:

Visibility Specifies who is the content visible to (the document is sent to):

● Public – Everyone.

WARNING The document is immediately sent / visible to all clients when it is uploaded.

● Group – Group identified by the Group ID.

● Client – Client identified by the Client ID.

NOTE If Simple Authentication is used, documents are visible to all clients and their visibility
cannot be changed.

Group / Client When Client or Group is selected in the Visibility, specify the particular group or client.

NOTE When you use other identity provider than LDAP, Active Directory or any other com-
bination with Inspire Authentication, you need to specify the clients manually. E.g.
j.smith@test.com.

Rights Operations the clients can do with the content:

Read – View (if visibility rights are set to Group or Public, only this option is available).

Update – View and modify (clients can alter their metadata).

Delete – View, modify and delete.

NOTE The maximum number of rights set is 200.

TIP You can add additional rights by clicking ADD RIGHT.

3 Metadata

Sets values for metadata placeholders you defined when creating the application.
5 Digital Services | 288
5.2 Using Digital Services

To add a new metadata item, click ADD CUSTOM METADATA and specify:

Name Unique item name.

Type Item type: Text, Number, File, Date.

Value Item value used for filtering.

NOTE When you add a Date item, the maximum uploaded file size is 1MB.

The maximum number of metadata per document is 100.

3. Click CREATE to confirm. The document is uploaded, verified and immediately sent to clients' devices.

NOTE In the trial mode, only one document and one application template can be uploaded.

TIP To optimize resources, upload documents from Inspire Designer using Inspire Messenger. A resource
used by more documents will be then uploaded only once.

For more information on how to upload / send documents, see Digital Advantage Suite Configuration
Guide.

Exporting and Importing Documents


You can export and import documents containing their details and data, e.g. metadata, resources, and connected
services.

NOTE Saved states and Privacy & Rights data are not exported. If required, adjust the Visibility and
Rights manually once the document is imported.

Exporting documents
To export a document:

1. Select one or multiple documents in the Content window. Click Export. The Export Document Package
dialog opens.
5 Digital Services | 289
5.2 Using Digital Services

2. You can use the ON / OFF switch to disable or enable Password protection of the exported document.
If enabled, enter the Password according to the rules displayed.

3. Click EXPORT. The document is exported as a DAS package file.

Importing documents
To import a document:

1. Click Import in the Content section. The Import Document Package dialog opens.

2. Click the icon to select the exported document file.

If required, use the ON / OFF switch to disable or enable Password protection and enter the Password.
5 Digital Services | 290
5.2 Using Digital Services

3. Click VALIDATE. The Package Info is displayed.

CAUTION Always make sure the package is not of malicious origin before importing it.

You will be notified if the package could not be verified, e.g. package information does not exist or
was deleted from the source instance of Quadient Cloud, or the URL address is in the wrong format.

4. Click IMPORT. One or multiple documents with their data are imported (depending on whether the package
file was exported with multiple selected documents).

NOTE Importing a document marks the uploader of the document as its Author and extends the Expiration
date of the document and its resources.

Editing Document Data Structure


When you upload a new document version that has different data structures, e.g. it contains different form values,
you can delete all the saved states of that document. This prevents clients from opening a document with an in-
correct saved states data structure, e.g. saved values are under the wrong fields.

To edit the document data structure:

1. Select a document and click Edit in the Content section. The Edit Document dialog opens.
5 Digital Services | 291
5.2 Using Digital Services

2. Click the icon on the General tab to delete the previous version.

3. Click the icon to upload the new version.

4. Check Document data structure has been changed.

5. Click OK to confirm.

The new document version with a different (updated) data structure is uploaded. You can check the new
Data structure version number.

WARNING This action deletes all saved states for this document.

Sending Notifications
You can send notifications to clients or groups of clients for each of your Dynamic Communications or PDFs
separately. The notification contains a title and message you want to send to the client (e.g. the administrator
changed metadata or a document's content). Clients receive them on their mobile devices or desktops when they
have the application opened in the web browser.

Notifications sent via Digital Services GUI automatically include data for opening particular documents.

TIP To send notifications for more documents at once, use Inspire Messenger and Inspire Designer. For
more information, see Digital Advantage Suite Configuration Guide.
5 Digital Services | 292
5.2 Using Digital Services

To send a notification:

1. Select the document for which you want to send a notification.

2. Click Send Notification in the Content section. The Send Document Notification dialog opens.

3. Specify the following:

Title Title of the notification the clients see on their devices.

Message Message text clients see on their devices.

Notification icon Icon clients see on their devices. Select an icon uploaded in the resource manager. This
option is visible only when you have at least one notification icon uploaded.

Advanced settings If Enable silent notifications is checked (checked by default), the notification is sent
but displayed on the client's device after the document has been downloaded in the background. So
that the document is opened instantly.

4. Click OK to confirm. The notifications are sent to clients / groups depending on the document access rights.

Filtering Documents
You can filter documents by clicking SHOW FILTER in the top-right corner.
5 Digital Services | 293
5.2 Using Digital Services

You can search by using various criteria:

Update from / Update to Time range in which you want to filter documents.

Document visible to Specific group to which the document is visible to.

Client Documents for a particular client.

Author Author (uploader) of the document.

Document Name Name of the document.

Document type Type of the document.

Document ID Unique identifier of the document.

Specifying Custom Criteria


Based on the prepared metadata template placeholders when creating an application (if you don't define any,
this option is not available). You can filter in detail by adding custom criteria:

1. Click ADD CUSTOM DEFINED SEARCH CRITERIA.

2. Select the item you wish to define, e.g.:

3. Define the value:

To remove an item, click its icon.

4. Click SEARCH to list all the documents that match the defined criteria.

WARNING The search can be very time-consuming, in some cases it can take several minutes.
5 Digital Services | 294
5.2 Using Digital Services

5.2.2.4 Managing Application Templates


In this section

Creating Application Templates


Exporting and Importing Application
Templates
Managing Application Template
Versions
Publishing Application Templates
Filtering Application Templates

Here you can manage application templates, i.e. Dynamic Communications documents used for the layout,
look, and functionality of applications. By using application templates, you can edit the look of the application
without updating it through application stores.

You can upload / import application templates:

● Directly in Digital Services

● Via Enterprise API services

● Via Messenger

You can also preview what application templates will look like on mobile devices via the DX Preview application
which is available on Google Play and Apple App Store (you can preview application templates that are
connected to application builds).

Click Resources and Templates and select Application Templates in Digital Services | Applications to
see the application's templates.

Managing Application Templates


The available actions in the action bar (and in the context menu) change based on the selected items:

New Creates a new application template.

Import Imports an application template (functions identically to importing documents).

Edit Edits basic settings and metadata of the template. Additionally, you can upload an edited template
with a different data structure (functions identically to document data structure editing).
5 Digital Services | 295
5.2 Using Digital Services

Versions Manages versions of an application template.

Export Exports one or multiple selected templates as a package file containing template data. Functions
identically to exporting documents, except that only the Published version of the template will be included
in the package (if there is no such version, the latest Draft version will be exported).

Publish Publishes the application template (switches it to the In Production state).

Delete Deletes the template.

The window is divided into columns:

Template Name Application template name specified during its upload.

Used Version Template version number that is currently In Production state and was or is used in the build.

Latest Version Number noting the latest uploaded version of the template.

Used in Builds Number of builds the template is used in.

Publish StateTemplate state: Draft (the template is not viewable by clients and is used e.g. for testing purposes)
or In Production (viewable by clients on their devices).

Last Update Date and time the template was last updated.

TIP It is also possible to filter templates.

Application Template Details


To see more details, click the related icon.

1 Template Info

Template ID Unique identifier used for sending templates via Digital Advantage SDK and the Digital Commu-
nications Data module, and referencing in API services.

Description Brief description of the template.

Service Service the template is connected to.


5 Digital Services | 296
5.2 Using Digital Services

Template version Version number increased every time a new version of the template is uploaded.

Data structure version When you update the template with a different data structure, the version number in-
creases by 1 (functions identically to documents).

Last user activity Last time the application template was checked for updates; indicates whether the application
template is being actively used.

Upload type Method by which the document was uploaded: Messenger, GUI, Import or API.

Batch ID Unique identifier of the batch document was uploaded with. Only visible if done via Messenger.

Author Author (uploader) of the template. When you upload a template via API services, define the author
manually.

NOTE Importing templates marks the uploader of the template as its author.

2 Template History

Last update Date and time the template was last edited, e.g. the Description was changed.

Version update Date and time the version number of the template was increased.

Uploaded Date and time the template was initially uploaded.

3 Builds

A table displaying details about the build the template is connected to. Click the specific build to view its details
and manage it in the Builds section.

Creating Application Templates


To create a new application template:

1. Click New in the Application Templates section. The New Application Template dialog opens.
5 Digital Services | 297
5.2 Using Digital Services

2. Specify the details:

Name Name of the template used for better management.

Template file Selects the application template you want to upload and use in applications. Click the
icon to select the file.

NOTE When uploading a ZIP file generated by Inspire Designer, Quadient Cloud will optimize
the storage of resources.

Description Application template description.

Service Links the template to the service you created in Services. This services then tracks data commu-
nication and collects statistical data about the template.

NOTE Unlike for documents, the Document Visibility and Metadata tabs are not available when
creating application templates, because templates are not sent to the clients as content documents.

3. Click CREATE to confirm. The application template is uploaded.

NOTE In the trial mode, only one document and one application template can be uploaded.

TIP To optimize resources, upload application templates from Inspire Designer via Inspire Messenger (a
resource used by more templates will be then uploaded only once).

For more information on how to upload application templates, see Digital Advantage Suite Configuration
Guide.
5 Digital Services | 298
5.2 Using Digital Services

Managing Application Template Versions


When you update a previously uploaded application template, a new version is created. The versions can be
kept, edited, or re-published when needed. A maximum of 100 versions of the template can be stored. Once this
number is exceeded, the oldest unpublished versions will begin to be deleted.

To open the version manager, select a template and click Versions.

Managing Application Template Versions


Available actions in both the action bar and in the context menu change based on the state of the version:

View Properties Displays details about the template, such as its author, attached comments, and update
history.

Publish Publishes the selected version of the application template (switches the state to In Production,
thus making it viewable on clients' devices).

Save Draft Archives the selected draft, preventing it from being overwritten by a new upload.

Edit Comments Edits comments attached to the version. Comments can be written when saving the draft
and edited for the following version states: Saved Draft, Published, and Previously Published.

Delete Deletes the template version. The latest version and the currently Published template cannot be deleted.

The Version window is divided into columns:

Version Version number which increases every time a new version of the template is uploaded.

State Application template version state:

Draft Unsaved draft. If you upload another version of the template without saving,
it will be overwritten.

Saved Draft Archived draft that won't be overwritten if a new version is uploaded.
5 Digital Services | 299
5.2 Using Digital Services

Published Template is currently in production (viewable by client). It cannot be deleted.

Previously Published Template that is no longer in production.

Changed By Name of the account which made changes to the template.

Last Change Date and time of the last template change.

Publishing Application Templates


When you publish a new version of an application template, clients will see the updated look when they relaunch
the application.

To publish an application template, click Publish in the Application Templates section. The Publish Application
Template dialog opens. Select the particular version of the template, check the confirmation message, and click
PUBLISH to confirm.

WARNING The changes will be visible on clients' devices as soon as you publish the application template.

Filtering Application Templates


Click SHOW FILTER in the top-right corner to filter templates.
5 Digital Services | 300
5.2 Using Digital Services

Specify the criteria:

Update from / Update to Time range in which you want to filter templates.

Author Author (uploader) of the template.

Template Name Name of the template.

Template ID Unique identifier of the template.

5.2.2.5 Managing Email Templates


You can personalize emails prompting clients to perform an action. You can send emails when the clients save
unfinished Dynamic Communications documents and share them as links to their email addresses, so they can
finish them later. Emails are also used with Inspire Authentication when you send activation emails, password-
reset emails, and emails when clients self-register their account in the mobile / web application.

NOTE If you don't customize your templates, emails are sent with the default template.
5 Digital Services | 301
5.2 Using Digital Services

Click Resources and Templates and select Email Templates in Digital Services | Applications to see
email templates.

Templates
Here you can manage the custom email templates. Every language can have only one customized template type.

Managing Templates
You can perform the following actions:

New Adds a new template.

Edit Opens the template editor.

Clone Creates a new template identical to the selected template, so it is not necessary to format a new
language version of the custom email from the beginning (templates of the same type cannot share the
same language ).

Properties Edits the basic properties of the template.

Send Email Preview Sends an email template preview.

Delete Deletes the selected template.

This section is divided into columns:

Template Name Name chosen during template creation.

Language Language selected during template creation.

Type Purpose of the email.

Layout Name Name of the uploaded CSHTM file.


5 Digital Services | 302
5.2 Using Digital Services

Adding New Templates


To add a new template:

1. Click New in the Templates section. The Add Email Template dialog opens.

2. Specify the following:

Name Name for better management.

Template type Email type (purpose).


This email template is available to send to all clients by default:

● Send DC State – Email with a link to an unfinished dynamic communication document.


These email templates are used for sending emails only to clients registered with Inspire Authentication:

● Account Activation – Activation link (activation code) when clients need to activate their account.

● Reset Password – Password-reset link (password-reset code) when clients want to reset their
password.

● After User Self Registered – Activation link (activation code) when clients registered their account
in the mobile / web application.

Email layout Uploaded CSHTM layout. If you do not specify a layout, your template will be designed by
using the template editor.

Language Language of the template: Deutsch, English (US), English (UK), Español, Italiano, or Français.
When you select Other, specify the language manually. For example, de-CH for Swiss German.

NOTE If you don't have the English template, the default template is used for informative
emails.

Each template type cannot have more versions of the same language.

Text encoding By default, it is set to UTF-8.


5 Digital Services | 303
5.2 Using Digital Services

3. Click ADD to confirm the changes. The Template Editor opens.

4. Informative emails have default text depending on their type. You can edit the text according to your needs
in the WYSIWYG editor and the configuration panel:

For rich-text editing, use the toolbar above the main section. You can also add buttons and images (the
maximum image file size is 1MB).

The limit of the body of the email is 10,000 characters. Click HTML to use HTML editing.

Default Variables
The information email's subject and message can contain these default variables:

Variable Description

$(DocumentName)$ Name of the document.

$(Link)$ Link to the document.

$(ApplicationName)$ Application the client is a registered to.

$(UserName)$ Client's account login name.

$(email)$ Client's email address.

$(FullName)$ Client's full name (first + middle + last name).

$(activationCode)$ Unique generated string the client uses to activate


the account.

$(verificationCode)$ Unique generated string the client uses to activate


the account after registering in the application.

$(resetCode)$ Unique generated string the client uses to reset


the password.

$(CompanyName)$ Name of the company managing the client.

$(deepLink)$ Part of the generated link, e.g. https://company→


name-applicationId.quadientcloud.eu/mobile-
app/. You can change the default Cloud deep link
if you want to use your own server (own URL ad-
dress).
5 Digital Services | 304
5.2 Using Digital Services

WARNING If you delete the default variables, the email will not contain important values (name,
application, etc.). The values are taken from Inspire Authentication's client details.

EXAMPLE Variables used in a message to generate unique links in emails:


$(DeepLink)$activate-account/$(ActivationCode)$

Inserting a button
Click Insert a button to insert a button containing a hyperlink.

You can edit the template name and email subject in the top-right text fields.

To save the changes, click Save .

To discard all changes and go back, click Close .

5. Upload all the necessary images and resources used in the layouts.
5 Digital Services | 305
5.2 Using Digital Services

6. Make sure you have successfully configured the settings for sending informative emails.

7. The custom email template is ready to be sent to the clients.

TIP You can send an email preview of the created template.

Sending an Email Template Preview


To see how the added email template looks:

1. Select an email template and click Send Email Preview in the Templates section. The Send Email
Preview dialog opens.

2. Specify a valid Email address the email preview will be sent to.

3. Click SEND to confirm.

As soon as you send the email, check your email inbox for the preview.

WARNING You need to configure the settings for sending informative emails, otherwise the email preview
won't be sent.
5 Digital Services | 306
5.2 Using Digital Services

EXAMPLE The default email template:

Layouts
Layouts contain the customized design, used for email templates, with all the necessary resources, such as
headers, links, signatures etc.
5 Digital Services | 307
5.2 Using Digital Services

Managing Layouts
You can perform the following actions:

New Layout Adds a new layout.

Download Default Layouts Downloads a ZIP archive containing default layouts (all languages).

TIP You can use the default layout files to return them back to their default state.

Edit Edits the selected layout.

Download Downloads the selected layout(s).

Delete Deletes the selected layout(s).

This section is divided into columns:

Layout Name Name of the uploaded CSHTM file.

Language Layout language. You can only add one layout for each language.

User User who uploaded the resource file.

File Size Resource file size in bytes.

Uploaded Date and time the resource file was uploaded.

Adding New Layouts


To create a new layout:

1. Click Download Default Layouts to download the default layouts.

2. Unzip the downloaded archive file. It contains CSHTM files with this naming convention: mobileServiceE-
mailTemplate_<language>.cshtm.

3. Open the CSHTM file in a text / code editor and customize the code to your needs. For example, change the
default colors using the hexcode (#ff0000).

IMPORTANT The template file code must contain these placeholders: @Raw(@Model.GetButton())
and @Raw(@Model.GetMessage()).

4. Click New Layout. The Add Custom Layout dialog opens.


5 Digital Services | 308
5.2 Using Digital Services

5. Specify the following:

Language Template language. You can only add one template for each language.

File Select the template by clicking the icon. Optionally, delete the file by clicking the icon.

6. Click ADD to confirm. The layout is ready to be used for creating email templates.

7. Continue with adding other languages.

Resources
Here you upload all the necessary images and resources used in the layouts, such as logos and signatures.
5 Digital Services | 309
5.2 Using Digital Services

Managing Resources
You can perform the following actions:

Upload Uploads a File (the maximum file size is 5MB and you can upload several files at once) or a
ZIP Archive containing resource files (the maximum ZIP file size is 15 MB and will be automatically
extracted after uploading).

Download Default Resources Downloads a ZIP archive containing default resources.

TIP You can use the default resources to return the graphical resources back to their default state.

Download Downloads the selected resource file(s).

Delete Deletes the selected resource file(s).

This section is divided into columns:

File Name File name, cannot be edited.

User User who uploaded the resource file.

File Size Resource file size in bytes.

Uploaded Date and time the resource file was uploaded.

Uploading ZIP Archives


You can upload ZIP archives containing resources files:

1. Click Upload Archive. The Upload ZIP Archive dialog opens.

2. Select the ZIP archive by clicking the icon. Optionally, delete the file by clicking the icon.
5 Digital Services | 310
5.2 Using Digital Services

NOTE The maximum ZIP archive file size is 15MB.

3. Click UPLOAD to confirm.

5.2.2.6 Managing Image Resources


Image resources are used in mobile applications. You can upload main application icons displayed on the home
screen, splashscreens displayed when loading the application, and notification icons displayed when notifying
clients about new content.

Screenshots are used in application's store listing, they must meet resolution criteria which are specific to specific
devices and platforms and must be grouped into packages. They are used when configuring your application's
Store Listing within Quadient Cloud.

Use Digital Advantage SDK to fully implement uploaded resources in your applications.

Click Resources and Templates and select Image Resources in Digital Services | Applications to see
image resources.

Select from the sections:

● Application Icons / Splashscreens / Notification Icons – General application resources.

● Screenshots – Screenshots used in application's store listing.

General Resources

Managing Resources
Application icons (also including store listing icons), splashscreens and notification icons are used in application
settings and build configurations. The management of these resources is identical for all sections.
5 Digital Services | 311
5.2 Using Digital Services

Available actions in the action bar and in context menu change based on the selected items. You can perform
these actions:

New Creates a new general resource.

Edit Edits the resource name and manages image files.

Delete Deletes the selected resource.

The section is divided into columns:

Resource Name Name of the resource.

ID Unique identifier used for managing resources via API services.

Included Resolutions Number of uploaded image files / total predefined resolution scales for mobile devices
(Android / iOS).

State Current resource state:

All files uploaded All image resolutions of the resource were generated.

Missing files for some resolutions Some image resolutions of the resource are missing (can occur in
applications that were created in Quadient Cloud version 12.0 or
older).

Uploaded Date and time the resource was uploaded.

TIP It is possible to filter resources using their details via the filter field in the action bar
5 Digital Services | 312
5.2 Using Digital Services

Resource Details
To see more details, click the related icon.

iOS / Android
Image previews for device resolutions on iOS and Android platforms.

The naming convention for iOS is platform-<ResourceName>-<Resolution>.<FileType>, e.g. iPad-Applica-


tion-76@2x.jpg.

Supported iOS devices and resolutions

iPhone @2x / @3x

iPad @1x / @2x / @3x

iPadPro @2x

Supported Android resolutions

● mdpi

● hdpi

● xhdpi

● xxhdpi

● xxxhdpi
5 Digital Services | 313
5.2 Using Digital Services

TIP Click the links to preview images. It is also possible to filter the resources.

Creating New General Resources


To create a new general resource:

1. Select Application Icons, Splashscreens or Notifications Icons.

2. Click New.

The Upload Application Icon / Upload Splashscreen / Upload Notification Icon dialog opens.

3. Specify the Name for better management. It does not have to be unique.

4. Upload the image file by clicking the icon.

The height of the image must correspond to the width (1:1 ratio), and the size of the image must be at
least 1024px (use an image with an xxxhdpi resolution for the best possible results as the image file is
downscaled during conversion, it is also possible to use a vector image). The maximum image file size is
3MB.

Optionally, you can delete an image file by clicking the icon.

5. Click GENERATE to initiate the conversion. The required resolution scales are automatically generated
based on the input image.

You can use the NO / YES switch to see all generated images.

WARNING All icons will be overwritten when you generate icons for the specified resource.

6. Click the icon to download and preview the images.


5 Digital Services | 314
5.2 Using Digital Services

If needed, delete and manually upload a different image for a particular platform and resolution (e.g. if
you want your Store Listing Icon to differ from the Application Icon).

7. Click SAVE to confirm. You cannot save the resource if any of the required resolutions are missing.

TIP After saving the resource, you can click Edit and replace the images. You can then also
download all the generated images in a ZIP file by clicking DOWNLOAD ALL.

Screenshots

Managing Screenshots
Screenshots are images used in your application's store listing (they must be grouped into a package for updating
your application's store listing).

Available actions in the action bar and in context menu change based on the selected items. You can perform
these actions:

New Creates a new Screenshot package or Screenshot.

Edit Edits the screenshot name and manages image files.

Rename Edits the name of the screenshot package.

Move Moves screenshots into a package.

Delete Deletes the selected screenshot / screenshot package.

The section is divided into columns:

Name Name of the screenshot / package.

iOS List of the iOS devices the screenshot / package is compatible with.

Android List of the iOS devices the screenshot / package is compatible with.
5 Digital Services | 315
5.2 Using Digital Services

Resolution Height and width of the screenshot.

Uploaded Date and time the screenshot was uploaded.

TIP It is possible to filter screenshots via the filter field in the action bar. You can perform a search based
on the screenshot details, or filter them by tags.
5 Digital Services | 316
5.2 Using Digital Services

Screenshot Package Details


To see detailed information about a screenshot package, click Display detailed information .

1 Screenshot Package

Name Name of the package.

Files Number of screenshots contained in the pack-


age.

2 Resources

This section shows the status of the package regard-


ing store listing of Android and iOS applications.

Overall status

Ready – The package contains all screenshots


required for Android/iOS application store
listing.

Not ready – The package does not contain


screenshots required for Android/iOS applica-
tion store listing.

Tablet / Phone

– Meets resolution criteria for the device.

– Does not meet resolution criteria for the


device.
5 Digital Services | 317
5.2 Using Digital Services

Screenshot Details
To see detailed information about a screenshot, click Display detailed information .

1 Screenshot Info

Uploaded Date and time the screenshot was up-


loaded.

Resolution Height and width of the screenshot.

2 Platforms

This section shows the devices and platforms the


screenshot meets the criteria regarding store listing
of Android and iOS applications.

Tablet / Phone

– Meets resolution criteria for the device.

– Does not meet resolution criteria for the


device.

Creating New Screenshots


To create a new screenshot:

1. Click New and select Screenshot.

The Add Screenshot dialog opens.


5 Digital Services | 318
5.2 Using Digital Services

2. Specify the details:

Name Name of the screenshot used for better management.

Screenshot file Select the image file by clicking the icon.

Required image resolution for the iOS platform: 1242 x 2208px (for both portrait and landscape
modes) for the Phone device; 2048 x 2732px (for both portrait and landscape modes) for the Tablet
device.

Minimum and maximum image resolution for the Android platform: 320px and 3840px (for all devices).
The maximum dimension of your screenshot cannot be more than twice as long as the minimum di-
mension.

Supported image formats for all platforms and devices are jpg, jpeg, or png.

Optionally, you can delete an image file by clicking the icon.

3. Use the ON / OFF switch to enable a platform (Android or iOS) and specify which devices (Phone,
Tablet) will be the screenshot used in (you can only select the platforms and devices for which the uploaded
file meets resolution criteria).

4. Click SAVE to confirm.

NOTE You can also upload screenshots via the DX Preview application which is available on Google
Play and Apple App Store (you can take screenshots when previewing your application's build by
shaking the device and choosing to upload the screenshot to your Quadient Cloud account).
5 Digital Services | 319
5.2 Using Digital Services

Creating New Screenshot Packages


To create a new screenshot package:

1. Click New and select Screenshot package. The Create New Screenshot Package dialog opens.

2. Specify the Name of the screenshot package, which is used for better management.

3. Click CREATE to confirm. You can enter the created screenshot package by clicking its name.

Managing Screenshots in Packages


You can also manage screenshots directly in the created packages. The functionality is the same as for the parent
Screenshot section, except you cannot create another level of screenshot packages.

NOTE If a package contains screenshots with duplicate platform and device settings, the newest of the
files will be used in the store listing.

5.2.2.7 Managing Builds


Here you can manage builds and build mobile applications for Android and iOS platforms, also applications for
web interface.

IMPORTANT To build application in Digital Services, you need to create an application template in Inspire
Designer first. For more information, see Digital Advantage Suite Configuration Guide.
5 Digital Services | 320
5.2 Using Digital Services

TIP You can preview what your built applications will look like on mobile devices via the DX Preview
application which is available on Google Play and Apple App Store .

Click Builds in Digital Services | Applications to see the builds.

Managing Builds
The available actions in the action bar (and in the context menu) change based on the build progress and state:

New Creates a new build ( Android Build, iOS Build, or Web Build).

Import Imports an exported build configuration.

Edit Edits the build configuration.

NOTE You cannot edit builds while Building, or once you have published them.

Clone Creates a new configuration identical to the selected build configuration, so that it can be edited
to be different without having to rewrite basic information manually. You can also select which platform
to convert the cloned build to (Android, iOS, Web).

Publish Configuration Publishes builds as a final application ready for production.

Download Build Downloads application files.

Download Logs Downloads a text file containing event logs.

Export Exports a build configuration.

Delete Deletes the selected build configuration with all its resources.

Start Builds mobile applications.

Stop Cancels the building of the mobile application.


5 Digital Services | 321
5.2 Using Digital Services

NOTE Depending on the size of the screen and the number of actions listed in the action bar, you can
click More Actions to access additional actions.

The section is divided into columns:

Platforms Platforms the build will be available for: Android , iOS , or Web .

Name Name of the build for better management.

Bundle ID Unique ID used for publishing in app stores.

WARNING The building of an Android application won't work if the Bundle ID contains a full stop
followed by a number. E.g. com.123a.test – building will fail, com.a123.test – building will be successful.

Version Build version number.

Progress Current build progress:

In Queue Build was placed in a queue, waiting to be built (the queue order is displayed as, e.g.
1 / 5).

Not Built Build was created but not yet built.

Successful Application was successfully built.

Canceled Building was canceled by a user.

Failed Failed to build the application.

Timed Out Building timed-out. The build server could not finish the operation, try it again.

NOTE Application build progress is displayed via the progress bar.

TIP When your build fails, download the build logs for more details.

Store Application store the build is configured to deploy to:

Name of the App Store.

Name of the Google Play store.

Name of the Appaloosa store.

Not Available Deployment is not specified, or the build is configured for the Web platform.

Last update Date and time the build was last updated.

TIP Right-click a build to access the context menu.


5 Digital Services | 322
5.2 Using Digital Services

Build Details
For more details, click the related icon.

NOTE Web build details do not contain information about Certificate Expiration and Plugins, but addi-
tionally contain Web URL information.
5 Digital Services | 323
5.2 Using Digital Services

1 Build Settings

Build ID Shows the automatically generated unique identifier of the build.

Build Progress Status of the application built for the particular platform:

Not Built

Building

Timed Out

Canceled

Failed

Successful

2 Status

Shows the status of each step in the build configuration.

3 Application Template

Name Name of the used application template.

Last update Date and time the application template was updated.

4 Certificate Expiration

If the build contains signed certificates, the certificate expiration date is displayed.

NOTE The date can be highlighted in different colors:

Orange Uploaded signed certificate expires in less than a month.

Red Uploaded signed certificate expired.

5 Plugins

List of plugins enabled for the build.

6 History

State Current build state:

Created

Built

Modified
5 Digital Services | 324
5.2 Using Digital Services

Published

Last successful build Date and time of the last successfully completed build.

Last update Date and time the build was last updated, e.g. the Name was changed.

7 Web URL

Production / Draft URL link to a production version / draft version of the application template.

If you build an application in Digital Services and clients don't have it on their mobile devices, clicking on links
in emails within Inspire Authentication redirects them to this web application.

TIP Click the link to see a preview of the application template, or click Copy URL to Clipboard
to copy the link. You can also use web applications within your websites.

Creating and Building New Applications


To create a build:

1. Click New and choose one of the following: Android Build, iOS Build, or Web Build.

2. Click the navigation sidebar to navigate through the different sets of options which you can configure
depending on the platform:

● Build Properties

● Appearance

● Android Properties / iOS Properties / Build


URLs

● Plugins & Options

● Build & Deploy

The status of each configuration set is indicated


by icons:

Configuration is saved and con-


tains no errors.

Configuration contains errors (e.g.


expired certificates).

No value Configuration contains no data.

NOTE Web build configuration only contains the Build Properties and Appearance steps. Addi-
tionally, it contains a Build URLs window, which displays URL links to the web application (the
links can also be found in the detailed information of the build).

3. Use the ON / OFF switch to enable / disable options within each section, configure the options and
SAVE or APPLY to confirm (initially, you must click CREATE to unlock the steps).
5 Digital Services | 325
5.2 Using Digital Services

Build Properties
Specify the build properties:

Build Properties

Build name Build name and also name of the downloaded application file. It does not have to be unique.

Description Brief description of the build.

Mobile app name Final application name that will be displayed on the mobile devices.

Application template Dynamic Communications document used for the basic layout, look and functionality.

IMPORTANT You can't build mobile and web applications without a prepared application template.
If there is no production version of the specified application template available, the newest draft version
will be used when building the application.

Bundle ID / App ID Unique identifier used for the build number in app stores. It must be in reverse domain name
notation format: eu.quadient.app. For iOS, get it from e.g. App Store Connect .
5 Digital Services | 326
5.2 Using Digital Services

NOTE This option is not available for web builds.

Build Internal number used to differentiate builds. You need to increase the number every time you submit the
application to the app stores.

NOTE This option is not available for web builds.

Version Application number visible to clients. The format is <major>.<minor>.<patch>.

Debug mode A troubleshooting tool for your application. If enabled, it will be a part of the application's build
and will provide additional and more detailed logs of the application's activity. Enabling the option for the
specific build allows the debug mode to be functional even without network access to Quadient Cloud.

Appearance
Specify the build appearance:

Application icon Application icon displayed on the home screen on mobile devices. You can upload this icon
either when creating the application or via the resource manager.

Splashscreen image Welcome screen image displayed when you open the application. You can upload this
image either when creating the application or via the resource manager.

Splashscreen color Splashscreen main color in the hex code. You can also set the color when creating the ap-
plication.

Platform Specific Properties


Specify the corresponding platform properties: Android Properties or iOS Properties.

For web builds, you can open the Build URLs window to access their URL links. The remaining configuration sets,
Plugins and Build & Deploy, are not available for web builds.
5 Digital Services | 327
5.2 Using Digital Services

Android Properties

1 Application Certificate

Sign certificate Upload a valid, signed certificate for Android by clicking the icon. Optionally, delete the
certificate by clicking the icon.

NOTE You can't build an Android application without a valid certificate (any self-signed certificate
with arbitrary expiration date can be used). For more information on how to create a self-signed cer-
tificate, read the How do I Create a Self-Signed Certificate for an Android App instructions.

Password Password for the uploaded certificate.

2 Notifications

FCM configuration A JSON file used to identify the sender of a push notification in the Firebase Cloud Messaging
service. It makes it possible for the built application to receive notifications. The google-services.json file
can be obtained after signing in and registering the application in the Firebase Console .

NOTE Rich notifications are automatically enabled for Android devices. Notification content and
type for both iOS and Android are set in Inspire Designer .
5 Digital Services | 328
5.2 Using Digital Services

iOS Properties

1 Application Certificate

Sign certificate An iOS Development or iOS Distribution certificate in p12 file format.

Click the icon to upload a valid signed certificate for iOS. Optionally, click the icon to delete the certi-
ficate.

NOTE You can't build an iOS application without a valid certificate.


5 Digital Services | 329
5.2 Using Digital Services

Password Password for the uploaded certificate.

Provision profile File containing information about the identity of the author (can be obtained from the Apple
Developer Portal ), the identity of the application and its distribution purpose. It must correspond with the
Bundle ID set in the Build Properties window. You can't publish applications in the Apple App Store with a
development provisioning profile.

NOTE Notifications in the application must be turned on for the profile to be functional.

2 Extended Notifications

Enable Extended Notifications Use the OFF / ON switch to enable extended notifications (Rich Notifications
and Notifications Processing).

If disabled, only basic alert notifications can be received. If enabled, it is possible to send notifications with
rich content (e.g. icons, images, actions), and the application can then also perform operations in the back-
ground (e.g. downloading documents).

IMPORTANT Extended notifications require both Notifications Processing and Rich Notifications
to be configured and signed, and an App Group with an ID that is the same as the application's
Bundle ID must be created.

3 Notifications Processing

The configuration is used for signing the Notification Service Extension which manages notifications pro-
cessing in the background (e.g. downloading resources).

Bundle ID Notifications processing requires an additional unique identifier for application stores. It must
be in reverse domain name notation format: eu.quadient.app. Go to e.g. App Store Connect to get
this ID.

Provision profile Notifications processing requires an additional provision profile file. This additional file
must correspond to the notifications processing Bundle ID.

4 Rich Notifications

The configuration is used for signing the Notification Content Extension which manages the displaying of
notifications with rich content.

Bundle ID Rich notifications require an additional unique identifier for application stores. It must be in reverse
domain name notation format: eu.quadient.app. Go to e.g. App Store Connect to get this ID.

Provision profile Rich notifications require an additional provision profile file. This additional file must cor-
respond to the rich notification Bundle ID.

NOTE Notification content and type for both iOS and Android are set in Inspire Designer's Digital
Communications Data module. .
5 Digital Services | 330
5.2 Using Digital Services

Build URLs

URL links to the available versions of the web application (the links can be also found in the detailed information
of the build).

Production / Draft URL link to a production / draft version of the application template (application template
must be In production state for the Production link to be available).

NOTE If you build an application in Digital Services and clients don't have it on their mobile devices,
clicking links in emails within Inspire Authentication redirects them to this web application.

TIP Click the link to see a preview of the application template, or click Copy URL to Clipboard to
copy the link. You can also use web applications within your websites.

Plugins & Options


When you build applications with an application template containing Dynamic Communications components
with additional functionality, such as taking pictures or reading barcodes, you need to enable plugins in Digital
Services. These plugins will be added to the final built application so that it functions properly.
5 Digital Services | 331
5.2 Using Digital Services

1 Plugins

Take a Picture Selects pictures from the gallery or takes new ones with the camera, including adjusting their
color scale or rotation. Requires a DC component.

Contact List Reader Obtains contacts from the phone's contact list.

Document Detection Recognizes documents in pictures and displays them in a rectangular shape.

Barcode Reader Reads barcodes with the device's camera. Requires a DC component.
5 Digital Services | 332
5.2 Using Digital Services

NOTE Adding plugins to the build increases the application's size. Check the size calculation for Android
or iOS.

Plugin Details
If a plugin is enabled, you can view the following details:

Size Displays plugin size in KB.

Version Displays the version number.

Permissions Lists which permissions are required for the plugin to function properly.

2 Options

Location Allows the application to ask for permission to use the device's location. You can also specify a Custom
message which will be displayed to the user.

Orientation Lock Prevents the application from changing the orientation when rotating the device.

3 PERMISSIONS CONFIGURATION
To manage the permissions of plugins in the built application, click PERMISSIONS CONFIGURATION in the Plugins
& Options section.
5 Digital Services | 333
5.2 Using Digital Services

You can enable or disable permissions and/or specify a Custom message that will be displayed to the client:

Camera Allows plugins to use the device's camera.

Contacts Allows plugins to access the contact list stored on the device.

External Storage Allows plugins to access the device's external storage.

Build & Deploy


Switch between creating a local build or building and deploying the application to an application store.
5 Digital Services | 334
5.2 Using Digital Services

Creating a local build


If the Create local build option is enabled, you can create a local build which you can then download and
manually upload to an application store.

To build and download the application:

1. Click SAVE to save your configuration and then click LOCAL BUILD. The Local Build dialog opens.

TIP You can also build your application when in a different window by clicking LOCAL BUILD
in the upper bar.

2. Click BUILD to confirm the build. Firstly, the build is put in a queue and then begins to process. You can
close both the dialog and the window and later return to download the application (the build progress
continues in the background). You can also click STOP to cancel the build.
5 Digital Services | 335
5.2 Using Digital Services

TIP You can also initiate or cancel the build from the main Builds window by clicking Start
or Stop.

3. As soon as the application is built, the build progress becomes Successful and information about the build
appears in the Local Build dialog and the Local Build Result section.

You can download the IPA (iOS) or APK (Android) application files and manually upload them to application
stores.

There are different ways to download a file:

● If you remained in the Local Build dialog (or clicked one of the LOCAL BUILD buttons to reopen it),
click DOWNLOAD.

● In the Local Build Result section, click DOWNLOAD.

● When in the main Builds window, click Download Build.


5 Digital Services | 336
5.2 Using Digital Services

TIP You can click NEW BUILD in the Local Build dialogue to build the application again.
5 Digital Services | 337
5.2 Using Digital Services

Building and deploying to an application store


If the Build and deploy to an application store option is enabled, you can build your application and deploy it
to an application store.

To build and deploy the application:

1. Select the application Store you wish to deploy to (you must configure the deployment stores in the Settings
first).

2. Depending on the application store, specify the following details:

Change log Simple text intended for describing changes. The length is limited depending on each applic-
ation store's own internal rules.

Channel Available for the Google Play application store. Defines the mode of the application: Internal,
Alpha, or Beta.

Group list Available for the Appaloosa application store. Click ADD GROUP to specify groups that
you have pre-defined in the Appaloosa application store.

3. Click SAVE to save your configuration and then click BUILD & DEPLOY. The Build & Deploy dialog
opens.
5 Digital Services | 338
5.2 Using Digital Services

TIP You can also open this dialog when in a different window by clicking BUILD & DEPLOY
in the upper bar.

4. Click BUILD & DEPLOY. The build progress functions the same as for local builds.

NOTE For iOS applications, it is mandatory to enter the Apple ID password before initiating the
build.

5. As soon as the application is built, the build progress becomes Successful. To find your application, check
the related website of application store you deployed it to, e.g. App Store Connect for iOS.

Publishing the Final Build


If you are content with the application build, you can lock it so it cannot be changed.

NOTE Only successfully built iOS and Android applications can be published. However, all web applications
can be published.

To publish an application, click Publish Configuration and PUBLISH to confirm.

IMPORTANT This feature does not publish the application to any application stores. You have to do it
manually with the downloaded application files or use the deployment feature.
5 Digital Services | 339
5.2 Using Digital Services

Exporting and Importing Builds


You can export and import package files containing build configurations (e.g. certificates with passwords) and
their resources (e.g. application templates).

Exporting Builds
To export a build:

1. Select a build in Builds and click Export. The Export Build Package window opens.

2. You can use the ON / OFF switch to disable or enable Password protection of the exported build. If
enabled, enter the Password according to the rules displayed.

3. Click EXPORT. The build is exported as a DAS file.

Importing Builds
To import a build:

1. Click Import The Import Build Package dialog opens.


5 Digital Services | 340
5.2 Using Digital Services

2. Click the icon to select the exported build file.

If required, use the ON / OFF switch to disable or enable Password protection and enter the Password.

3. Click VALIDATE. The Package Info is displayed.

4. Click IMPORT. The build with its data is imported.

CAUTION Always make sure the package is not of malicious origin before importing it.

You will be notified if the package could not be verified, i.e. if package information does not exist
or was deleted from the source instance of Quadient Cloud, or the URL address is in the wrong
format.
5 Digital Services | 341
5.2 Using Digital Services

5.2.2.8 Analyzing Reports and Statistics


Here you can see the information about delivered notifications, opened documents, or data related technology
used to receive the notifications for a particular application.

Click Reports and select Reports and Statistics in Digital Services | Applications to view all the reports
and statistics. The Activity Statistics window opens.

Select from the following sections:

Activity Statistics

Notification Statistics

Document Statistics

General Statistics

Activity Statistics
Displays statistics about clients' activities and how they have used your documents over the last hour, or last 24
hours.
5 Digital Services | 342
5.2 Using Digital Services

1 Activity Statistics

Client Activity in Applications Line chart displaying the number of active clients in applications.

Realtime Activity in Documents Line chart displaying the real time activity of clients in documents.

2 Activity in Documents

Client Activity Total number of visited documents (opened documents).

Sent Successfully sent to clients.

Opened Opened, but the client has not entered any data.

Started Opened, and the client has started entering data.

Finished The client has finished entering data and clicked on the FINISH / SUBMIT button.

3 Active Attempts

Details about current communications between the client (mobile application or web browser) and Digital Services,
and between enterprises (on-premise server) and Digital Services for the particular service. The functionality is
the same as for the Service Monitoring.
5 Digital Services | 343
5.2 Using Digital Services

Notification Statistics
Here you can see details about notifications sent to the clients.

1 Sent Notifications

Notifications sent from Quadient Cloud to clients' mobile devices (web clients):

Sent Successfully sent from Quadient Cloud.

Failed Failed to send from Quadient Cloud.

2 Delivered Notifications

Notifications successfully delivered to these platforms:

Mobile Clients

Web
5 Digital Services | 344
5.2 Using Digital Services

iOS

Android

3 Following Actions

Opened Documents Number of Opened documents from the received notification.

4 Download

NOTIFICATIONS RAW DATA Downloads detailed notification statistics for the selected period.

NOTE This option is available only if you enable Data storing when creating a new application.

5 Notifications vs. Opened Documents

Displays a chart with a ratio of notifications and opened documents.

Document Statistics
Here you can see details about documents sent to the clients.
5 Digital Services | 345
5.2 Using Digital Services

1 Sent

Documents distributed to specific clients via the Content Delivery Service:

All Successfully sent from Quadient Cloud to the clients (including personalized, public, or group-specific docu-
ments).

Personalized Documents containing specific data for specific clients. E.g. the document contains personalized
content for students.

2 Delivered

Documents delivered from the Content Delivery Service to clients:

Delivered Successfully downloaded to the application.

Undelivered Have not been downloaded to the application yet.


5 Digital Services | 346
5.2 Using Digital Services

3 Opened

Opened or unopened documents.

Opened Documents opened by the clients.

Unopened Documents that have not been opened by the clients yet.

4 Document Summary

Displays a chart with a ratio of sent / delivered / opened documents.

General Statistics
The functionality for this section is the same as for General Statistics in Services, except you can filter the data
with a Service name parameter instead of an Application name parameter.

5.2.2.9 Error Reporting


Here you can see information about errors for a particular application and its builds (specify the time period by
using the From and To date pickers). You can also download a CSV file with in-depth reports.

Click Reports and select Error Reporting. The Error Reporting window opens.

TIP Error reporting can be enabled or disabled in the basic application settings.

WARNING Error reports are automatically deleted after 90 days.

Do not store any personal information in the reports. External errors may contain security related inform-
ation.
5 Digital Services | 347
5.2 Using Digital Services

1 Statistics

Number of errors reported for the application.

NOTE Different devices reporting an identical error constitute only 1 error in the statistics.

All errors All errors detected during the selected time period.

Unresolved Currently unresolved errors. Once an error is fixed, you must manually switch its status to resolved.

2 Errors Timeline

Line chart displaying the number of errors during the selected time period.

3 Download

RAW DATA FOR ERROR REPORT Downloads a CSV file containing detailed error statistics for the selected
period.

NOTE The statistics is in the RAW format and unstructured, so the file size may be large.

4 Builds

Platforms Build platforms the errors appear in: Android, iOS, Web or Not Set.

Build version Number of the build the errors appear in.

App template version Application template version the error appears in.

Errors Number of errors reported for the application.

Unresolved errors Currently unresolved errors.

Last update Date and time the error was last updated.

Managing errors
Click a specific build to open a Build version error list.
5 Digital Services | 348
5.2 Using Digital Services

You can:

Download Report Downloads a CSV report containing detailed information about the error.

Resolve Error(s) Manually marks errors as Resolved (resolved errors remain on the list, only their status
changes).

The section is divided into columns:

Status Status of the error: Resolved or Open.

Severity Error severity rating: High, Medium or Low.

Count Number of times the error occurred.

Message Error message.

Last Crash Last time the error was detected.

Error Details
For more details, click the related icon.

Description Description of the error.

5.2.2.10 Exporting Applications


In this dialog, you can export an application package containing specified application configuration.
5 Digital Services | 349
5.2 Using Digital Services

To export an application:

1. Select an application in Digital Services | Applications and click Export. The Export Application window
opens.

2. Use the YES / NO switches in the Options section to disable or enable application settings (Basic Settings
section cannot be disabled). Click on the categories to expand them and check the specific fields where
available.
5 Digital Services | 350
5.2 Using Digital Services

Settings that can be exported are the same as the configuration steps when creating or editing an applic-
ation, except:

● Builds which are configured in the Builds section. Click SELECT BUILDS to specify which ones you
wish to export.

● Services which are connected to the application documents.

The application information and settings which will be exported are displayed in the Summary section.

IMPORTANT Events Monitoring configuration will be exported with the relevant services. When
exporting Authentication, it does not include the configuration of User Management and Identity
Providers.

3. Click NEXT. The Export Application window with Password protection settings opens.

4. You can use the ON / OFF switch to disable or enable Password protection of the exported content.
If enabled, enter the Password according to the rules displayed.

IMPORTANT If the application contains certificates or builds with certificates, Password protection
must be enabled.

5. Click EXPORT to download the DAS file containing the specified application configuration.
5 Digital Services | 351
5.2 Using Digital Services

5.2.3 Authentications
Here you can find the detailed configuration of the identity providers you can use for user authentication of the
applications built with Digital Advantage SDK and the build configuration tool:

● AD-FS

● Active Directory

● Azure AD

● Core ID Services

● Facebook

● Generic OAuth

● Generic OpenID Connect

● Generic WS-Federation SAML

● Google

● Integrated Server-side Authentication

● LDAP

● LinkedIn

● OAuth Token Verification

● Salesforce

● Simple Authentication

IMPORTANT For Inspire Authentication, see the User Management section.

Managing Authentications
Available actions in the action bar and in context menu change based on the selected items:

New Creates a new authentication.


5 Digital Services | 352
5.2 Using Digital Services

Edit Edits the authentication name and identity provider settings.

Clone Clones the selected authentication configuration.

Delete Deletes the authentication.

The section is divided into columns:

Name Name of the authentication. It doesn't have to be unique.

Identity Provider Name of the identity provider used in the authentication.

Apps Number of applications the authentication is used in.

State Authentication state:

Ready Authentication is correctly configured and ready for use / in


use.

Identity Provider Incorrectly Con- Authentication is not properly configured and cannot be used.
figured

Updated Date and time the authentication was last updated.

NOTE One authentication can be assigned to any number of different applications.

Authentication Details
For more details, click the related icon.

Identity provider ID Unique identifier generated automatically for every authentication configuration.

Used in application(s) Names of applications the authentication is used in.


5 Digital Services | 353
5.2 Using Digital Services

5.2.3.1 Creating Authentications


To add a new authentication:

1. Click New. The Authentication window opens:

2. Name the authentication, choose the Provider type, and configure the identity provider.

NOTE For more information on how to configure a specific identity provider, see the Identity
Providers section.

3. Once you have selected and configured the identity provider, click CHECK where available to validate the
identity provider configuration.

4. Click SAVE to confirm the authentication.


5 Digital Services | 354
5.2 Using Digital Services

5.2.3.2 Identity Providers


AD-FS

Settings

Metadata address Metadata address of your WS-Federation server, e.g. https://yourserver/federation-


metadata/2007-06/federationmetadata.xml.

Wtrealm WS-Federation wtrealm of the application configured in the WS-Federation identity provider.

Partial logout home URL You can specify a partial logout. Device browsers are then redirected to this URL on
client's demand after the partial logout. Clients can logout manually there.

Partial logout URL You can specify a partial logout. Device browsers are then redirected to this URL on client's
demand after the partial logout.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

Is partial logout by default Check this if you want to use partial logout by default.
5 Digital Services | 355
5.2 Using Digital Services

Active Directory

1 Settings

Host name Host name of your LDAP server, e.g. ldap.quadient.net or 192.168.0.1.

Port Port of your LDAP server. The default value is 389 for the TLS or nonsecure connection, and 636 for the
SSL connection.

Use SSL If checked, the SSL protocol is used, and you can use a self-signed Public certificate for testing purposes.

Protocol version Protocol version of your LDAP server.


5 Digital Services | 356
5.2 Using Digital Services

2 LDAP – User Authorization Configuration

Authorization type Select the authorization type your server supports.

Search scope With the Base option selected, the server looks for users only on the DN (distinguished name)
level. With One Level selected, the server looks for users in one level of directories. With Subtree selected,
the server looks for users in all directories and subdirectories.

Base DN The exact user address on your LDAP server. You can use {UserName} as the key string. It will be replaced
with the user's login name.

User name pattern Pattern of LDAP user names. You can use {UserName} as the key string. With an Active
Directory server, it will be the same as the user login value. In other LDAPs, it will look like uid=Einset→
in,ou=users, dc=example, dc=com.
5 Digital Services | 357
5.2 Using Digital Services

NOTE If sAMAccountName is in use, you must specify the domain containing the user accounts.
The format can be \{UserName} (e.g. EU\{UserName}) or {UserName}@domain (e.g. {UserName}@eu.quadi→
ent.com).

User object filter Filter used when searching for user objects or elements, e.g. (objectclass=*), {UserName}.

Attribute name of Client ID Attribute that will be used as Client ID, e.g. uid.

EXAMPLE
When LDAP returns user data in couplings, e.g. "uid": "janedoe" "cn": "Jane Doe", entering uid
into the field will direct Quadient Cloud to use janedoe as the Client ID. This identifier is then used for
document rights, etc.

CAUTION Any change in the parameter can cause the current client rights (regarding documents)
to be non-functional in applications where this provider is used.

Claims mappings Translation of incoming LDAP claims to OpenIdConnect claims.

Attribute name to map groups Name used for mapping groups to users, e.g. (objectclass=*).

3 LDAP – Download Users And Groups Names

To download users and groups from the LDAP server, use the ON / OFF switch.

Account Account user name.

Password Account password.


5 Digital Services | 358
5.2 Using Digital Services

4 LDAP – Obtain Users Data Configuration

Search scope With the Base option selected, the server looks for users only on the DN (distinguished name)
level. With One Level selected, the server looks for users in one level of directories. With Subtree selected,
the server looks for users in all directories and subdirectories.

Base DN The exact base address on your LDAP server where the servers searches for users.

Filter Standard LDAP filter used when searching for user objects, e.g. (objectclass=*).

Claims Mapping

FullName / Email / LoginName / Status / ClientId Claims used to translate incoming LDAP data to internal
types.
5 Digital Services | 359
5.2 Using Digital Services

5 LDAP – Obtain Users Data Configuration

Search scope With the Base option selected, the server looks for groups only on the DN (distinguished name)
level. With One Level selected, the server looks for groups on one level of directories. With Subtree selected,
the server looks for groups in all directories and subdirectories.

Base DN The exact base address on your LDAP server where the servers searches for groups.

Filter Standard LDAP filter used when searching for user objects, e.g. (objectclass=*).

Claims Mapping

GroupId / Name Claims used to translate incoming LDAP data to internal types.

User map attribute name Name used for mapping users to groups, e.g. (objectclass=*).

Click CHECK to confirm the identity provider configuration is valid.


5 Digital Services | 360
5.2 Using Digital Services

Azure AD

Settings

Authority Standard OpenID Connect authority URI of the external provider.

Client ID Unique identifier given by the identity provider. In the Microsoft Azure portal, it corresponds to the
Application (client) ID parameter.

Client secret A secret string that the application uses to prove its identity when requesting a token. Can also
be used as an application password.
5 Digital Services | 361
5.2 Using Digital Services

Logout URL pattern Specify a URL address with a special {returnUrl} token. The token will be replaced with
a concrete return URL address when an interactive logout is initiated. Leave this empty if the identity provider
supports a standard OpenID Connect endsession endpoint.

Sign in policy Optional value of the Azure AD 'p=' B2C sign-in policy parameter which is added to every au-
thorize request.

Partial logout home URL If you wish to set up a partial logout, define a URL address to which device browsers
can be redirected on clients' demand after the partial logout. This parameter allows for the clients to logout
manually there.

You can leave it empty, if the external identity provider supports standard OpenID Connect endsession end-
point.

Partial logout URL If you wish to set up a partial logout, define a URL address to which device browsers can
be redirected on clients' demand after the partial logout.

You can leave it empty, if the external identity provider supports standard OpenID Connect endsession end-
point.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

Is partial logout by default Check this if you want to use partial logout by default.

Example scenario
Configuring Azure AD identity providers via Digital Services and the Microsoft Azure portal:

1. Register your application as per the Register an application with the Microsoft identity platform instruc-
tions.

2. In the Microsoft Azure portal, you can get corresponding values to enter into the Digital Services Azure
AD configuration.

a) Copy the Directory (tenant) ID value situated in the Overview section of your registered application
and paste it after https://login.microsoftonline.com/. Enter the final value in the Authority field
(e.g. https://login.microsoftonline.com/c2xxd20c-6xd2-4689-bdb6-8d880xxx6bb6).

For more information, see the Specifying the AAD authority instructions.

b) Copy the Application (client) ID value into the Client ID field.

c) In the Certificates & secrets section of your registered application, create a New client secret, and
copy it into the Client Secret field.

d) Click CHECK to validate your settings and then click SAVE.

3. In the Authentication section of the application creator, select the configured Azure ID provider. You will
receive the automatically generated Callback and Sign out callback URI values. These URIs must be re-
gistered in the external identity provider's configuration, otherwise, the application won't be authorized.

To register the URIs, go to the Authentication section of your registered application on Microsoft Azure
and enter the generated Callback value into the Redirect URIs section, and the generated Sign out callback
value into Advanced settings | Logout URL.
5 Digital Services | 362
5.2 Using Digital Services

Core ID Services

Settings

Production Mode Enables the usage of production CoreID accounts. When disabled, only test accounts are
available.

Assently Display Name Custom display names must firstly be registered in Assently CoreID . The value can
be edited if Production Mode is enabled. If disabled, the Test av Mobilt BankID static testing value will be
used.

Assently Account ID Customer account ID at Assently CoreID.

Auth Secret Used for signing in with the authentication secret provided by Assently CoreID.
5 Digital Services | 363
5.2 Using Digital Services

Identity Secret Used to sign the JWT (JSON Web Token) provided by Assently CoreID.

Issuer The customer account name provided by Assently CoreID.

Allowed eIDs Specifies which eID (electronic identification) providers will be available:

● Finnish Mobiilivarmenne

● Finnish Tupas

● Finnish VRK

● Norwegian BankID

● Norwegian BankID mobile

● Swedish BankID

● Swedish Telia

● Danish NemID

Location Configures which country's eID providers will be displayed by default when starting the client: Swedish,
Finnish or Norwegian.

Client Language The client can be localized in the following languages: English, Finnish, Norwegian, and
Swedish.

Default Provider Sets a specific provider to be displayed by default (this option overrides the Location setting).

TIP For more information, consult the CoreID documentation .

Facebook
5 Digital Services | 364
5.2 Using Digital Services

Settings

App ID Unique identifier of your Facebook application.

App secret Unique app secret string of your Facebook application.

Approved items Facebook login permissions, e.g. email, public_profile or user_friends. To see actually sup-
ported Facebook approved items, check the App Review subsection on your Facebook for developers site.

Add more approved items by clicking the icon.

API version Current Facebook API version.

Is partial logout by default If checked, uses partial logout by default.

Generic OAuth

Settings

Client ID Unique identifier given by the identity provider.

Client Secret Unique string given by the identity provider.

Issuer Value of the "iss" claim of ID tokens issued by Digital Services.

Authorization endpoint OAuth authorization endpoint URI of the identity provider.


5 Digital Services | 365
5.2 Using Digital Services

Token endpoint OAuth token endpoint URI of the identity provider.

User information endpoint OAuth user information URI of the identity provider.

Scopes Requested scopes on OAuth endpoints during the authentication process.

Add more scopes by clicking the icon.

Claims mapping External to target claims mapping.

Add more claims mappings by clicking the icon.

JSON Media Type User information endpoint for JSON media type response, e.g. application/json.

Logout URL pattern Specifies a URL address with a special token {returnUrl}. The token will be replaced with
a concrete return URL address when an interactive logout is initiated. Leave empty if the identity provider
supports standard OpenID connect endsession endpoint.

Partial logout home URL Specifies a partial logout. Device browsers are then redirected to this URL on client's
demand after the partial logout. Clients can logout manually there.

Partial logout URL Specifies a partial logout. Device browsers are then redirected to this URL on client's demand
after the partial logout.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

Is partial logout by default If checked, uses partial logout by default.


5 Digital Services | 366
5.2 Using Digital Services

Generic OpenID Connect

Settings

Authority Standard OpenID connect authority URI of the external provider.

Client ID Unique identifier given by the identity provider.

Client Secret Unique string given by the identity provider.

Logout URL pattern Specifies a URL address with a special token {returnUrl}. The token will be replaced with
a concrete return URL address when an interactive logout is initiated. Leave empty if the identity provider
supports standard OpenID connect endsession endpoint.

Partial logout home URL Specifies a partial logout. Device browsers are then redirected to this URL on client's
demand after the partial logout. Clients can logout manually there.
5 Digital Services | 367
5.2 Using Digital Services

Partial logout URL Specifies a partial logout. Device browsers are then redirected to this URL on client's demand
after the partial logout.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

Is partial logout by default If checked, uses partial logout by default.

Click CHECK to confirm the identity provider configuration is valid.

Generic WS-Federation SAML

Settings

Metadata address Metadata address of your WS-Federation server, e.g. https://yourserver/federation-


metadata/2007-06/federationmetadata.xml.

Wtrealm WS-Federation wtrealm of the application configured in the WS-Federation identity provider.

Partial logout home URL Specifies a partial logout URL address with a special token {returnUrl}. Device
browsers are then redirected to this URL on client's demand after the partial logout. Clients can logout
manually there.
5 Digital Services | 368
5.2 Using Digital Services

Partial logout URL Specifies a partial logout. Device browsers are then redirected to this URL on client's demand
after the partial logout.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

Is partial logout by default If checked, uses partial logout by default.

Click CHECK to confirm the identity provider configuration is valid.

Google

Settings

Authority Base URL address of the Google OpenID Connect authority.

Client ID Unique identifier given by the identity provider.

Client Secret Unique string given by the identity provider.

Use 'email' claim instead of 'sub' claim for the effective subject value. If checked, an email claim (user's email
address within Google authentication) will be used instead of a sub claim (user ID within Google authentic-
ation) to identify the user.

Is partial logout by default Check this if you want to use partial logout by default (the user will be logged out
of the application but will remain logged in to the identity provider service).
5 Digital Services | 369
5.2 Using Digital Services

Integrated Server-side Authentication


Integrated Server-side Authentication can be used to integrate the Digital Advantage SDK's functionality into
an application with its own, already existing, login mechanism.

API keys Unique API key that is used in CreateServerAuthenticatedAccessToken API request, which creates a
token for customer server authentication.

To generate more API keys, click GENERATE API KEY.

NOTE This provider does not create users in the user store.

TIP For more information on how to integrate mobile applications with your server-side authentication,
see Digital Advantage Suite Developers Notes .
5 Digital Services | 370
5.2 Using Digital Services

LDAP

1 Settings

Host name Host name of your LDAP server, e.g. ldap.quadient.eu or 192.168.0.1.

Port Port of your LDAP server. The default value is 389 for the TLS or nonsecure connection, and 636 for the
SSL connection.

Use SSL If checked, the SSL protocol is used, and you can use a self-signed Public certificate for testing purposes.

Protocol version Protocol version of your LDAP server.


5 Digital Services | 371
5.2 Using Digital Services

2 LDAP – User Authorization Configuration

Authorization type Select the authorization type your server supports.

Search scope With the Base option selected, the server looks for users only on the DN (distinguished name)
level. With One Level selected, the server looks for users in one level of directories. With Subtree selected,
the server looks for users in all directories and subdirectories.

Base DN The exact user address on your LDAP server. You can use {UserName} as the key string. It will be replaced
with the user's login name.

User name pattern Pattern of LDAP user names. You can use {UserName} as the key string. With an Active
Directory server, it will be the same as the user login value. In other LDAPs, it will look like uid=Einset→
in,ou=users, dc=example, dc=com.
5 Digital Services | 372
5.2 Using Digital Services

NOTE If sAMAccountName is in use, you must specify the domain containing the user accounts.
The format can be \{UserName} (e.g. EU\{UserName}) or {UserName}@domain (e.g. {UserName}@eu.quadi→
ent.com).

User object filter Filter used when searching for user objects or elements, e.g. (objectclass=*), {UserName}.

Attribute name of Client ID Attribute that will be used as Client ID, e.g. uid.

EXAMPLE
When LDAP returns user data in couplings, e.g. "uid": "janedoe" "cn": "Jane Doe", entering uid
into the field will direct Quadient Cloud to use janedoe as the Client ID. This identifier is then used for
document rights, etc.

CAUTION Any change in the parameter can cause the current client rights (regarding documents)
to be non-functional in applications where this provider is used.

Claims mappings Translation of incoming LDAP claims to OpenIdConnect claims.

Add more claims by clicking the icon.

Attribute name to map groups Name used for mapping groups to users, e.g. (objectclass=*).

3 LDAP – Download Users And Groups Names

To download users and groups from the LDAP server, use the ON / OFF switch. These users and groups will
be listed in an user store in the User Management section.

Define the Account user name and its Password.


5 Digital Services | 373
5.2 Using Digital Services

4 LDAP – Obtain Users Data Configuration

Search scope With the Base option selected, the server looks for users only on the DN (distinguished name)
level. With One Level selected, the server looks for users in one level of directories. With Subtree selected,
the server looks for users in all directories and subdirectories.

Base DN The exact base address on your LDAP server where the servers searches for users.

Filter Standard LDAP filter used when searching for user objects, e.g. (objectclass=*).

Claims Mapping

FullName / Email / LoginName / Status / ClientId Claims used to translate incoming LDAP data to internal
types.
5 Digital Services | 374
5.2 Using Digital Services

5 LDAP – Obtain Users Data Configuration

Search scope With the Base option selected, the server looks for groups only on the DN (distinguished name)
level. With One Level selected, the server looks for groups on one level of directories. With Subtree selected,
the server looks for groups in all directories and subdirectories.

Base DN The exact base address on your LDAP server where the servers searches for groups.

Filter Standard LDAP filter used when searching for user objects, e.g. (objectclass=*).

Claims Mapping

GroupId / Name Claims used to translate incoming LDAP data to internal types.

User map attribute name Name used for mapping users to groups, e.g. (objectclass=*).

Click CHECK to confirm the identity provider configuration is valid.

Configuring LDAP with Admin Account

Conditions

● Users need permissions to list their LDAP entry.

● Enabled LDAP – Download Users and Groups Names switch.

● Admin account can list all users and groups that have access to documents stored in Digital Services.

Limitations

● If a user is in many LDAP groups, the searching might be slow.

● If groups or user configuration is too common, and / or LDAP has many entries, the retrieving data query
is slow.

● All the options must be set correctly.

EXAMPLE An example LDAP configuration with an admin account used for pairing users and groups
(stored in groups):

LDAP – Settings

Host name ldap.forumsys.com

Port 389

Use SSL not checked

Protocol version 3

LDAP – User Authorization Configuration

Authorization type Basic

Search cope Subtree

Base DN DC=example,dc=com
5 Digital Services | 375
5.2 Using Digital Services

User name pattern uid={UserName},DC=example,dc=com

User object filter (&(objectclass=person)(uid={UserName}))

Claims mapping name : cn

email : mail

Attribute name to map groups dn

NOTE If this attribute is empty or "dn",


users will be searched for with users distin-
guished name. Other names will be
searched for in users attribute list.

LDAP – Download Users and Groups Names

Account cn=read-only-admin,dc=example,dc=com

Password password

LDAP – Obtain Users Data Configuration

Search scope Subtree

Base DN DC=example,dc=com

Filter (objectclass=person)

Claims mapping

FullName cn

Email mail

LoginName uid

Status state

ClientId cn

LDAP – Obtain Groups Data Configuration

Search scope Subtree

Base DN DC=example,dc=com

Filter (objectclass=groupOfUniqueNames)

Claims mapping

GroupId cn
5 Digital Services | 376
5.2 Using Digital Services

Name cn

User map attribute name uniqueMember

Configuring LDAP without Admin Account

Conditions

● Users need permissions to list their LDAP entry.

● Disabled LDAP – Download Users and Groups Names switch.

Limitations

● Information only from users entry.

● Groups are stored in an entry, e.g. DN (distinguished name). It is possible that DN is not a stable identifier
of your groups.

NOTE When you move your group to a different LDAP tree part, the DN might change and you
lose access to documents.

● All mandatory options must be set (asterisk symbol).

EXAMPLE An example LDAP configuration without an admin account:

LDAP – Settings

Host name ldap.forumsys.com

Port 389

Use SSL not checked

Protocol version 3

LDAP – User Authorization Configuration

Authorization type Basic

Search cope Subtree

Base DN DC=example,dc=com

User name pattern uid={UserName},DC=example,dc=com

User object filter (&(objectclass=person)(uid={UserName}))

Claims mapping name : cn


5 Digital Services | 377
5.2 Using Digital Services

email : mail

role : memberOf

LinkedIn

Settings

Client ID Unique identifier given by the identity provider.

Client secret Unique string given by the identity provider.

Authorization endpoint OAuth authorization endpoint URI of the identity provider.

Token endpoint OAuth token endpoint URI of the identity provider.

User information endpoint OAuth user information URI of the identity provider.

Scopes Requested scopes on OAuth endpoints during the authentication process.

Add more scopes by clicking the icon.


5 Digital Services | 378
5.2 Using Digital Services

OAuth Token Verification


OAuth Token Verification uses OAuth standards to verify a token supplied by an application (it doesn't provide
user authentication for logging in). It is used for applications using their own user login authentication and for
Quadient Cloud to accept this login.

1 Token Introspection Endpoint Configuration

To learn more about token introspection, read the OAuth 2.0 Token Introspection instructions.

Type Token introspection type of the http or https request (POST or GET).

URL The URL address of the token introspection endpoint where the token can be verified. Insert the placeholder
{token}, e.g. https://yourserver/oauth2/v3/tokeninfo?access_token={token}.

Headers The header of token introspection request. Insert the placeholder {token}, e.g. Authentication {token}.

Body The body of the token introspection request. It is available only for the POST request type. Insert the
placeholder {token}, e.g. {"authToken"; {token}}.

Subject mapping A claim name used as a subject name in the JSON response (Sub, ClientId, or Username).
5 Digital Services | 379
5.2 Using Digital Services

2 Self Registration

Use the ON / OFF switch to enable Self Registration. The User info endpoint is an OAuth 2.0 Protected Resource
that returns claims about the authenticated end-user. To obtain the requested claims about the end-user, the
client makes a request to the endpoint. These claims are normally represented by a JSON object that contains a
collection of name-value pairs for them.

Type User info type of the http or https request (POST or GET).

URL The URL address of the user info endpoint where the data can be retrieved. Insert the placeholder {token},
e.g. https://yourserver/oauth2/v1/userinfo?alt=json&access_token={token}.

Headers The header of user info request. Insert the placeholder {token}, e.g: Authentication {token}.

Body The body of the user info request. It is available only for the POST request type. Insert the placeholder
{token}, e.g. {"authToken"; {token}}.

Example scenario
Configuring OAuth Token Verification using Google Developers Console:

EXAMPLE

1. Go to https://developers.google.com/oauthplayground/ .

a) In Step 1: Select & authorize APIs, select People APIv1 and check: ht→
tps://www.googleapis.com/auth/userinfo.email and https://www.googleapis.com/auth/user→
info.profile.

b) Click Authorize APIs.

c) Sign in with your Google account.


5 Digital Services | 380
5.2 Using Digital Services

d) In Step 2: Exchange authorization code for tokens, click Exchange authorization code for
tokens.

e) Copy the created access token, which you can then use in the token parameter when calling
the CreateExternalTokenVerifiedAccessTokenRequest request.

2. Configure the OAuth Token Verification provider in Digital Services | Authentications:

a) Click New to create new instance of the OAuth Token Verification provider.

b) In the Token Introspection Endpoint Configuration section, select GET as the Type and insert
https://www.googleapis.com/oauth2/v3/tokeninfo?access_token={token} into the URL field.

c) Use the ON / OFF switch to enable Self Registration.

d) In the User info endpoint configuration section, select GET as the Type and insert ht→
tps://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token={token} into the URL
field.

e) SAVE the authentication configuration.

3. Configure a User Store in Digital Services | User Management:

a) Click New to create a new user store.

b) Set up your user store as desired. Make sure to use the ON / OFF switch to enable Self-Re-
gistration.

c) SAVE the user store.

4. Configure an application in Digital Services | Applications:

a) Click New to create a new application.

b) Set up your application as desired. In the Authentication section, click ADD IDENTITY
PROVIDER and select the newly created OAuth Token Verification provider.

c) SAVE the application.

5. The configuration is complete. You can now call the CreateExternalTokenVerifiedAccessTokenRe-


quest request.
5 Digital Services | 381
5.2 Using Digital Services

Salesforce

Settings

Client ID Unique identifier given by the identity provider.

Client secret Unique string given by the identity provider.

Authorization endpoint OAuth authorization endpoint URI of the identity provider.

Token endpoint OAuth token endpoint URI of the identity provider.

User information endpoint OAuth user information URI of the identity provider.

Scopes Requested scopes on OAuth endpoints during the authentication process.

Add more scopes by clicking the icon.


5 Digital Services | 382
5.2 Using Digital Services

Claims mappings Translation of incoming LDAP claims to OpenIdConnect claims.

Add more claims by clicking the icon.

Partial logout home URL You can specify a partial logout. Device browsers are then redirected to this URL on
client's demand after the partial logout. Clients can logout manually there.

Partial logout URL You can specify a partial logout. Device browsers are then redirected to this URL on client's
demand after the partial logout.

NOTE {returnUrl} is URL-encoded once. Use {{returnUrl}} if you need double URL-encoding.

Is partial logout by default Check this if you want to use partial logout by default.

Simple Authentication
Less sophisticated method of identity provision. If you use simple authentication, you cannot configure any user
rights.

Settings

Password (for backward compatibility) Password string of your choice.

WARNING This is an obsolete option. Use it only for backwards compatibility with version 11.0
applications.

5.2.4 User Management


Here you can create user stores, and directly manage clients using the Inspire Authentication identity provider.
For example, you can create accounts, reset passwords, edit details, etc.
5 Digital Services | 383
5.2 Using Digital Services

A user store containing a list of registered clients is displayed when the application uses the LDAP identity provider.
These clients cannot be modified.

Managing User Stores


The available actions in the action bar and in context menu change based on the selected items:

New Creates a new user store.

Refresh Refreshes the user stores.

Edit Edits the user store name and settings.

Clients Manages the registered clients.

Delete Deletes the user store.

The section is divided into columns:

Name Name of the user store. It does not have to be unique.

Apps Number of applications the user store is used in.

Clients Number of clients in the user store.

User Store Details


For more details, click the related icon.

User store ID Unique identifier generated automatically for every user store.

Used in application(s) Applications the user store is used in.


5 Digital Services | 384
5.2 Using Digital Services

5.2.4.1 Creating User Stores


To add a new user store:

1. Click New. The Create New User Store window opens.

2. Specify the details:

Name Name of the user store. It does not have to be unique.

1 Settings

Self-registration If enabled, clients can register their accounts in the mobile application.

IMPORTANT Used for Inspire Authentication as well as 3rd party services. If the user tries
to log in to the application using e.g. Google authentication, the option must be enabled for
the user to be able to log in.

Change password by Administrator If enabled, you can change clients' passwords.

Password-reset using email address If enabled, clients can reset their password by sending a password-
reset link (password-reset code) to their email address.
5 Digital Services | 385
5.2 Using Digital Services

2 Password Policy

Defines the required password policy. The functionality is the same as for Account Policy in the Adminis-
tration section.

3 History and Lockout Policy

Defines the password validity period and login restrictions. The functionality is the same as for Account
Policy in the Administration section.

WARNING It is recommended to enable all the Password Policy and History and Lockout Policy
options and leave the default values, or set higher ones. For further information about password
security and methods to avoid security risks, see the Authentication General Guidelines .

3. Click SAVE to confirm. The user store is created.

5.2.4.2 Managing Clients


Here you can manage registered clients of applications using the native Inspire Authentication identity provider.
Also, a list of registered clients is displayed when the application uses the LDAP identity provider.

NOTE You cannot manage clients with identity providers other than Inspire Authentication and LDAP
in this User Management section.
5 Digital Services | 386
5.2 Using Digital Services

All Clients

Managing Clients
The available actions in the action bar and in context menu change based on the selected client's state and rights.
You can perform the following actions:

New Creates a new client.

Import Imports clients from an XLSX file.

Refresh Refreshes the state.

Edit Client Edits the selected client's details.

Edit Metadata Edits the selected client's metadata.

Send Activation Email Sends an email with an activation link (activation code) to the selected unverified
client.

Reset Client's Password Sends an email with a reset-password link (reset-password code) to the selected
client.

Block Client Forces a logout and prevents the client from logging in to the application (blocked clients
can be unblocked later).

Delete Deletes the selected client.

NOTE Depending on the size of the screen and the number of actions listed in the action bar, you can
click More Actions to access additional actions.

This section is divided into columns:

Name Client's full name.

Login Name Name which the client uses to log in to the mobile application.

Email Valid email address where the client receives informative emails.

Groups Groups to which the client is added.

State Account state:


5 Digital Services | 387
5.2 Using Digital Services

Enabled Enabled account, can log in to applications and receive documents and notifications.

Unverified Unverified account:

● The client registered in the mobile / web application, and has not clicked on the
link in the received activation email.

● The client has not clicked on the link in the received activation email you had sent.

Blocked Blocked account, can't log in to applications.

Clients Detail
For more details, click the related icon.

Client ID Unique identifier generated automatically for every registered client.

Groups Groups the clients are added to.

Creating New Users


To create a new user:

1. Click New. The Create New Client dialog opens.

2. Specify the details on these tabs:

● Account Settings

● Basic Information

● Custom Claims

● Groups

● Password
5 Digital Services | 388
5.2 Using Digital Services

1 Account Settings

Login name Login name the client uses to log in to the application.

Email Valid email address where the client receives informative emails.

Language Language the client uses in the application / emails.

Account Activation If you specify Email, you can enable the Instant client approval option which makes
the client account automatically enabled. These users don't receive any activation emails.

NOTE The mobile / web application creator can decide whether clients log in with their login
name or email address.

2 Basic Information

First name

Last name

Middle name

Phone
5 Digital Services | 389
5.2 Using Digital Services

3 Custom Claims

You can manage data used by OAuth authentication and Digital Advantage SDK.

Name

Value
To add a new claim, click ADD CUSTOM CLAIN.

4 Groups

You can add clients to specific groups.

Group names Groups the client is added to.

To add a user to a group, click ADD GROUP and select a group.

5 Password

You can change a client's account password.

NOTE Changing clients' passwords is only available when Enable change password by Admin-
istrator is enabled in the User Store settings.
5 Digital Services | 390
5.2 Using Digital Services

New password The password must meet the policy requirements specified when you create the applic-
ation's user store.

Retype password Password must be retyped to match the New password.

3. Click SAVE to save the client changes. The client is created.

Editing Metadata
You can add specific metadata to clients for further processing and filtering.

Click Edit Metadata to open the Metadata dialogue.

WARNING Do not use client metadata as a form of user rights.

To add new metadata:

1. Click New . The Add New Metadata dialog opens.


5 Digital Services | 391
5.2 Using Digital Services

2. Specify the following:

Name Parameter name. It must be unique within the application.

Value Parameter value.

Application Specifies which application can access the metadata.

3. Click SAVE to confirm the changes and add the metadata.

NOTE You can also click BACK to return to the main Metadata window where you can Edit
or Delete the items.

Importing Clients from XLSX Files


You can import clients from an XLXS file. To do so:

1. Click Import. The Import Clients dialog opens.


5 Digital Services | 392
5.2 Using Digital Services

2. Click the icon and select the XLSX file with client records. The records are validated.

The XLSX file must have the correct data structure. You can download a sample file with a proper data
structure by clicking DOWNLOAD SAMPLE.

Client Account Activation


You can use the NO / YES switch to send activation emails to selected applications. This feature is
available only when the user store is connected to an application.

3. Click IMPORT. The clients are imported. Optionally, you can download a validation report to see which
records are not valid by clicking DOWNLOAD VALIDATION REPORT.

You can download a report in case the import of some users fails, i.e. users with the same login name cannot be
imported again. Click DOWNLOAD REPORT to download it.
5 Digital Services | 393
5.2 Using Digital Services

Correct XLSX file data structure.


Correct XLSX file data structure.

Login Email Phone Num- Last First Middle Lan- Groups


Name ber Name Name Name guage

j.smith j.smith@test.com (219) 756- Smith John Alan en-US group01


9405

Sending Activation Emails


If you added a client manually and did not enable the Instant client approval option, you need to send an email
with an activation link to the client.

To do so, click Send Activation Email, select the application and click SEND to confirm. When clients have
the application installed on their devices, they can open the application by clicking the generated link and finishing
the activation process.
5 Digital Services | 394
5.2 Using Digital Services

EXAMPLE An email containing an activation link.

Sending Password-reset Emails


You can send emails with password-reset links to clients, so they can use it to reset their passwords.

To do so, click Reset Client's Password, select the application and click SEND to confirm. When clients have
the application installed on their devices, they can open the application by clicking the generated link and finishing
the reset-password process.
5 Digital Services | 395
5.2 Using Digital Services

EXAMPLE An email containing a password-reset link.

Sending Self-registered Emails


If you enable Self registration in user store settings, clients can register their accounts directly in the application.
As soon as they create the user account, they receive an email with an activation link. When clients click this
generated link it opens the application, so they can finish the account activation process.

WARNING This type of registration only works in applications built on Digital Advantage SDK.
5 Digital Services | 396
5.2 Using Digital Services

EXAMPLE An email containing an activation link.

TIP You can customize the activation and password-reset email in the email templates management
section.

Groups
You can add clients to groups. When you need to specify document access rights to certain groups, you simply
select the created groups.
5 Digital Services | 397
5.2 Using Digital Services

Managing Groups
The available actions in the action bar and in context menu change based on the selected items. You can perform
the following actions:

New Creates a new group.

Refresh Refreshes the group.

Edit Edits the group name and description.

Delete Deletes the selected group.

This section is divided into columns:

Type

Name Name of the group, it must be unique.

Users Number of clients in the group.

Description Brief description.

Role ID Unique identifier generated automatically for every created group.

TIP You can also double-click a group Name to view and manage clients in the group.

Adding New Groups


To add a new group:

1. Click New. The Add New Group dialog opens.


5 Digital Services | 398
5.2 Using Digital Services

2. Specify the following:

Group name

Description

3. Click SAVE to confirm. The group is added.

Managing Clients in Groups


You can also manage clients directly in the created groups. The functionality is the same as for managing all clients,
except Remove From Group (this action does not delete the client from the user store, it only removes the
client from the group). You can also add clients to groups by clicking Add Client and selecting New Client
(to create a new client and assign them to the group immediately) or Existing Client (to select an already
existing client and add them to the group).

5.2.5 Services
Services track and collect data about the communication between Digital Services applications and mobile ap-
plications installed on clients' mobile devices, such as number of visitors, opened documents, conversions, used
browsers and operating system etc. You can also view the realtime statistics of the documents.
5 Digital Services | 399
5.2 Using Digital Services

Managing Services
Available actions in the action bar and in context menu change based on the selected items and their settings.
You can perform the following actions:

New Creates a New Service or a Legacy Service.

Edit Edits the service name and authentication (service type cannot be edited).

Reports and Statistics Opens detailed data communication statistics.

Download Report Downloads a CSV file with detailed data communication statistics.

Create API Key From Listener ID Creates an API key using the service's Listener ID.

The created API Key can be found in the API Keys section in Administration. You can use this option to
use an API key as identification for enhanced data communication while still using a legacy service.

Delete Deletes the service.

The section is divided into columns:

Service Name Name of the service, doesn't have to be unique.

Type Communication type of the service. Services created before Quadient Cloud version 11.4 have the Unspe-
cified type.

Authentication Valid OAuth authentication is required.

Status Current usage:

Connected Service is used and tracks activity.

No Listener Service is not used.

In Concurrent Collision 2 or more sources (listeners) request data at the same time.

Created Date and time the service was created.

NOTE One service can track and collect data for any number of documents in different applications.
5 Digital Services | 400
5.2 Using Digital Services

Service Details
For more details, click the related icon.

1 Basic Info

Service ID A unique identifier string used for integration with Inspire / Quadient products and Digital Advantage
SDK.

Created Date Date and time the service was created.

Type of Service Type of the service: New service created via GUI, Legacy service created via GUI, or Converted
from legacy service via MultiRetrieveData API request.

2 Listener

Listener ID String used to authenticate API calls.

Description Brief description.

IMPORTANT This information is available only for legacy services.

3 Connection(s)

Application Name Application name the service is connected to.

Application ID ID of the application the service is connected to.

4 Statistics

Number of Sent / Delivered / Opened documents in all applications the service tracks and collects data for.

NOTE Statistics details are only available for Data Communication services.

5.2.5.1 Creating New Services


Enhanced data communication service which uses API keys as a form of identification.
5 Digital Services | 401
5.2 Using Digital Services

IMPORTANT This type of service cannot be used with the obsolete RetrieveData request).

To add a new service:

1. Click New. The Create New Service dialog opens.

2. Specify the details:

Service name Name of the service. It does not have to be unique.

Type Communication type the service tracks through API services. The type cannot be changed once
the service is created.

● Data Communication – Enables one-way and two-way data communication between mobile /
web applications (Dynamic Communications) and your enterprise system (StoreIncomingData
and StoreAndRetrieveReplyData API services).

● User Activity Tracking – Tracks client activity in mobile / web applications.

The MultiRetrieveData API service returns the clientId, time, and notificationRegistrationStatus
values. Data is sent once an hour for each created token (each client).

NOTE To track client activity, the User Activity Tracking service must be selected in the
Events Monitoring.

● Public Dc State Management – Enables saving Dynamic Communications document states and
sending them to email addresses.
5 Digital Services | 402
5.2 Using Digital Services

Authentication If checked, the service requires a valid OAuth (Open Authentication) authentication for
data communication (both one-way and two-way communication).

Only finished This option is available only for services of the Data Communication type. If checked, only
Dynamic Communications data marked as finished will be saved in the service.

3. Click SAVE to confirm. The service is created.

NOTE The maximum number of services is 1,000.

5.2.5.2 Creating Legacy Services


Legacy services use Listener ID as a form of identification. For enhanced data communication, create services
of the new type (identification is then carried out using API keys).

IMPORTANT If you use a legacy service with enhanced data communication (e.g. with Scaler 12.4 and
newer), the service will be automatically converted to the new service type.

To add a new legacy service:

1. Click New and select Legacy Service. The Create New Legacy Service dialog opens.
5 Digital Services | 403
5.2 Using Digital Services

2. Specify the details:

Service name Name of the service. It does not have to be unique.

Type Types of services are identical to the New Service.

Authentication If checked, the service requires a valid OAuth (Open Authentication) authentication for
data communication (both one-way and two-way communication).

Only finished This option is available only for services of the Data Communication type. If checked, only
Dynamic Communications data marked as finished will be saved in the service.

Listener Connection When you use a listener ID for a service, it only receives the obsolete RetrieveData
and StoreReplyData API calls with the matching Listener ID. This ensures 2 or more listeners won't
collide on a single service, and also better traceability.

● Listener ID – Any string used to authenticate API calls.

● Description – Brief description, e.g. Service used with Inspire Scaler.


5 Digital Services | 404
5.2 Using Digital Services

TIP When calling an API request (e.g. verifyService) you can use either the Listener ID or an
API key as a form of identification for a service with a configured Listener ID.

3. Click SAVE to confirm. The service is created.

5.2.5.3 Analyzing Reports and Statistics


To see the information about data communication, e.g. documents visit rate, data related technology used to
manipulate the documents etc., click Reports and Statistics.

Select from the sections:

Realtime Statistics

General Statistics

Realtime Statistics
Displays realtime statistic about how the clients manipulate your documents for a period of the last hour, or last
24 hours (without any delay).
5 Digital Services | 405
5.2 Using Digital Services

1 Actual Activity

Line chart with the number of opened documents.

2 Activity in Documents

Client Activity Total visits of documents (opened documents).

Sent Successfully sent to the clients.

Opened Opened but the client has not filled any data.

Started Opened and the client has started filling data.

Finished The client has finished filling data and clicked on the FINISH / SUBMIT button.

3 Active Attempts

Shows details about current communication between the client (mobile application or web browser) and Digital
Services, and between enterprise (on-premise server) and Digital Services for the particular service. The function-
ality is the same as for the Service Monitoring.
5 Digital Services | 406
5.2 Using Digital Services

General Statistics
Displays in-depth statistics of the documents. Select from the sections:

● Overview

● User Behavior

● Technology

Overview
Displays statistics for particular applications.

1. Specify the time period by using the From and To date pickers.

2. Select the Application name in the combo-box.

3. Click FILTER. The data is filtered:

1 Actual Opened Documents A line chart displaying a number of opened documents for a selected
time period. The period can be adjusted on the right side of the chart.

2 Visitors Shows the visit rate of your documents.


5 Digital Services | 407
5.2 Using Digital Services

3 Dynamic Communications Number of sent / opened documents.

4 Conversions Completeness of the documents: finished and opened.

5 Used Devices Number of different devices used to open the documents: Desktop, Tablets and
Mobile.

6 Used Browsers Internet browsers used to open the documents: Other, Android Browser, Internet
Explorer, Firefox, Chrome and Safari.

TIP You can also see a line chart with the number of opened documents over the time period selected
in the combo-box to the right side of the chart.

User Behavior
Displays statistics about how users reacted to the documents in the application on their devices.

NOTE Filtering data is the same as for Overview and Technology.


5 Digital Services | 408
5.2 Using Digital Services

1 Overall Visits

Total number of document visits.

2 Conversions

Completeness of the documents in percentage: ratio between Completed and Not opened documents.

Conversion Rate Clients who finished the document.

Bounce Rate Clients who did not open the document.

3 Average Time

Average time clients spent on the documents.

4 Steps Statistics

Detailed statistics about particular steps in the documents:

Service Step ID Unique identifier of the step.

Visits Total number of clients who reached the step.

Bounce Rate Clients who stopped working with the document on the step.

Avg. Session Duration Average time clients spent in the step.

TIP You can also see a line chart with the number of opened documents over the time period selected
in the combo-box to the right side of the chart.

Technology
Displays statistics about devices the clients used to open the documents.
5 Digital Services | 409
5.2 Using Digital Services

NOTE Filtering data works the same as for Overview and User Behavior.

The Overall Visits, Conversions and Average Time works the same as for the User Behavior.

The Technology Statistics has the following tabs:

Browser
Statistics related to the particular browser the clients used to open the documents.

Name Browser used to open the documents.

Visits Number of total visits.

Postponed Clients who completed the document offline and data was sent after the reconnecting. This statistic
is available only for One-Way Data Communication and for Dynamic Communications.

Bounce rate Clients who did not open the documents.

Avg. Session Duration Average time clients spent on the documents.

Devices
Statistics (same as for the Browser tab) related to the devices used to open the documents.
5 Digital Services | 410
5.2 Using Digital Services

TIP You can also see a line chart with the number of opened documents over the time period selected
in the combo box to the right side of the chart.

5.2.5.4 Downloading a CSV File with Statistics


You can download a CSV file with the in-depth statistics for a particular data communication service.

To download the data:

1. Select a service and click Download Report. The Download Service Report dialog opens.

2. Specify the time period by using the From and To date pickers.

3. Click DOWNLOAD DATA to confirm. The CSV file is downloaded

NOTE The statistics is in the RAW format and unstructured, so the file size may be large.

CSV File Values


The values are in this order:

1. serviceName – Name of the service.

2. serviceId – Unique ID used for integration with Inspire / Quadient products and Digital Advantage SDK.

3. dataId – ID for additional information.

4. clientId – Unique identifier of the client.

5. sessionId – ID of the session in which data are transferred.

6. lastStepId – Last-visited step.

7. ipAddress – IP address the request was made from.


5 Digital Services | 411
5.2 Using Digital Services

8. userAgent – Details about the web browser / operating system.

9. size – The amount of data stored for the service in Quadient Cloud.

10. time – Date and time the request was made.

11. latitude – North–South position on the Earth the request was made from.

12. longtitude – East-West position on the Earth the request was made from.

5.2.6 Settings
The Settings section has the following tabs:

● Deployment

● Informative Emails

5.2.6.1 Deployment
You can configure the deployment of your built applications as updates to applications you have set up in applic-
ation stores. You can build and deploy these applications in the build settings.

WARNING Before the built application will deploy and update the application in the store automatically,
the application has to be first manually set up in the particular application store (e.g. have a bundle ID
and fulfill all the other requirements which differ for each store).
5 Digital Services | 412
5.2 Using Digital Services

To configure deployment to an application store:

1. Use the ON / OFF switches to enable deployment to the specific application stores and click ADD
CONFIGURATION.

2. The specified application store Add Configuration dialog opens.

Google Play
Before you can deploy Android application updates, you must first create the application in your Google
Play store.

IMPORTANT For the description of the procedure, read the Upload an app instructions.
5 Digital Services | 413
5.2 Using Digital Services

Specify the following:

Name Name of the store. It does not have to be unique.

Account email Email address connected to the Google Play account.

Certificate Certificate used for authentication (any self-signed certificate with an arbitrary expiration
date can be used).

NOTE For more information on how to create a self-signed certificate, read the How do I
Create a Self-Signed Certificate for an Android App instructions.

Password Password of the certificate used for authentication.

App Store
Before you can deploy iOS application updates, you must first create the application in your App Store
store.

IMPORTANT For the description of the procedure, read the in-depth App Store instructions, e.g.
Add an app to your account , Enter app information , and Add app icon, app previews and
screenshots .
5 Digital Services | 414
5.2 Using Digital Services

Specify the following:

Name Name of the store. It does not have to be unique.

Apple ID Email address connected to the App Store account you wish to deploy to.

Team ID Unique identifier used for signing built custom applications. It allows Quadient Cloud to recognize
them. You can get it from yourApple Developer portal account.

Appaloosa Store
Before you can deploy application updates (both Android and iOS) to Appaloosa, you must first create
the application in your Appaloosa store.

IMPORTANT For the description of the procedure, read the Upload applications to Appaloosa
instructions.
5 Digital Services | 415
5.2 Using Digital Services

Specify the following:

Name Name of the store. It does not have to be unique.

Store token A token generated in Appaloosa which allows you to deploy applications to a particular
store. You can find the token in the API & SDK tab of your store's Settings.

Store ID An identifier of your Appaloosa store which allows you to update the application's store listing
directly from Quadient Cloud. You can find it in the API & SDK tab of your Appaloosa store's Settings.

API secret key An API key generated in Appaloosa which allows you to update the application's store
listing directly from Quadient Cloud. You can find the key in the API & SDK tab of your Appaloosa
store's Settings.

3. Once you have specified the details, click APPLY. The deployment configuration is added to a table of
configured deployments.

TIP Identification details of each application store configuration (e.g. names, certificates, store
tokens) are displayed in a table for each store.

4. To save all your application store deployment configuration, click SAVE. Additionally, you can delete stores
by clicking the icon or edit them by clicking their name.

IMPORTANT To get the deployment store's identification (used when remapping stores during import),
click the created store's name to open the Edit Configuration dialog. If you have saved your configuration,
the ID value will be displayed.

NOTE The validity of the configuration is not checked automatically, the connection must initially be
checked in each application store. If the configured store is used in Store Listing and a build configuration,
it cannot be deleted (for deletion, the store must be first removed from the configurations).

The application is deployed in the Builds section.


5 Digital Services | 416
5.3 API Services

5.2.6.2 Informative Emails


You need to configure the settings for informative emails sent to the clients, e.g. emails with links to unfinished
dynamic communications documents, activation and reset password emails.

Specify the following:

Sender email Verified email address used to send informative emails, e.g. info@froodecco.com.

Sender name Sender name used in email headers as the "From" value.

Confirm by clicking SAVE.

WARNING You need to have a verified email address and domain , so you can select the Sender email.
Otherwise, clients won't receive any informative emails.

Price of the informative emails is deducted form your credit balance.

5.3 API Services


In this section See also

Client API Performance and Limits


Enterprise API Swagger (OpenApi Specification
Generic Cloud Responses Error Codes for Enterprise API
Ping API Operations

The communication between your applications and Digital Services is established using a set of services.
5 Digital Services | 417
5.3 API Services

WARNING IP filtering affects all the API services. If the feature is enabled, you can only call the APIs
from the specified IP addresses (addresses that are not specified may be restricted or even blocked from
accessing Quadient Cloud services).

For ease of explanation, let's categorize the services that are at your disposal into the following groups: Client
API and Enterprise API.

An example of using API services from both groups is the two-way data communication:

Quadient Cloud

API request
API request + API key
Digital Services

Client Enterprise

Dynamic Communications
or Inspire Scaler Inspire Interactive
Custom Application

Inspire
Database
Production Server

Performance and Limits


Quadient Cloud API services have general performance expectations and limits, e.g. the number of concurrent
requests that may come in at one time is restricted, this limit helps provide a level of protection from random and
unexpected surges in request volumes that threaten availability and performance.

● Maximally 100 operations per second can be performed concurrently, of which the number of write oper-
ations can only be up to 40.

● Responses for read and write operations are received in under 5 seconds in 99.9th percentile of cases.

NOTE Data communication and Enterprise solutions (called once per minute) with large volume of data
are an exception regarding the standards described above.

For more information about the types of specific API services, see the API Operations section.

Swagger (OpenApi Specification)


Swagger is the largest framework for designing APIs using a common language and enabling the development
across the whole API lifecycle, including documentation, design, testing, and deployment. The framework provides
a set of tools that help generate code and install self-generated documentation for web services. Swagger
framework is supported by such corporations as Google, Microsoft, or Atlassian and is the most popular framework
that first set the standard for documentation of API services – OpenAPI Specification .

You can get the Quadient mobile backend API documentation conforming to the OpenAPI 3.0 specification
standards as a json file at:

https://quadientcloud.eu/doc/OpenApi/MobileBackend.json
5 Digital Services | 418
5.3 API Services

To view this documentation, upload the file into e.g. the Swagger Editor .

5.3.1 Client API


API services for Dynamic Communications and custom applications. They either use no authentication and
communication is only identified by a serviceId parameter, or an authentication using an OAuth token may be
required.

They may require to be secured if it has been defined as such within the related applications created in Digital
Services. The authentication is ensured via the OAuth protocol. To ensure that such services work correctly, an
identity provider must be configured within the related application. The availability of the documents with which
you can manipulate using these services depends on the access rights defined by the enterprise system.

WARNING All API requests containing the serviceId parameter must correspond to the service type
specified in the Services section for particular services.

Header of API requests


To authenticate a client API request, you must configure the Authorization parameter within the request's
header:

● Authorization: – Located in the http header and the value must be an authorization OAuth protocol token
issued by an identity provider. Each client application must deal with its identity provider communication
on its own because we do not provide the related support within the Digital Advantage SDK.

EXAMPLE
Authorization: eyJraWQiOiIxTk9HUU1BVjBVWFc2TFExVFI0QjQ2T1pUIiwiYWxnIjoiSF

If authentication is not used, the userLicenseId parameter is used for licensing purposes to identify different
devices:

● userLicenseId:– Unique identifier of the client stored in local storage of the used browser. This ID is then
used in all dynamic communications for the given device. This applies to one-way and two-way commu-
nication of DC components.

See the Licensing section for more information.

The Client API services are further divided into the following groups:

● Data Communication

● Content Delivery

● Mobile Push Notification

● User Account Association

● Other
5 Digital Services | 419
5.3 API Services

NOTE The maximum size of the metadata's value parameter in a request is 1MB.

5.3.1.1 Data Communication


Being a part of the client side of the data communication, these services, with the help of Digital Services, provide
your Dynamic Communications or custom applications with a means of communication with your enterprise
systems.

NOTE Both one-way and two-way communication scenarios are supported.

If the used service requires secured communication (Client Authentication required is checked), enter values for
authentication in a request header, otherwise such parameter cannot be viewed in a web browser. It can be run
via Digital Advantage SDK.

These data communication services include:

● StoreIncomingData

● StoreAndRetrieveReplyData

● RetrieveReplyData

StoreIncomingData
Request
Sends client data to Quadient Cloud where they are temporarily stored and then retrieved by the enterprise
system (via the MultiRetrieveData service). At the same time, numbers in statistics are updated.

One request with the finished state set to true can contain up to 20 MB (if false, then this request can contain
only up to 4 MB). In addition, the data for one service stored in Quadient Cloud cannot exceed the overall size of
5 Digital Services | 420
5.3 API Services

1 GB. If more data is received, they will not be stored. To free the available capacity, you can call the DeleteData
service which completely removes the stored data for the specified Service ID.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/StoreIncomingData

service and specify these parameters:

● serviceId – Unique ID of the data tracking service.

● applicationId – Automatically generated unique ID used for further integration with the mobile application.

● media – What device was used to open a dynamic communication. The value of the parameter is a com-
bination of two characters:

○ first character – A number, specifying a type of used device (0 for a mobile phone, 1 for a tablet, 2
for a desktop, 3 for a large desktop)

○ second character – Either p or l, specifying whether the device is in a portrait or a landscape mode.

● dataId – ID for entering additional information such as name of the WFD file or version, e.g. Home Insurance
1.

● clientId – Unique identifier of the client, e.g. 2NXYxNoGUchQZlBAqf9uXt. This field is optional. If the data
communication comes from an application based on Digital Advantage SDK, this clientId represents a
logged in client.

● sessionId – Identifier of the session in which the data are transferred.

IMPORTANT The parameter is valid while the client is filling in a form and the data is transferred
via a service. In case the form is completed (the finish parameter is used), a new sessionId will
be generated.

Do not duplicate the parameter for more client sessions or services, each session and service must
have its own unique sessionId.

● lastStepId – Last-visited step of, for example, a form contained in your dynamic communication. In Dy-
namic Communications, the value is specified in the currentStepID field. As soon as it is updated, data
selected in the Mapping Property Editor are sent to Quadient Cloud.

For the number of Opened and Started applications to be counted correctly, ensure that this field is specified
only when a client starts filling in the form. This can be done using a script entered into the Edit expression
dialog that opens when you select Expression from the currentStepID's Value type combo-box located
at the bottom-right corner of the Properties tab:

EXAMPLE This sample script sends the currentStepID as an empty string when a user is on the
first step of a multiple steps form which contains a Content Switching component:
let actualContentIndex = dataCtx.getActualContentIndex();
return actualContentIndex === 0 ? "" : "Step_" + actualContentIndex;
5 Digital Services | 421
5.3 API Services

If the currentStepID was not empty, the number of Started applications in the statistics would in-
crease.

● creationTime – Date and time the request was sent by the client in the UTC format.

● finished – Specifies whether the dynamic communication was completed or not, i.e. if the Submit event
was called.

● data – Client data in the JSON format.

● offlineRequest – The true value indicates that the data transfer has been postponed due to the client
being offline.

EXAMPLE
{
"serviceId": "69696969-6969-6969-6969-696969696969",
"offlineRequest": true,
"applicationId": 1389,
"dataId": "template2",
"clientId": "54N5si8yOYOcqz1IghWne8",
"sessionId": "sd5d8g8t-49j7-fe4a-8856-4sd8asd48as8",
"lastStepId": "0000003",
"finished": true,
"creationTime": "2016-02-07T13:45:30Z",
"latitude": 40.591858,
"longitude": 17.274424,
"media": "0P",
"data": {
"survey": {
"questionId": "x46a7",
"answer": "yes"
}
}
}

StoreAndRetrieveReplyData
Request
Sends client data to Quadient Cloud where they are temporarily stored telling the client to expect a response
from the enterprise system. Once the enterprise system retrieves the data (via the MultiRetrieveData service), it
replies back to Quadient Cloud (via the MultiStoreReplyData service) indicating to the client that it can retrieve
the requested data.

If the requested data are not available at the time when this service is called, the request is held until the data
become available, i.e. the method of HTTP long polling is implemented. If a timeout occurs, you can resume
waiting for the response by calling the RetrieveReplyData request.

One request with the finished state set to true can contain up to 20 MB (if false, then this request can contain
only up to 4 MB). In addition, the data for one service stored in Quadient Cloud cannot exceed the overall size of
5 Digital Services | 422
5.3 API Services

1 GB. If more is received, they will not be stored. To free the available capacity, you can call the DeleteData service
which completely removes the stored data for the specified Service ID.

Send the request to the

https://companyname.quadientcloud.eu/api/longpoll/MobileBackend/StoreAndRetrieveReplyData

service and specify these parameters:

● serviceId

● dataId

● clientId

● sessionId

● lastStepId

● finished

● media

● data

● creationTime – Date and time the request was sent by the client in the UTC format.

● latitude – Pinpoints the latitude coordinate of the client's location at the moment of the data dispatch.

● longitude – Pinpoints the longitude coordinate of the client's location at the moment of the data dispatch.

● clientStamp – Alphanumeric designation of the request used by the client to identify the response. The
designation is used if a timeout occurs and the RetrieveReplyData service is called. Therefore, make sure
that the designation is uniquely configured for each request (e.g. a GUID, or another unique alphanumeric
string).

EXAMPLE
{
"serviceId": "a0639ddd-c377-45cf-af18-d1400496c14f",
"dataId": "template2",
"clientId": "2X5SDA67",
"sessionId": "cc8cd95c-7a93-4553-ac0e-73835442b3e9",
"lastStepId": "0000001",
"finished": true,
"creationTime": "2016-01-07T13:45:30Z",
"latitude": 40.591858,
"longitude": 17.274424,
"clientStamp": "73c60ebd-37d6-466f-acc5-5a00c830f3b5",
"media": "0P",
"data": {
"customProperty1": "data1",
"customProperty2": "data2"
}
}
5 Digital Services | 423
5.3 API Services

RetrieveReplyData
Request
Forces the client to resume monitoring for a data response from the enterprise system.

Scenarios in which you can use this service include:

● The StoreAndRetrieveReplyData service times out while waiting for the requested data to become available.

● The network connection fails.

If the requested data are unavailable and RetrieveReplyData times out as well, you can call it again to resume
the monitoring process.

Send the request to the

https://companyname.quadientcloud.eu/api/longpoll/MobileBackend/RetrieveReplyData

service and specify these parameters:

● serviceId

● dataId

● clientId

● sessionId

● clientStamp – Assigns an alphanumeric designation to the request. The designation is used by the client
to identify the response. Therefore, make sure that the designation is uniquely configured for each request
(e.g. a GUID, or another unique alphanumeric string). The value of this parameter must correspond to the
value of the clientStamp parameter configured within the StoreAndRetrieveReplyData service.

EXAMPLE
{
"serviceId": "69696969-6969-6969-6969-696969696969",
"dataId": "template2",
"clientId": "2X5SDA67",
"sessionId": "sd5d8g8t-48t7-fe4a-8856-4sd8asd48as8",
"clientStamp": "123456"
}

5.3.1.2 Content Delivery


Makes the documents uploaded into an Quadient Cloud application accessible for end-users with an application
and enables the enterprise system content to be uploaded into an application via API.

Lists and downloads documents (to which you have access), also their resources, from the Content Delivery
Service, also manages the documents states.
5 Digital Services | 424
5.3 API Services

The services here must always be authenticated via the OAuth protocol. Communicating using the POST method
of the HTTP protocol, these services include:

● ContentList

● ContentListUsers

● ContentListResources

● ContentGetResources

● CreateOrUpdateIdentityUserMetadata

● GetIdentityUserMetadata

● RemoveIdentityUserMetadata

● CreateOrUpdateContentMetadata

● ContentMetadataGetFile

● ContentMetadata

● ContentGetBinary

● ContentDeleteByClient

● ContentStoreDcState

● ContentUpdateDcState

● AssignDcStateToUser

● ContentListDcState

● ContentListDcStates

● ContentGetDcState

● ContentDeleteDcState

● ContentPublishDocument

● ContentGetHistory

● GetClientId

ContentList
Request
Lists all documents within the application and their metadata.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentListV3
5 Digital Services | 425
5.3 API Services

Service and specify these parameters:

● applicationId

● filter

● requiredMetadata

● count – Number of documents to list (minimally 1, maximally 10000).

NOTE If this parameter is not specified, the default value of 1000 documents will be listed (the
total number of documents will be returned via the totalCount parameter).

● from – From which number to list.

● sortBy – Sort the list by a specified parameter, e.g. name / created / lastChanged.

● orderDescending – Boolean value. If true, the list is in descending order.

EXAMPLE
{
"applicationId": 1389,
"count": 3,
"from": 0,
"sortBy": "lastChanged",
"orderDescending": true,
"filter": {
"propertyConditions": [],
"metadataConditions": []
},
"requiredMetadata": []
}

Response
Returns a JSON object listing all the documents in the application including their details:

● documentId

● name

● author

● version

● dataVersion

● metadata

● documentUserRights

● created – Date and time the document was created (UNIX time format).
5 Digital Services | 426
5.3 API Services

● lastChange – Date and time the document was last changed (UNIX time format).

● contentDescription – Brief content description.

● contentType – Content file type.

● fileSize – Size of the file in bytes.

● externalResourcesCount – Number of external resources used.

● externalResourcesSize – File size of the external resources.

● totalCount – The total number of documents.

EXAMPLE
{
"documents": [
{
"documentId": 257110,
"created": "\/Date(1503170769611)\/",
"lastChange": "\/Date(1503170769611)\/",
"fileSize": 131543,
"name": "filename",
"contentDescription": "",
"contentType": "pdf",
"author": "John Smith",
"version": 2,
"dataVersion": 1,
"externalResourcesCount": 0,
"externalResourcesSize": 0,
"metadata": [
{
"isReadOnly": "false",
"type": "text",
"value": "new text",
"name": "metadata name"
}
],
"documentUserRights": [
"read",
"update"
]
},
{
"documentId": 256547,
"created": "\/Date(1503412437391)\/",
"lastChange": "\/Date(1503412437391)\/",
"fileSize": 2428,
"name": "name1",
"contentType": "doc",
"author": "John Smith",
"version": 1,
"dataVersion": 0,
"externalResourcesCount": 0,
5 Digital Services | 427
5.3 API Services

"externalResourcesSize": 0,
"metadata": [],
"documentUserRights": [
"read"
]
}
],
"totalCount": 320,
"statusCode": "OK"
}

Filtering with Metadata


You can filter content with metadata by using the filter parameter and specifying the conditions in the request.
See the examples:

● Filtering Content with Metadata Using Simple Condition

● Filtering Content with Metadata Using More Conditions

● Filtering Certain Metadata Only

● Filtering Content Using Property Conditions

● Filtering Content Combining Property and Metadata Conditions

WARNING All the metadata filtering features are case sensitive.

Filtering Content with Metadata Using Simple Condition


To filter content with metadata using simple condition, specify the metadataConditions parameter.

EXAMPLE This request lists all content with the metadata: name = number and value = 2.

{
"applicationId": 1000,
"filter": {
"propertyConditions": [],
"metadataConditions": [
{
"not": false,
"operation": equals,
"name": "number",
"value": "2"
}
]
},
"requiredMetadata": []
}
5 Digital Services | 428
5.3 API Services

NOTE The operation parameter is a condition with values: less, equals, greater.

Filtering Content with Metadata Using More Conditions


To filter content with metadata using more conditions, specify the metadataConditions parameter.

EXAMPLE This request lists all the content with metadata that meet the condition: the number = 2 and
the text = text app.

{
"applicationId": 1000,
"filter": {
"propertyConditions": [],
"metadataConditions": [
{
"not": false,
"operation": "equals",
"name": "number",
"value": "2"
},
{
"not": false,
"operation": "equals",
"name": "text",
"value": "text app"
}
]
},
"requiredMetadata": []
}

TIP You can add more conditions, e.g. date. The content is listed only when all the metadata conditions
are met.

Filtering Certain Metadata Only


To filter certain metadata only, specify the requiredMetadata parameter (only the specified metadata will then
appear with listed content).

EXAMPLE This request lists only the metadata that have the number set as the property.

{
"applicationId": 1000,
"filter": {
"propertyConditions": [],
"metadataConditions": [
{
"not": false,
5 Digital Services | 429
5.3 API Services

"operation": "equals",
"name": "number",
"value": "2"
}
]
},
"requiredMetadata": [
"number"
]
}

NOTE The value of the number metadata does not have to be specified.

TIP You can specify more criteria for the requiredMetadata parameter, e.g.:

"requiredMetadata" : ["number", "text"]

Filtering Content Using Property Conditions


To filter content with certain properties only, specify the propertyConditions parameter. The available properties
are: documentId, created, lastChange, fileSize, name, author, version, externalResourcesCount, externalResour→
cesSize.

EXAMPLE This request lists all documents with the name = doc1.

{
"applicationId": 1000,
"filter": {
"propertyConditions": [
{
"not": false,
"operation": "equals",
"name": "name",
"value": "doc1"
}
]
}
}

Filtering Content Combining Property and Metadata Conditions


To combine conditions, use and specify the propertyConditions and the metadataConditions.
5 Digital Services | 430
5.3 API Services

EXAMPLE This request:

1. Lists all documents with name = doc2.

2. Then searches for metatada with number1 = 4 and text = text app.

3. Limits the filter to only 2 values, because the requiredMetadata is set to number 1 and text.

{
"applicationId": 1000,
"filter": {
"propertyConditions": [
{
"not": false,
"operation": "equals",
"name": "Name",
"value": "doc2"
}
],
"metadataConditions": [
{
"not": false,
"operation": "equals",
"name": "number1",
"value": "4"
},
{
"not": false,
"operation": "equals",
"name": "text",
"value": "text app"
}
]
},
"requiredMetadata": [
"number1",
"text"
]
}

ContentListUsers
Request
Lists users with access rights to the specified document.

NOTE The maximum number of listed users is 50.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentListUsers
5 Digital Services | 431
5.3 API Services

service and specify these parameters:

● applicationId

● documentId

● filter – Search for specific users using the fullName, userName or email parameters. You can filter based
on partial information, e.g.: "fullName": "Jo" and "email": "@quadient.com". This will return all users
whose full name contains "Jo" and whose email address belongs to the quadient.com domain.

● includeMe – Boolean value. If true, the user that sent the request will also be listed in the response.

● orderBy – Sort the list by a specified parameter. The values can be nothing, fullName, userName or email.

● orderDescending – Boolean value. If true, the list is in descending order.

EXAMPLE
{
"applicationId": 13702,
"documentId": 123,
"includeMe": false
"orderBy": "email",
"orderDescending": true,
"filter": {
"fullName": "Jo",
"userName": "",
"email": ""
}

Response
Returns users with access rights to the specified document and their details:

● clientId

● userName

● fullName

● email

● totalCount – The total number of clients with access rights to the document and fitting the filter criteria.

EXAMPLE
{
clients[
{
"clientId": "o2k12mhZDBIUKeA7fZYX570",
"userName": "JohnD",
5 Digital Services | 432
5.3 API Services

"fullName": "John Doe",


"email": "john.doe@quadient.com"
}
],"totalCount": 1
}

ContentListResource
Request
Lists the external resources for the document.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentListResources

service and specify these parameters:

● applicationId

● documentId

EXAMPLE
{
"applicationId": 1000,
"documentId": 3002
}

Response
Shows the size of the resource and resource identification. You can also download the resource.

EXAMPLE
{
"resources": [
{
"size": 168,
"resourceId": "23DA96201C3DCB466CB701CD22BBA67280F2A10B.png"
},
{
"size": 78,
"resourceId": "4885F76F1006D029F5A85D424105403077ABA8F1.css"
},
{
"size": 32487,
"resourceId": "A423E1FAABC951EFF6ABDEB5EE6062E1789F8BC8.js"
}
],
5 Digital Services | 433
5.3 API Services

"statusCode": "OK"
}

ContentGetResources
Request
Downloads the listed resource.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentGetResources

service and specify these parameters:

● applicationId

● documentId – Unique identifier of the document serves for rights validation.

● resourceId – Unique identifier of the resource.

● scale – Scale of the image resource (file types that can be scaled: jpg, jpeg and png).

Images can be downloaded in original size (scale4) or downscaled. Scales can be requested as: scale1,
scale1_5, scale2, scale3, or scale4). Scales represent the resolution of the image in dpi and its integer
multiple (scale1 is equivalent to 96 dpi).

EXAMPLE
{
"applicationId": 1000,
"documentId": 3002,
"resourceId": "4003E1387CBAD3389F7EB8B64B6DA797A3E6A767.png"
"scale": "Scale4"
}

TIP You can download several resources in a single request by using the resourceIds element.

EXAMPLE
{
"applicationId": 1000,
"documentId": 3002,
"resourceIds": [
"4885F76F1006D029F5A85D424105403077ABA8F1.css",
"ABBF6CCF10A6D084F5ABAD12210540CCCABA111.png",
"563F622F10A6D0ABC5ABAD1590540AA122312A.png"
5 Digital Services | 434
5.3 API Services

]
}

Response
Returns the requested resource containing raw data.

CreateOrUpdateIdentityUserMetadata
Request
Creates or updates user store client metadata.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/CreateOrUpdateIdentityUserMetadata

service and specify these parameters:

● applicationId

● metadata

○ isGlobal – Boolean value. If true, the metadata will be available globally. If false, the metadata will
only be available for the application specified by the applicationId.

○ name – Name of the metadata.

○ value – Value of the parameters used for filtering.

NOTE The amount and size of metadata is limited. There can only be 100 metadata per user, and max-
imum size of each metadata is 10 kB. The maximum size of all metadata per user is 1MB.

EXAMPLE
{
"applicationId": 1019,
"metadata": [
{
"isGlobal": false,
"name": "metadata name",
"value": "metadata value"
}
]
}
5 Digital Services | 435
5.3 API Services

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 636,
"time": "\/Date(1524823430295)\/"
}

GetIdentityUserMetadata
Request
Downloads user store client metadata.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/GetIdentityUserMetadata

service and specify the applicationId parameter.

EXAMPLE
{
"applicationId": 1029
}

Response
The response returns a JSON object listing the Metadata you requested, and the following data:

● isGlobal

● isReadOnly – The metadata is read only and cannot be edited via Digital Advantage SDK.

● isBasic – The metadata is saved in a user store via the Account Settings and Basic Information tabs.

EXAMPLE
{
"metadata": [
{
"isReadOnly": false,
"isGlobal": false,
"isBasic": true,
"name": "default metadata name",
"value": "default value"
}
5 Digital Services | 436
5.3 API Services

]
}

RemoveIdentityUserMetadata
Request
Deletes metadata of specific clients in the mobile application.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/RemoveIdentityUserMetadata

service and specify these parameters:

● applicationId

● globalMetadataNames / applicationMetadataNames – Categories used for metadata to be deleted. Metadata


will be deleted globally for all applications or for a specific application.

EXAMPLE
{
"applicationId" : "1212",
"globalMetadataNames" :
[
"metadata name 1",
"metadata name 2"
],
"applicationMetadataNames" :
[
"metadata name 12",
"metadata name 13"
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 2521,
"time": "\/Date(1517414740935)\/"
}
5 Digital Services | 437
5.3 API Services

CreateOrUpdateContentMetadata
Request
Creates or updates metadata in the document.

NOTE Document Visibility must be set to Client, and the client must have the Update Rights set.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/CreateOrUpdateContentMetadataV3

service and specify these parameters:

● applicationId

● documentId

● metadata

○ name – Name of the metadata.

○ type – Metadata type: text, number, or date (UNIX time format).

○ value – Value of the parameters used for filtering.

NOTE The amount and size of metadata is limited. There can only be 100 metadata per user and
maximum size of each metadata is 10 kB. The maximum size of all metadata per user is 1MB.

EXAMPLE
{
"applicationId": 5026,
"documentId": 5032,
"metadata": [
{
"name": "metadata",
"type": "text",
"value": "metadata text here"
},
{
"name": "metadata 2",
"type": "text",
"value": "metadata 2 text here"
},
{
"name": "date name",
"type": "date"
"dateValue": "\/Date(-62135596800000-0000)\/"
},
{
"name": "number name",
5 Digital Services | 438
5.3 API Services

"type": "number",
"value": "55510",
},
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 289,
"time": "/Date(1487169260652)/"
}

ContentMetadataGetFile
Request
Downloads the document's metadata content.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentMetadataGetFile

service and specify these parameters:

● applicationId

● documentId – Unique identifier of the document.

● metadataName – Name of the metadata specified when creating a document.

EXAMPLE
{
"applicationId": 1123,
"documentId": 2231,
"metadataName": "TestFile"
}

Response
Returns the raw content.
5 Digital Services | 439
5.3 API Services

ContentMetadata
Request
Triggers a response carrying all the metadata related to the document referenced in the request's URL. It is useful
when working with a single document, which makes the ContentList request impractical.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentMetadataV3

service and specify these parameters:

● applicationId

● documentId

EXAMPLE
{
"applicationId": 1011,
"documentId": 1017
}

Response
Returns a JSON object listing the document you requested and its metadata:

● documentId

● created

● lastChange

● fileSize

● name

● contentType

● author

● version

● externalResourcesCount

● externalResourcesSize

● documentUserRights – Operations the clients can do with the content: read, delete, or update).

● metadata

○ isReadOnly – The metadata is read only and cannot be edited via Digital Advantage SDK.

○ name – Name of the metadata.


5 Digital Services | 440
5.3 API Services

○ type – Metadata type: number, file, text, or date (UNIX time format).

○ value – Value of the parameters used for filtering.

EXAMPLE
{
"document": {
"documentId": 8394,
"created": "/Date(1527600841878)/",
"lastChange": "/Date(1527678662260)/",
"fileSize": 1543,
"name": "my document",
"contentDescription": "",
"contentType": "",
"author": "Cloud Administrator",
"version": 1,
"dataVersion": 0,
"externalResourcesCount": 0,
"externalResourcesSize": 0,
"metadata": [
{
"isReadOnly": false,
"name": "custom number",
"type": "Number",
"value": "-1125"
},
{
"isReadOnly": false,
"name": "Test",
"type": "Text",
"value": "string"
}
],
"documentUserRights": [
"read",
"update",
"delete"
]
},
"statusCode": "OK"
}

ContentGetBinary
Request
Triggers a response carrying a specific document referenced in the request's URL.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentGetBinary
5 Digital Services | 441
5.3 API Services

service and specify these parameters:

● applicationId

● documentId

EXAMPLE
{
"applicationId": 1011,
"documentId": 1017
}

Response
Returns the requested document containing raw data.

ContentDeleteByClient
Request
Triggers a response deleting content of the requested document.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ContentDeleteByClient

service and specify these parameters:

● applicationId

● documentId

EXAMPLE
{
"applicationId": 1013,
"documentId": 1014
}

Response
Returns a JSON object listing information about requested action.

EXAMPLE
{
"eventId": 299,
"time": "/Date(1487169260652)/"
}
5 Digital Services | 442
5.3 API Services

ContentStoreDcState
Request
Stores the current state of an unfinished Dynamic Communications document (you can store maximally 100
states per user's document).

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ContentStoreDcState

service and specify these parameters:

● applicationId

● data

● documentId

● dataVersion – You can save a state for a specific document data version.

● name – Document state name.

● checkDataVersion – Boolean value. If true, dataVersion must match with the document.

EXAMPLE
{
"applicationId": 1032504,
"data": {
"survey": {
"questionId": "x46a7",
"answer": "yes"
}
},
"documentId": 1032506,
"name": "Test PDF",
"dataVersion": 1
}

Response
Returns a JSON object listing information about requested action with the stateID for further managing of the
state.

EXAMPLE
{
"stateId": 100170,
"eventId": 17240907,
"time": "/Date(1476962893283)/"
}
5 Digital Services | 443
5.3 API Services

NOTE When you request to store the current state of a document that has been already deleted, an error
message is returned.

ContentUpdateDcState
Request
Updates the current state of an unfinished Dynamic Communications document.

WARNING The previous state is overridden.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ContentUpdateDcState

service and specify these parameters:

● applicationId

● documentId

● stateId

● data

● dataVersion – You can update a state for a specific document data version.

● checkDataVersion – Boolean value. If true, dataVersion must match with the document.

EXAMPLE
{
"applicationId": 1069,
"documentId": 3448,
"stateId": 3452,
"dataVersion": 2,
"checkDataVersion": false,
"data": {
"answer1:": "yes",
"answer2:": "yes"
}
}

Response
Returns a JSON object listing information about requested action.
5 Digital Services | 444
5.3 API Services

EXAMPLE
{
"eventId": 17242249,
"updateDate": "/Date(1477397920614)/"
}

NOTE When you request to update the current state of a document that has been already deleted, an
error message is returned.

AssignDcStateToUser
Request
Assigns or reassigns Dynamic Communications document states to clients (you can store maximally 100 states
per user's document).

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/AssignDcStateToUser

service and specify these parameters:

● applicationId

● documentId

● stateId

● targetClientId – Client ID to which the DC state will be assigned.

NOTE When using the LDAP authentication identity provider, use the account user name instead
of the client ID for this parameter.

● sourceClientId – Client ID from which the DC state will be reassigned to the targetClientId.

{
"applicationId": 8046,
"documentId": 28033,
"stateId": 40036,
"sourceClientId": 40036,
"targetClientId": "j.doe"
}

Response
Returns a JSON object listing information about the requested action.
5 Digital Services | 445
5.3 API Services

EXAMPLE
{
"eventId": 12385,
"time": "\/Date(1517467482221)\/"
}

ContentListDcState
Request
Lists all the stored states for a document.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentListDcState

service and specify these parameters:

● applicationId

● documentId

● dataVersion – You can list a state for a specific document data version.

● checkDataVersion – Boolean value. If true, dataVersion must match with the document.

EXAMPLE
{
"applicationId": 1069,
"documentId": 3448,
"dataVersion": 0,
"checkDataVersion": true
}

Response
Returns all the states stored for the document and their:

● name

● id

● dataVersion

● lastChangeDate – Date and time the document was changed (UNIX time format).
5 Digital Services | 446
5.3 API Services

EXAMPLE
{
"states": [
{
"name": "Test",
"id": 3452,
"lastChangeDate": "\/Date(1508929404721)\/",
"dataVersion": 0
}
]
}

NOTE When you request to list states of a document that has been already deleted, an error message
is returned.

ContentListDcStates
Request
Lists all the stored Dynamic Communications document states and their details for an application.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentListDcStates

service and specify these parameters:

● applicationId

● itemsPerPage

● currentPage

EXAMPLE
{
"applicationId": 35024,
"currentPage": 4,
"itemsPerPage": 100
}

Response
Returns all the states stored for the application and the following:

● id

● name
5 Digital Services | 447
5.3 API Services

● clientId

● userName

● lastChangeDate

● documentId

● dataVersion

● author – Contains information about the DC state author.

● lastHolder – Contains information about the previous DC state owner.

● totalCount – The total number of saved states.

EXAMPLE
{
"dcStates": [{
"id": 35090,
"name": "Named DC state",
"author": {
"clientId": "XyUoaOpl3J41nB",
"userName": "johndoe"
},
"lastHolder": {
"clientId": "avPPmHQigXYb7y",
"userName": "janedoe"
},
"lastChangeDate": "\/Date(1508929404721)\/",
"documentId": 35080,
"dataVersion": 1
}],
"totalCount": 500
}

ContentGetDcState
Request
Lists the particular state of an unfinished Dynamic Communications document.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentGetDcState

service and specify these parameters:

● applicationId

● documentId

● stateId – Unique state identifier of the unfinished document.


5 Digital Services | 448
5.3 API Services

● dataVersion – You can get a state for a specific document data version.

● checkDataVersion – Boolean value. If true, dataVersion must match with the document.

EXAMPLE
{
"applicationId": 1069,
"documentId": 3448,
"stateId": 3449,
"dataVersion": 2,
"checkDataVersion": true
}

Response
Returns the requested state containing raw data.

EXAMPLE
{
"data": {
"survey": {
"questionId": "x46a7",
"answer": "yes"
}
}
}

NOTE When you request to get the current state of a document that has been already deleted, an error
message is returned.

ContentDeleteDcState
Request
Deletes the particular stored state of an unfinished Dynamic Communications document.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ContentDeleteDcState

service and specify these parameters:

● applicationId

● documentId

● stateId
5 Digital Services | 449
5.3 API Services

EXAMPLE
{
"applicationId": 59843,
"documentId": 95041,
"stateId": 96148
}

Response
Returns a JSON object listing information about requested action.

EXAMPLE
{
"eventId": 17242273,
"time": "/Date(1476966030202)/"
}

NOTE When you request to delete the state of a document that has been already deleted, an error
message is returned.

ContentPublishDocument
Request
Publishes the document state and sends a URL link with the unfinished dynamic communication document to
the client's email address. The clients can reopen the document at the exact state where they finished working
with it.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ContentPublishDocument

service and specify these parameters:

● applicationId

● documentId

● emailAddress – Client's email address a URL link to the document is sent to.

● stateData – Current state of the unfinished document.

● emailLanguage – Language of the email based on the email template.

● useDeepLink – Boolean value. If true, clicking CONTINUE in the email opens the document in the mobile
application.
5 Digital Services | 450
5.3 API Services

NOTE

● When Allow sharing documents is not checked in the application settings, the URL link cannot be
sent.

● Only documents uploaded to Digital Services version 11.0 and newer can be published.

EXAMPLE
{
"applicationId": 1032504,
"documentId": 1032506,
"emailAddress": "j.doe@test.com",
"stateData": {
"survey": {
"questionId": "x46a7",
"answer": "yes"
},
"emailLanguage": "en-us",
"useDeepLink": false
}
}

Response
Returns the URL address (documentWithStateUrl) to the published dynamic communication document.

TIP See the example email with a link to an unfinished dynamic communication document.

EXAMPLE
{
"documentWithStateUrl": "http://companyname.quadientcloud.eu/api/query/MobileBackend/Content→
GetDocument?DocumentKey=e4bbf149d6d24380a37c7538cb0c78a6&cds=1#eb2dea4b491b4d4b7bbbad5b2cc32af",

"eventId": 158,
"time": "/Date(1477037855482)/"
}

NOTE When you request to publish the content of a document that has been already deleted, an error
message is returned.
5 Digital Services | 451
5.3 API Services

ContentGetHistory
Request
Lists the history of a dynamic communication document containing updates, number of version and states.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentGetHistory

service and specify these parameters:

● applicationId

● documentId

EXAMPLE
{
"applicationId": 16095,
"documentId": 22746
}

Response
Returns the history of the specified document.

EXAMPLE
{
"versions": [
{
"changedDate": "/Date(1487602136715)/",
"version": 3,
"state": "published"
}
],
"statusCode": 200
}

GetClientId
Request
This request returns clientId from OAuth authentication.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/GetClientId

service and specify the applicationId parameter.


5 Digital Services | 452
5.3 API Services

EXAMPLE
{
"applicationId": 1011
}

Response
The response returns a JSON object listing a clientId you requested.

EXAMPLE
{
"clientId": "6yQeZ3LIrlkT2S44FGwUjPd",
"statusCode": 200
}

5.3.1.3 Mobile Push Notification


These services are useful if you wish to use platform-specific Quadient Cloud services for sending push notifications
to your mobile applications.

These services include:

● AddNotificationSubscription

● VerifyNotificationSubscription

● RemoveNotificationSubscription

● ConfirmNotificationDelivery

● ConfirmNotificationDeliveryV2

● IncreaseDocumentStatOpen

● GetExternalResource

● GetIcon

AddNotificationSubscription
Request
Creates a subscription for sending of notifications from an enterprise system to your mobile device. For notifications
to work correctly, you must specify your application's Google PNS or Apple PNS.

This subscription expires after 5 days, when your mobile device has not received any notification although it
checked for new notifications when initiated (i.e. called the AddNotificationSubscription service). To receive noti-
fications, it is necessary to re-send this request.

Send the request to the


5 Digital Services | 453
5.3 API Services

https://companyname.quadientcloud.eu/api/publish/MobileBackend/AddNotificationSubscription

service and specify these parameters:

● applicationId

● clientId

● platform – Specifies whether the mobile device uses Android or iOS platform.

● notificationRegistrationId – Current mobile device registered in Google or Apple for notifications, i.e.
has Google or Apple PNS number.

● deviceFriendlyName – Name of the device as chosen by the user.

● devicePublicId – ID generated by Digital Advantage SDK which identifies the particular device (this
parameter is not used for 3rd party notification delivery).

NOTE The devicePublicId parameter is referred to as Device ID in Inspire Designer's Digital


Communications Data module .

● messageVersion – Version of the format of the message: 0, 1, or 2 (with 2 being the newest version).

EXAMPLE
{
"applicationId": 1000,
"clientId": "54786686as487",
"notificationRegistrationId": "APA91bEkd5eEvC_2xxJMyLZGxCHcWnsdasdadASDsdsdvh54786686as487asd→
fgSDdfagGOIJID566vGr4pPG0OkE3OsR789wj-V77CRJHG1F9CM-NEnsOKNlJjlsglG_dgBvquzM1a",
"platform": "android",
"deviceFriendlyName": "my device",
"devicePublicId": "device public ID",
"messageVersion": 2
}

Response
Returns a JSON object that assigns an event ID to the subscription, and indicates its date.

EXAMPLE
{
"eventId": 11213,
"time": "/Date(1454579536349)/"
}
5 Digital Services | 454
5.3 API Services

VerifyNotificationSubscription
Request
Verify the mobile device notifications subscription.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/VerifyNotificationSubscription

service and specify these parameters:

● applicationId

● notificationRegistrationId

● platform – Device platform: android / iOS.

EXAMPLE
{
"applicationId": 1043189,
"platform": "android",
"notificationRegistrationId": "cqnA2cvzSIw:APA91bGARa_qIKGrcXvIIKwSpCb1IQeGAsqZ→
suP3MjbA-haF15NHpaan7Sz2hVfgu1wpFBMaYNsnuziA5utYtkkwgliMmzDOXmwlg0cxpztYwdpRCR7y2UL0bFznIP→
PicLUCyNTNkpWM"
}

Response
Returns the notifications subscription status. The Response parameter may contain this information:

● Application doesn't exist.

● Wrong platform.

● Valid/invalid subscription.

● Push notification server connection error.

● Invalid notification token.

● Expired iOS notification certificate.

EXAMPLE
{
"response": "Server key for Android is not valid.",
"errorFlag": true,
"statusCode": "OK"
}
5 Digital Services | 455
5.3 API Services

RemoveNotificationSubscription
Request
Cancels a notifications subscription initiated by the AddNotificationSubscription request.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/RemoveNotificationSubscription

service and specify these parameters:

● applicationId

● clientId

● notificationRegistrationId

EXAMPLE
{
"applicationId": 1000,
"clientId": "54786686as487",
"notificationRegistrationId": "APA91bEkd5eEvC_2xxJMyLZGxCHcWnsdasdadASDsdsdvh54786686as487asd→
fgSDdfagGOIJID566vGr4pPG0OkE3OsR789wj-V77CRJHG1F9CM-NEnsOKNlJjlsglG_dgBvquzM1a"
}

Response
Returns a JSON object that assigns an event ID to the subscription cancellation and indicates its date.

EXAMPLE
{
"eventId": 11213,
"time": "/Date(1454579536349)/"
}

ConfirmNotificationDelivery
Request
Confirms the notification was successfully delivered to the client's device and increases the number of delivered
notifications in Notifications Statistics.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ConfirmNotificationDelivery
5 Digital Services | 456
5.3 API Services

service and specify these parameters:

● applicationId

● notificationToken – Unique string identifying the notification.

● platform – Device platform: iOS, android, web.

EXAMPLE
{
"notificationToken": "fce0112a-9eea-4cc4-8b6c-1d5003c6e48b",
"platform": "android",
"applicationId": 1297
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 199,
"time": "\/Date(1525265108029)\/"
}

ConfirmNotificationDeliveryV2
Request
Has the same function as the ConfirmNotificationDelivery but does not require Authorization.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ConfirmNotificationDeliveryV2

service and specify these parameters:

● applicationId

● notificationToken – Unique string identifying the notification.

● platform – Device platform: iOS, android, or web.

EXAMPLE
{
"notificationToken": "fce0112a-9eea-4cc4-8b6c-1d5003c6e48b",
"platform": "iOS",
5 Digital Services | 457
5.3 API Services

"applicationId": 1297
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 399,
"time": "\/Date(1525265108029)\/"
}

IncreaseDocumentStatOpen
Request
Increases the number of opened documents in Documents Statistics.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/IncreaseDocumentStatOpen

service and specify these parameters:

● documentId

● applicationId

● notificationToken – Unique string identifying the notification. If used, the document was opened based
on the delivered notification.

● platform – Device platform: iOS, android, web.

EXAMPLE
{
"documentId": 1337,
"notificationToken": "fce0112a-9eea-4cc4-8b6c-1d5003c6e48b",
"platform": "android",
"applicationId": 1328
}
5 Digital Services | 458
5.3 API Services

GetExternalResource
Request
This request downloads resources for a rich notification uploaded via the SendNotifications API service and uses
mobile authentication.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/GetExternalResource

service and specify these parameters:

● applicationId

● resourceId – Unique identifier of the resource.

EXAMPLE
{
"applicationId":4046,
"resourceId":"Ext0123456789"
}

Response
Returns the specified resources uploaded using the SendNotifications API service.

GetIcon
Request
Downloads the resource, i.e. application icon, splashscreen image, notification icon.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/GetIcon

service and specify these parameters:

● applicationId

● osType – Mobile platform the resource was uploaded for.

● scale – Screen resolution scale.

● resourceId – Unique identifier of the resource.

EXAMPLE
{
"applicationId": 16095,
"osType": "Android",
"scale": "Scale5",
5 Digital Services | 459
5.3 API Services

"resourceId": 22724
}

Response
Returns the image file of the specified resource.

5.3.1.4 User Account Association


These API services manage user account association tokens for different identity providers used for mobile ap-
plication authentication:

● IdentityProviderSignInData

● IdentityUserProfile

● SaveIdentityUserIssueAssociationToken

● DeleteIdentityProviderAssociation

IdentityProviderSignInData
Request
Provides a list of identity providers that can be used to log in on a mobile application or web application login
page.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/IdentityProviderSignInData

service and specify this parameter:

● authenticationClientId

● applicationId

EXAMPLE
{
"applicationId":1382708,
"authenticationClientId":445sd45s
}
5 Digital Services | 460
5.3 API Services

Response

EXAMPLE
{
"companyName": "Vital",
"applicationId": 1525184,
"identityProviderSignInData": [
{
"displayName": "New Default Identity Store",
"authenticationScheme": "p-inspire-4044",
"isPasswordBased": true,
"identityProviderType": "InspireAuthentication"
}
],
"statusCode": 200
}

IdentityUserProfile
Request
Returns a list of user account associations with remote identity providers.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/IdentityUserProfile

service and specify the applicationId parameter.

EXAMPLE
{
"applicationId": 1382708
}

Response

EXAMPLE
{
"associateIdentityProviders": [
{
"sub": "112483725914358",
"providerName": "facebook",
"providerId": 1495175,
"providerType": "facebook"
}
],
5 Digital Services | 461
5.3 API Services

"authenticationIdentityProviderKey": "fcb-1495175",
"hasInspirePasswordSet": false,
"userName": "vcHFYi54IuFJzkQFRWEc"
}

SaveIdentityUserIssueAssociationToken
Request
Issues an association token for the logged in user.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/SaveIdentityUserIssueAssociationToken

service and specify the applicationId parameter.

EXAMPLE
{
"applicationId": 1382708
}

Response

EXAMPLE
{
"uniqueKey": "4-9994136-1525184-AKFoxrTfiawhpZomkC→
SH25468525-9806e99c-106c-460a-89d4-977a805b1fa5",
"hasInspirePasswordSet": true,
"userName": "Dan",
"providerId": 1525183,
"providerName": "New Default Identity Store",
"eventId": 25500694,
"time": "\/Date(1519725373574)\/"
}

DeleteIdentityProviderAssociation
Request
Deletes the association of the Inspire identity provider with a remote identity provider.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/DeleteIdentityProviderAssociation
5 Digital Services | 462
5.3 API Services

service and specify these parameters:

● applicationId

● providerId– Identity provider ID.

● remoteProviderId– Remote identity provider ID.

● remoteSub– User ID of a remote identity provider.

EXAMPLE
{
"applicationId": 1495210,
"providerId": 1495585,
"remoteProviderId": 1495175,
"remoteSub": "112483725914358"
}

5.3.1.5 Other
● VerifyDebugMode

VerifyDebugMode
This request checks whether the specified application's debug mode is enabled and its token valid.

Request
Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/VerifyDebugMode

service and specify the following parameters:

● applicationId – Secret password for authentication of your cloud company.

● debugToken – You can get the token from the generated URL in Application Debug Settings. It is the last
set of characters, e.g. in the https://testcompany-63077409.quadientcloud.eu/mobile-app/enable-de-
bug/b8460766 URL address, the debugToken value is b8460766.

EXAMPLE
{
"applicationId": 109298,
"debugToken": "5ktMcHdG"
}
5 Digital Services | 463
5.3 API Services

Response
Returns information about the validity of debug mode (true or false).

EXAMPLE
{
"isDebugModeEnabled": true
}

5.3.2 Enterprise API


Functioning as a client of an enterprise system; using the API key, which should be treated as a password; the
Enterprise API services are further divided into the following groups:

● Data Communication

● Content Delivery

● Client Management

● Other

● Error Codes for Enterprise API

NOTE The maximum size of one enterprise API call is 100MB, and the maximum size of the metadata's
value parameter in a request is 1MB.

5.3.2.1 Data Communication


Being a part of the enterprise system side of the data communication, these services, with the help of Quadient
Cloud Digital Services, provide your enterprise systems with a means of communication with your Dynamic
Communications or custom applications.

Multiple clients can connect and share the processing of data. Due to scaling standards: once added, nodes start
receiving new data and it's possible to retrieve them; if a node stops returning data, it is deemed as terminated
/ timed out; if a node fails, its reserved data are momentarily unaccessible and then released for another node to
process. Utilization cannot be guaranteed to be equally spread out across nodes, as the speed of data processing
is given priority.

Data communication is the most efficient when used with Inspire Scaler.

Data communication services include:

● MultiRetrieveData

● MultiStoreReplyData

● DeleteData

● ReleaseNodeData
5 Digital Services | 464
5.3 API Services

● ReleaseAllNodesData

● TransferNodeData

● RetrieveData

● StoreReplyData

MultiRetrieveData
Request
Calls all the gathered client data and returns the data gathered since the last call to this service. It works with
both the one-way and two-way communications between client and enterprise systems, and allows you to make
use of different channels and nodes for data processing. For more information, see MultiRetrieveData Function-
ality Details.

NOTE The maximum amount of data a company can store in Quadient Cloud's database is 1TB.

Send the request to the

https://companyname.quadientcloud.eu/api/longpoll/MobileBackend/MultiRetrieveData

service and specify these parameters:

● apiKey

● nodeId – Unique identifier of a node (e.g. in Inspire Scaler).

● maxCount – The maximum number of records that should be returned for one iteration.

● channels – Channel that will process the data (used for initial registration, otherwise left empty).

○ type – Type of the channel: DAS (Digital Advantage Suite), MSG (Inspire Messenger), or OCC (Omnichannel
Coordination).

○ id – Unique identifier of a Digital Advantage Suite channel. If the id value isn't present, all available
channels of the type will be used. If the id parameter is used for OCC or MSG channels, no data will be
retrieved.

IMPORTANT If you call this request using listenerId as a form of identification, its service will
be automatically converted to the new service type and will no longer be compatible with the ob-
solete RetrieveData request.

NOTE It is also possible to use data state parameters done, processing, and failed as in the
MultiStoreReplyData request.

TIP You can also view details about data communication in Digital Services | Service Monitoring).
5 Digital Services | 465
5.3 API Services

EXAMPLE
{
"apiKey": "UqRZPe/kWhCNfQ2J5WLlBWcIk2D2kaKa8+sNIcTMK3M=",
"nodeId": "FirstNode",
"maxCount": 50,
"channels": [
{
"type": "DAS",
"id": "70b01120-81c0-4f8e-93db-2886a80121f2"
},
{
"type": "MSG"
},
{
"type": "OCC"
}
]
}

MultiRetrieveData Functionality Details

● When making the initial request, define the data communication channels. For further calls, the channel
registration does not have to be repeated (the last defined channel will be used).

● Use of channels within this request makes it possible to gather data via multiple services. When using
e.g. Inspire Scaler, you can use multiple nodes to process and sort data, however, no specific piece of data
would ever be processed by various nodes simultaneously.

● Quadient Cloud also uses this request to gather information about which channels are requesting the
data.

Based on data activity in the last 2 minutes, Quadient Cloud then reserves the data for specific nodes to
process (the data will remain in this state for 1 minute). If no node attempts to retrieve its reserved data,
a new reservation will be made for a node that is active. The node that has successfully retrieved the data
will then confirm it is beginning to process them, it then has 1 minute to continually send information to
Quadient Cloud about the status of the data processing. If the node does not respond within one minute,
the data will be then released and can be retrieved by a different node (the data will be marked as failed);
if the data cannot be retrieved 5 times, they will be moved to the fail queue (into a Binary Large Object
(BLOB) which will contain the unprocessed data and information about the failed data processing.

This process greatly enhances the efficiency of data communication.

● If the on-premise client is unavailable but a service continues to receive data, the service will continue to
gather data up to 1GB. Once this maximum data size is reached, the service will no longer accept any
data until the on-premise client becomes available again.

● If the data are not available at the time when this request is called, the request will be on hold until the
data become available, i.e. the method of HTTP long polling is implemented. For example, in case of
timeout, the service is called again in 2 minutes.

Response
The response returns the client data to the enterprise system which sent the request.
5 Digital Services | 466
5.3 API Services

The response contains data from registered channels. The retrieved data also vary depending on the Events
Monitoring settings (which require a User Activity Tracking service).

Additionally, data can be returned in the following categories:

● dCSavedState

● notificationDelivery

● notificationsSubscription

● userLogin

● identityUserMetadataChange

● documentMetadataChange

The response can contain the following data items:

● dataId

● clientId

● sessionId

● lastStepId

● serviceId

● applicationId

● stateId

● documentId

● batchId

● notificationToken

● dateTime

● deviceFriendlyName

● devicePublicId

● targetClientId

● media

● notificationRegistrationStatus – General notifications subscription status: registered, or unregistered.

If the devicePublicId parameter was used when calling the AddNotificationSubscription request (thus
registering specific devices), the parameters returned are: registeredDevice and unregisteredDevice.

● registeredDevices – Number of devices a client has registered.

● remainingDevices – Number of devices remaining after the client has cancelled the subscription of a spe-
cific device.
5 Digital Services | 467
5.3 API Services

● action – Document state action taken by the client:

○ create – Created a new document state.

○ reassign – Reassigned the DC state via the AssignDcStateToClient Client API request.

○ update – Updated an existing document state.

● queueStamp – Unique identifier of client data. This is used for retrieving the latest data available, e.g. if a
queueStamp is 4 in the request, then the response will return data starting with queueStamp 5.

● replyExpected – The true value indicates that the client is expecting a response which is necessary to
send via the MultiStoreReplyData request.

● userActivityType – Info about client logging in to application:

○ loggedIn – After first log in.

○ accessTokenCreated – Token created while logging in. Access token needs to be refreshed.

● offlineRequest – The true value indicates that the data transfer has been postponed due to the client
being offline.

● ipAddress – Client's IP address from which the data were received.

● userAgent – Agent via which the data were sent.

● time – Date and time the client sent the data. In case of an offline request, the submission time may differ
from the time the data were received by Quadient Cloud.

● data – Returned in the JSON format and can contain binary data encoded in the Base64 format, e.g. an
image.

● latitude – Pinpoints the latitude coordinate of the client's location at the moment of the data dispatch.

● longitude – Pinpoints the longitude coordinate of the client's location at the moment of the data dispatch.

● status – Response status: ok, replaced (the data was retrieved by another enterprise system), timeouted
or noData.

● metadata – Contains parameters detailing metadata changes (for document and user metadata):

○ name – Shows the name of the specific metadata.

○ type – Shows the document metadata type: text, number, file, or date.

○ changeType – Shows the status of the tracked change: created, updated, or deleted.

○ value – Shows the value assigned to the specific metadata.

○ oldValue – In case the metadata was updated, this value shows the original value.
5 Digital Services | 468
5.3 API Services

EXAMPLE Response after initial channel registration (if no data is present):


{
"status": "timeouted"
}

EXAMPLE Further requests that contain data are returned in this format:
{
"channels": [
{
"type": "DAS",
"id": "d6070ec4-a37b-4b3e-ad1c-95590fc90e2d",
"queueStamps": [
1
],
"data": [
{
"queueStamp": 3,
"replyExpected": false,
"offlineRequest": false,
"serviceId": "fc6ab24b-cbd5-4e5e-80c0-ea798cf8017e",
"ipAddress": "123.456.78.90",
"userAgent": "Apache-HttpClient/4.1.1 (java 1.5)",
"time": "/Date(1452174330000)/",
"dataId": "template2",
"clientId": "2X5SD4A67",
"sessionId": "sd5d8g8t-48t7-fe4a-8856-4sd8asd48as81",
"lastStepId": "0000001",
"data": {
"notificationRegistrationStatus": "registered",
"customProperty1": "data1",
"customProperty2": "data2"
},
"latitude": 40.5918579,
"longitude": 17.2744236
}
]
}
],
"eventId": 56527,
"status": "Ok"
}

EXAMPLE Data retrieved about a document's state:


{
"data":[
{
5 Digital Services | 469
5.3 API Services

"dataType": "dCSavedState",
"clientId":"VWAmAnB7NGts1k6MQNQK195",
"time":"/Date(1522935457362)/",
"queueStamp":20,
"data":{
"applicationId":1028,
"stateId":7001,
"documentId":1031,
"action":"reassign",
"targetClientId: "client1"
}
}
]
}

EXAMPLE Data retrieved about a notification's delivery:


{
"data":[
{
"dataType": "notificationDelivery",
"clientId":"VWAmAnB7NGts1k6d4NQK195",
"time":"/Date(1522935457362)/",
"queueStamp":20,
"data":{
"applicationId":1038,
"batchId":701,
"notificationToken": "00000000-0000-0000-0000-000000000000",
}
}
]
}

EXAMPLE Data retrieved about a notification's subscription:


{
"data": [
{
"dataType": "notificationsSubscription",
"clientId": "Y8N1KwoQXAZsASu4sf3F6389611",
"time": "\/Date(1508760647245)\/",
"queueStamp": 1,
"data": {
"applicationId": 1026,
"notificationRegistrationStatus": "registered"
}
},
{
"dataType": "notificationsSubscription",
5 Digital Services | 470
5.3 API Services

"clientId": "Y8N1KwoQXAZOss14sf3F6389611",
"time": "\/Date(1508760647230)\/",
"queueStamp": 2,
"data": {
"applicationId": 1025,
"deviceFriendlyName": "device name",
"devicePublicId": "device public ID",
"notificationRegistrationStatus": "registeredDevice",
"registeredDevices": 1
}
},
{
"dataType": "NotificationsSubscription",
"clientId": "kIyGYi6PF6iDdOUk2ifO27745540",
"time": "\/Date(1538545954155)\/",
"queueStamp": 7,
"data": {
"applicationId": 179150,
"deviceFriendlyName": "device public ID 2",
"devicePublicId": "device name 2",
"notificationRegistrationStatus": "unregisteredDevice",
"remainingDevices": 0
}
}

]
}

EXAMPLE Data retrieved about clients' login to applications:


{
"data": [
{
"dataType": "userLogin",
"clientId": "Y8N1KwoQXAZOASu4sf3F6389611",
"time": "\/Date(1508760647230)\/",
"queueStamp": 1,
"data": {
"applicationId": 1025,
"userActivityType": "loggedIn"
}
},
{
"dataType": "userLogin",
"clientId": "Y8N1KwoQXAZOASu4sf3F6389611",
"time": "\/Date(1508760647245)\/",
"queueStamp": 2,
"data": {
"applicationId": 1026,
"userActivityType": "accessTokenCreated"
}
5 Digital Services | 471
5.3 API Services

}
]
}

EXAMPLE Data retrieved about client changes in user metadata:


{
"data": [
{
"dataType": "identityUserMetadataChange",
"clientId": "SKumnHz2lMr5mhI16K5c892",
"time": "\/Date(1508760647230)\/",
"queueStamp": 20,
"data": {
"metadata": [
{
"name": "usercustomMetadata",
"changeType": "created",
"applicationId": 0,
"value": "custom value"
},
{
"name": "usercustomAppMetadata",
"changeType": "updated",
"applicationId": 103073,
"value": "custom value 2",
"oldValue": "custom value"
},
{
"name": "usercustomMetadata",
"changeType": "deleted",
"applicationId": 103073
}
]
}
}
]
}

EXAMPLE Data retrieved about client changes in documents:


{
"dataType": "documentMetadataChange",
"clientId": "SKumnHz2lMr5mhI16K5c892",
"time": "/Date(1556636971934)/",
"queueStamp": 23,
"data": {
"applicationId": 103073,
"documentId": 103268,
5 Digital Services | 472
5.3 API Services

"metadata": [
{
"name": "Client text",
"changeType": "updated",
"type": "text",
"value": "Changed document level metadata client text",
"oldValue": "Document level metadata client text"
},
{
"name": "Application level text",
"changeType": "updated",
"type": "text",
"value": "Changed application level metadata text",
"oldValue": "Application metadata level text"
},
{
"name": "Added new client text",
"changeType": "created",
"type": "text",
"value": "This metadata was added by client and the request was sent with another 4
unchanged metadata values"
}
]
}
}

Possible error codes for MultiRetrieveData

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA127 Node registration is missing, please send the request using a valid channel.

MA128 Data with the specified QueueStamp could not be found. The data are assigned to a different
node, do not exist or were deleted.

MA132 QueueStamp must be unique for the given channel. It cannot be used twice in one or more pro-
cessing states.

MA134 Sending replies to channels of the MSG type is not supported.

MA136 Queue Stamp and Data arrays must have the same length.

MA137 The channel could not be found. It does not exist or it was deleted.

MA138 Data reserved for this node cannot be currently confirmed. The data reservation is expired.

MA141 Cannot register more than 1000 channels.


5 Digital Services | 473
5.3 API Services

MultiStoreReplyData
Request
Triggers a response from the enterprise system carrying that data requested by the client. It verifies data and/or
prolongs the period of their processing before the timeout.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/MultiStoreReplyData

service and specify these parameters:

● apiKey

● nodeId

● Status parameters:

○ done – Successfully processed data. Data with no response contain only the queueStamp parameter,
if there is a response the data parameter will be present (in such a case, further data with no response
are classified as null.

○ processing – The data has not been processed yet. Using this parameter serves to request prolonging
the timeout period. If you do not wish to process the same data several times, you must confirm re-
ceiving them via this parameter.

○ failed – Data processing has failed (contains error messages).

The status parameters can contain:

○ id

○ type

○ data

○ queueStamp – Identifier used for pairing the data sent by the client with the data within the response.
This number is incremented in each request. queueStamp is used for retrieving the latest data available,
e.g. if a queueStamp is 4 in the request, then the response will return data starting with queueStamp 5.
In other words, to get the latest data, enter the highest queueStamp number available.

IMPORTANT Values from the MultiRetrieveData response (type, id, and queueStamps) and values
in the status parameters must be identical. Empty strings are not equal to empty parameter value
(empty string = null).

EXAMPLE
{
"apiKey": "1CfpAJZifcxtjuuB65ygtRtNQE+aXM8Za1tHBJXix+A=",
"nodeId": "188f2428-070b-4451-b7b6-4a0eb63163bc1",
"done": [
{
"id": "4899bc3e-12d7-44e0-88b3-0351da669f4a",
5 Digital Services | 474
5.3 API Services

"type": "DAS",
"queueStamps": [
1,
2
],
"data": [
null,
{
"replyData": "confirmed"
}
]
}
],
"processing": [
{
"id": "4899bc3e-12d7-44e0-88b3-0351da669f4a",
"type": "DAS",
"queueStamps": [
3,
4
]
}
],
"failed": [
{
"id": "4899bc3e-12d7-44e0-88b3-0351da669f4a",
"type": "DAS",
"queueStamps": [
5,
6
],
"data": [
{
"error": "invalid property"
},
null
]
}
]
}

Response
Returns a JSON object listing information about the requested action.

{
"eventId": 37272568
}
5 Digital Services | 475
5.3 API Services

Possible error codes for MultiStoreReplyData

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA128 Data with the specified QueueStamp could not be found. The data are assigned to a different
node, do not exist or were deleted.

MA131 At least one of the confirming states (done, failed, or processing) cannot be empty.

MA132 QueueStamp must be unique for the given channel. It cannot be used twice in one or more pro-
cessing states.

MA134 Sending replies to channels of the MSG type is not supported.

MA136 Queue Stamp and Data arrays must have the same length.

MA137 The channel could not be found. It does not exist or it was deleted.

MA138 Data reserved for this node cannot be currently confirmed. The data reservation is expired.

DeleteData
Request
This request completely removes the stored data for the specified Service ID. This ensures that only the up-to-
date data are kept.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/DeleteData

service and specify these parameters:

● apiKey

● serviceId

EXAMPLE
{
"apiKey": "qXneK1blvembHK2gw2LfGWuljzWkcedQDJhDBny57y0=",
"serviceId": "d5d53f4342814761896ed8e44c28774c"
}

Possible error codes for DeleteData

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA061 Only requests with no Listener ID are expected.

MA062 Listener ID is not valid.


5 Digital Services | 476
5.3 API Services

ReleaseNodeData
Request
This request completely removes all data processing and registration of a specific node. Data that have been
reserved for the node will be processed by a different node.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ReleaseNodeData

service and specify these parameters:

● apiKey

● nodeId

EXAMPLE
{
"apiKey": "zttI0gLq3RKxKqfuU/uggBzEyhobzhE7wYzL2X3W7ZA=",
"nodeId":"Node1"
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 636,
"time": "\/Date(1524823430295)\/"
}

ReleaseAllNodesData
Request
This request completely removes all data reservations, data processing and registration of all nodes for the
company.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ReleaseAllNodesData

service and specify the apiKey parameter.


5 Digital Services | 477
5.3 API Services

EXAMPLE
{
"apiKey": "zttI0gLq3RKxKqfuU/uggBzEyhobzhE7wYzL2X3W7ZA=",
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 636,
"time": "\/Date(1524823430295)\/"
}

TransferNodeData
Request
In case a particular node (e.g. in Inspire Scaler) cannot process the data, you can use this request to redirect data
processing to a different node, which also prolongs the period of data processing before a timeout.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/TransferNodeData

service and specify this parameter:

● apiKey

● id

● type

● queueStamps

● oldNodeId – Unique identifier of the originally registered Inspire Scaler node.

● newNodeId – Unique identifier of the Inspire Scaler node you wish to redirect the data to.

EXAMPLE
{
"apiKey": "zttI0gLq3RKxKqfuU/uggBzEyhobzhE7wYzL2X3W7ZA",
"oldNodeId": "Node1",
"newNodeId": "Node2",
"id": "1234",
"type": "DAS",
5 Digital Services | 478
5.3 API Services

"queueStamps": 1
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 636,
"time": "\/Date(1524823430295)\/"
}

Possible error codes for TransferNodeData

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA128 Data with the specified QueueStamp could not be found. The data are assigned to a different
node, do not exist or were deleted.

MA138 Data reserved for this node cannot be currently confirmed. The data reservation is expired.

MA139 Data have been marked as incorrect and cannot be processed.

RetrieveData
Request
Calls all the gathered client data and returns only the data gathered since the last call to this service. It works
with both the one-way and two-way communications between client and enterprise systems.

One and the same serviceId can be retrieved by only one enterprise system. If there are more enterprise systems
waiting for the same serviceId, then the last in the line will retrieve the data. However, this does not apply to
cases where one serviceId is retrieved by several instances of Quadient Cloud. For such scenarios, it cannot be
guaranteed which instance will retrieve the data. It is recommended to have only one system which will retrieve
the data for one serviceId.

If the data are not available at the time when this service is called, the request is hold until the data become
available, i.e. the method of HTTP long polling is implemented, e.g. in case of timeout, the service is called
again in 2 minutes.

In case the service gathers data from more clients, then it will return such a number of records that the total re-
sponse size will not exceed 20 MB.

WARNING This request is obsolete. It can only be used with legacy services. It is advised to use the en-
hanced MultiRetrieveData request.
5 Digital Services | 479
5.3 API Services

Send the request to the

https://companyname.quadientcloud.eu/api/longpoll/MobileBackend/RetrieveData

service and specify these parameters:

● apiKey

● serviceId

● finished

● listenerId – If a service is configured to receive only requests with a specific listener ID, the listenerId
is used for authentication instead of the apiKey.

● maxRecordsCount – Maximum number of records that should be returned.

● queueStamp – Unique identifier of client data. This number is incremented in each request. queueStamp is
used for retrieving the latest data available, e.g. if a queueStamp is 4 in the request, then the response will
return data starting with queueStamp 5. In other words, to get the latest data, enter the highest queueStamp
number available.

EXAMPLE
{
"apiKey": "qXneK1blvembHK2gw2LfGWuljzWkcedQDJhDBny57y0=",
"serviceId": "847c2167-a10f-4242-9e5c-997bc46d84da",
"finished": false,
"maxRecordsCount": 4,
"queueStamp": 4
}

Response
The response returns the client data to the enterprise system which sent the request.

The response contains retrieved data which vary depending on the Events Monitoring settings (which require a
User Activity Tracking service). The data can be returned in the following categories:

● dCSavedState

● notificationDelivery

● notificationsSubscription

● userLogin

● identityUserMetadataChange

● documentMetadataChange
5 Digital Services | 480
5.3 API Services

The response can contain the following data items:

● dataId

● clientId

● sessionId

● lastStepId

● finished

● serviceId

● applicationId

● stateId

● documentId

● batchId

● notificationToken

● dateTime

● deviceFriendlyName

● devicePublicId

● targetClientId

● metadata

● notificationRegistrationStatus – General notifications subscription status: registered, or unregistered.

If the devicePublicId parameter was used when calling the AddNotificationSubscription request (thus
registering specific devices), the parameters returned are: registeredDevice and unregisteredDevice.

● registeredDevices – Number of devices a client has registered.

● remainingDevices – Number of devices remaining after the client has cancelled the subscription of a spe-
cific device.

● action – Document state action taken by the client:

○ create – Created a new document state.

○ reassign – Reassigned the DC state via the AssignDcStateToClient Client API request.

○ update – Updated an existing document state.

● queueStamp – Unique identifier of client data. This is used for retrieving the latest data available, e.g. if a
queueStamp is 4 in the request, then the response will return data starting with queueStamp 5.

● replyExpected – The true value indicates that the client is expecting a response which is necessary to
send via the StoreReplyData request.
5 Digital Services | 481
5.3 API Services

● userActivityType – Info about client logging in to application:

○ loggedIn – After first log in.

○ accessTokenCreated – Token created while logging in. Access token needs to be refreshed.

● offlineRequest – The true value indicates that the data transfer has been postponed due to the client
being offline.

● userAgent – Agent via which the data were sent.

● time – Date and time the client sent the data (in case of an offline request, the submission time may differ
from the time the data were received by Quadient Cloud).

● data – Returned in the JSON format and can contain binary data encoded in the Base64 format, e.g. an
image.

● latitude – Pinpoints the latitude coordinate of the client's location at the moment of the data dispatch.

● longitude – Pinpoints the longitude coordinate of the client's location at the moment of the data dispatch.

● status – Response status: ok, replaced (the data was retrieved by another enterprise system), timeouted
or noData.

EXAMPLE
{
"data": [
{
"queueStamp": 3,
"replyExpected": false,
"offlineRequest": false,
"serviceId": "fc6ab24b-cbd5-4e5e-80c0-ea798cf8017e",
"ipAddress": "192.168.56.49",
"userAgent": "Apache-HttpClient/4.1.1 (java 1.5)",
"time": "/Date(1452174330000)/",
"dataId": "template2",
"clientId": "2X5SDA67",
"sessionId": "sd5d8g8t-48t7-fe4a-8856-4sd8asd48as8",
"lastStepId": "0000001",
"finished": true,
"data": {
"notificationRegistrationStatus": "registered"
"customProperty1": "data1",
"customProperty2": "data2"
},
"latitude": 40.5918579,
"longitude": 17.2744236
}
],
"status": "Ok"
}
5 Digital Services | 482
5.3 API Services

Possible error codes for RetrieveData

Error code Description

MA061 Only requests with no Listener ID are expected.

MA062 Listener ID is not valid.

MA133 The service is not of the legacy type and cannot be used with this request.

StoreReplyData
Request
Triggers a response from the enterprise system carrying that data requested by the client.

WARNING This request is obsolete, it is advised to use the enhanced MultiStoreReplyData request.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/StoreReplyData

service and specify these parameters:

● serviceId

● apiKey

● listenerId

● data

● queueStamp – Identifier used for pairing the data sent by the client with the data within the response.

EXAMPLE
{
"serviceId": "94087705-c070-457f-9c0b-5be31d89f241",
"queueStamp": 1,
"apiKey": "qXneK1blvembHK2gw2LfGWuljzWkcedQDJhDBny57y0=",
"data": {
"customProperty1": "data1",
"customProperty2": "data2"
}
}

Possible error codes for StoreReplyData

Error code Description

MA034 Incoming request exceed the data limit.

MA058 Icoming data cannot be serialized.


5 Digital Services | 483
5.3 API Services

Error code Description

MA061 Only requests with no Listener ID are expected.

MA062 Listener ID is not valid.

5.3.2.2 Content Delivery


These services publish documents (Dynamic Communications, PDFs) including metadata (e.g. description, icon
etc.) to the end users of Quadient services. They also assign access rights (all clients, a group of clients, or a
specific client) to each document.

The content delivery services include:

● ContentUpload

● ContentUpdateMetadata

● ContentListWithFilter

● ContentDelete

● DeleteContentByDate

● GetClientDcState

● AssignDcStateToClient

● ListClientDcStates

ContentUpload
Request
Stores the document in the Content Delivery Service and sends it to clients based on the access rights.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentUploadV4

service and specify these parameters:

● apiKey

● metadata

● documents – Document details:

○ applicationId Document will be uploaded to this specified application.

○ serviceId – Document will be connected to this specified service.

○ userId – Identifier of the user uploading the document.

NOTE If userId is incomplete or missing, the document will still be uploaded, but its author
will not be specified.
5 Digital Services | 484
5.3 API Services

○ dataVersion – Document data structure version. When you upload (update) a document with a different
data structure, you must use a higher version number.

WARNING When you upload (update) a document with a higher dataVersion number than
the previous document version, all saved states for that document are deleted.

○ fileName – Name of the document stored in the CDS.

○ name – Name of the document displayed in the GUI.

○ fileContent – Content of the file.

○ clientAccessRights – Rights the client has for manipulation with the content:

■ clientId – Unique identifier of the client.

■ right – Rights the client has for the content:

□ read – Can only view the content.

□ update – Can view and modify the content.

□ delete – Can do both actions mentioned above and delete the content.

○ groupAccessRights – Rights a group of clients has for manipulation with the content:

■ groupId – Unique identifier for a group of clients.

■ right – Operations the group can perform on the content (read, update, delete), having the same
functionality as in clientAccessRights.

○ publicAccessRight – Rights every client has to manipulate the content:

■ right – Operations every client can perform on the content (read, update, delete). This has the
same functionality as in clientAccessRights.

At least one access right option is mandatory: clientAccessRigts / groupAccessRights / publicAssess→


Right.

IMPORTANT The maximum length of strings is 255 characters.

NOTE To update the document, use the identical ContentUpload request and add the documentId para-
meter.

EXAMPLE
{
"apiKey": "cq2Lfy3diF7YHSIOUljH3VJ4ZmpposJRCPcIZwsFWcg=",
5 Digital Services | 485
5.3 API Services

"documents": [
{
"applicationId": 4118,
"serviceId": "7da0efdd272a443d9187d54c124de752",
"dataVersion": 1,
"fileContent": "JVBERi0xLjUKJeLjz9MKMSAwIG9iago==",
"fileName": "filename",
"userId": 1,
"clientAccessRights": [
{
"clientId": "2HBZbYwaNu6OpXBMSArQqd",
"right": "update"
}
],
"groupAccessRights": [
{
"groupId": "18rCSlir3UyAcOfNrjSssZ",
"right": "read",
}
],
"publicAccessRight": "read",
"name": "content name",
"expireDate": "\/Date(253402297200000-0000)\/",
"description": "",
"metadata": [
{
"name": "metadata name",
"type": "text",
"value": "text value"
},
{
"name": "number name",
"type": "number",
"value": "555"
}
]
}
]
}

Response
Returns the IDs of all the sent documents.

EXAMPLE
{
"documents": [
{
"id": 4007
}
5 Digital Services | 486
5.3 API Services

]
}

Possible error codes for ContentUpload

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA006 Content already exists.

MA007 Client must be unique.

MA008 Client must be specified.

MA009 Content file name is not defined.

MA011 File parse has failed.

MA012 Uploading content files has failed.

MA013 Group must be unique.

MA014 Group must be defined.

MA018 Name must be unique. Value 'SomeMetadataName' is duplicated.

MA019 Uploading the metadata file has failed.

MA020 Content not found.

MA022 Rights must be defined.

MA023 Application not found.

MA024 Uploading some content files has failed.

MA030 You can create only 1 document and 1 application template in the trial mode.

ContentUpdateMetadata
Request
Updates the document parameters and metadata. You can update a single parameter / metadata without over-
writing (updating) other values.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentUpdateMetadataV4

service and specify these mandatory parameters:

● apiKey

● applicationId

● documentId

You can also specify any other parameters and metadata you want to update.
5 Digital Services | 487
5.3 API Services

IMPORTANT The maximum length of strings is 255 characters.

NOTE If userId is incomplete or not specified, the data will still be updated, but the author will not be
specified.

EXAMPLE This request updates the value of the name parameter to new name. Other parameters' values
stay unchanged:
{
"apiKey": "cq2Lfy3diF7YHSIOUljH3VJ4ZmpposJRCPcIZwsFWcg=",
"applicationId": 2006,
"documentId": 2007,
"name": "new name",
"publicAccessRight": "Read",
"metadata": [
{
"name": "text name",
"type": "text",
"value": "string"
},
{
"name": "date name",
"type": "date",
"value": "/Date(1527855362023)/"
},
{
"name": "number name",
"Type": "number",
"value": "10"
}
]
}

NOTE If you want to make sure you don't overwrite any parameters, set their value to null, e.g.
"groupAccessRights": null

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 299,
5 Digital Services | 488
5.3 API Services

"time": "/Date(1487169260652)/"
}

Possible error codes for ContentUpdateMetadata

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA006 Content already exists.

MA018 Name must be unique. Value 'SomeMetadataName' is duplicated.

MA019 Uploading the metadata file has failed.

MA020 Content not found.

MA023 Application not found.

ContentListWithFilter
Request
Lists all documents within the application and their metadata. This API has metadata filtering options. The request
times out after 60 seconds and then returns partial data in the response (you can continue from the point the
request timed out by specifying the lastProcessedDocumentId parameter in the following request).

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ContentListWithFilterV4

service and specify these parameters:

● applicationId

● apiKey

● requiredMetadata

● lastProcessedDocumentId

● filter – Filtering values are optional and can be freely combined using the following:

○ documentIds

○ metadataConditions

○ propertyConditions – You can use predefined properties to filter the documents, e.g. name (only returns
records that contain the specified value, fully or partially); or unknown, document, dc, pdf document types
(only returns records with the).

○ changedFrom – Only returns documents that have changed after the specified date (UNIX time format).
5 Digital Services | 489
5.3 API Services

○ changedTo – Only returns documents that have changed before the specified date (UNIX time format).

○ visibilityFilter – Filter documents according to their visibility: client, public, or group.

● count – Number of documents to list (minimally 1, maximally 10000).

NOTE If this parameter is not specified, by default, 1000 documents will be listed (the total
number of documents will be returned via the totalCount parameter).

● orderDescending – Boolean value. If true, the list is in descending order.

● sortBy – Sort the list by a specified parameter, i.e. documentId or lastChanged.

EXAMPLE
{
"applicationId": 107304,
"apiKey": "81rZo/+78GnwSH8F4neA42sM1gIJg2XMYfKmzfFaPA7B",
"count": 1000,
"orderDescending": "true",
"sortBy": "lastChanged",
"lastProcessedDocumentId": 153044,
"filter": {
"documentIds": [
153017,
153015,
153020
],
"changedFrom": "\/Date(1503170769611)\/",
"changedTo": "\/Date(1503170769611)\/",
"visibilityFilter": {
"clientId": "client-1",
"visibilityType": "Client"
},
"metadataConditions": [
{
"not": "false",
"operation": "equals",
"name": "metadata-name",
"value": "metadata-value"
}
],
"propertyConditions": [
{
"propertyName": "Name",
"filterValue": "Generated Content - 1"
}
]
}
}
5 Digital Services | 490
5.3 API Services

Response
Returns a JSON object listing all the documents in the application including their details:

● documentId

● created

● lastChange

● fileSize

● name

● author

● version

● dataVersion

● externalResourcesCount

● externalResourcesSize

● metadata

● savedStatesCount

● totalCount

● documentDescription – Brief description of the document.

● documentType – File type of the document, e.g. pdf.

● isMoreToLoad – States whether there are more documents to be listed available on the server.

● lastProcessedDocumentId – Value you can use in the next request to continue from the last document that
was processed when the request timed out.

● isTimedOut – Informs whether the request timed out or not (after 60 seconds).

EXAMPLE
{
"documents": [
{
"documentId": 151162,
"created": "/Date(1551274068645)/",
"lastChange": "/Date(1551274068645)/",
"fileSize": 0,
"name": "Generated Content - 6",
"author": "Cloud Administrator",
"documentDescription": "",
"documentType": "pdf",
"version": 0,
"dataVersion": 0,
"externalResourcesCount": 0,
5 Digital Services | 491
5.3 API Services

"externalResourcesSize": 0,
"metadata": [
{
"isReadOnly": "false",
"name": "text value",
"type": "text",
"value": "some text value"
}
],
"savedStatesCount": 0
},
{
"documentId": 151163,
"created": "/Date(1551274068645)/",
"lastChange": "/Date(1551274068645)/",
"fileSize": 0,
"name": "Generated Content - 7",
"author": "Cloud Administrator",
"version": 0,
"dataVersion": 0,
"externalResourcesCount": 0,
"externalResourcesSize": 0,
"metadata": [],
"savedStatesCount": 0
}
],
"isMoreToLoad": true,
"lastProcessedDocumentId": 151163,
"isTimedOut": false,
"totalCount": 10000000
}

Possible error codes for ContentListWithFilter

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

ContentDelete
Request
Deletes uploaded/updated documents.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/ContentDelete
5 Digital Services | 492
5.3 API Services

service and specify these parameters:

● apiKey

● documents – Content you are deleting by referencing the ID of the application and specific content IDs.

○ contentId

○ applicationId

EXAMPLE
{
"apiKey": "cq2Lfy3diF7YHSIOUljH3VJ4ZmpposJRCPcIZwsFWcg=",
"documents": [
{
"contentId": 4020,
"applicationId": 2000
}
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 1763,
"time": "\/Date(1517410805539)\/"
}

Possible error codes for ContentDelete

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

DeleteContentByDate
Request
Deletes documents of an application within the specified date range.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/DeleteContentByDate
5 Digital Services | 493
5.3 API Services

service and specify these parameters:

● apiKey

● applicationId

● dateFrom– Start date for documents to be deleted.

● dateTo– End date for documents to be deleted.

EXAMPLE
{
"apiKey": "nH0nRam1KIdBgz8ipaHoMwiyu9f9p48jtRtDBthmPG0=",
"applicationId": 1185,
"dateFrom": "2018-01-12T03:22:48.406Z",
"dateTo": "2018-01-31T03:22:48.406Z"
}

WARNING Deleting content using this API is irreversible. Once the request is made, the process cannot
be stopped.

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 1763,
"time": "\/Date(1517410805539)\/"
}

Possible error codes for DeleteContentByDate

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

GetClientDcState
Request
Lists client's current saved state for Dynamic Communications document.

Send the request to the


5 Digital Services | 494
5.3 API Services

https://companyname.quadientcloud.eu/api/query/MobileBackend/GetClientDcState

service and specify these parameters:

● apiKey

● documentId

● clientId

● stateId

EXAMPLE
{
"apiKey": "Kw+kRZhKmIxev2KJno3UjoQJ+6qWWL2SK0EE9Q4GAHrR",
"documentId": "119336",
"clientId": "lIzQMJRCipdY4rNBzvji246",
"stateId": "119384"
}

Response
Returns the client's current saved state, as specified in the ContentStoreDcState request.

EXAMPLE
{
"questionId": "x46a7",
"answer": "yes"
}

AssignDcStateToClient
Request
Assigns or reassigns Dynamic Communications document states to clients (you can store maximally 100 states
per user's document).

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/AssignDcStateToClient

service and specify these parameters:

● apiKey

● applicationId

● documentId

● stateId
5 Digital Services | 495
5.3 API Services

● targetClientId – Client ID to which the DC state will be assigned.

NOTE When using the LDAP authentication identity provider, use the account user name instead
of the Client ID for this parameter.

● sourceClientId – Client ID from which the DC state will be reassigned to the targetClientId.

{
"apiKey": "0a9tEaiApjuctC4J6m46Yz7fqXzvifGSH4MorN7b0ok=",
"applicationId": 8046,
"documentId": 28033,
"stateId": 40036,
"sourceClientId": 40036,
"targetClientId": "j.doe"
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 12385,
"time": "\/Date(1517467482221)\/"
}

ListClientDcStates
Request
Lists client's stored states for Dynamic Communications documents.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ListClientDcStates

service and specify these parameters:

● apiKey

● applicationId

● clientId

● itemsPerPage – Number of DC states listed per page.

● currentPage – Number of the page to be listed.


5 Digital Services | 496
5.3 API Services

EXAMPLE
{
"apiKey": "0a9tEaiApjuctC4J6m46Yz7fqXzvifGSH4MorN7b0ok=",
"applicationId": 2031,
"clientId": "Kf3E0Kqt7Y0xftToeaQs344",
"itemsPerPage": 1,
"currentPage": 5
}

Response
Returns a list of clients' Dynamic Communications document states and the following:

● id

● name

● author

● clientId

● userName

● lastChangeDate

● documentId

● lastHolder

● totalCount

EXAMPLE
{
"dcStates": [
{
"id": 2080,
"name": "state4",
"author": {
"clientId": "Kf3E0Kqt7Y0xftToeaQs344",
"userName": "username"
},
"lastHolder": {
"clientId": "Kf3E0Kqt7Y0xftToeaQs344",
"userName": "username"
},
"lastChangeDate": "\/Date(1540211727538)\/",
"documentId": 2079
}
],
5 Digital Services | 497
5.3 API Services

"totalCount": 14
}

5.3.2.3 Client Management


If you use the Inspire Authentication as the identity provider for client authentication, you can manage clients via
Enterprise API services. These API requests values correspond with manageable client details in the User Man-
agement section of Digital Services.

These client management services include:

● AddUsersToGroups

● UpdateIdentityUser

● CreateOrUpdateIdentityRoles

● CreateOrUpdateIdentityUsers

● GetIdentityBatchInfo

● ListUserByDate

● ListUsersByIds

● CreateOrUpdateIdentityUsersMetadata

● CreateOrUpdateIdentityUsersMetadataByRole

● ListIdentityUsersMetadata

● RemoveIdentityUsersMetadata

● RemoveIdentityUsersMetadataByRole

● SendActivationMailToUsers

AddUsersToGroups
Request
Adds users to groups. One or more users can be added to one or more groups.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/AddUsersToGroups

service and specify these parameters:

● apiKey

● applicationId
5 Digital Services | 498
5.3 API Services

● roleIds – Unique IDs of the groups.

● identityUserIds – Unique identifiers of the clients.

EXAMPLE
{
"apiKey": "nH0nRam1KIdBgz8ipaHoMwiyu9f9p48jtRtDBthmPG0=",
"applicationId": 1185,
"identityUserIds": [
"Ef251IfaDMRzWrYGBjfp795",
"rbZWmW9dSNvBurrPjVFa2313"
],
"roleIds": [
"1700",
"1713"
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 2357,
"time": "\/Date(1517413924596)\/"
}

Possible error codes for AddUsersToGroups

Error code Description

MA002 API key cannot be empty.

MA023 Application not found.

MA041 Maximum batch size is 500.

MA042 Minimum batch size is 1.

UpdateIdentityUser
Request
Enables/Disables users in Inspire Authentication. Multiple users can be enabled or disabled in a single request in
any combination, i.e. some users enabled, others disabled.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/UpdateIdentityUser
5 Digital Services | 499
5.3 API Services

service and specify these parameters:

● apiKey

● applicationId

● identityUsers

○ identityUserId– Unique identifier of the client.

○ isDisabled– Boolean value. If true, the user will be disabled in Inspire Authentication.

EXAMPLE
{
"apiKey": "nH0nRam1KIdBgz8ipaHoMwiyu9f9p48jtRtDBthmPG0=",
"applicationId": 1185,
"identityUsers": [
{
"identityUserId": "Ef251IfaDMRzWrYGBjfp795",
"isDisabled": true
},
{
"identityUserId": "rbZWmW9dSNvBurrPjVFa2313",
"isDisabled": false
}
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 2521,
"time": "\/Date(1517414740935)\/"
}

CreateOrUpdateIdentityRoles
Request
Creates user groups for the specified application.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/CreateOrUpdateIdentityRoles
5 Digital Services | 500
5.3 API Services

service and specify these parameters:

● apiKey

● applicationId

● identityRolesList – Client groups you want to create.

● roleId – Unique ID of the group.

● name – Name of the group.

● description – Brief description of the group.

EXAMPLE
{
"applicationId": 1021,
"apiKey": "6OTmESEVrSIBXwscfcUtEe0xcTUxunhC6DHS2o2MsdI=",
"identityRolesList": [
{
"roleId": 12134,
"name": "VIP",
"description": "VIP clients."
}
]
}

Response
Returns a confirmation that the users were created.

NOTE After calling the CreateOrUpdateIdentityRoles request, it is recommended to use the GetIdentity-
BatchInfo request to get more information using the batchGuid.

The lifetime of batch info created with the CreateOrUpdateIdentityUsers and CreateOrUpdateIdentityRoles
requests is 72 hours.

EXAMPLE
{
"batchGuid": "3afd71ae-a5fa-4572-8ce6-ff12ebc63f06",
"eventId": "626177",
"companyId": 162630,
}
5 Digital Services | 501
5.3 API Services

Possible error codes for CreateOrUpdateIdentityRoles

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

MA044 Identity provider was not found.

MA045 Identity provider with an editable user store was not found.

CreateOrUpdateIdentityUsers
Request
Creates or updates clients in the application's Inspire Authentication user store.

Send the request to

https://companyname.quadientcloud.eu/api/publish/MobileBackend/CreateOrUpdateIdentityUsers

and specify these parameters:

● apiKey

● applicationId

● identityUserId– Updates the existing user with information from the other parameters in the request.

This will fail if the userName value is already used in a different identityUserId entry. If the request is called
without specifying the identityUserId parameter, a new client is created.

● identityUsers – Clients you want to create.

● userName – Account login name.

● email – Valid email address where the client receives informative emails.

● emailConfirmed – Confirmation that the email address really belongs to the client (true / false).

● sendActivationEmail– Boolean value. If true, an activation email is sent to the client's address.

● phoneNumber – Valid phone number.

● phoneNumberConfirmed – Confirmation that the phone number really belongs to the client (true / false).

● roles – Created groups the client will be added to.

● roleId

● name

● claims – Access rights the client has in the application. These rights are passed within a JVT token.

● claimType

● claimValue
5 Digital Services | 502
5.3 API Services

● firstName

● lastName

● middleName

● language – Language the client uses for emails/application.

NOTE The maximum number of clients in one request is 500.

EXAMPLE
{
"apiKey": "6OTmESEVrSIBXwscfcUtEe0xcTUxunhC6DHS2o2MsdI=",
"applicationId": 1021,
"identityUsers": [
{
"userName": "j.smith",
"email": "j.smith@test.com",
"emailConfirmed": true,
"phoneNumber": "+112 359 854 265",
"phoneNumberConfirmed": true,
"roles": [
{
"roleId": 1234,
"name": "VIP",
}
],
"claims": [
{
"claimType": "Purpose",
"claimValue": "robbery"
}
],
"firstName": "John",
"lastName": "Smith",
"middleName": "Paul",
"language": "en-US"
}
]
}

Response
Returns a confirmation that the users were created.

NOTE After calling the CreateOrUpdateIdentityUsers request, it is recommended to use the GetIdentity-
BatchInfo request to get more information using the BatchGuid.
5 Digital Services | 503
5.3 API Services

The lifetime of batch info created with the CreateOrUpdateIdentityUsers and CreateOrUpdateIdentityRoles
requests is 72 hours.

EXAMPLE
{
"batchGuid": "3afd71ae-a5fa-4572-8ce6-ff12ebc63f06",
"eventId": "626177",
"companyId": 162630,
}

Possible error codes for CreateOrUpdateIdentityUsers

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

MA041 Maximum batch size is 500.

MA042 Minimum batch size is 1.

GetIdentityBatchInfo
Request
Returns information for the CreateOrUpdateIdentityUsers and CreateOrUpdateIdentityRoles requests.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/GetIdentityBatchInfo

service and specify these parameters:

● apiKey

● batchGuid – Unique identifier of a batch created by the CreateOrUpdateIdentityUsers and CreateOrUp-


dateIdentityRoles requests.

NOTE The lifetime of batch info created with the CreateOrUpdateIdentityUsers and CreateOrUpdateIden-
tityRoles requests is 72 hours.

EXAMPLE
{
"apiKey": "TqbeSV1cAWj31xVyR7Sfm7AZqxD46sr6yolSkviPsNA=",
"batchGuid": "0216b2c8-bfbe-44bd-bcee-4147c3c82c06"
}
5 Digital Services | 504
5.3 API Services

Response
Returns information on the specified batch, including descriptions of any errors.

EXAMPLE
{
"batchInfo": {
"companyId": 1,
"totalCount": 5,
"recordCount": 5,
"succedCount": 4,
"batchErrors": [
{
"positionInBatch": 2,
"recordError": [
"Identity user with the same (normalized) name already exists."
]
}
],
"batchDate": "\/Date(1519215183799)\/"
}

ListUserByDate
Request
Lists clients within Inspire Authentication for a specific time period.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ListUserByDate

service and specify these parameters:

● apiKey

● applicationId

● fromDate – Earliest date and time clients were created (UTC format).

● toDate – Latest date and time clients were created (UTC format).

EXAMPLE
{
"apiKey": "icUvZY69kgs6nJ0Gvh5Nu6dJjFw5lWAXvM/IS11DE8o=",
"applicationId": 2001,
"fromDate": "2017-07-15T08:14:49.406Z",
"toDate": "2017-08-15T08:14:49.406Z"
}
5 Digital Services | 505
5.3 API Services

Response
Returns a list of all clients (maximally 500) created in the specified time period, their details, and:

● identityUserId – Unique identifier of the client.

● registeredDevicesCount – Number of mobile devices registered for the delivery of push notifications.

● registeredDevicesWithPublicInfo – Displays devicePublicId and deviceFriendlyName parameters.

NOTE The parameter is empty if the devices were not registered with identifying information.

Applications created with Digital Advantage SDK version 12.2 or older do not contain the device→
PublicId parameter, newer versions of Digital Advantage SDK create it automatically.

● isMoreUsers – Boolean value:

○ true / false – Maximum client limit (500) per request was/wasn't exceeded.

EXAMPLE
{
"users": [
{
"createDate": "/Date(1523253404805)/",
"identityUserId": "7dQ4rLmXgcWe2T2MJYVz207",
"userName": "client0",
"firstName": "John",
"middleName": "Doe",
"lastName": "Novak",
"email": "user0@quadient.eu",
"emailConfirmed": true,
"lastActivationEmailSent": "/Date(-62135596800000)/",
"registeredDevicesCount": 2,
"registeredDevicesWithPublicInfo": [
{
"devicePublicId": "mydeviceid",
"deviceFriendlyName": "devicename"
}
]
}
],
"isMoreUsers": false
}

Possible error codes for ListUserByDate

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.


5 Digital Services | 506
5.3 API Services

ListUsersByIds
Request
Lists specific clients within Inspire Authentication by their Client ID.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ListUsersByIds

service and specify these parameters:

● apiKey

● applicationId

● userIds

NOTE The maximum number of clients that can be listed is 500.

EXAMPLE
{
"apiKey": "xgPQkQkT06Uvr30NOhTkstaUdZSHEZGBX/cf5TP+dNs=",
"applicationId": 1064,
"userIds": [
"UmyDOVCf02d1DsircSIH2225",
"LSWWAGzOSjzhEwq1fTFZ2212"
]
}

Response
Returns a list of all clients specified in the request with their details and the following:

● registeredDevicesWithPublicInfo

● identityUserId – Unique identifier of the client.

● registeredDevicesCount – Number of mobile devices registered for the delivery of push notifications.

EXAMPLE
{
"Users": [
{
"createDate": "/Date(1524727408480)/",
"identityUserId": "UmyDOVCf02L1csircSIH2225",
"userName": "doe.j",
"firstName": "Jane",
"middleName": "D.",
"lastName": "Doe",
5 Digital Services | 507
5.3 API Services

"emailConfirmed": true,
"lastActivationEmailSent": "/Date(-62135596800000)/",
"registeredDevicesCount": 1,
"registeredDevicesWithPublicInfo": [
{
"devicePublicId": "mydeviceid",
"deviceFriendlyName": "devicename"
}
]
},
{
"createDate": "/Date(1524727319768)/",
"identityUserId": "LSWWAGzOSjzvfwq1ITFZ2212",
"userName": "j.novak",
"firstName": "John",
"middleName": "Doe",
"lastName": "Novak",
"email": "j.novak@email.com",
"emailConfirmed": true,
"lastActivationEmailSent": "/Date(-62135596800000)/",
"registeredDevicesCount": []
}
]
}

Possible error codes for ListUsersByIds

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

MA050 Identity user does not exist.

MA094 More than 500 users cannot be listed.

CreateOrUpdateIdentityUsersMetadata
Request
Creates or updates metadata for clients within Inspire Authentication.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/CreateOrUpdateIdentityUsersMetadata

service and specify these parameters:

● apiKey

● identityStoreId

● identityUserIds
5 Digital Services | 508
5.3 API Services

● global – Metadata will be created or updated globally.

○ isReadOnly – The metadata is read only and cannot be edited via Digital Advantage SDK.

○ name – Name of the metadata.

○ value – Value of the parameters used for filtering.

● application – Metadata will be created or updated for a specific application.

○ applicationId

○ metadata

■ isReadOnly

■ name

■ value

NOTE The amount and size of metadata is limited. There can only be 100 metadata per user, and the
maximum size of each metadata is 10 kB. The maximum size of all metadata per user is 1MB.

EXAMPLE
{
"apiKey": "IhKp7nzr2phgaTDGHUIzDD04rh1BiwV+QPAPfHg4oxg=",
"identityStoreId": 2001,
"identityUserIds": [
"h5lud5QABFdPh5ARjkCa292"
],
"global": [
{
"isReadOnly": false,
"name": "theme",
"value": "light"
}
],
"application": [
{
"applicationId": 1053,
"metadata": [
{
"isReadOnly": false,
"name": "theme",
"value": "light"
}
]
}
]
}
5 Digital Services | 509
5.3 API Services

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 2121,
"time": "\/Date(1517414740935)\/"
}

Possible error codes for CreateOrUpdateIdentityUsersMetadata

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

MA050 Identity user does not exist.

MA089 Identity store does not exist.

MA090 Identity store is not editable.

MA113 The maximum metadata name length is 50 characters, value cannot be empty.
Value size must be less than 10 kB.

Application user metadata key cannot be 0.

User cannot have more than 100 metadata.

CreateOrUpdateIdentityUsersMetadataByRole
Request
Creates or updates metadata for all clients included in the group (roleId).

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/CreateOrUpdateIdentityUsersMetadataByRole

service and specify these parameters:

● apiKey

● identityStoreId

● roleId
5 Digital Services | 510
5.3 API Services

● global – Metadata will be created or updated globally.

○ isReadOnly

○ name – Name of the metadata.

○ value – Value of the parameters used for filtering.

● application – Metadata will be created or updated for a specific application.

○ applicationId

○ metadata

■ isReadOnly

■ name

■ value

NOTE The amount and size of metadata is limited. There can only be 100 metadata per user, and the
maximum size of each metadata is 10 kB. The maximum size of all metadata per user is 1MB.

EXAMPLE
{
"apiKey": "IhKp7nzr2phgaTDGHUIzDD04rh1BiwV+QPAPfHg4oxg=",
"identityStoreId": 2001,
"roleId": 1037,
"global": [
{
"isReadOnly": false,
"name": "theme",
"value": "light"
}
],
"application": [
{
"applicationId": 1053,
"metadata": [
{
"isReadOnly": false,
"name": "theme",
"value": "light"
}
]
}
]
}
5 Digital Services | 511
5.3 API Services

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 2121,
"time": "\/Date(1517414740935)\/"
}

Possible error codes for CreateOrUpdateIdentityUsersMetadataByRole

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

MA047 Identity role does not exist.

MA084 One or more Role IDs are not valid.

MA089 Identity store does not exist.

MA090 Identity store is not editable.

ListIdentityUsersMetadata
Request
Lists metadata of clients within Inspire Authentication.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ListIdentityUsersMetadata

service and specify these parameters:

● apiKey

● identityStoreId

● filter

● itemsPerPage – Number of metadata listed per page.

● currentPage – Number of the page to be listed.

EXAMPLE
{
"apiKey": "IhKp7nzr2phgaTDGHUIzDD04rh1BiwV+QPAPfHg4oxg=",
"identityStoreId": 2041,
"itemsPerPage": 50,
5 Digital Services | 512
5.3 API Services

"currentPage": 1,
"filter": ""
}

Response
Returns a list of the requested client metadata:

● identityUserIds

● applicationMetadata / globalMetadata – Depending on the category used when creating metadata, they
are listed as tied to a specific application or as globally available.

○ applicationId

○ isReadOnly

○ name – Name of the metadata.

○ value – Value of the parameters used for filtering.

NOTE The maximum number of listed clients per page is 500.

EXAMPLE
{
"usersMetadata": [
{
"identityUserId": "ajnLAhf7QXneSL3SUKj95758",
"applicationMetadata": [
{
"applicationId": 3047,
"metadata": [
{
"isReadOnly": false,
"name": "appMetadataByRoleId",
"value": "appNewsByRoleId"
},
{
"isReadOnly": true,
"name": "appMetadata_1",
"value": "appNews_1"
}
]
}
],
"globalMetadata": [
{
"isReadOnly": false,
"name": "gloalMetadata_1",
5 Digital Services | 513
5.3 API Services

"value": "globalNews_1"
},
{
"isReadOnly": false,
"name": "globalMetadataByRoleId",
"value": "globalNewsByRoleId"
}
]
}
]
}

Possible error codes for ListIdentityUsersMetadata

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA089 Identity store does not exist.

MA090 Identity store is not editable.

RemoveIdentityUsersMetadata
Request
Deletes metadata of specific clients within Inspire Authentication.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/RemoveIdentityUsersMetadata

service and specify these parameters:

● apiKey

● identityStoreId

● userIds

● global / applicationId / anyMetadata – Categories used for metadata to be deleted. Metadata will be deleted
globally for all applications, for a specific application, or for both global and application metadata.

● names – Names of the metadata to be deleted.

EXAMPLE
{
"apiKey": "6lgfGqTYmb+4DC7pgIqZXHyHDCSirtY2eZJXqsn2o1I=",
"identityStoreId": 1096,
"userIds": [
"qf0csc5gvwxnMMW3kr3u381"
5 Digital Services | 514
5.3 API Services

],
"anyMetadata": [
"test"
],
"global": [
"metadataname12"
],
"application": [
{
"applicationId": 1086,
"names": [
"metadataname1",
"metadataname3"
]
}
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 2521,
"time": "\/Date(1517414740935)\/"
}

Possible error codes for RemoveIdentityUsersMetadata

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA084 One or more Role IDs are not valid.

MA089 Identity store does not exist.

MA090 Identity store is not editable.

MA111 Some of the applications do not exist.

RemoveIdentityUsersMetadataByRole
Request
Deletes particular metadata of clients included in a group (roleId).

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/RemoveIdentityUsersMetadataByRole
5 Digital Services | 515
5.3 API Services

service and specify these parameters:

● apiKey

● identityStoreId

● roleId

● global / applicationId / anyMetadata – Categories used for metadata to be deleted. Metadata will be deleted
globally for all applications, for a specific application, or for both global and application metadata.

● names – Names of the metadata to be deleted.

EXAMPLE
{
"apiKey": "uW8bfyjBTmPL+r3UsQ5NCEULuxv35CmPz8NCLbSUJwE=",
"identityStoreId": 1824210,
"roleId": 1824211,
"anyMetadata": [
"test"
],
"global": [
"metadataname12"
],
"application": [
{
"applicationId": 1086,
"names": [
"metadataname1",
"metadataname3"
]
}
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 2357,
"time": "\/Date(1517413924596)\/"
}
5 Digital Services | 516
5.3 API Services

Possible error codes for RemoveIdentityUsersMetadataByRole

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA089 Identity store does not exist.

MA090 Identity store is not editable.

MA111 Some of the applications do not exist.

MA112 Some of the identity users do not exist.

SendActivationMailToUsers
Request
Sends emails with activation links to clients within Inspire Authentication.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/SendActivationMailToUsers

service and specify these parameters:

● apiKey

● applicationId

● userIds

TIP You can get the userIds value using the ListUserByDate which returns identityUserId.

NOTE The maximum number of emails per request is 500.

EXAMPLE
{
"apiKey": "BhqDmPn93CKm20xb1q6WXq/aullMSuO5OtLKDWfwdts=",
"applicationId": 257076,
"userIds": [
"3thRVMo7Mec4y7cm0e416330902",
"lxtGlS3nzOzBrqdJXmyb6332198",
"asdfdasfasdgdsafgsa54899498"
]
}
5 Digital Services | 517
5.3 API Services

Response
Returns an invalidUsers list of client emails that couldn't be reached with these error descriptions:

● Missing mail. – Client doesn't have an email address specified.

● User doesn't exist. – Specified client doesn't exist.

EXAMPLE
{
"invalidUsers": [
{
"userId": "6332198",
"error": "Missing mail."
},
{
"userId": "54899498",
"error": "User doesn't exist."
}
],
"eventId": 6332205,
"time": "\/Date(1508260611329)\/"
}

Possible error codes for SendActivationMailToUsers

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

MA045 Identity provider with an editable user store was not found.

MA063 Maximal possible user count is 500.

5.3.2.4 Other
● VerifyApiKey

● VerifyService

● SendNotifications

● SendNotificationsToDevice

● RemoveNotificationSubscriptionEApi

● GetNotificationRawData

● CreateServerAuthenticatedAccessToken

● RevokeServerAuthenticatedAccessToken
5 Digital Services | 518
5.3 API Services

● CreateExternalTokenVerifiedAccessTokenRequest

● ExportApplicationPackage

● ApplicationPackageFile

● ImportApplicationPackage

VerifyApiKey
This request verifies that the API key in the request is valid. The API key created in Quadient Cloud Administration
and the API Key specified in this request must match. If both keys match, then the name of the company is returned.

Request
Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/VerifyApiKey

service and specify this parameter:

● apiKey – Secret password for authentication of your cloud company.

EXAMPLE
{
"apiKey": "qXneK1blvembHK2gw2LfGWuljzWkcedQDJhDBny57y0="
}

Response
If the request is verified, then the response returns the name and ID of the company to which the API key belongs.

EXAMPLE
{
"companyName": "gfBank",
"companyId": 256513
}

Possible error codes for VerifyApiKey

Error code Description

MA002 API key cannot be empty.

MA003 Unauthorized call, your API key is not valid.


5 Digital Services | 519
5.3 API Services

VerifyService
Request
This request verifies that the company exists by seeing if the serviceId in the request is valid.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/VerifyService

service and specify these parameters:

● serviceId

● apiKey or listenerId

EXAMPLE
{
serviceId: "6043c452-6033-4dfb-a8e0-4ec784695ef2",
listenerId: "listener ID here"
}

EXAMPLE Request without a listenerId. The API key created in Quadient Cloud Administration and
the API key specified in this request must match. If both keys match, then the name of the service is returned.
{
serviceId: "6043c452-6033-4dfb-a8e0-4ec784695ef2",
apiKey: "NV8iYFFzU0zAaPQ76jHM4sJz/x8btws6Y+x4ffxKgAo="
}

Response
If the request is verified, then the response returns the service name.

EXAMPLE
{
"serviceName": "ServiceForDataCommunication"
}

Possible error codes for VerifyService

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA061 Only requests with no Listener ID are expected.


5 Digital Services | 520
5.3 API Services

Error code Description

MA062 Listener ID is not valid.

MA071 Given service does not exist.

SendNotifications
Request
Triggers the sending of notifications from an enterprise system to mobile devices of clients or groups of clients.
Notifications can be sent to multiple users and/or groups. For notifications to work correctly, your device must be
registered to receive notifications, the notifications subscription must be valid, and the Google PNS or Apple PNS
must be specified for your application.

To set up rich content notifications, see Extended Notifications.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/SendNotifications

service and specify these parameters:

● apiKey

● applicationId

● priority – If specified as high, immediately sends notifications, i.e. they have priority over notifications
without this parameter specified.

● batchId – Creates a unique ID for notifications. Can be used for grouping.

● notifications – List of notifications.

○ clientIds – Unique IDs of the clients that will receive the notifications. You can specify more clients
at once.

○ roleIds – Unique IDs of groups of clients.

○ title – Notification title.

○ message – Defines the notification's body of text. On Android and iOS devices, the message is displayed
when the notification is collapsed.

○ isSilent – Boolean value. If the notification is silent, it is displayed on the device after the document
has been downloaded, so it opens instantly.

○ iconResourceId – Image that will be used as the notification icon.


5 Digital Services | 521
5.3 API Services

○ content – Specifies additional content and actions performed by the notification. The recommended
number of actions for each notification is three. On Android devices, the maximum number of notific-
ation actions is five.

documentId ID of the document for which the actions are defined.

actions Specifies actions that are displayed within the notification as buttons. After adding an action,
you can specify its properties:

■ id – Specifies the id of the action that is performed after tapping on its button in the notifica-
tion. It can be any string (which is then defined in the application or content Dynamic Com-
munication). Alternatively, the following default IDs are also supported:

□ open – Opens the document.

□ delete – Deletes the document.

■ title – Specifies the text on the button.

■ type – Selects a specific type of action:

□ reply – Changes the action button into a reply box when tapped.

When no type is specified, the action is a button.

■ serviceId – Specifies a Content Delivery Service ID. When serviceId is added, the action
sends data to the service instead of the application.

■ flags – Add additional properties to the action:

□ authenticationRequired – Requires the device to be unlocked before performing the action.


If accessed from the lock screen, the user is asked to unlock the device first.

□ destructive – Adds a special highlighting to the action to alert the user that it performs
a destructive task, e.g. deletes the document (for iOS devices only).

□ foreground – Launches the linked application in the foreground, asking the user to unlock
the screen if necessary (for iOS devices only).

■ replyTitle– Specifies title of the reply text box.

■ replyPlaceholder – Specifies default text displayed inside the reply text box until user selects
the box (applies only if reply was selected as type).

options Additional notification options for Android which work as a flag array:

■ 0th bit– Visibility Private - Show this notification on all lockscreens, but conceal sensitive or
private information on secure lockscreens.

■ 1st bit– Visibility Public - Show this notification in its entirety on all lockscreens.

■ 2nd bit– Visibility Secret - Do not reveal any part of this notification on a secure lockscreen.

○ longMessage– On iOS devices, the long message is displayed when the notification is expanded. On
Android devices, the long message replaces Notification messages.
5 Digital Services | 522
5.3 API Services

If the notification contains any rich content, the long message's length is limited. This can result in a
cropped message. The limit depends on the Android build of the receiving device.

○ richContentId– Rich content ID.

● richContents– List of notifications.

○ id– Rich content ID. The ID must be used in the notification, otherwise it will give an error.

○ data– Can contain an image in Base64 format.

NOTE The notifications and actions categories can have custom parameters defined. The maximum
size of a notification is 2 kB.

WARNING The maximum size of a single request is 1 MB.

EXAMPLE
{
"apiKey": "BXNsquKGPeCZa4hpGhq/4v/5kp0njg45mUIZy37BrSA=",
"applicationId": 1124,
"priority": "high",
"batchId": 5555555,
"richContents": [
{
"id": "0123456789",
"data": "ZXhhbXBsZQ=="
}
],
"notifications": [
{
"clientIds": [
"8DNuf9h2oySxrCv4OxOY33571",
"J7Nzck8IagqmHaQnTQrr2355"
],
"title": "First notification",
"message": "Description in message",
"isSilent": "true",
"iconResourceId": 1121,
"content": {
"documentId": "1022",
"ipsum": "iorem",
"lorem": "ipsum"
},
"longMessage": "Long message text",
"richContentId": "0123456789"
},
{
"clientIds": [
"Ef251IfaDMRzWrYGBjfp795",
5 Digital Services | 523
5.3 API Services

"rbZWmW9dSNvBurrPjVFa2313"
],
"roleIds": [
"0123"
],
"title": "Second notification",
"message": "Description in message",
"isSilent": "false",
"iconResourceId": 1121,
"content": {
"documentId": "1408443",
"isUpdate": "false",
"version": "123",
"options": "4",
"actions": [
{
"title": "Delete",
"actionId": "Del",
"actionType": "delete-document",
"iconId": "123abcd",
"serviceId": "96fcc75f-dc4b-438f-a553-846e6f1464e7",
"flags": "0"
},
{
"title": "Reply",
"actionId": "Rep",
"actionType": "reply",
"iconId": "123efgh",
"serviceId": "96fcc75f-dc4b-438f-a553-846e6f1464e7",
"flags": "3",
"other": {
"replyTitle": "Send",
"replyPlaceholder": "Type message here",
"otherProperty": "Custom data"
}
},
{
"title": "Open",
"actionId": " open-document ",
"actionType": "",
"iconId": "123abcd",
"serviceId": "96fcc75f-dc4b-438f-a553-846e6f1464e7",
"flags": "0"
},
{
"title": "Custom Action",
"actionId": " custom-action-type ",
"actionType": "",
"iconId": "123abcd",
"serviceId": "96fcc75f-dc4b-438f-a553-846e6f1464e7",
"flags": "0"
}
],
"myCustomProperty1": "property1",
5 Digital Services | 524
5.3 API Services

"myCustomProperty2": "property2"
}
}
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 12385,
"time": "\/Date(1517467482221)\/"
}

Possible error codes for SendNotifications

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

MA032 Content cannot be serialized.

MA065 There is nothing to send.

MA083 The rich content file couldn't be uploaded.

MA086 The external resource '0123456789' is not used in the notification.

MA087 An external resource with the same name already exists.

SendNotificationsToDevice
Request
Triggers the sending of notifications. Functions like the SendNotifications request, but can send notifications to
a specified device of the client.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/SendNotificationsToDevice

service and specify these parameters:

● apiKey

● applicationId

● priority
5 Digital Services | 525
5.3 API Services

● batchId

● notifications – Parameters as in the SendNotifications request, with the exception of clientIds and
roleIds parameters which are replaced with the deviceIds parameter (consists of clientId and device→
PublicId parameters).

EXAMPLE
{
"apiKey": "xlNHYn15xDaq9HLFT57udFnOWVzrBbMiasb36LJuh9Y=",
"applicationId": 1031,
"priority": "high",
"batchId": 801,
"notifications": [
{
"content": { "some custom property": "custom value" },
"message": "Greeting message.",
"title": "Hello",
"deviceIds": [
{
"clientId": "bA5LsBbJUi4oMy5Se8MZ210",
"devicePublicId": "tablet1"
}
]
}
]
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 12385,
"time": "\/Date(1517467482221)\/"
}

Possible error codes for SendNotificationsToDevice

Error code Description

MA003 Unauthorized call, your API key is not valid.

MA023 Application not found.

MA032 Content cannot be serialized.

MA065 There is nothing to send.

MA067 Maximum notification size was exceeded.


5 Digital Services | 526
5.3 API Services

Error code Description

MA083 The rich content file could not be uploaded.

MA085 The external resource is invalid.

MA086 The external resource '0123456789' is not used in the notification.

MA087 An external resource with the same name already exists.

MA115 No valid notifications recipient was found.

RemoveClientNotificationSubscriptions
Request
Cancels a notifications subscription initiated by the AddNotificationSubscription request.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/RemoveClientNotificationSubscriptions

service and specify these parameters:

● apiKey

● applicationId

● clientID

● devicePublicId – Optional parameter for cancelling the subscription for only a specific device.

EXAMPLE
{
"apiKey": "E5mZGnxN4LLh5l+d4u9VkxMnZfqap6uQAjGEIodKxqI=",
"applicationId": "2056",
"clientId": "O2j7qZl97x34dyQXSHlK328",
"devicePublicId": "Device4"
}

Response
Returns a JSON object that assigns an event ID to the subscription cancellation and indicates its date.

EXAMPLE
{
"eventId": 11213,
"time": "/Date(1454579536349)/"
}
5 Digital Services | 527
5.3 API Services

GetNotificationRawData
Request
Downloads raw notification data for the selected time period.

NOTE This data is only available if you enable Data storing when creating a new application. It can also
be downloaded in Quadient Cloud GUI from the Notification Statistics section.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/GetNotificationRawData

service and specify these parameters:

● apiKey

● applicationId

● fromDate – Starting date from which notification data will be included (UNIX format).

● toDate – Ending date from which notification data will not be included (UNIX format).

EXAMPLE
{
"apiKey": "icUvZY69kgs6nJ0Gvh5Nu6dJjFw5lWAXvM/IS11DE8o=",
"applicationId": 2001,
"fromDate": "1522828160556",
"toDate": "1524000983078"
}

Response
Returns the raw notification data.

The values are in this order:

dateTime, clientID, notificationToken, platform, sendType, status, batchID

1. dateTime – Date and time the notification was received (UTC format).

2. clientID – Unique ID of the client the notifications was sent to.

3. notificationToken – Unique string identifying the notification.

4. platform – Device platform: iOS, Android, Web, or Unknown.

5. sendType – The means through which the notification was sent.

6. status – Status of the notification.

7. batchID – Unique notification ID created via the SendNotifications request.


5 Digital Services | 528
5.3 API Services

EXAMPLE
4/5/2018 13:04:02, 6c1de59d-f105-4f7c-b7fb-6ae9cv66315fe, C16UHQ45DxsiJw7FQuhv7604, Web, Send→
NotificationsRequest, Sent
4/5/2018 13:04:02, fc1de59d-f105-4f7c-c7fb-6ae9cv66315fe, D16UHQ45DxsiJw7FQuhv7604, Unknown,
SendNotificationsRequest, TrySent, 5555
4/5/2018 13:04:02, 841de59d-f105-4f7c-c7fb-6ae9cv66315fe, G16UHQ45DxsiJw5DQuhv7604, iOS, Send→
NotificationsRequest, Sent, 5555

CreateServerAuthenticatedAccessToken
Request
Creates an access token for the Integrated Server-side Authentication.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/CreateServerAuthenticatedAccessToken

service and specify these parameters:

● apiKey

● applicationId

● subject

● roles

● lifeTimeInSeconds

EXAMPLE
{
"apiKey": "xYLUqjU9frPthcihyVu44VuKon8OxnDLGoSWQxAcvOM=",
"applicationId": 12345,
"subject": "user_id_7890",
"roles": [
"group1",
"everyone"
],
"lifeTimeInSeconds": 3600
}

RevokeServerAuthenticatedAccessToken
Request
Revokes an access token for the Integrated Server-side Authentication.

Send the request to the


5 Digital Services | 529
5.3 API Services

https://companyname.quadientcloud.eu/api/publish/MobileBackend/RevokeServerAuthenticatedAccessToken

service and specify these parameters:

● apiKey – The apiKey set with the server-side provider.

● applicationId

● token– Token from the response of the CreateServerAuthenticatedAccessToken request.

EXAMPLE
{
"apiKey": "BnpxgmyzFIAPN8dEN6Qr47h8YUbex5/4q1QT/z5By3c=",
"applicationId": 10485,
"token": "8WsJrSc7_XLkqYAy-oQ0whSh33112|JjvSLRbMBvJPuMw5R1MF-dmr33112|3600"
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 33115,
"time": "\/Date(1519224114161)\/"
}

CreateExternalTokenVerifiedAccessTokenRequest
Request
Creates an external token and verifies the access token for the OAuth Token Verification.

Send the request to the

https://companyname.quadientcloud.eu/api/publish/MobileBackend/CreateExternalTokenVerifiedAccessToken

service and specify these parameters:

● applicationId

● providerId – ID of the identity provider in Digital Services, which contains configuration data.

● token – A token which will be verified against the configuration in Digital Services.

● uniqueKey – A unique key which serves to associate information acquired from a user info endpoint with
an already existing user account in Quadient Cloud.
5 Digital Services | 530
5.3 API Services

EXAMPLE
{
"applicationId": 106372,
"providerId": 107193,
"token":"ya29.GlufBjXOxmwDbU0AfpF22o-_yjNeu68avd4Oaka8ZLZJNdp9RdCF4aV7wXBhhIlhrA5YKDXxAIWF28W0",

"uniqueKey": "dasf"
}

Response
Returns a JSON object listing information about the requested action and the newly created token.

EXAMPLE
{
"token": "LzPlPDMLfitPCStCLwvG4je237272568|YRD1XH76yATNNFsrKJqE37272568|360000",
"eventId": 37272568,
"time": "/Date(1548956514218)/"
}

ExportApplicationPackage
Request
Exports an application configuration package (this functionality is also available in the Applications section of
Digital Services). Packages exported via this request can be imported via the GUI. The request times out after
100 seconds.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ExportApplicationPackage

service and specify these parameters:

● apiKey

● applicationId

● password – Security password for the application package. If you wish to export the application containing
signed certificates and builds with certificates, password protection is mandatory.

Define the options you wish to export as true or false. These parameters are equivalent to the items in the GUI
export tool and are listed in the example below.

NOTE If a parameter is not defined (it is null), it will be treated as true. If no parameter is defined, all
the options configured in the application's settings will be exported. However, even in this case, builds
will only be successfully exported if buildIds are specified.
5 Digital Services | 531
5.3 API Services

EXAMPLE
{
"apiKey": "IcR+g8nEa9tL7KP7DtIvjwa0z8I3nNga/Vmj65+oHOC0",
"applicationId": 103017,
"password": "packagepassword",
"applicationIcon": true,
"authenticationSettings": true,
"notificationsAndroid": true,
"notificationsiOS": true,
"notificationsWeb": true,
"metadataDefinitions": true,
"buildSettingsAndroid": true,
"buildSettingsiOS": true,
"buildSettingsWeb": true,
"buildSettingsAppearance": true,
"buildIds": [
111137,
111138,
111139
],
"storeListing": true,
"storeListingScreenshotPackages": true,
"storeListingDeploymentSettings": true,
"eventsMonitoringSettings": true,
"convertedServices": true,
"customDeepLinksAndroid": true,
"customDeepLinksiOS": true,
"customDeepLinksWeb": true
}

Response
Returns the DAS application package (in the header, Content-Type will display the application/zip value), or
JSON error messages.

Possible error codes for ExportApplicationPackage

Error code Description

MA005 Application build with the specified ID is not in the database.

MA149 Application export failed.

ApplicationPackageFile
Request
Uploads exported packages to Quadient Cloud for subsequent importing.

Send the request to

https://companyname.quadientcloud.eu/api/upload/MobileBackend/ApplicationPackageFile.
5 Digital Services | 532
5.3 API Services

It is a multipart form request where you can select the DAS file. For authentication purposes, you must enter your
identifying API key into the apikey header in the request headers.

Response
Returns the identifying packageGuid value which will be used when importing the package.

EXAMPLE
{
"packageGuid": "ffffa-g8nEa9tL7KP-7DtI-vjwa0-z8I3nNgHOC0"
}

Possible error codes for ApplicationPackageFile

Error code Description

MA003 Unauthorized call, your API key is not valid.

ImportApplicationPackage
Request
Imports a previously exported application configuration package (this functionality is also available in the Applic-
ations section of Digital Services). The request times out after 100 seconds.

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/ImportApplicationPackage

service and specify these parameters:

● apiKey

● applicationId – Set the value to 0 or keep it empty to create a new application, use an ID of an existing
application to update it with the data from the package.

● password – Security password that was set when the package was exported.

● packageGuid – Application package identification value that was returned after the file was uploaded to
Quadient Cloud.

● remapDeploymentStores – If you exported the application with its store listing settings, you must connect
them with the corresponding deployment store configurations by specifying the deployment IDs of each
store: googlePlayId, appStoreId, appaloosaAndroidId, and appaloosaiOSId.

EXAMPLE
{
"apiKey": "IcR+g8nEa9tL7KP7DtIvjwa0z8I3nNga/Vmj65+oHOC0",
"applicationId": 229088,
5 Digital Services | 533
5.3 API Services

"password": "Pass2018/",
"packageGuid": "f99a86f0-33c1-431c-8e18-4e6aab3dd434",
"remapDeploymentStores": {
"googlePlayId": 125096,
"appStoreId": 125097,
"appaloosaAndroidId": 125095,
"appaloosaiOSId": 125095
}
}

Response
Returns a JSON object listing information about the requested action.

EXAMPLE
{
"eventId": 12385,
"time": "\/Date(1517467482221)\/"
}

Possible error codes for ImportApplicationPackage

Error code Description

MA150 Application import failed.

MA151 Specified deployment stores could not be found.

5.3.2.5 Error Codes for Enterprise API


Possible error codes for enterprise API services:

Error code Description

MA002 API key cannot be empty.

MA003 Unauthorized call, your API key is not valid.

MA005 Application build with the specified ID is not in the database.

MA006 Content already exists.

MA007 Client must be unique.

MA008 Client must be specified.

MA009 Content file name is not defined.

MA011 File parse has failed.

MA012 Uploading content files has failed.


5 Digital Services | 534
5.3 API Services

Error code Description

MA013 Group must be unique.

MA014 Group must be defined.

MA018 Name must be unique. Value 'SomeMetaDataName' is duplicated.

MA019 Uploading the metadata file has failed.

MA020 Content not found.

MA022 Rights must be defined.

MA023 Application not found.

MA024 Uploading some content files has failed.

MA026 Batch info does not exist.

MA030 You can create only 1 document and 1 application template in the trial mode.

MA032 Content cannot be serialized.

MA034 Incoming request exceed the data limit.

MA041 Maximum batch size is 500.

MA042 Minimum batch size is 1.

MA044 Identity provider was not found.

MA045 Identity provider with an editable user store was not found.

MA047 Identity role does not exist.

MA050 Identity user does not exist.

MA058 Icoming data cannot be serialized.

MA061 Only requests with no Listener ID are expected.

MA062 Listener ID is not valid.

MA063 Maximal possible user count is 500.

MA065 There is nothing to send.

MA067 Maximum notification size was exceeded.

MA071 Given service does not exist.

MA083 The rich content file couldn't be uploaded.

MA084 One or more Role IDs are not valid.

MA085 The external resource is invalid.

MA086 The external resource '0123456789' is not used in the notification.

MA087 An external resource with the same name already exists.

MA089 Identity store does not exist.

MA090 Identity store is not editable.

MA091 Notification delivery could not be confirmed.

MA094 More than 500 users cannot be listed.


5 Digital Services | 535
5.3 API Services

Error code Description

MA111 Some of the applications do not exist.

MA112 Some of the identity users do not exist.

MA113 Invalid client metadata:


The maximum metadata name length is 50 characters, value cannot be empty.

Value size must be less than 10 kB.

Application user metadata key cannot be 0.

User cannot have more than 100 metadata.

MA115 No valid notifications recipient was found.

MA127 Node registration is missing, please send the request using a valid channel.

MA128 Data with the specified QueueStamp could not be found. The data are assigned to a different
node, do not exist or were deleted.

MA130 Node is not registered.

MA131 At least one of the confirming states (done, failed, or processing) cannot be empty.

MA132 QueueStamp must be unique for the given channel. It cannot be used twice in one or more pro-
cessing states.

MA133 The service is not of the legacy type and cannot be used with this request.

MA134 Sending replies to channels of the MSG type is not supported.

MA135 ApiKey or ListenerId is invalid.

MA136 Queue Stamp and Data arrays must have the same length.

MA137 The channel could not be found. It does not exist or it was deleted.

MA138 Data reserved for this node cannot be currently confirmed. The data reservation is expired.

MA139 Data have been marked as incorrect and cannot be processed.

MA141 Cannot register more than 1000 channels.

MA149 Application export failed.

MA150 Application import failed.

MA151 Specified deployment stores could not be found.

MA154 The maximum number of document saved states is 100.

5.3.3 Generic Cloud Responses


This section describes generic cloud responses to the client API requests and provides an example of both positive
and negative responses.

The essential parts of a generic Cloud response include:

● HTTP Request Status Codes

● JSON Object
5 Digital Services | 536
5.3 API Services

NOTE All Cloud APIs are based on the REST (Representational State Transfer) architecture. All requests
and responses except for the empty ones are in the JSON format.

5.3.3.1 HTTP Request Status Codes


The response contains one of these status codes:

● 200 (Without an error JSON object) – The request was successful.

● 200 (With an error JSON object) – A validation error; wrong apiKey or missing values etc.

● 400 – Bad Request (empty body). A typo in the query/MobileBackend/VerifyApiKey part of the request's
URL:

https://companyname.quadientcloud.eu/api/query/MobileBackend/VerifyApiKey

● 401 – Wrong company (with an error JSON object). The current company does not support Digital Services.

● 404 – Not found (with an HTML page: Page Not Found). Incorrect URL of your company's cloud, e.g. ht-
tps://companyname.quadientcloud.eu/api/.

● 500 – Internal server error (with an HTML page: Internal server error).

5.3.3.2 JSON Object


A JSON object is part of a generic Cloud response only if the response contains a 200 status code.

Depending on whether the 200 status code indicates a successful request or a failed one, the response contains
a corresponding JSON object:

● A sample JSON object indicating a successful request:

{
"eventId": <internalclouteventidnumber>
}

● A sample JSON object indicating a failed request:

{
"error": {
"type": "<error type>",
"error": "<error message>"
}
}

5.3.4 Ping
Verifies availability of the service.
5 Digital Services | 537
5.3 API Services

Send the request to the

https://companyname.quadientcloud.eu/api/query/MobileBackend/Ping

service.

5.3.5 API Operations


There are various types of operations Quadient Cloud API services can perform:

API Publish Services Perform specified actions and return information in JSON format about the performed
action (its result). They are generally of the write type and contain the publish parameter in the request URL
address.

API Query Services Return the requested information in JSON format. They are generally of the read type and
contain the query parameter in the request URL address.

API Long Poll Services Allow the client to poll the server requesting new information, where the request is held
open until new data is available. Once available, the server responds and sends the new information. When
the client receives it, another request is sent immediately and the operation is repeated (this effectively
emulates a server push feature). These services contain the longpoll parameter in the request URL address.

NOTE Data communication and Enterprise solution requests with large volumes of data are an exception
regarding the Quadient Cloud Performance and Limits standards, e.g. Enterprise solution APIs are to be
called once per minute.

API Publish Services


List of API services that perform the write operation:

API Requests

AddNotificationSubscription

AssignDcStateToClient

AssignDcStateToUser

ConfirmNotificationDelivery

ConfirmNotificationDeliveryV2

ContentDeleteByClient

ContentDeleteDcState

ContentDelete

ContentPublishDocument

ContentStoreDcState

ContentUpdateDcState

CreateExternalTokenVerifiedAccessToken

CreateOrUpdateContentMetadataV3
5 Digital Services | 538
5.3 API Services

API Requests

CreateOrUpdateIdentityUserMetadata

CreateServerAuthenticatedAccessToken

DeleteIdentityProviderAssociation

MultiStoreReplyData

RemoveClientNotificationSubscriptions

RemoveIdentityUserMetadata

RemoveNotificationSubscription

RevokeServerAuthenticatedAccessToken

SaveIdentityUserIssueAssociationToken

SendNotification

SendNotifications

SendNotificationsToDevice

StoreAndRetrieveReplyData

StoreIncomingData

StoreReplyData

UpdateIdentityUser

ContentUpdateMetadataV4

ContentUploadV4

API Query Services


List of API services that perform the read operation:

API Request

ContentGetBinary

ContentGetDcState

ContentGetDocument

ContentGetHistory

ContentGetResources

ContentList

ContentListDcState

ContentListDcStates

ContentListResources

ContentListUsers

ContentMetadataGetFile

ContentMetadataV3
5 Digital Services | 539
5.3 API Services

API Request

GetClientDcState

GetClientId

GetContentLoader

GetExternalResource

GetIdentityBatchInfo

GetIdentityUserMetadata

GetNotificationRawData

IdentityProviderSignInData

IdentityUserProfile

ListClientDcStates

ListIdentityUsersMetadata

ListUserByDate

ListUsersByIds

VerifyApiKey

VerifyDebugMode

VerifyNotificationSubscription

VerifyService

API Long Poll Services


List of API services that perform operations using the long polling technique:

API Request

RetrieveData

MultiRetrieveData

RetrieveReplyData

StoreAndRetrieveReplyData
6 Insights

6.1 Application Overview


6.2 Dashboard Creation
6.3 Dashboard Layouts
6.4 Dashboard Widgets
6.5 Using Insights
6 Insights | 541
6.1 Application Overview

6.1 Application Overview

Insights creates customized dashboards for monitoring different production processes. See An Overview of
Quadient Cloud for a quick introduction to the components and functionality.

Insights

Component JSON Component Template Data JSON


Data Storage Production environment
Storage

Dashboard Designer

Data Feed Quadient Cloud


Dashboards
Applications

What It Brings to Business Users

● Improves monitoring facilities for Service Providers so they can:

○ React faster to issues and better inform senior management in case of escalation.

○ Be more pro-active in identifying production limiting issues and adjusting the production accordingly.

○ Improve customer satisfaction and provide a more transparent view for their customer.

● Reduces maintenance cost of non-core technology (web portal / dashboards).

● Minimizes impact on existing infrastructure and processes.

● Enables new features ("widgets") to be available in a rapid way.

6.2 Dashboard Creation


To create a production-ready dashboard, you first need to prepare the necessary dashboard resources in the
JSON format (dashboard component templates and data sources) outside the Insights GUI. Component templates
that are connected to specific data sources can then be combined and stacked to assemble the dashboard
within the Insights GUI.
6 Insights | 542
6.2 Dashboard Creation

The process is described in detail in these steps:

Dashboard Resource Preparation: Dashboard Assembly:

1. Preparing Dashboard Component Templates 1. Uploading and Storing Component


Templates
2. Preparing Data and Connecting Them to Component
Templates 2. Uploading and Storing Push Data

3. Uploading and Storing Custom Data


Sources

4. Assembling Dashboards

6.2.1 Preparing Dashboard Component Templates


Dashboard component templates are reusable dashboard pieces, which you can combine to assemble your
production dashboards.

To use component templates in Insights, you must first prepare their JSON (JavaScript Object Notation) definitions.
Such JSON definitions include the configuration of the component's visual appearance and the connection to a
specific data source.

For ease of explanation, let's divide the JSON definition into these properties:

● Root Properties

● Composition Properties

TIP To quickly and easily create JSON definitions, download our starter kits from the Downloads section.
The kits include ready-made sample JSON definitions for most of the available visual elements (donut
charts, tables). You can edit and customize the prepared JSON definitions according to your needs.

For more information, refer to Insights Starter Kits.

6.2.1.1 Root Properties


The root properties include:

● displayName

● description

● properties

● id

● composition
6 Insights | 543
6.2 Dashboard Creation

EXAMPLE Structure of the Root Properties

"displayName": "Account Component - Company list",


"description": "Shows list of all customers",
"properties": {
"icon": "donut",
"tags": ["Froodeco", "gfBank"],
"minWidthPx": 200
},
"id": 1000,
"composition": {

displayName
Defines the template's name. This is visible once the template is uploaded into Insights:

description
Defines the template's description. This is visible once the template is uploaded into Insights:

properties
Object containing settings that are reflected in the Dashboard Editor:

● icon
Defines the icon representing the template in Dashboard Editor | Components.
6 Insights | 544
6.2 Dashboard Creation

The available values include:

Value Icon Value Icon

donut embeddedHtml

table headingText

image bostonMatrix

stackChart lineChart

counter tabs

wordCloud tagFilter

bundle default

button

NOTE If you leave this property out of the template's configuration, the default icon is used.

● tags
Categorizes component templates into groups so that you can easily locate them in Dashboard Editor |
Components. One component can be categorized into any number of groups. To name the groups, use
any alphanumeric string.

NOTE Using the word image and its variations (e.g. Image, IMAGE, images, etc.) as a tag categorizes
the related component into the existing Image group that contains the empty Image component
instead of creating a new group.
6 Insights | 545
6.2 Dashboard Creation

EXAMPLE
"tags": ["Froodeco", "gfBank"]

● minWidthPx
Defines, in pixels, the default width of the component; i.e. in Dashboard Editor, it is the width when you
first drag it from the list of components and drop it into the editor preview.

When scaling the component's width, you cannot go below the value defined by this property.

id
To update an outdated component template, you can upload the new version of the template into Insights while
replacing the old one:

1. In Insights, go to the Component Templates section.

2. Copy the Id of the template you wish to update and use it as the value for the id property.

3. Place the id into the JSON definition of the new component template.

4. Upload the new template into Insights.

TIP You can also update component templates directly in Insights using the JSON definition text editor.

composition
Initiates the component template's structure and appearance configuration.

See the details in the Composition Properties section.


6 Insights | 546
6.2 Dashboard Creation

6.2.1.2 Composition Properties


Introduced by the composition root property, the composition properties define the component template's structure
and appearance:

● type

● localProperties

● dataQuery or dataNode

● exportedProperties

● children

EXAMPLE

"composition": {
"type": "layout:Insights.Grid",
"children": [
{
"type": "layout:Insights.Group",
"localProperties": {
"title": "FROODECO - SUMMARY"
},
"exportedProperties": {
"positionX": 0,
"positionY": 0,
"width": 950,
"height": 180
},
"children": [

type
Selects one of the available visual elements (donut charts, line charts etc.) that you can implement within a
dashboard component template.

For ease of explanation, let's divide the available visual elements into the following groups, which you can learn
about in their respective sections:

● Layouts

● Widgets

localProperties
Defines the appearance of the selected visual element and the data that it displays.

dataQuery or dataNode
Placed within widgets only, one of these objects can be selected to define a connection to a specific data source.
6 Insights | 547
6.2 Dashboard Creation

To learn about the available data sources, and how to connect the component template to them, go to the Pre-
paring Data and Connecting Them to Component Templates section.

exportedProperties
Define the position and size of children layouts or widgets inserted within layout:Insights.Grid or layout:In-
sights.Rows.

EXAMPLE

"type": "layout:Insights.Grid",
"children": [
{
"type": "layout:Insights.Group",
"localProperties": {
"title": "TODAY'S PROGRESS"
},
"exportedProperties": {
"positionX": 0,
"positionY": 0,
"width": 302,
"height": 373
},

children
Configurable within layouts, it initiates the component template's structure in which multiple other visual elements
are inserted into the parent layout.

6.2.2 Preparing Data and Connecting Them to Component Templates


You can prepare the following kinds of data and connect them to your dashboard component templates:

● Queryable Data

When connecting your component templates to this kind of data, you can perform further data transform-
ations on them, such as conversion, filtering etc.

● Raw Data

These data are processed in its raw form without the ability to perform further data transformations on
them.

6.2.2.1 Queryable Data


These data are processed through built-in technology called Data Query Engine. It provides you with data
transforming abilities, such as conversion, filtering etc.

Data Query Engine is an on-demand feature which must be activated separately.


6 Insights | 548
6.2 Dashboard Creation

NOTE All queryable data that are in date-time format are processed by the Data Query Engine in UTC.

Learn about the queryable data available and how to work with them in these sections:

● Queryable Internal Data

● Queryable Custom Source Push Data

● Data Query Specification

● Data Query Example

● Data Query Editor

Queryable Internal Data


The data available in this category includes a large range of data currently produced by Inspire Messenger and
data that relates to Quadient Cloud credit transactions.

How to Use These Data

1. Open a JSON definition of a component template.

2. Place the dataQuery object within the data displaying widget to start composing a data query.

3. When configuring a processorProperties.fieldPointer or processorProperties.sourcePointer object,


proceed as follows:

a) application – Reference a specific application whose data you wish to access.

The available values include:

● Messenger

● Billing

b) dataSource – Reference a specific data source from the selected application.

c) field – Reference a specific data field from the selected data source. This only applies to processor→
Properties.fieldPointer.

EXAMPLE

"dataQuery": {
"fields": [
{
"processor": "GroupBy",
"processorProperties": {
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "messageId"
6 Insights | 549
6.2 Dashboard Creation

},
"groupByType": "match"
},
"asDataProperty": "messageId"
}
]
}

Messenger Data Model


This section lists all the Inspire Messenger data you can access through a data query.

This data model consists of the following, hierarchically structured data sources:

● Batch

● Message

● Click-Through

Data Source - Batch

Field Description Type

batchId Returns data related to a specified Number


batch ID.

batchName Returns data related to specified String


batch names. The batchName values
come from custom configurations
of Inspire Production Server jobs.

customer Returns data related to specified String


customers. The customer values
come from custom configurations
of Inspire Production Server jobs.

channelType Returns data related to batches Enum:


processed by a specified channel
(email or sms). ● Email

● Sms

processingStatus Returns data related to a batch in Enum:


a specified processing status.
● Uploading

● Uploaded

● Processing

● Processed

● Sending
6 Insights | 550
6.2 Dashboard Creation

Field Description Type

● Completed

● Failed

● ScheduledForProcessing

● Expired

sendingStarted Returns data related to batches Date-time


that the system started sending
within a specified period of time.

sendingFinished Returns data related to batches Date-time


that the system finished sending
within a specified period of time.

expiration Returns data related to batches Date-time


that expired within a specified
period of time.

creditPrice Returns data related to batches Number


that cost a specified amount of
credits.

lastUpdated Returns data related to batches Date-time


whose info was last updated
within a specified period of time.

NOTE Query Engine based components that work with the number of messages in batches always show
a zero value if the given batch has expired. Messages are periodically deleted from expired batches.

Data Source - Message

Field Description Value

messageId Returns data related to messages String


with a specified message ID.

messageStatus Returns data related to messages Enum:


with a specified processing status.
● WaitingForSend

● SendFailed

● Sent

deliveryStatus Returns data related to messages Enum:


with a specified delivery status.
● Delivered

● Bounced
6 Insights | 551
6.2 Dashboard Creation

Field Description Value

● WaitingAtProvider

● Unknown

openTimes Returns data related to messages Number


that were opened a specified
amount of times.

clickCount Returns data related to messages Number


that were uniquely clicked on a
specified amount of times.

firstTimeOpened Returns data related to messages Date-time


that were first opened within a
specified period of time.

lastTimeOpened Returns data related to messages Date-time


that were last opened within a
specified period of time.

unsubscribed Returns data related to messages Boolean


that the customers used to unsub-
scribe.

markedAsSpam Returns data related to messages Boolean


that were blocked by the spam fil-
ter.

sender Returns data related to messages String


that were sent by a specified
sender.

recipient Returns data related to messages String


that were sent to a specified recip-
ient.

email.subject Returns data related to emails that String


contained a specified subject.

email.containsDocument Returns data related to emails that Boolean


contained a document operation
(create/update/delete) specified in
the Inspire Designer's Digital
Communications Data module .

email.sentTime Returns data related to emails that Date-time


were sent out within a specified
period of time.

sms.senderName Returns data related to SMS mes- String


sages that were sent by a specified
sender.

sms.deliveryStatusCode Returns data related to SMS mes- String


sages with a specified delivery
status code.
6 Insights | 552
6.2 Dashboard Creation

Data Source - Click-Through

Field Description Value

url Returns data related to messages String


that contained a specified URL link
that the customers could click.

dateTime Returns data related to messages, Date-time


within which the customer clicked
on a URL link within a specified
period of time.

ipAddress Returns data related to messages, String


within which the customer clicked
on a URL link from a specified IP
address.

clickThroughId Returns data related to messages string


with a specific clickThroughID,
which is a combination of batchId,
messageId, and the ID of the click.

Billing Data Model


This section lists all the data related to Quadient Cloud credit transactions .

This data model consists of the InspireCreditTransaction data source.

Data Source - InspireCreditTransaction

Field Description Type

transaction→ Returns data related to transactions with a unique transaction Number


Count number.

collisionId Returns data related to transactions with a specific collision ID. Number
A collision ID is assigned to those transactions that occurred
within the same date.

date Returns data related to transactions which occurred within a Date-time


specific date.

balanceType Returns data related to a specific type of transaction. Enum:

● FormatConvert→
Pages

● MessengerSms

● MessengerEmail

● Interact→
iveDeployment
6 Insights | 553
6.2 Dashboard Creation

Field Description Type

● Topup

● MessengerEmail→
WithDC

amount Returns data related to transactions that cost a specific amount Number
of credits.

batchId Returns data related to transactions that belong to a specific Number


batch.

balance Returns data related to transactions that resulted in a specific Number


credit balance.

spentByCompa→ Returns data related to transactions made by a specific com- Number


nyId pany ID.

spentByCompany→ Returns data related to transactions made by a specific com- String


Name pany name.

Queryable Custom Source Push Data


Custom data produced by other software (e.g. Inspire Automation) as separate JSON definitions. Such data can
be further transformed using a data query within the JSON definition of the connected component template.

Preparing Custom Source Push Data

1. Prepare JSON definitions of the custom data source

2. Upload and store the custom data source definitions in Insights.

3. Configure your data generating software (e.g. Inspire Automation) to produce JSON definitions of the
queryable push data.

The structure has to match the prepared custom data source definitions.

4. Upload and store the produced data in Insights.

JSON Definitions of Custom Data Source


Define the JSON data structure that will be uploaded to Insights to be able to process data from other software
using our Data Query Engine.

The JSON definitions consist of these properties:

Property Type Obligatory

dataSourceName string YES

description string NO

record object YES


6 Insights | 554
6.2 Dashboard Creation

EXAMPLE
{
"dataSourceName": "example.jobs",
"description": "Data structure of produced jobs",
"record": {
"definition": {
"type": "object",
"properties": {
"created": {
"type": "string",
"format": "date-time"
},
"jobId": {
"type": "string"
},
"companyId": {
"type": "string"
},
"company": {
"type": "string"
},
"fileName": {
"type": "string"
},
"pageCount": {
"type": "number"
},
"slaStatus": {
"type": "string",
"enum": [
"OnTarget",
"AtRisk",
"Missed"
]
}
}
}
}
}

dataSourceName
Names the custom data source. The same name is used within the JSON definition of push data to match the
data to the correct custom data source.

description
Description of the custom data source as displayed in Insights.
6 Insights | 555
6.2 Dashboard Creation

record
Definition of all data fields that will be uploaded to Insights

These data fields must match the actual data from your data producing software.

1. Specify the beginning of the object as follows:

"record": {
"definition": {
"type": "object",
"properties": {

NOTE The syntax introduced by the definition object is a limited variation of the JSON Schema.

2. Declare all the desired data fields within the properties object.

Supported data types are string, number, and boolean.

Options Description Example

"enum": { Applies to string


"slaStatus": {
fields.
"type": "string",
"enum": [
"OnTarget",
"AtRisk",
"Missed"
]
}

"format": "date-time" Applies to string


"created": {
fields that represent
"type": "string",
date-time values.
6 Insights | 556
6.2 Dashboard Creation

Options Description Example

The supported date-


"format": "date-time"
time formats include
}
all the formats that
fall under RFC 3339,
section 5.6 .

"format": "milli→ Applies to number


"runTime": {
seconds" fields that represent
"type": "number",
time periods in milli-
"format": "milliseconds"
seconds (e.g. the run
}
time of a job).

Table 6.1 Further Data Field Specifications

JSON Definitions of Queryable Custom Source Push Data


Configure your data producing software (e.g. Inspire Automation) to produce JSON definitions of your data.

The JSON definitions consist of these properties:

Property Type Obligatory

apiKey string YES

data object YES

appendMode boolean NO

requestGuid string YES, if appendMode is used.

apiKey
The value of the apiKey property authenticates your attempt to upload data into Insights. Create your API key in
Insights as described in the API Keys section and copy it into this JSON definition.

EXAMPLE
"apiKey": "96d83621-5824-49e8-a34c-767b3a5e9fd5"

data
Object that initiates the data structure as produced by your software.

EXAMPLE

{
"apiKey": "ApO5PcpzEusMkhg5jQL86wmMB0QZHcnHmVcqxVZzz0A=",
"data": {
"example.jobs": {
"records": [
6 Insights | 557
6.2 Dashboard Creation

{
"created": "2016-05-05 08:00:00",
"jobId": "100002448",
"companyId": "Oveo Mobile",
"company": "Oveo Mobile",
"fileName": "100002448.pdf",
"pageCount": 1574,
"slaStatus": "OnTarget"
}
]
}
},
"appendMode": "true",
"requestGuid": "Append-01"
}

● example.jobs – A key representing the custom dataSourceName.

● records – The array of all the records. The structure has to be the same as in the custom data
source JSON definition.

appendMode

true Ensures that the data uploaded within the given request are added to previously uploaded data.

If used, only one set of data per request can be uploaded.

NOTE

● The length of one record is limited to 5,000 characters

● The amount of records that Insights can store within one data path is limited to 2,000. If this
number is exceeded, Insights will start to rewrite the oldest records.

false The given request overwrites previously uploaded data. This also applies if you omit the appendMode
property.

requestGuid
Configure your data producing software to provide a unique requestGuid value for each request. This ensures
that the same set of data is not uploaded twice.

NOTE For the same combination of apiKey and data path, the requestGuid value must be unique in at
least 100 consecutive requests.

Using Custom Source Push Data

1. Open a JSON definition of a component template that will use the prepared data.

2. Place the dataQuery property in the template to specify data transforming data query.
6 Insights | 558
6.2 Dashboard Creation

NOTE When configuring a processorProperties.fieldPointer or processorProperties.source→


Pointer object, proceed as follows:

a) application – Always use the Custom value to indicate your data match custom data source.

b) dataSource – Reference the name of the corresponding custom data source.

c) field – Reference a specific data field from the selected custom data source. This only applies
to processorProperties.fieldPointer.

EXAMPLE

"dataQuery": {
"fields": [
{
"processor": "GroupBy",
"processorProperties": {
"fieldPointer": {
"application": "Custom",
"dataSource": "example.jobs",
"field": "jobId"
},
"groupByType": "match"
},
"asDataProperty": "jobId"
}
]
}

Data Query Specification


Apply data query on input data in JSON templates. You can specify data query on any Queryable Data.

Configure data query using Processors. Adjust it by setting Conditions, Field Converters, and/or Output Filters.

TIP You can edit your data queries within uploaded template components using Data Query Editor.

Processors
Process input data to provide output data.

Processors are defined within the fields object. Multiple processors can be applied in one query. One processor
represents one field.
6 Insights | 559
6.2 Dashboard Creation

Field is defined by:

● processor

● processorProperties

● asDataProperty

"processor"
Processor performs defined operation on input data to provide output data.

You can use the following processors:

● GroupBy

● CountRecords

● FirstValue

● NumberOperation

GroupBy
Groups identical values. You can only implement one grouping mechanism per data query.

If you group values based on date-time and the filter creates a time period, missing values are automatically
substituted by default values.

The available groupByType values include:

● monthAndYear – For date-time fields only.

● day – For date-time fields only.

● match – For string, enum, and number fields.

EXAMPLE

{
"processor": "GroupBy",
"processorProperties": {
"fieldPointer": {
"application": "Billing",
"dataSource": "InspireCreditTransaction",
"field": "date"
},
"groupByType": "day"
},
"asDataProperty": "date"
}
6 Insights | 560
6.2 Dashboard Creation

CountRecords
Counts the records (rows). You can set a condition within this processor to return only the data that meet it.

EXAMPLE

{
"processor": "CountRecords",
"processorProperties": {
"sourcePointer": {
"application": "Messenger",
"dataSource": "Message"
},
"filters": [
{
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "openTimes"
},
"condition": {
"name": "NumberGreaterThan",
"value": 0
}
}
]
},
"asDataProperty": "openedInBatch"
}

FirstValue
Processes the first value that it encounters, stores it in an output, and ignores the rest of the values.

EXAMPLE
{
"processor": "FirstValue",
"processorProperties": {
"fieldPointer": {
"application": "Billing",
"dataSource": "InspireCreditTransaction",
"field": "spentByCompanyName"
}
},
"asDataProperty": "spentByCompanyName"
}
6 Insights | 561
6.2 Dashboard Creation

NumberOperation
Performs numerical operations. The operation type is defined by operationType. Use sum to add up the defined
data.

EXAMPLE
{
"processor": "NumberOperation",
"processorProperties": {
"fieldPointer": {
"application": "Billing",
"dataSource": "InspireCreditTransaction",
"field": "amount"
},
"operationType": "sum"
},
"asDataProperty": "amount"
}

"processorProperties"
Define the source of the input data.

processorProperties consists sourcePointer or fieldPointer:

● sourcePointer – Points the way to the source data. You need to specify the application and the dataSource
a processor should use.

EXAMPLE
"sourcePointer": {
"application": "Messenger",
"dataSource": "Message"
}

● fieldPointer – Points the way to a specific field in the source data. You need to specify the application,
dataSource, and the field that should be used.

EXAMPLE
"fieldPointer": {
"application": "Messenger",
"dataSource": "Batch",
"field": "lastUpdated"
}
6 Insights | 562
6.2 Dashboard Creation

"asDataProperty"
Specifies the name of the new column containing the result of the defined data query.

Conditions
Force the component template to display specific data that meet the defined condition.

Conditions are defined within the filters object. There can be multiple conditions applied at the same time.

You need to define fieldPointer while configuring a condition.

Conditions can be applied to:

● CountRecords – Affects only the data the respective processor works with.

EXAMPLE
{
"processor": "CountRecords",
"processorProperties": {
"sourcePointer": {
"application": "Messenger",
"dataSource": "Message"
},
"filters": [
{
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "deliveryStatus"
},
"condition": {
"name": "EnumEqual",
"value": "Delivered"
}
},
{
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "openTimes"
},
"condition": {
"name": "NumberEqual",
"value": 0
}
}
]
},
"asDataProperty": "unopenedInBatch"
}

● The whole data query – Affects all the input data.


6 Insights | 563
6.2 Dashboard Creation

EXAMPLE
"dataQuery": {
"fields": [
{
"processor": "GroupBy",
"processorProperties": {
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "firstTimeOpened"
},
"groupByType": "day"
},
"asDataProperty": "firstTimeOpened"
},
{
"processor": "CountRecords",
"processorProperties": {
"sourcePointer": {
"application": "Messenger",
"dataSource": "Message"
}
},
"asDataProperty": "openedMessageCount"
}
],
"filters": [
{
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "firstTimeOpened"
},
"condition": {
"name": "DateRangeUserControlled"
}
}
]
}

You can use the following conditions:

Condition Names Description

BoolEqual Displays data based on the boolean value you have


selected.

DateGreaterThan Displays data gathered since the specified date (in-


cluded).

DateLessThan Displays data older than the specified date (included).

EnumEqual Displays data related to the selected enum value.


6 Insights | 564
6.2 Dashboard Creation

Condition Names Description

PastDays Displays data gathered within the specified number


of past days. This condition has a dynamic range de-
pending on when the condition executes.

NumberGreaterThan Displays data related to a number value higher than


the one specified.

NumberEqual Displays data related to the specified number value.

NumberLessThan Displays data related to a number value lower than


the one specified.

StringContains Displays data, whose related value contains the string


you specified.

StringEqual Displays data, whose related value corresponds to


the string you specified.

DateRangeUserControlled Activates a date range filter, that is visible within:

● Dashboards

● Dashboard previews

● Component template previews

Users can then use the filter to display data that relate
to a specific time period.

Table 6.2 Data Query Conditions

Field Converters
Convert different data type values. This is useful if you wish to change the data type. It is always part of the
linkedFields object.

The linkedFields object consists of:

● fieldConverter

● asDataProperty

You can use the following field converters:

● BooleanToString – Converts boolean values into string values.

EXAMPLE

"fieldConverter": "BooleanToString",
"fieldConverterProperties": {
"booleanToStringMap": {
"true": "Yes",
6 Insights | 565
6.2 Dashboard Creation

"false": "No"
}
}

● EnumToString – Converts enum values into string values

EXAMPLE

"linkedFields": [
{
"fieldConverter": "EnumToString",
"fieldConverterProperties": {
"enumToStringMap": {
"WaitingForSend": "IN PROGRESS OUT OF",
"SendFailed": "FAILED OUT OF",
"Sent": "SENT OUT OF"
},
"default": "Unknown"
},
"asDataProperty": "totalValueLabel"
},
{
"fieldConverter": "EnumToString",
"fieldConverterProperties": {
"enumToStringMap": {
"WaitingForSend": "IN PROGRESS",
"SendFailed": "FAILED",
"Sent": "SENT"
},
"default": "Unknown"
},
"asDataProperty": "sliceTooltip"
},
{
"fieldConverter": "EnumToString",
"fieldConverterProperties": {
"enumToStringMap": {
"WaitingForSend": "#f28918",
"SendFailed": "#e34243",
"Sent": "#69B027"
},
"default": "#aeaeae"
},
"asDataProperty": "color"
}
]
6 Insights | 566
6.2 Dashboard Creation

Output Filters
Apply filters on output data using the selected condition. Output data are results of the applied data query.

Output filters force the component template to display specific data that meet the defined condition.

Filters consist of:

● fieldPointer

To filter the output data, use the following parameters: "application": "ThisDataQuery", and "dataSource":
"Output"

● condition

Use the condition of your selection.

EXAMPLE
"dataQuery": {
"fields": [
{
"processor": "GroupBy",
"processorProperties": {
"fieldPointer": {
"application": "Messenger",
"dataSource": "Batch",
"field": "customer"
},
"groupByType": "match"
},
"asDataProperty": "customer"
},
{
"processor": "CountRecords",
"processorProperties": {
"sourcePointer": {
"application": "Messenger",
"dataSource": "Message"
}
},
"asDataProperty": "sentCommunicationsCount"
}
],
"filters": [
{
"fieldPointer": {
"application": "ThisDataQuery",
"dataSource": "Output",
"field": "sentCommunicationsCount"
},
"condition": {
"name": "NumberGreaterThan",
"value": 1000
}
},
6 Insights | 567
6.2 Dashboard Creation

{
"fieldPointer": {
"application": "Messenger",
"dataSource": "Batch",
"field": "lastUpdated"
},
"condition": {
"name": "DateRangeUserControlled"
}
}
]
}

Data Query Example

TIP For more data query examples, download our Insights Starter Kits.

EXAMPLE

"dataQuery": {
"fields": [
{
"processor": "GroupBy",
"processorProperties": {
"fieldPointer": {
"application": "Billing",
"dataSource": "InspireCreditTransaction",
"field": "spentByCompanyName"
},
"groupByType": "match"
},
"asDataProperty": "spentByCompanyName"
},
{
"processor": "NumberOperation",
"processorProperties": {
"fieldPointer": {
"application": "Billing",
"dataSource": "InspireCreditTransaction",
"field": "amount"
},
"operationType": "sum"
},
"asDataProperty": "count"
},
{
6 Insights | 568
6.2 Dashboard Creation

"processor": "FirstValue",
"processorProperties": {
"fieldPointer": {
"application": "Billing",
"dataSource": "InspireCreditTransaction",
"field": "balanceType"
}
},
"asDataProperty": "balanceType-notUsed-dummyProcessor",
"linkedFields": [
{
"fieldConverter": "EnumToString",
"fieldConverterProperties": {
"enumToStringMap": {},
"default": "#12b39a"
},
"asDataProperty": "color"
}
]
}
]
}

6.2.2.2 Raw Data


These data are processed in their raw form without the ability to perform further data transformations on them.

Learn about the raw data available and how to work with them in these sections:

● Raw Internal Data

● Raw Push Data

Raw Internal Data


Connects a component template to the data currently produced in these Quadient Cloud applications: Customer
Journey Map and Messenger.
6 Insights | 569
6.2 Dashboard Creation

How to Use These Data

1. Open a JSON definition of a component template.

2. Place the dataNode object within the data displaying widget.

3. Configure the dataNode objects as follows:

a) application – Select a specific application data source:

● cjm (Customer Journey Map)

● messenger

b) path – Select a specific data set from the selected application.

EXAMPLE
"dataNode": {
"application": "cjm",
"path": "taskList"
}

CJM Data Sets


Connect Insights components to CJM data source using the following CJM Data Set Values.

Messenger Data Sets

● emailStatistics

● smsStatistics

● summaryEmailStatistics

● summarySmsStatistics

EXAMPLE

"type": "widget:Insights.Counter",
"dataNode": {
"application": "messenger",
"path": "emailStatistics"
},
"localProperties": {
"title": "Opened Emails",
"color": "#68bb68",
"dataProperty": "opened"
}
6 Insights | 570
6.2 Dashboard Creation

emailStatistics
Contains data about email statistics, i.e. the number of opened and unopened emails etc.

To specify the types of email statistic data widgets will display, define each dataProperty within the widgets inside
the currently configured component template by selecting one of these values:

dataProperty Description

opened Number of opened emails.

unopened Number of unopened emails.

sent Number of sent emails.

inProgress Number of emails that are being sent.

failed Number of emails that failed to send. The emails that fall within this category include the
ones with these statuses: SendFailed and Invalid.

stillSubscribed Number of recipients that are subscribed to your emails.

unsubscribed Number of unsubscribed email recipients.

smsStatistics
Contains data about SMS statistics, i.e. the number of delivered and undelivered text messages etc.

To specify the types of SMS statistic data widgets will display, define each dataProperty within the widgets inside
the currently configured component template by selecting one of these values:

dataProperty Description

delivered Number of delivered SMS messages.

undelivered Number of undelivered SMS messages.

sent Number of sent SMS messages.

inProgress Number of SMS messages that are being sent.

failed Number of SMS messages that failed to send.

stillSubscribed Number of recipients that are subscribed to your SMS messages.

unsubscribed Number of unsubscribed SMS message recipients.

summaryEmailStatistics
Contains the summary of email statistics. Enter this path if you want to display email statistics in an In-
sights.LineChart widget.

summarySmsStatistics
Contains the summary of SMS statistics. Enter this path if you want to display SMS statistics in an In-
sights.LineChart widget.

Raw Push Data


Custom data produced by other software (e.g. Inspire Automation) as separate JSON definitions.
6 Insights | 571
6.2 Dashboard Creation

How to Use These Data

1. Open a JSON definition of a component template.

2. Place the dataNode object within the data displaying widget.

3. Configure the dataNode objects as follows:

a) application – The push data source value is Insights.

b) path – Creates a data connection point within the widget. The connection point is then used by the
JSON definition of push data to ensure correct data connection.

The value of this path property can be any string consisting of the following characters:

● a-z

● 0-9

● Special characters: "_", "."

EXAMPLE
A data connection point created within a donut chart configured in the JSON definition of a dashboard
component template, and then used by a JSON definition of push data:

JSON Definitions of Raw Push Data


Configure your data producing software (e.g. Inspire Automation) to produce JSON definitions of your data.

The JSON definitions consist of these properties:

Property Type Obligatory

apiKey string YES

dataSet string NO

data object YES


6 Insights | 572
6.2 Dashboard Creation

EXAMPLE
{
"apiKey": "e79db11c-f21d-470c-9950-3683b8122143",
"dataSet": "production",
"data": {
"productionView.receipt_donut": {
"records": [
{
"waiting": 83,
"onTarget": 288,
"missed": 2,
"atRisk": 4,
"otherIssues": 0
}
]
}
}
}

apiKey
The value of the apiKey property authenticates your attempt to upload data into Insights. Create your API key in
Insights, as described in the API Keys section, and copy it into this JSON definition.

EXAMPLE
"apiKey": "e79db11c-f21d-470c-9950-3683b8122143"

dataSet
If connecting different sets of push data to the same component template, this property differentiates between
the data sets. When assembling dashboards, the Insights dashboard editor allows you to assign the data set to
the correct component template.

NOTE If you upload data into Insights without the dataSet parameter configured, the data is stored under
a data set named [Default]. Uploading more data designated for the same component template without
the dataSet parameter overwrites the previously uploaded data.

EXAMPLE
Value of a dataSet property and its projection in the Insights dashboard editor.

"dataSet": "Froodeco"
6 Insights | 573
6.2 Dashboard Creation

data
Initiates the data structure that defines the supposed data to be displayed by which widget.

It consists of the path (hierarchically linked using a point defined by the dataNode property inside the dashboard
component template) to the widget you wish to display your data and the data fields that the widget is supposed
to display.

EXAMPLE

1 The path to the desired widget taken from the component template.

2 The property containing all the data fields that the desired widget will display.

3 A data field of one company.

If your dashboard design contains widgets that are supposed to display identical data, you can lower the data
transfer by defining an alias path. Such a path references a data path whose records have already been defined.

If the data paths of two or more data files are the same but differ in casing, each data file is uploaded and creates
a separate entry in Data Storage.
6 Insights | 574
6.2 Dashboard Creation

EXAMPLE

6.2.3 Uploading Data


6.2.3.1 Uploading and Storing Component Templates
To upload and store a dashboard component template in Insights:

1. In Insights, go to the Component Templates section.

2. Click Upload.

3. Browse for the desired component. You can upload multiple templates at once.

TIP Go to the Component Templates section to learn how to delete templates.


6 Insights | 575
6.2 Dashboard Creation

6.2.3.2 Uploading and Storing Push Data


To upload and store push (both queryable and raw) data in Insights, use an HTTP request in your automated
process:

1. Define the request's URL:


https://companyname.quadientcloud.com/api/publish/Insights/SaveDashboardData

NOTE Replace the companyname part of the URL by the name of your company as registered
within your Quadient Cloud account.

2. Configure the request's header as follows:

headers: {
'Content-Type': 'application/json;charset=UTF-8'
}

3. Set the request's method to POST (method requesting that a web server accepts and stores the data enclosed
in the body of the request message).

4. Insert the prepared JSON definition of push data (either queryable or raw data) inside the body of the re-
quest.

5. Send the request.

6. In Insights, go to the Data Storage section to check that the data were correctly uploaded.

NOTE The size of one request is limited to 10 MB.

6.2.3.3 Uploading and Storing Custom Data Sources


To upload and store a custom data source in Insights:

1. Go to the Custom Data Sources section.

2. Click Upload.

3. Browse for the desired data source. You can upload multiple data sources at once.
6 Insights | 576
6.2 Dashboard Creation

6.2.4 Assembling Dashboards


Once you have prepared your component templates and data sets, you can start assembling your dashboards:

1. In Insights, go to the Dashboard Management section.

2. Click New to open the Dashboard Editor.

3. Use the Dashboard Editor section to perform the dashboard assembly.

TIP Go to the Dashboard Management section to learn how to edit, share, clone and delete dashboards.

6.2.4.1 Dashboard Editor


Dashboard Editor is where you assemble your dashboards by combining preprepared component templates and
by assigning the correct data sets to them.

The process is described in detail in these steps:

1. Selecting Components

2. Configuring Component Settings

3. Positioning Components

4. Finishing the Process


6 Insights | 577
6.2 Dashboard Creation

Selecting Components
1. Locate the list of available components which includes:

● All uploaded components.

● All empty components (e.g. images, HTML objects, text) which should be configured within the Con-
figuring Component Settings step.
6 Insights | 578
6.2 Dashboard Creation

They are located at the end of the list.

2. Drag all the desired components (one by one) from the list of available components and drop them into
the editor preview.

Configuring Component Settings


Once you have selected all the desired component templates for your dashboard design, you can adjust their
behavior and what data they should display.
6 Insights | 579
6.2 Dashboard Creation

One by one, go through all the components in the editor preview by clicking on them and then configuring the
settings in the Settings tab.

The contents of the tab differ based on the type of component you are configuring:

● All Components

● Components Displaying Push Data

● Components Displaying Internal Data

● Components Displaying Query Engine Data

● Components with a Title

● Empty Components

All Components
Within each component, you can select the device on which the component should be displayed.

Regardless of what you select, the dashboard editor displays all components; dashboard preview only displays
PC components; and My Dashboards behaves according to the device you are using.
6 Insights | 580
6.2 Dashboard Creation

NOTE

● If a component has the minWidthPx parameter set to a value that is higher than the width of the
mobile device you are using, you can scroll the component horizontally.

● Dashboards created before the version 11.2 must be opened in the Dashboard editor and saved
again to ensure they are correctly displayed on mobile devices.

Components Displaying Push Data

If there are multiple data sets designated for the component currently being configured, select the one whose
data you wish to be displayed by it.

NOTE A data set named [Default] is one within which the dataSet parameter was not configured.
6 Insights | 581
6.2 Dashboard Creation

Components Displaying Internal Data

Customer Journey Map Component When configuring a component displaying data related to CJM, you can
define the data to belong only to a specific target group or strategy. The [Default] data source encompasses
all data.

Messenger Component When configuring a component displaying data related to Messenger, you can specify
the displayed data:

● You can define a specific customer to whom the data should apply.

● Define the Time period to which the data should apply.

You can choose between 7 days, 14 days, 30 days and custom. To set the custom option, enter the
date in the From and To edit boxes.
6 Insights | 582
6.2 Dashboard Creation

Components Displaying Query Engine Data


When configuring a component that displays data coming from the Data Query Engine, you can configure the
following:

● Data Filter

● Interactions

Data Filter

1. Click Edit to open the Data Filter pop up window.

2. Click ADD NEW CONDITION to add one filtering condition. Select the desired condition field to con-
figure the condition. The available condition fields correspond to the data models used in the Data Query
Engine.

EXAMPLE
A condition that forces your component to display only data related to the Messenger batches
whose names contain the word Production, and for the selected customer.

3. Repeat steps 1-2 to configure multiple conditions that all apply simultaneously.

Interactions
Set up filtering interactions between the query engine based components that you use in your dashboard.
6 Insights | 583
6.2 Dashboard Creation

To prepare Query Engine based components to be filtered using interactions, edit the JSON component templates
accordingly (refer to How to Filter Query Engine Based Component Templates).

If your component contains the widget:Insights.Table widget, the widget's configuration must contain the con→
trolledFilterCriterion property with a specified dataProperty based on which other components will be filtered.

NOTE

● Filtering interactions are inapplicable to the widget:Insights:DataDownloadButton widget.

● Filtering interactions do not work between templates displaying queryable data and templates
that display raw data.

How to Configure Interactions

1. Place at least two components (which use the Query Engine) into the dashboard editor canvas.

2. Click one of the added components.

3. Click Edit to open the Interactions settings window.

4. The available filtering interaction options correspond to the names of the other components in your
dashboard design.

Select the desired filtering interaction in relation to the other components.

5. Click OK to confirm and activate the configured interactions.

Components with a Title

Messenger Components If the uppermost level of a component structure (composition.type) is set to widget:In→
sights.Group, the title of the Insights.Group widget can be changed via the Dashboard Editor. Do so by
typing a title in the Title edit box in the component's Settings tab.
6 Insights | 584
6.2 Dashboard Creation

Empty Components

Image A ready-made component that displays an image:

● Image – Click the icon and browse for the image the component will display.

All image formats supported by your browser can be used (e.g. PNG, JPEG or SVG).
6 Insights | 585
6.2 Dashboard Creation

NOTE Internet Explorer 11 does not display the SVG image in its full scale.

● Tooltip – Embeds a custom tooltip into the image. Display it within a dashboard or its preview by
hovering your mouse over it.

The length of the tooltip is limited to 1000 characters.

● Link – Embeds a custom URL link into the image. Click the image within a dashboard or its preview
to go to the defined URL address.

NOTE

○ The length of the URL address is limited to 2000 characters.

○ A valid URL address must contain one of these prefixes: http://, https://, or #/.

● Align – Select the position of the image within the component: Left, Center, or Right.

Empty Heading / Text Component A ready-made component that displays a text and allows you to apply text
styles. You can either create headings for individual dashboard sections, or insert standard text (e.g. explan-
atory notes):
6 Insights | 586
6.2 Dashboard Creation

● Text – Defines a custom text string to be displayed by the component.

● Tooltip – Embeds a custom tooltip into the text. Display it within a dashboard or its preview by hov-
ering your mouse over it.

The length of the tooltip is limited to 1000 characters.

● Size – Selects a text size.

● Link – Embeds a custom URL link into the text. Click the text within a dashboard or its preview to go
the defined URL address.

NOTE

○ The length of the URL address is limited to 2000 characters.

○ A valid URL address must contain one of these prefixes: http://, https://, or #/.

● Align – Select the position of the text within the component: Left, Center, or Right.

Empty Embedded HTML Object A ready-made component that displays an embedded HTML object (an image,
video, etc.).
6 Insights | 587
6.2 Dashboard Creation

To enter an embedded HTML object, copy and paste the source HTML code of an embedded object from an
external source to the HTML code edit box in the Settings tab.

Positioning Components
Once all your desired components are displaying the correct data, you can start perfecting the dashboard design:

1. Drag and drop the components anywhere across the editor preview to change the placement order.

2. Scale the components' width by clicking on one of the component's side edges and drag your mouse until
you have reached the desired size.
6 Insights | 588
6.3 Dashboard Layouts

NOTE The width size of the component cannot be lower than the value of the minWidthPx property
configured within the component's JSON object.

3. If you wish to remove a component from the design, use one of the following methods:

● Click the component you wish to remove and press the <Delete> key on your keyboard.

● Right-click the component you wish you remove and select Delete from the context menu.

Finishing the Process


Once your dashboard is complete, finish the configuration:

1. Name the dashboard in the text box located above the list of components.

2. Click SAVE icon at the top-right corner of the screen to save your dashboard design.

NOTE The size of the final dashboard design cannot exceed the 10 MB limit.

3. Click Close Dashboard Editor and start managing the dashboard in the Dashboard Management
section.

6.3 Dashboard Layouts


Layout elements divide the designated dashboard component template space into various sections which can
be populated with widgets that display your data. Layouts cannot stand alone and must contain children elements
(another layouts or widgets).

The available layouts include:

● layout:Insights.Grid

● layout:Insights.Group

● layout:Insights.Rows

● layout:Insights.Columns

6.3.1 layout:Insights.Grid
Provides a grid into which you can insert other layouts or widgets in specific coordinates.
6 Insights | 589
6.3 Dashboard Layouts

Configuration of these coordinates takes place within each child element you insert inside the grid via the expor-
tedProperties object:

positionX Defines the position of the child's top-left corner using a horizontal coordinate.

positionY Defines the position of the child's top-left corner using a vertical coordinate.

width Defines the child's width.

height Defines the child's height.

EXAMPLE
JSON definition of a grid containing a layout:Insights.Group element which is placed in the top-left corner
of the grid (both the positionX and positionY fields are set to 0):

"type": "layout:Insights.Grid",
"children": [
{
"type": "layout:Insights.Group",
"localProperties": {
"title": "TODAY'S PROGRESS"
},
"exportedProperties": {
"positionX": 0,
"positionY": 0,
"width": 302,
"height": 373
},

EXAMPLE
The result of a component template containing a grid of two layout:Insights.Group elements:

6.3.2 layout:Insights.Group
A titled block which expands proportionally to how many other visual elements it contains. Multiple visual elements
within layout:Insights.Group are stacked on each other.
6 Insights | 590
6.3 Dashboard Layouts

6.3.2.1 Layout Configuration


Configure the layout:Insights.Group element via its localProperties object:

localProperties Mandatory Subproperties

title NO N/A N/A

attachedVariable NO N/A N/A

controlledFilterCriterion NO criterion YES

"title": "string"
Defines the title of the block.

"attachedVariable": "string"
References a variable defined by the outputVariables property within a table contained inside the layout:In→
sights.Group element. The value (e.g. the number of rows within a table) of such a variable is displayed in
brackets next to the title of the layout:Insights.Group element.

"controlledFilterCriterion": {object}
Displays a text box in the header of the layout:Insights.Group element which you can use to filter the records
inside the widget that is wrapped in layout:Insights.Group. To define which data the filter applies to, define the
criterion sub-property. Its value is taken from a variable created by the filterBy property within the filtered
widget.

NOTE When filtering a Query Engine based table that has already been filtered by another interaction
(e.g. by a wordcloud), the text filter only applies on the hierarchically lowest data model. For example, if
the table displays data from both the batch and message models, the filter is applied on the message based
columns.

6.3.2.2 Example of Use


The interdependence of properties defined within the JSON definition of the layout:Insights.Group and widget:In→
sights.Table elements:
6 Insights | 591
6.3 Dashboard Layouts

6.3.3 layout:Insights.Rows
Provides a layout, in which other visual elements are placed below each other.

To define the height of the children inserted into this layout, define the exportedProperties.height property.

EXAMPLE

"type": "layout:Insights.Rows",
"localProperties": {
"childSpacing": 20
},
"children": [
{
"type": "layout:Insights.Group",
"localProperties": {
"title": "TODAY'S PROGRESS"
},
"exportedProperties": {
"height": 50
},
"children": [

6.3.3.1 Layout Configuration


Configure the layout:Insights.Rows element via its localProperties object using pixel values:
6 Insights | 592
6.3 Dashboard Layouts

localProperties Mandatory

height NO

childSpacing NO

separatorHeight NO

separatorColor NO

beforeAllPadding NO

afterAllPadding NO

"height": number
Defines (in pixels) the height of a row. If undefined, the row height adjusts to the size of its content.

"childSpacing": number
Defines (in pixels) the length of the space between the contained visual elements.

"separatorHeight": number
Defines (in pixels) the height of the horizontal line separating each child element.

"separatorColor": "string"
Defines the color of the horizontal line separating each child element.

NOTE If you wish for your design to contain no line separating each child element, set separatorHeight
to 0 and separatorColor to #f5f5f5 (white color).

"beforeAllPadding": number
Defines (in pixels) the upper indentation of all child elements.

"afterAllPadding": number
Defines (in pixels) the lower indentation of all child elements.

6.3.3.2 Examples of Use

EXAMPLE
JSON definition of a layout:Insights.Rows element containing a layout:Insights.Group element:

"type": "layout:Insights.Rows",
6 Insights | 593
6.3 Dashboard Layouts

"localProperties": {
"childSpacing": 20
},
"children": [
{
"type": "layout:Insights.Group",
"localProperties": {
"title": "TODAY'S PROGRESS"
},
"children": [

EXAMPLE
The result of a component containing two layout:Insights.Group elements placed below each other with
a 20-pixel space that separates them:
6 Insights | 594
6.3 Dashboard Layouts

6.3.4 layout:Insights.Columns
Provides a component layout, in which other elements are placed next to each other.

EXAMPLE

Inserting multiple elements into this layout creates a corresponding number of evenly wide columns inside of it.

EXAMPLE

"type": "layout:Insights.Columns",
"localProperties": {},
"exportedProperties": {
"height": 62
},
"children": [
{
"type": "widget:Insights.Counter",
"dataNode": {
"application": "Insights",
"path": "counter.OnTarget"
},
"localProperties": {
"title": "ON TARGET (SLA)",
"color": "#68bb68",
"dataProperty": "onTarget"
6 Insights | 595
6.4 Dashboard Widgets

}
},
{
"type": "widget:Insights.Counter",
"dataNode": {
"application": "Insights",
"path": "counter.atRisk"
},
"localProperties": {
"title": "AT RISK (SLA)",
"color": "#ffab40",
"dataProperty": "atRisk"
}
}
]

6.4 Dashboard Widgets


Data displaying elements that your dashboard component templates consist of.

The available widgets include:

● widget:Insights.BostonMatrix

● widget:Insights.ColumnAndLineChart

● widget:Insights.ColumnChart

● widget:Insights.Counter

● widget:Insights.DataDownloadButton

● widget:Insights.Debugger

● widget:Insights.Donut

● widget:Insights.EmbeddedHtml

● widget:Insights.Gauge

● widget:Insights.Image

● widget:Insights.LineChart

● widget:Insights.StackedBarChart

● widget:Insights.Tab

● widget:Insights.Table

● widget:Insights.TagFilter
6 Insights | 596
6.4 Dashboard Widgets

● widget:Insights.Text

● widget:Insights.WordCloud

TIP To quickly and easily create JSON definitions, download ours starter kits from the Downloads section.
The kits include ready-made sample JSON definitions for most of the available visual elements (donut
charts, tables). You can edit and customize the prepared JSON definitions according to your needs.

For more information, refer to Insights Starter Kits.

6.4.1 widget:Insights.BostonMatrix
Displays variables in a Boston matrix, i.e. a table which is divided into 4 quadrants of equal size. The quadrants
are formed alongside two axes, each representing a coordinate (e.g. benefit and effort). Each variable is positioned
at the intersection of the X and Y values returned by the respective variable.

Viewing data in a Boston matrix is especially suited to strategic product analysis and resources planning. Typical
Boston matrix input data are tasks created in the Customer Journey Map application that include information
about the effort and benefit related to each task (see also the tasklist option in the CJM Data Set Values section
or the Tasks section of the Customer Journey Map chapter).

EXAMPLE

6.4.1.1 Widget Configuration


Configure the widget:Insights.BostonMatrix element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

height YES N/A N/A

points YES pointColor YES


6 Insights | 597
6.4 Dashboard Widgets

localProperties Mandatory Subproperties Mandatory

xValueDataProperty YES

yValueDataProperty YES

labelDataProperty NO

tooltipDataProperty NO

categorization NO

quadrants YES bottomTopBoundaryValue YES

leftRightBoundaryValue YES

topLeftLabel YES

topRightLabel YES

bottomLeftLabel YES

bottomRightLabel YES

xAxis NO label NO

minValueLabel NO

maxValueLabel NO

invertedValues NO

yAxis NO label NO

minValueLabel NO

maxValueLabel NO

invertedValues NO

filterBy NO criterion YES

dataProperty YES

scaleFilteredData NO N/A N/A

The points.categorization subproperty is an object that consists of another level of subproperties:

points.categorization Mandatory Subproperties Mandatory

categoryIdDataProperty YES N/A N/A

defaultCategoryId YES N/A N/A

categories YES categoryId YES

categoryName YES

pointColor YES
6 Insights | 598
6.4 Dashboard Widgets

"height": number
Defines the height of an object (in pixels).

"points": {object}
Define the properties of individual point objects.

Configure the object using these properties:

● "pointColor": "string

Defines the point color. Unless categorization is applied, the entered value must be a hex color code.

● "xValueDataProperty": "string

Defines the data field to be used as the source of X-axis values for individual variables (e.g. effort related
to a task).

● "yValueDataProperty": "string

Defines the data field to be used as the source of Y-axis values for individual variables (e.g. benefit related
to a task).

● "labelDataProperty": "string

Defines the data field to be used as the source of a label for individual variables (typically variables' names,
e.g. task or project names).

● "tooltipDataProperty": "string

Defines the data field to be used as the source of a tooltip to display after hovering over a variable.

● "categorization": {object}

Allows you to use colors to recognize multiple categories of displayed variables.

For example, you can recognize each project's status as New, In progress, Completed, or Rejected using
four distinct point colors.

To define categorization, use these properties:

○ "categoryIdDataProperty": "string

Defines the data field to be used as the source of categories returned for individual variables (e.g.
status).

○ "defaultCategoryId": "string

Defines the color which is used as the default (e.g. if a variable returns anything other than the defined
categoryId properties from the source). To define the color, enter the categoryId property of the color
object that you want to use as the default.

○ "categorization": [array]

Defines an array of individual categories and their colors.

For each category, define the following properties:

■ "categoryName": "string
6 Insights | 599
6.4 Dashboard Widgets

Defines the category name to be displayed in the Boston matrix color legend.

■ "categoryId": "string

Defines the exact string which is used as a category in a respective data field in the source (i.e.
individual categories for the status categoryIdDataProperty can be New, InProgress, Completed,
or Rejected).

■ "pointColor": "string

Defines the point color based on the categoryId returned by a respective variable. The entered
value must be a hex color code.

"quadrants": {object}
Define the properties of quadrants.

Configure the object using these properties:

● "bottomTopBoundaryValue": number

Defines a value on the Y axis where a line delimiting the upper and bottom quadrants of a Boston matrix
is placed.

The value is a number, units are relative based on the criteria used. For example, if the X axis represents
effort related to projects, the number 50 can represent 50 man days.

● "leftRightBoundaryValue": number

Defines a value on the X axis where a line delimiting the left and right quadrants of a Boston matrix is
placed.

The value is a number, units are relative based on the criteria used.

● "topLeftLabel": "string"

Defines a string to be used as a label for the top-left quadrant (e.g. question marks).

● "topRightLabel": "string"

Defines a string to be used as a label for the top-right quadrant (e.g. stars).

● "bottomLeftLabel": "string"

Defines a string to be used as a label for the bottom-left quadrant (e.g. dogs).

● "bottomRightLabel": "string"

Defines a string to be used as a label for the bottom-right quadrant (e.g. cash cows).

"xAxis": {object}
Defines the properties of the X axis.

Configure the object using these properties:

● "label": "string"
6 Insights | 600
6.4 Dashboard Widgets

Defines a string to be used as the X-axis label.

● "minValueLabel": "string"

Defines the label for the minimum value the X axis displays.

To set the minimum value of the X-axis to the lowest value returned by available variables, enter lowest.

● "maxValueLabel": "string"

Defines the maximum value the X axis displays.

To set the maximum value of the X-axis to the highest value returned by available variables, enter highest.

● "invertedValues": boolean

Invert the plotting order of the values on the X axis.

To invert the order, set the value to true; to keep the current order, set the value to false.

The default option corresponds to the standard (right-handed) orientation of the Cartesian coordinate
system.

"yAxis": {object}
Defines the properties of the Y axis.

Configure the object using these properties:

● "label": "string"

Defines a string to be used as the Y-axis label.

● "minValueLabel": "string"

Defines the minimum value the Y axis displays.

To set the minimum value of the Y-axis to the lowest value returned by available variables, enter lowest.

● "maxValueLabel": "string"

Defines the maximum value the Y axis displays.

To set the maximum value of the Y-axis to the highest value returned by available variables, enter highest.

● "invertedValues": boolean

Invert the plotting order of the values on the Y axis.

To invert the order, set the value to true; to keep the current order, set the value to false.

"filterBy": {object} | [array]


Filters records that the component displays depending on the user's interaction with another component in a
dashboard.

This requires that the other component triggers filtering (i.e. contains the controlledFilterCriterion property),
and that both the components contain an identical criterion value.
6 Insights | 601
6.4 Dashboard Widgets

For example, if a dashboard design contains a donut chart with a defined controlledFilterCriterion property,
clicking on a donut chart slice (that represents a certain value) forces the filtered component to only display records
which contain that value.

Configure the object using these properties:

● "criterion": "string"

Defines the name of the filter (e.g. taskStatus). If your dashboard design contains multiple Boston matrices
with filtering, this property identifies which filter is supposed to apply to which widget.

● "dataProperty": "string"

Defines the data field which is used as a source of filter values (e.g. status).

NOTE To configure the widget within a Query Engine based component template, refer to How to Filter
Query Engine Based Component.

"scaleFilteredData": boolean
Rescales the minimum and maximum X-and Y-axis values to the minimum and maximum values found in the
filtered data.

6.4.1.2 JSON Example

EXAMPLE

"type": "widget:Insights.BostonMatrix",
"dataNode": {
"application": "cjm",
"path": "taskList"
},
"localProperties": {
"height": 500,
"points": {
"pointColor": "#0a0",
"xValueDataProperty": "effort",
"yValueDataProperty": "benefit",
"labelDataProperty": "name",
"tooltipDataProperty": "description",
"categorization": {
"categoryIdDataProperty": "status",
"categories": [
{
"categoryName": "NEW",
"categoryId": "New",
"pointColor": "#00a"
},
{
"categoryName": "IN PROGRESS",
6 Insights | 602
6.4 Dashboard Widgets

"categoryId": "InProgress",
"pointColor": "#fa0"
},
{
"categoryName": "COMPLETED",
"categoryId": "Completed",
"pointColor": "#0a0"
},
{
"categoryName": "REJECTED",
"categoryId": "Rejected",
"pointColor": "#a00"
}
],
"defaultCategoryId": "Rejected"
}
},
"quadrants": {
"bottomTopBoundaryValue": 50,
"leftRightBoundaryValue": 50,
"topLeftLabel": "MAJOR PROJECTS",
"topRightLabel": "QUICK WINS",
"bottomLeftLabel": "THANKLESS TASKS",
"bottomRightLabel": "FILL IN JOBS"
},
"xAxis": {
"label": "Effort",
"minValueLabel": "lowest",
"maxValueLabel": "highest",
"invertedValues": true
},
"yAxis": {
"label": "Benefit",
"minValueLabel": "lowest",
"maxValueLabel": "highest",
"invertedValues": false
},
"filterBy": [
{
"criterion": "taskStatus",
"dataProperty": "status"
},
{
"criterion": "taskName",
"dataProperty": "name"
}
],
"scaleFilteredData": false
},
"exportedProperties": {}
6 Insights | 603
6.4 Dashboard Widgets

6.4.2 widget:Insights.ColumnAndLineChart
Displays your data using a combination of a column chart and line chart for a time-trend analysis of two data
series.

EXAMPLE
Monitor the trend in the amount of emails and SMS messages you send to your customers.

6.4.2.1 Widget Configuration


Configure the widget:Insights.ColumnAndLineChart element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

series YES valueDataProperty YES

title YES

color YES

yAxis NO

height YES N/A N/A

xAxis YES labelDataProperty YES

labelWidth NO

label NO

yAxisPrimary NO customScale NO

label NO

seriesRepresentation NO

scaleMode NO

yAxisSecondary NO customScale NO

label NO
6 Insights | 604
6.4 Dashboard Widgets

localProperties Mandatory Subproperties Mandatory

seriesRepresentation NO

scaleMode NO

showColumnValues NO N/A N/A

The yAxisPrimary.customScale and yAxisSecondary.customScale subproperties are objects that consist of another
level of subproperties:

yAxisPrimary.customScale / yAxisSecondary.customScale Mandatory

minValue YES

maxValue YES

numberOfLines YES

"series": [array]
Define two data series to be displayed in the chart by configuring the following properties for each data series:

● "valueDataProperty": "string"

Defines the data field to be bound to the selected Y axis.

The defined data field must be unique for each data series.

● "title": "string"

Defines the legend title (using any string) for the selected Y axis.

● "color": "string"

Defines the color for the displayed data used for the legend and the graph. The entered value must be a
hex color code, e.g. #ffab40.

● "yAxis": "enum"

Defines whether the data series is bound to the primary (left side) or secondary (right side) Y axis.

"height": number
Defines (in pixels) the size of the chart.

"xAxis": {object}
Define the properties of the X axis using these properties:

● "labelDataProperty": "string"

The data field used to display each label on the X axis; for example, months of the year.

● "labelWidth": "number"
6 Insights | 605
6.4 Dashboard Widgets

Defines the width of a label (in pixels). The greater the label width, the fewer labels are displayed on an
axis, which ensures that the labels are always readable.

● "label": "string"

Defines the label of the X axis.

"yAxisPrimary": {object}
Define the properties of the primary Y axis using these properties:

● "customScale": {object}

Customizes the scale of the chart using these properties:

○ "maxValue": number

Defines the upper limit for values displayed by the primary Y axis.

○ "minValue": number

Defines the lower limit for values displayed by the primary Y axis.

○ "numberOfLines": number

Defines how many value sections the primary Y axis consists of.

● "label": "string"

Defines the label of the primary Y axis.

● "seriesRepresentation": "enum"

Defines how to depict the data bound to the primary Y axis. The available values include: line or column.

● "scaleMode": "enum"

The available values include:

absolute Values on the Y axis will contain the zero value. If the values are negative, the zero value will
represent the upper limit. If the values are positive, the zero value will represent the lower limit.

relative The upper and lower limit are calculated from the values of the used data series.

NOTE This property is ignored if customScale is used.

"yAxisSecondary": {object}
Define the properties of the secondary Y axis by following the same steps as for yAxisPrimary.

"showColumnValues": boolean
Displays the number value above each column. Use these values: true or false.
6 Insights | 606
6.4 Dashboard Widgets

6.4.2.2 JSON Example

EXAMPLE
"type": "widget:Insights.ColumnAndLineChart",
"dataNode": {
"application": "Insights",
"path": "example.messages"
},
"localProperties": {
"series": [{
"valueDataProperty": "emailCount",
"title": "Emails sent",
"color": "#7C8BCA",
"yAxis": "primary"
}, {
"valueDataProperty": "smsCount",
"title": "SMS Sent",
"color": "#7CCA8F",
"yAxis": "secondary"
}],
"height": 450,
"xAxis": {
"labelDataProperty": "sendingStarted",
"labelWidth": 50,
"label": "Period"
},
"yAxisPrimary": {
"customScale": {
"maxValue": 10000,
"minValue": 0,
"numberOfLines": 5
},
"label": "Emails Sent",
"seriesRepresentation": "column",
"scaleMode": "absolute"
},
"yAxisSecondary": {
"customScale": {
"maxValue": 1000,
"minValue": 0,
"numberOfLines": 5
},
"label": "SMS Sent",
"seriesRepresentation": "line",
"scaleMode": "absolute"
},
"showColumnValues": true
}}
6 Insights | 607
6.4 Dashboard Widgets

6.4.3 widget:Insights.ColumnChart
Displays individual data series in vertical columns. This includes displaying multiple series of data grouped into
individual categories.

EXAMPLE

6.4.3.1 Widget Configuration


Configure the widget:Insights.ColumnChart element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

dynamicColumns YES labelDataProperty YES

labelUrlDataProperty NO

labelTooltipDataProperty NO

valueDataProperty YES

colorDataProperty YES

tooltipDataProperty NO

groupedColumns NO groupIdDataProperty YES

groupLabelDataProperty YES

gapSize NO

groupLabelUrlDataProperty NO

groupLabelTooltipDataProperty NO

filterBy NO criterion YES

dataProperty YES

controlledFilterCriterion NO criterion YES


6 Insights | 608
6.4 Dashboard Widgets

localProperties Mandatory Subproperties Mandatory

dataProperty YES

scaleMode NO N/A N/A

customScale NO minValue YES

maxValue YES

numberOfLines YES

xAxisLabel NO N/A N/A

yAxisLabel NO N/A N/A

height YES N/A N/A

showLegend NO N/A N/A

displayColumnValue NO N/A N/A

enableColumnHover NO N/A N/A

"dynamicColumns": {object}
Initiates the configuration of the columns that the widget should display. This widget displays a variable number
of columns based on the amount of records it receives.

Configure the object using these properties:

● "labelDataProperty": "string"

Defines the name of the data field that provides the name for each column displayed below the column.

● "labelUrlDataProperty": "enum"

Turns the defined label into a URL link, which leads to the defined URL address. Depending on where you
want this link to lead, select one of these values:

○ linkToCjmProgramDetailUrl – If your column chart works with Customer Journey Map (CJM) data, you
can link to a CJM program detail.

○ A data field – Reference a data field that contains any URL link values.

● "labelTooltipDataProperty": "enum"

Adds a tooltip message to the label. You can view the tooltip when you hover the label. Depending on
what you want the tooltip message to say, select one of these values:

○ linkToCjmProgramDetailTooltip – Displays this message: Open program <CJM program name>.

○ A data field – Reference a data field that contains any tooltip message values.

● "valueDataProperty": "string"

Defines the name of the data field that provides values to be plotted. For example, you can display the
number of tags for each program (i.e. enter tagCount).

● "colorDataProperty": "string"
6 Insights | 609
6.4 Dashboard Widgets

Defines the name of the data field that provides the color of the column (e.g. representing a respective
tag's color). It assumes that the data provide this value in the hexadecimal color format.

● "tooltipDataProperty": "string"

Defines the name of the data field that provides values to be projected as a column tooltip.

"groupedColumns": {object}
Groups the same types of records based on the received values.

EXAMPLE
The PROGRAM1 and PROGRAM2 columns display multiple values.

Configure the object using these properties:

● "groupIdDataProperty": "string"

Groups multiple columns based on a selected category (e.g. a customer or program). Enter the name of
the data field that provides values of individual categories. The columns with an identical value are grouped
under the respective category. For example, to group the available tag types for each program, enter
programName.

● "groupLabelDataProperty": "string"

Defines the name of the data field that provides the name of the category (e.g. the name of a customer
or program). If grouping is applied, this value replaces the value defined in labelDataProperty. For example,
to label the category after the program name, enter programName.

● "gapSize": "enum"

Defines the gap size between grouped columns. The available options include: small and large.

● "groupLabelLinkDataProperty": "enum"
6 Insights | 610
6.4 Dashboard Widgets

Turns the defined label for grouped columns into a URL link, which leads to the defined URL address.
Depending on where you want this link to lead, select one of these values:

○ linkToCjmProgramDetailUrl – If your column chart works with Customer Journey Map (CJM) data, you
can link to a CJM program detail.

○ A data field – Reference a data field that contains any URL link values.

● "groupLabelTooltipDataProperty": "enum"

Adds a tooltip message to the label. You can view the tooltip when you hover the label. Depending on
what you want the tooltip message to say, select one of these values:

○ linkToCjmProgramDetailTooltip – Displays this message: Open program <CJM program name>.

○ A data field – Reference a data field that contains any tooltip message values.

"filterBy": {object} | [array]


Filters records that the component displays depending on the user's interaction with another component in a
dashboard.

This requires that the other component triggers filtering (i.e. contains the controlledFilterCriterion property),
and that both the components contain an identical criterion value.

For example, if a dashboard design contains a donut chart with a defined controlledFilterCriterion property,
clicking on a donut chart slice that represents a certain value forces the filtered component to only display records
which contain that value.

Configure the whole object using these properties whose values must correspond to the values of the controlled→
FilterCriterion property:

● "criterion": "string"

Defines the name of the filter. The name is used in two places: the controller of the value and the filtering
destination.

● "dataProperty": "string"

Defines a specific data field based on which the chart is filtered. The entered data field value must corres-
pond to a value from the produced data.

NOTE To configure the widget within a Query Engine based component template, refer to How to Filter
Query Engine Based Component.

"controlledFilterCriterion": {object}
Uses each column of the chart to filter other widgets within your dashboard design, i.e. you click a column and
the data in other widgets is filtered in a way which relates to that slice.

Configure the whole object using these properties that are used by the filterBy property within the visual elements
you wish to be filtered by these check boxes:

● "criterion": "string"
6 Insights | 611
6.4 Dashboard Widgets

Defines the name of the filter. If your dashboard design contains multiple widgets with filtering, this
property identifies which filter is supposed to apply to a respective widget. You can enter any alphanumeric
string.

● "dataProperty": "string"

Defines a specific data field which is used as a source of filter values. The entered data field value must
correspond to a value from the produced data.

"scaleMode": "enum"
Scales data in a column chart.

The available values include:

absolute Ensures that the 0 (zero) value is always visible in the chart, irrespective of the lowest value found in
the data source.

relative Adjusts the minimum and maximum values of the Y axis according to the lowest and highest values
found in the data source. This reduces white space and improves the readability of cluttered lines.

To improve the column chart's appearance and to avoid placing the lowest value exactly on the X axis, the
horizontal grid lines' labels display round numbers, not exact values.

"customScale": {object}
Customizes the scale of the chart using these properties:

● "maxValue": number

Defines the upper limit for values displayed by the Y axis.

● "minValue": number

Defines the lower limit for values displayed by the Y axis.

● "numberOfLines": number

Defines how many value sections the Y axis consists of.

"xAxisLabel": "string"
Defines the label for the bottom horizontal axis.

"yAxisLabel": "string"
Defines the label for the vertical axis.

"height": number
Defines the height of the whole column chart (in pixels).

"showLegend": boolean
Adds a legend to the chart. Use these values: true or false.
6 Insights | 612
6.4 Dashboard Widgets

The column names displayed within the legend come from the defined labelDataProperty or groupLabelDataProp→
erty.

If groupedColumns is used, the related legend item takes its color from the first column within the group.

"displayColumnValue": boolean
Displays the values above each column. Use these values: true or false.

The displayed values come from the defined valueDataProperty.

"enableColumnHover": boolean
Adds a highlighting effect to the individual columns, which activates when you hover over them. Use these values:
true or false.

6.4.3.2 JSON Example

EXAMPLE The following widget structure represents a column chart that is used in the CJM Strategy
Dashboard. It displays the numbers of tags found for each program.
"type": "widget:Insights.ColumnChart",
"dataNode": {
"application": "cjm",
"path": "touchPointTagDetailList"
},
"localProperties": {
"dynamicColumns": {
"labelDataProperty": "programName",
"valueDataProperty": "tagCount",
"colorDataProperty": "colorCode",
"tooltipDataProperty": "name"
},
"groupedColumns": {
"groupIdDataProperty": "programName",
"groupLabelDataProperty": "programName"
},
"filterBy": [{
"criterion": "tab",
"dataProperty": "strategyId"
}, {
"criterion": "tag",
"dataProperty": "id"
}],
"xAxisLabel": "Period",
"yAxisLabel": "Total Count",
"height": 300,
"showLegend": true,
"displayColumnValue ": false,
"enableColumnHover": true
}
6 Insights | 613
6.4 Dashboard Widgets

6.4.4 widget:Insights.Counter
Displays data as number strings.

EXAMPLE

6.4.4.1 Widget Configuration


Configure the widget:Insights.Counter element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

title YES N/A N/A

color YES N/A N/A

dataProperty YES N/A N/A

controlledFilterCriterion NO criterion YES

selectionValue YES

filterBy NO criterion YES

dataProperty YES

"title": "string"
Defines the caption of the counter.
6 Insights | 614
6.4 Dashboard Widgets

"color": "string"
Defines the color of the number that the counter displays. The entered value must be a hex color code.

"dataProperty": "string"
Defines a specific data field that is projected in the counter. The entered data field value must correspond to a
value from the produced data.

"controlledFilterCriterion": {object}
Allows you to filter other widgets within your dashboard design so that they only display values relevant to the
selected counter.

EXAMPLE
If a table consists of counters displaying the number of jobs according to their status, you can click one
of the counters (e.g. the counter displaying jobs with the Processing status). This filters a connected table
displaying the details of all jobs with this Processing status (see also the example below).

Configure the object using these properties:

● "criterion": "string"

Defines the name of the filter. If your dashboard design contains multiple widgets with filtering, this
property identifies which filter is supposed to apply to a respective widget. You can enter any alphanumeric
string.

● "selectionValue": "string"

Defines the exact value used for filtering. The entered value is one of the values available in the intercon-
nected data field.

The interconnection between the data field and selectionValue is made by entering the respective data
field's name in the dataProperty property of the widget that applies filtering using the filterBy property.

Widgets that apply filtering then only display the data records which return this value from the given data
field.
6 Insights | 615
6.4 Dashboard Widgets

EXAMPLE JSON definition and the result of a dashboard design using a production status based
filter:

○ The counter (on the left) displays the number of jobs with the Processing status.

○ The table (on the right) is set to filter jobs according to production status.

The configuration uses the following values:

1 selectedProductionStatus – This value must be identical in both controlledFilterCrit→


erion.criterion defined in the counter widget and filterBy.criterion defined in the table
widget.

2 productionStatus – References a data field in the source data which contains information
about each job's production status.

3 Processing – Indicates the exact value coming from the productionStatus data field defined

in the table widget.

Filtering is applied after clicking on a counter with the respective status.

"filterBy": {object} | [array]


Filters records that the component displays depending on the user's interaction with another component in a
dashboard.
6 Insights | 616
6.4 Dashboard Widgets

This requires that the other component triggers filtering (i.e. contains the controlledFilterCriterion property),
and that both the components contain an identical criterion value.

For example, if a dashboard design contains a donut chart with a defined controlledFilterCriterion property,
clicking on a donut chart slice that represents a certain value forces the filtered component to only display records
which contain that value.

Configure the whole object using these properties whose values must correspond to the values of the controlled→
FilterCriterion property:

● "criterion": {object}

Defines the name of the filter. The name is used in two places: the controller of the value and the filtering
destination.

You can also adjust a component to be filtered using a global filter. To do so, set the criterion value to
sys.global-filter.

EXAMPLE The following component can display data filtered by the global filter. To ensure the
entered text ignores white spaces and allows users to find fuzzy matches, set the matchType
property value to containsIgnoreCase.

"filterBy": {
"criterion": "sys.global-filter",
"dataProperty": [
"companyName",
"jobsCount"
],
"matchType": "containsIgnoreCase"
}

● "dataProperty": {object}

Defines a specific data field based on which the chart is filtered. The entered data field value must corres-
pond to a value from the produced data.

Filtering Query Engine Based Component Templates


Allowing interactions in widgets in a Query Engine based component template:

1. Edit the JSON component templates' definitions as follows:

● Define the controlledFilterCriterion property in widgets that are used as the filtering source.

● Do not define the filterBy property to force filtering. If it is defined, it is ignored.

Instead, interactions are defined in the user interface in the following step.

2. Configure interactions in the Dashboard Editor to define which widgets are forced to filter records depending
on the user's interaction with selected filtering sources.
6 Insights | 617
6.4 Dashboard Widgets

Query Engine based component templates automatically apply global filtering (see also Global Filter in widget:In-
sights:Gauge). Global filtering takes into account all data fields of the given queryable data source.

6.4.4.2 JSON Example

EXAMPLE

"type": "widget:Insights.Counter",
"dataNode": {
"application": "Insights",
"path": "productionView.receipt_counter"
},
"localProperties": {
"title": "ON TARGET (SLA)",
"color": "#68bb68",
"dataProperty": "onTarget",
"filterBy": {
"criterion": "selectedCompanyId",
"dataProperty": "companyId"
}
}

6.4.5 widget:Insights:DataDownloadButton
Places a button into your dashboard, which downloads a CSV file containing defined Queryable data.

This widget cannot be filtered by other components in a dashboard that trigger filtering (no interactions are
available).

If you need to specify the download data (e.g. allow users to only download data for a specific customer), you
can use:

● Input data filters.

● The data range filter.

You can define the data range filter directly in the JSON component template where the widget is used,
and specify a corresponding data field to filter the data by (see also the DateRangeUserControlled option
in Conditions).
6 Insights | 618
6.4 Dashboard Widgets

EXAMPLE

6.4.5.1 Widget Configuration


Configure the widget:Insights.DataDownloadButton element via its localProperties object:

localProperties Mandatory

title YES

"title": "string"
Defines the label displayed below the button, i.e. "title": "DOWNLOAD CSV".

6.4.5.2 JSON Example

EXAMPLE

"type": "widget:Insights.dataDownloadButton",
"localProperties": {
"title": "DOWNLOAD CSV"
},
"dataQuery": {
"fields": [
{
"processor": "GroupBy",
"processorProperties": {
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "messageId"
},
"groupByType": "match"
},
"asDataProperty": "messageId"
},
{
"processor": "FirstValue",
"processorProperties": {
6 Insights | 619
6.4 Dashboard Widgets

"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "recipient"
}
},
"asDataProperty": "recipient"
},
{
"processor": "FirstValue",
"processorProperties": {
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "sender"
}
},
"asDataProperty": "sender"
},
{
"processor": "FirstValue",
"processorProperties": {
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "messageStatus"
}
},
"asDataProperty": "messageStatus"
},
{
"processor": "FirstValue",
"processorProperties": {
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "openTimes"
}
},
"asDataProperty": "openTimes"
},
{
"processor": "FirstValue",
"processorProperties": {
"fieldPointer": {
"application": "Messenger",
"dataSource": "Message",
"field": "clickCount"
}
},
"asDataProperty": "clickCount"
}
]
}
6 Insights | 620
6.4 Dashboard Widgets

6.4.6 widget:Insights.Debugger
Widget designed for testing purposes. Use it within dashboards that contain multiple components interacting
together (e.g. filtering). It will help you verify that the interaction is done correctly, directly in Insights dashboard
preview.

NOTE Debugging of Query Engine based interactions is unsupported.

EXAMPLE

6.4.6.1 Widget Configuration


To use the debugger, place the following object anywhere in any component template:

{
"type": "widget:Insights.Debugger",
"localProperties": {}
}

6.4.6.2 JSON Example

EXAMPLE
A widget:Insights.Debugger element paired with a widget:Insights.Text element to provide a title for
the debugger:
6 Insights | 621
6.4 Dashboard Widgets

{
"displayName": "Debugger",
"description": "Tests dashboard interaction, shows active filter values",
"properties": {
"icon": "bundle",
"minWidthPx": 350
},
"id": 1018,
"composition": {
"type": "layout:Insights.Rows",
"localProperties": {},
"children": [
{
"type": "widget:Insights.Text",
"localProperties": {
"content": "INTERACTION DEBUGGER"
}
},
{
"type": "widget:Insights.Debugger",
"localProperties": {}
}
]
}
}

6.4.7 widget:Insights.Donut
Displays data in a donut chart.

EXAMPLE
6 Insights | 622
6.4 Dashboard Widgets

6.4.7.1 Widget Configuration


Configure the widget:Insights.Donut element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

centerValue YES type YES

icon NO

totalValueLabel NO

slices NO if dynamicSlices is used. dataProperty YES

title NO

color NO

subslices NO

totalValueLabel NO

thickness NO

selectionValue NO

dynamicSlices NO if slices is used. valueDataProperty YES

colorDataProperty YES

totalValueLabelDataProperty NO

selectionValueDataProperty NO

titleDataProperty NO

thicknessDataProperty NO

filterBy NO criterion YES

dataProperty YES

size NO N/A N/A

controlledFilterCriterion NO selectionValueCriterion YES

selectedRecordsCriterion NO

recordsDataProperty NO

"centerValue": {object}
Defines the contents of your donut chart's center.
6 Insights | 623
6.4 Dashboard Widgets

Configure this object using the "type": "enum" property by selecting one of these values:

percentage Places a percentage counter inside your donut's center.

EXAMPLE

"localProperties": {
"centerValue": {
"type": "percentage"
}
}

icon Places an icon inside your donut's center.

If selected, you must configure another property: "icon": "enum", whose value then defines a specific icon.

The available icons include:

Value Icon Value Icon

action archive

inserting at

printer add

envelope jobs

EXAMPLE

"centerValue": {
"type": "icon",
6 Insights | 624
6.4 Dashboard Widgets

"icon": "action"
}

total Places a total value inside your donut's center.

To define the label to display below the value, use the "totalValueLabel": "string" property and set the
value to the desired text.

EXAMPLE This multi-series donut displays text in its center (for a complete multi-series widget
configuration, see also the subslices property).

"type": "widget:Insights.Donut",
"dataNode": {
"application": "messenger",
"path": "emailStatistics"
},
"localProperties": {
"centerValue": {
"type": "total",
"totalValueLabel": "TOTAL EMAILS SENT"
}

NOTE The chart's center (the background in case of a small chart, or the font in case of a large chart)
assumes the color of the first configured slice (as described below) that contains non-zero data. The same
applies to the data that is supposed to be displayed by the percentage counter.

The values in a donut's center can change based on a slice that a user clicks on. If the center displays an
icon, the icon changes its background color based on the selected slice (see also centerValue).

"slices": [array]
Defines the color of the donut chart's slices and the data they display. Configure the whole array using these
properties:

● "dataProperty": "string"

Defines a specific data field that is projected in the slice. The entered data field value must correspond to
a value from the produced data.

● "title": "string"

Defines the title of the slice. It is displayed as a tooltip when you hover over the slice.

● "color": number

Defines the color of the slice. The entered value must be a hex color code, e.g. #ffab40.

● "subslices": [array]
6 Insights | 625
6.4 Dashboard Widgets

Visualize multiple series of data by adding an outer circle or circles that further specify subgroups of indi-
vidual slices of the base (inner) circle. This presents data in greater detail and with respect to multiple
criteria. Subslices have the same properties as slices.

EXAMPLE Typically you can use a multi-series donut chart to display email statistics coming from
Messenger.

The inner circle represents the number of delivered and failed emails, the outer circle represents
the number of sent emails which have been opened.

● "totalValueLabel": "string"

Defines the label shown inside large charts. This label is a part of the chart center's syntax that indicates
how many percents of the total value of the related slice's data field is shown.

NOTE The displayed label is defined by the currently selected slice with the selectionValue
property set, or the first configured slice that contains non-zero data, whichever one comes first.

● "thickness": "enum"

Defines the thickness of the slice. The available values include:


6 Insights | 626
6.4 Dashboard Widgets

1 thin

2 thick

● "selectionValue": "string"

An obligatory property if you intend to use the donut chart as a filtering source.

For this property's value, select a correct data field (which must correspond to a data field present in the
produced data) depending on whether you are intending to use the filtering concept related to the con-
trolledFilterCriterion.selectionValueCriterion property or to the controlledFilterCriterion.selec-
tedRecordsCriterion property.

EXAMPLE
The slices property configured in the JSON definition of a small donut chart:

"slices": [
{
"dataProperty": "missed",
"color": "#d32f2f",
},
{
"dataProperty": "atRisk",
"color": "#ffab40"
"thickness": "thin"
}
]

The slices property configured in the JSON definition of a large donut chart:

"slices": [
{
"dataProperty": "missed",
"color": "#d32f2f",
"totalValueLabel": "JOBS MISSED OUT OF",
"selectionValue": "completed"
},
{
"dataProperty": "atRisk",
"color": "#ffab40",
"totalValueLabel": "JOBS AT RISK OUT OF",
"selectionValue": "missed"
6 Insights | 627
6.4 Dashboard Widgets

}
]

"dynamicSlices": {object}
An alternative to slices that displays a variable number of slices based on the amount of records it receives.

Configure the object using these properties:

● "valueDataProperty": "string"

Defines the name of the data field that provides values to be plotted. For example, you can display the
number of tags for each program (i.e. enter tagCount).

● "colorDataProperty": "string"

References the data field that provides the color of the slice (e.g. representing a respective tag's color). It
assumes that the data provide this value in the hexadecimal color format.

● "totalValueLabelDataProperty": "string"

References the data filed that provides the label shown inside large charts. This label is a part of the chart
center's syntax that indicates how much of the total value, as a percentage, of the related slice's data
field is shown.

● "selectionValueDataProperty": "string"

Obligatory element if you intend to use the chart as a filtering source. It references the data field that
provides the filtering source.

● "titleDataProperty": "string"

References the data field that provides the title for the slice. It is displayed as a tooltip when you hover
over the slice.

● "thicknessDataProperty": "string"

References the data field that provides the values for the thickness of the slice.

"filterBy": {object} | [array]


Filters records that the component displays depending on the user's interaction with another component in a
dashboard.

This requires that the other component triggers filtering (i.e. contains the controlledFilterCriterion property),
and that both the components contain an identical criterion value.

For example, if a dashboard design contains a donut chart with a defined controlledFilterCriterion property,
clicking on a donut chart slice that represents a certain value forces the filtered component to only display records
which contain that value.
6 Insights | 628
6.4 Dashboard Widgets

EXAMPLE

Configure the object using the following properties:

● "criterion": "string"

Defines the name of the filter. The name is used in two places: the controller of the value and the filtering
destination.

● "dataProperty": "string"

Defines a specific data field, based on which the chart is filtered. The entered data field value must corres-
pond to a value from the produced data.

NOTE To configure the widget within a Query Engine based component template, refer to How to Filter
Query Engine Based Component.

"size": "enum"
Defines the size and the design of the chart.

The available values include:

small Places the value returned as the percentage property in the donut's center.

large Places the values returned as the percentage, totalValueLabel and totalNumber in the donut's center.
6 Insights | 629
6.4 Dashboard Widgets

For more information concerning the above-mentioned properties, see centerValue.

Values change depending on a slice the user clicks on.

"controlledFilterCriterion": {object}
Uses each slice of the chart to filter other widgets within your dashboard design, i.e. you click a slice and the data
in other widgets is filtered in a way which relates to that slice.

Configure the object using these properties:

● "selectionValueCriterion": "string"

An obligatory property (for the donut chart to be a filter source) which you can define using any alphanu-
meric string.

This provides you with a filter, where you click a slice and a connected widget only displays data related
to the interconnected data field.

The data field interconnection lies within the values of the selectionValue properties which must correspond
to the values of the connected data field.

For example, if your donut slices display the number of completed, failed and pending jobs (in %); you can
click one of the slices to filter a connected table in order to discover which jobs exactly relate to the slice
you clicked on.

Activate this filter by using the value of the selectionValueCriterion property as the value for the fil→
terBy.criterion property within the widget you wish to be filtered.

EXAMPLE
JSON definition and the result of a dashboard design using the filtering concept related to the
controlledFilterCriterion.selectionValueCriterion property. In this design, data in the table
are filtered to display only jobs in a certain "Current Stage" when a corresponding donut chart is
clicked on.
6 Insights | 630
6.4 Dashboard Widgets

1 The values of the selectionValue property reflecting the data coming from the stage data
property based on which the table is filtered.

2 The selectionValueCriterion is given the fileStage value which is used by the table's
filterBy.criterion property to make the filter connection.

3 The stage value of the table's filterBy.dataProperty property reflecting a data property
within the push data based on which the table is filtered.

● "selectedRecordsCriterion": "string"

An optional property which you can define using any alphanumeric string.

It provides you with a filter where you click a slice and the filter within the connected widget compares
the dataProperty assigned to each slice to the value of the recordsDataProperty described below.
6 Insights | 631
6.4 Dashboard Widgets

The result of such a comparison then forces the connected widget to only display data related to the values
of the recordsDataProperty property containing non-zero data which are related to the dataProperty as-
signed to each slice.

For example, if your donut slices display the number of completed, failed and pending jobs (in %); you can
click one of the slices to filter a connected table in order to discover all companies that have failed jobs to
take care of.

Activate this filtering concept by using the value of the selectedRecordsCriterion property as the value
for the filterBy.criterion property within the widget you wish to be filtered by the donut chart's slices.

● "recordsDataProperty": "string"

To use the selectedRecordsCriterion filtering content, define this property to provide a data field (which
must correspond to a data field present in the produced data) to compare it with the dataProperty of each
slice.

6.4.7.2 JSON Example

EXAMPLE

{
"type": "widget:Insights.Donut",
"dataNode": {
"application": "messenger",
"path": "emailStatistics"
},
"localProperties": {
"centerValue": {
"type": "total",
"totalValueLabel": "TOTAL EMAILS SENT"
},
"slices": [
{
"dataProperty": "delivered",
"color": "#52a3cc",
"subslices": [
{
"dataProperty": "opened",
"color": "#69b027",
"selectionValue": "green",
"totalValueLabel": "OPENED",
"title": "Opened"
},
{
"dataProperty": "unopened",
"color": "#aeaeae",
"thickness": "thin"
}
],
"totalValueLabel": "DELIVERED",
"selectionValue": "blue",
6 Insights | 632
6.4 Dashboard Widgets

"title": "Delivered"
},
{
"dataProperty": "failed",
"color": "#e34243",
"selectionValue": "red",
"totalValueLabel": "FAILED",
"title": "Failed"
}
],
"size": "large"
}
}

6.4.8 widget:Insights.EmbeddedHtml
Inserts an embedded HTML object into a dashboard design. This is useful for visual content such as videos, charts,
analytics, social media posts or other embedded HTML objects coming from an external source.

6.4.8.1 Widget Configuration


Configure the widget:Insights.EmbeddedHtml element via its localProperties object:

localProperties Mandatory

htmlCode YES

"htmlCode": "string"
Defines the source HTML code of an embedded object. To insert the source HTML code into the widget, copy and
paste the code from an external HTML source. You can enter multiple objects' HTML code to display them in one
widget.

NOTE

● The entered HTML code structure must be valid. If the entered code contains <"> quotation marks,
make sure that they are preceded with a backslash.

● Dashboard Editor provides a similar feature, in which you can use an empty Embedded HTML
component and configure it via its Settings tab.
6 Insights | 633
6.4 Dashboard Widgets

6.4.8.2 JSON Example

EXAMPLE

{
"displayName": "Embedded HTML object",
"description": "Displays an embedded HTML object (e.g. a video, social media post) from an
external resource",
"properties": {
"icon": "default",
"tags": [
"embed"
]
},
"composition": {
"type": "widget:Insights.EmbeddedHtml",
"localProperties": {
"htmlCode": "<iframe width=\"100%\" height=\"450\" scrolling=\"no\" frameborder=\"no\"
src=\"https://w.soundcloud.com/player/?url=https%3A//api.sound→
cloud.com/tracks/268340996&amp;auto_play=false&amp;hide_related=false&amp;show_com→
ments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true\"></iframe>"
}
}
}

6.4.9 widget:Insights.Gauge
Displays data in a gauge, which tells you how successful your data are on a defined success scale.

EXAMPLE
Monitor the success of emails sent to your customers, displayed on the gauge as emails opened.
6 Insights | 634
6.4 Dashboard Widgets

6.4.9.1 Widget Configuration


Configure the widget:Insights.Gauge element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

sectors YES size YES

color YES

tooltipMessage NO

totalValueDataProperty YES N/A N/A

valueDataProperty YES N/A N/A

bottomValue NO type NO

totalValueLabel NO

needleTooltip NO N/A N/A

filterBy NO criterion YES

dataProperty YES

"sectors": [array]
Divide your scale into sectors, each depicting a specific success rate.

You can configure any number of sectors by using these properties for each sector:

● "size": number

Defines how much space one sector fills, using decimal values. The sum of all the defined sectors equals
the total size of the gauge in percentages.
6 Insights | 635
6.4 Dashboard Widgets

EXAMPLE

"sectors": [
{
"size": 0.01,
"color": "#e34243"
},
{
"size": 0.02,
"color": "#f28918"
},
{
"size": 0.12,
"color": "#69B027"
}
]

● "color": "string"

Defines the color of the slice. The entered value must be a hex color code, e.g. #ffab40.

● "tooltipMessage": "string"

Defines the tooltip message (can be any string) displayed when you hover over a sector.

"totalValueDataProperty": "string"
Defines a specific data field that represents the total value on the gauge. For example, the total number of sent
emails.

"valueDataProperty": "string"
Defines a specific data field that you wish to monitor in relation to totalValueDataProperty. For example, the
total number of emails opened.

"bottomValue": {object}
Defines how to depict valueDataProperty within the gauge.

Configure this object using these properties:

● "type": "enum"

Use one of these values:

percentage Displays a percentage with the total value in brackets.

total Displays the total value only.


6 Insights | 636
6.4 Dashboard Widgets

● "totalValueLabel": "string"
Defines the label (can be any string) shown below the gauge. The defined label should fit into the syntax
of bottomValue.

"needleTooltip": "string"
Defines the tooltip message (can be any string) displayed when you hover the needle.

"filterBy": {object} | [array]


Filters records that the component displays depending on the user's interaction with another component in a
dashboard.

This requires that the other component triggers filtering (i.e. contains the controlledFilterCriterion property),
and that both the components contain an identical criterion value.

For example, if a dashboard design contains a donut chart with a defined controlledFilterCriterion property,
clicking on a donut chart slice that represents a certain value forces the filtered component to only display records
which contain that value (e.g. the success of emails sent to a specific customer).

Configure the whole object using these properties whose values must correspond to the values of the controlled→
FilterCriterion property configured within the filtering sources:

● "criterion": "string"

Defines the name of the filter. The name is used in two places: the controller of the value and the filtering
destination.
6 Insights | 637
6.4 Dashboard Widgets

EXAMPLE The following component can display data filtered by the global filter. To ensure the
entered text ignores white spaces and allows users to find fuzzy matches, set the matchType
property value to containsIgnoreCase.

"filterBy": {
"criterion": "sys.global-filter",
"dataProperty": [
"companyName",
"jobsCount"
],
"matchType": "containsIgnoreCase"
}

● "dataProperty": "string"

Defines a specific data field based on which the gauge is filtered. The entered data field value must cor-
respond to a value from the produced data.

Global Filter
Filters dashboard components to display records that contain a user-entered value. This helps users
quickly identify issues related to a specific customer, SLA status, or other criteria. Enter the value in the
upper-right SHOW FILTER edit box. Define the following "filterBy" properties to filter a component using
a global filter:

○ "criterion" – Set the value to sys.global-filter.

○ "dataProperty" – Set the names of the data fields to be filtered by a global filter.

Component templates based on Query Engine apply global filtering automatically (see also How to
Filter Query Engine Based Component Templates).
6 Insights | 638
6.4 Dashboard Widgets

NOTE To configure the widget within a Query Engine based component template, refer to How to Filter
Query Engine Based Component.

6.4.9.2 JSON Example

EXAMPLE

"type": "widget:Insights.Gauge",
"dataNode": {
"application": "Insights",
"path": "example.jobs"
},
"localProperties": {
"sectors": [
{
"size": 0.5,
"color": "#e34243",
"tooltipMessage": "Unsuccessful"
},
{
"size": 0.35,
"color": "#f28918"
},
{
"size": 0.15,
"color": "#69B027"
}
],
"bottomValue": {
"type": "percentage",
"totalValueLabel": "emails opened out of"
},
"filterBy": {
"criterion": "selectedCompanyId",
"dataProperty": "companyId"
},
"valueDataProperty": "stage_Email_openedEmailsCount",
"totalValueDataProperty": "stage_Emails_sentEmailsCount"
}
6 Insights | 639
6.4 Dashboard Widgets

6.4.10 widget:Insights.Image
Displays a specific image.

NOTE Internet Explorer 11 does not display the SVG image in its full scale.

6.4.10.1 Widget Configuration


Configure the widget:Insights.Image element via its localProperties object:

localProperties Mandatory

imageData YES

align YES

imageName NO

url NO

tooltip NO

NOTE Dashboard Editor provides an identical feature.

"imageData": "string"
References a specific image file for display in the component. The value must be in the Data URI (uniform resource
identifier) format.

"align": "enum"
Applies a selected alignment to the image. The following values are available: left, right, center.
6 Insights | 640
6.4 Dashboard Widgets

"imageName": "string"
A custom, read-only piece of information visible within the dashboard editor.

"url": "string"
Embeds a custom URL link into the image. Click the image within a dashboard or its preview to go to the defined
URL address.

NOTE

● The length of the URL address is limited to 2000 characters.

● A valid URL address must contain one of these prefixes: http://, https://, or #/.

"tooltip": "string"
Embeds a custom tooltip into the image. Display it within a dashboard or its preview by hovering the mouse over
it.

The length of the tooltip is limited to 1000 characters.

6.4.10.2 JSON Example

EXAMPLE

{
"displayName": "Image",
"description": "Show branding image",
"composition": {
"type": "widget:Insights.Image",
"localProperties": {
"align": "center",
"imageData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAA→
HElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
"url": "http://www.froodeco.com",
"tooltip": "Company logo"
}
}
}

6.4.11 widget:Insights.LineChart
Displays data in a line chart.
6 Insights | 641
6.4 Dashboard Widgets

EXAMPLE
Display all emails sent for production and their current status (e.g. Sent, In progress, Failed).

6.4.11.1 Widget Configuration


Configure the widget:Insights.LineChart element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

lines YES title YES

valueDataProperty YES

color YES

pointShape NO

xAxis YES labelDataProperty YES

labelWidth YES

firstLabelIndex NO

height YES N/A N/A

scaleMode NO N/A N/A

customScale NO minValue YES

maxValue YES

numberOfLines YES

xAxisLabel NO N/A N/A

yAxisLabel NO N/A N/A

showLegend NO N/A N/A


6 Insights | 642
6.4 Dashboard Widgets

"lines": [array]
Define the properties of each line.

Configure the array using these properties:

● "title": "string"

Defines the name of the line, displayed in the legend. Ideally the title represents a data property value
(e.g. enter Sent for all emails which return the Sent status).

● "valueDataProperty": "string"

Defines the data field to be used as a source of Y-axis values. Values have to be numerical.

● "color": "string"

Defines the color of the line and points representing values returned by the data.

The entered value must be a hex color code.

● "pointShape": "enum"

Defines the shape of a point representing a value.

The available shapes include: hexagon, circle and square.

"xAxis": {object}
Defines the properties of the X axis.

Configure the object using these properties:

● "labelDataProperty": "string"

Defines a string to be used as the X axis label.

● "labelWidth": number

Defines the width of a label (in pixels). The greater the label width, the fewer labels are displayed on an
axis, which ensures that the labels are always readable.

● "firstLabelIndex": "enum"

Defines where to place the first label on the X axis.

Enter 0 (zero) to display the first label at the intersection of the X and Y axes.

Enter 1 or any other number to display the first label farther from the intersection of the X and Y axes. The
higher the number, the farther the first label is placed.
6 Insights | 643
6.4 Dashboard Widgets

"height": number
Defines the height of the line chart object (in pixels).

"scaleMode": "enum"
Scales data in a line chart.

The available values include:

absolute Ensures that the 0 (zero) value is always visible in the chart, irrespective of the lowest value found in
the data source.

relative Adjusts the minimum and maximum values of the Y axis according to the lowest and highest values
found in the data source. This reduces white space and improves the readability of cluttered lines.

To improve the line chart's appearance and to avoid placing the lowest value exactly on the X axis, the hori-
zontal grid lines' labels display round numbers, not exact values.

"customScale": {object}
Scales data in a line chart according to user-defined criteria.

Configure the object using these properties:

● "minValue": number

Defines the minimum value that the Y axis displays.

● "maxValue": number

Defines the maximum value that the Y axis displays.

● "numberOfLines": number

Defines the number of grid lines.

NOTE If the data source returns values below or above the user-defined minValue and maxValue, the line
chart does not display these values. The horizontal grid lines' labels display exact values, not round numbers
– labels are calculated exactly according to the line chart Y-axis values span and the entered numberOfLines
value.

"xAxisLabel": "string"
Defines a string to be used as the X-axis label.

"yAxisLabel": "string"
Defines a string to be used as the Y-axis label.

"showLegend": boolean
Adds a legend to the chart. Use these values: true or false.
6 Insights | 644
6.4 Dashboard Widgets

6.4.11.2 JSON Example

EXAMPLE

{
"displayName": "EMAIL STATUS SUMMARY (MESSENGER)",
"description": "",
"composition": {
"type": "layout:Insights.Group",
"localProperties": {
"title": "EMAIL STATUS SUMMARY (MESSENGER)",
"childSpacing": 20
},
"children": [
{
"type": "widget:Insights.LineChart",
"dataNode": {
"application": "messenger",
"path": "summaryEmailStatistics"
},
"localProperties": {
"lines": [
{
"title": "sent",
"valueDataProperty": "sent",
"color": "#12b39a"
},
{
"title": "inProgress",
"valueDataProperty": "inProgress",
"color": "#127db2"
},
{
"title": "failed",
"valueDataProperty": "failed",
"color": "#7e57c2"
},
{
"title": "delivered",
"valueDataProperty": "delivered",
"color": "#a1cfe6"
}
],
"xAxis": {
"labelDataProperty": "date",
"labelWidth": 50
},
"scaleMode": "absolute",
"height": 300
}
}
]
6 Insights | 645
6.4 Dashboard Widgets

}
}

6.4.12 widget:Insights.StackedBarChart
Displays data in a stacked bar chart.

EXAMPLE

6.4.12.1 Widget Configuration


Configure the widget:Insights.StackedBarChart element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

items YES dataProperty YES

color YES

title YES

width NO N/A N/A

filterBy NO N/A N/A

"items": [array]
Defines the number of items in the chart and their appearance.

Configure the whole object using these properties:

● "dataProperty": "string"

Defines a specific data field projected in the item. The entered data field value must correspond to a value
from the produced data.

● "color": "string"

Defines the color of the item. The entered value must be a hex color code.

● "title": "string"

Defines the caption of the item.


6 Insights | 646
6.4 Dashboard Widgets

"width": number
Defines the width of the chart (in pixels).

"filterBy": {object} | [array]


The filtering principle corresponds to the filtering of donut charts and counters, i.e. you can only apply one filter
to a stacked bar chart.

NOTE If you configure the widget within a Query Engine based component template, the filterBy
property can only be used to configure interactions between multiple widgets within one component
template.

To configure interactions between multiple Query Engine based component templates, you must use the
Dashboard Editor.

6.4.12.2 JSON Example

EXAMPLE

"type": "widget:Insights.StackedBarChart",
"dataNode": {
"application": "Insights",
"path": "productionView.receipt_StackBarChart"
},
"localProperties": {
"items": [
{
"dataProperty": "onTarget",
"color": "#68bb68",
"title": "On target"
},
{
"dataProperty": "atRisk",
"color": "#ffab40",
"title": "At risk"
},
{
"dataProperty": "missed",
"color": "#d32f2f",
"title": "Missed"
},
{
"dataProperty": "otherIssues",
"color": "#ffab40",
"title": "Other issues"
}
]
}
6 Insights | 647
6.4 Dashboard Widgets

6.4.13 widget:Insights.Tab
Displays data on tabs to easily group them according to user-defined criteria.

EXAMPLE

6.4.13.1 Widget Configuration


Configure the widget:Insights.Tab element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

dynamicItems YES labelDataProperty YES

controlledFilterCriterion YES criterion YES

dataProperty YES

"dynamicItems": {object}
Initiates the configuration of the tabs that the widget should display. This widget displays a variable number of
tabs based on the amount of records it receives.

Configure the object using this property:

● "labelDataProperty": "string"

Defines the name of the data field which projects as the tab's title (the value must correspond to a value
from the produced data).

"controlledFilterCriterion": {object}
Filters other widgets according to the currently selected tab. Set the dataProperty value to the name of the data
field that you want to use for filtering (the value must correspond to a value from the produced data).

6.4.13.2 JSON Example

EXAMPLE

{
"type": "widget:Insights.Tab",
"dataNode": {
"application": "cjm",
"path": "strategyList"
},
6 Insights | 648
6.4 Dashboard Widgets

"localProperties": {
"dynamicItems": {
"labelDataProperty": "name"
},
"controlledFilterCriterion": {
"criterion": "tab",
"dataProperty": "id"
}
}
}

6.4.14 widget:Insights.Table
Displays data in a table.

EXAMPLE

6.4.14.1 Widget Configuration


Configure the widget:Insights.Table element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

bodyHeight YES N/A N/A

controlledFilterCriterion NO criterion YES

dataProperty YES

outputVariables NO displayedRowCount NO

initialSorting NO columnIndex YES


6 Insights | 649
6.4 Dashboard Widgets

localProperties Mandatory Subproperties Mandatory

order YES

columns YES title YES

width NO

valueType YES

dataProperty YES

dataPropertyForIcon NO

dataPropertyForSorting NO

dataPropertyForUrl NO

dataPropertyTooltip NO

colorForNonZeroValue NO

breakLongWords NO

filterBy NO criterion YES

dataProperty YES

matchType NO

collapsedItems NO title NO

dataProperty YES

dataPropertyForUrl NO

dataPropertyForTooltip NO

"bodyHeight": number
Defines the height of the table body (in pixels). If the contents of the table exceed the defined body height, you
can use a scrollbar to navigate through it. The table header stays in place.

"controlledFilterCriterion": {object}
Places check boxes inside each table row allowing you to use the table as the value source for filtering other
widgets.

Configure the whole object using these properties that are used by the filterBy property within the visual elements
you wish to be filtered by these check boxes:

● "criterion": "string"

Defines the name of the filter. If your dashboard design contains multiple tables with filtering, this property
identifies which filter is supposed to apply to which visual element.

● "dataProperty": "string"

Defines a specific data field which is used as a source of filter values. The entered data field value must
correspond to a value from the produced data
6 Insights | 650
6.4 Dashboard Widgets

"outputVariables": {object}
This object defines a variable which can be used within the layout:Insights.Group element to display the number
of rows within a table (placed next to the title).

Configure this object using this property:

● "displayedRowCount": number

Names the variable.

EXAMPLE

"outputVariables": {
"displayedRowCount": "productionManagerSlaRiskRowCount"
}

"initialSorting": {object}
Defines the column and the order by which the data will initially be sorted.

This property is optional. If not used, column 1 of the table is sorted in the ascending order.

Configure the object using these subproperties:

● "columnIndex": number

Defines the initial column for sorting.

● "order": "enum"

Defines the initial sorting order: ascending or descending.

EXAMPLE
"initialSorting": {
"columnIndex": 7,
"order": "descending"
}

"columns": [array]
Defines table columns.

Configure the array using these properties:

● "title": "string"

Defines the title of the column.

● "width": number
6 Insights | 651
6.4 Dashboard Widgets

Defines the width of a column (in pixels).

TIP To optimize the table display (e.g. to minimize text wrapping in the header), leave one column
without a defined width parameter. This allows the column to dynamically adjust its size so that
the whole table can better fit on the screen.

● "valueType": "enum"

Defines the format of the displayed data field. The available values include:

Value Result

text

textBold

number

indicatorSquare

indicatorCircle

textWithIcon

NOTE If you configure the widget within a Query Engine based component template, the indic→
atorSquare and the indicatorCircle values are not supported because Query Engine is not able
to return list of values.

● "dataProperty": "string"

Defines a specific data field that the column will display.

If an indicator is used (square or circle), the value of the selected data field is expected to be:

○ An array of strings representing hex color codes, e.g. ["#68bb68", "#ff0000"].

○ An array of color objects with hex color code values, e.g. [{color: "#68bb68"}, {color:"#ff0000"},
...].

This option does not require you to use an impositioning script to render colors in the respective WFD
file in Inspire Designer.

The length of the indicator is defined by the number of items.

● "dataPropertyForIcon": "enum"

If you set the valueType property of your column to textWithIcon, this property references a data field that
contains a value dictating what icon to display.
6 Insights | 652
6.4 Dashboard Widgets

The available icon values include:

Value Icon Value Icon

error envelope

check archive

action at @
inserting add

printer jobs

● "dataPropertyForSorting": "string"

Defines a specific data field based on which the column will be sorted. This is helpful when your column
displays data using indicatorSquare and indicatorCircle.

● "dataPropertyForUrl": "string"

Turns the displayed text value from dataProperty into a URL link, which leads to the defined URL address.
Depending on where you want this link to lead, select one of these values:

○ linkToCjmProgramDetailUrl – If your table works with Customer Journey Map (CJM) data, you can link
to a CJM program detail.

○ A data field – Reference a data field that contains any URL link values.

● "dataPropertyForTooltip": "string"

Adds a tooltip message to the item in the table cell. You can view the tooltip when you hover over the
item. Depending on what you want the tooltip message to say, select one of these values:

○ linkToCjmProgramDetailTooltip – Displays this message: Open program <CJM program name>.

○ A data field – Reference a data field that contains any tooltip message values.

● "colorForNonZeroValue": "string"

Applies to the columns that display their data using the number valueType. Defined by a hex color code
value, it defines the color of the displayed number.

If undefined, the gray color is used by default.

● "breakLongWords": boolean

Ensures that words, which are too long, are broken up into a number of rows.

"filterBy": {object} | [array]


The filtering principle corresponds to the filtering of donut charts and counters.

NOTE To configure the widget within a Query Engine based component template, refer to How to Filter
Query Engine Based Component.
6 Insights | 653
6.4 Dashboard Widgets

In addition, tables allow you to apply the following filtering scenarios:

Scenario JSON Example

Apply multiple filters simultaneously.

"filterBy": [
{
"criterion": "myFilter1",
"dataProperty": "property1"
},
{
"criterion": "myFilter2",
"dataPropery": "property2"
}
]

Apply one filter on multiple columns simultanously (only


one of them needs to match).
"filterBy": {
"criterion": "myFilter1",
"dataProperty": ["property1", "prop→
erty2"]
}

When filtering using a text box, you can define the level
of match between the actual values within the table
"filterBy": {
and the value you use inside the text box.
"criterion": "myFilter1",
"dataProperty": [
"property1"
],
"matchType": "containsIgnoreCase"
}

In addition to criterion and dataProperty, configure the last filtering scenario using this property:

● "matchType": "enum"

Available values include:

containsIgnoreCase Table values are matched to filter values even if they match partially (case insens-
itive).

equals There has to be an exact match between the table and filter values.

"collapsedItems": {object}
Adds an expand/collapse action to every row within the table providing you with space to display additional in-
formation. To define the expanded details, you can, any number of times, configure the object using these prop-
erties:

● "title": "string"
6 Insights | 654
6.4 Dashboard Widgets

Defines an introducing title to the detail displayed from the data property configured below. The entered
value can be any alphanumeric string.

● "dataProperty": "string"

Defines a specific data field which is used as a source of the displayed values. The selected data property
must reference text strings only and it must correspond to a value from the produced data.

● "dataPropertyForUrl": "string"

Turns the displayed text value from dataProperty into a URL link, which leads to the defined URL address.
Depending on where you want this link to lead, select one of these values:

○ linkToCjmProgramDetailUrl – If your table works with Customer Journey Map (CJM) data, you can link
to a CJM program detail.

○ A data field – Reference a data field that contains any URL link values.

● "dataPropertyForTooltip": "string"

Adds a tooltip message to the table cell item. You can view the tooltip when you hover over the item. De-
pending on what you want the tooltip message to say, select one of these values:

○ linkToCjmProgramDetailTooltip – Displays this message: Open program <CJM program name>.

○ A data field – Reference a data field that contains any tooltip message values.

6.4.14.2 JSON Example

EXAMPLE

"type": "widget:Insights.Table",
"dataNode": {
"application": "Insights",
"path": "productionView.receipt_table"
},
"localProperties": {
"bodyHeight": 369,
"filterBy": {
"criterion": "selectedCompanyId",
"dataProperty": "companyId"
},
"columns": [
{
"title": "Company",
"valueType": "textBold",
"dataProperty": "company"
},
{
"title": "Job ID",
"valueType": "text",
"dataProperty": "jobID"
},
6 Insights | 655
6.4 Dashboard Widgets

{
"title": "Size",
"valueType": "number",
"dataProperty": "pages"
},
{
"title": "Current Stage",
"valueType": "indicatorSquare",
"dataProperty": "stageIndicator"
},
{
"title": "SLA Due",
"valueType": "text",
"dataProperty": "sla_due"
},
{
"title": "Overdue",
"valueType": "text",
"dataProperty": "sla_overdue"
}
]
}

6.4.15 widget:Insights.TagFilter
Filters the displayed data according to selected criteria. Criteria are defined by users, who can select multiple
criteria at once using Add Criterion.

EXAMPLE

6.4.15.1 Widget Configuration


Configure the widget:Insights.TagFilter element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

itemListLabel YES N/A N/A

addButtonLabel NO N/A N/A

selectionBoxTitle YES N/A N/A

dynamicItems YES titleDataProperty YES

colorDataProperty NO

shape NO
6 Insights | 656
6.4 Dashboard Widgets

localProperties Mandatory Subproperties Mandatory

controlledFilterCriterion YES criterion YES

dataProperty YES

"itemListLabel": "string"
Defines the name of the filter as displayed in the user interface. To set the value of this property, enter a text (e.g.
Select tags, or Filter by).

"addButtonLabel": "string"
Defines the label displayed by the tag selection icon.

"selectionBoxTitle": "string"
Defines the title of the selection box, which pops up after the user clicks Add Criterion. To set the value of
this property, enter a text (e.g. Tags, or Criteria).

"dynamicItems": {object}
Initiates the configuration of the tag filters that the widget should display. This widget displays a variable number
of tag filters based on the amount of records it receives.

Configure the object using these properties:

● "titleDataProperty": "string"

References data field containing the title of the tag. The entered data field value must correspond to a
value from the produced data.

● "colorDataProperty": "string"

References data field containing the color of a tag. The entered data field value must correspond to a
value from your JSON definitions of push data.

The property expects the value to be defined in the hexadecimal color format.

● "colorDataProperty": "enum"

Defines the shape of the displayed, selected tags. The available values include: arrow and rectangle.

"controlledFilterCriterion": {object}
Filters other widgets within your dashboard design based on the selected criterion. Set the dataProperty value
to the name of the data field that you want to use for filtering (the value must correspond to a value from the
produced data).
6 Insights | 657
6.4 Dashboard Widgets

For more information on the filtering principle, see also controlledFilterCriterion in the widget:Insights.Donut
section.

6.4.15.2 JSON Example

EXAMPLE

{
"displayName": "CJM - Tag list",
"description": "CJM Data Path touchPointTagList for tag filter in CJM Dashboard",
"properties": {
"icon": "bundle"
},
"composition": {
"type": "widget:Insights.TagFilter",
"dataNode": {
"application": "cjm",
"path": "touchPointTagList"
},
"localProperties": {
"itemListLabel": "Select tags",
"selectionBoxTitle": "Tags",
"dynamicItems": {
"titleDataProperty": "name",
"colorDataProperty": "colorCode"
},
"controlledFilterCriterion": {
"criterion": "tag",
"dataProperty": "id"
}
},
}
}

6.4.16 widget:Insights.Text
Displays a text string which can be used e.g. as the title of a donut chart.
6 Insights | 658
6.4 Dashboard Widgets

EXAMPLE

6.4.16.1 Widget Configuration


Configure the widget:Insights.Text element via its localProperties object:

localProperties Mandatory

content NO

style NO

align NO

url NO

tooltip NO

"content": "string"
Defines the text string to be displayed.

"style": "enum"
Applies a selected style to the text.

The available values include:

heading1 Specified using the following values: Font size 30, font style Light.

heading2 Specified using the following values: Font size 22, font style Light.

heading3 Specified using the following values: Font size 18, font style Regular.

heading4 Specified using the following values: Font size 16, font style Regular.

heading5 Specified using the following values: Font size 13, font style Semibold.

basic Specified using the following values: Font size 13, font style Regular.

"align": "enum"
Applies a selected alignment to the text. The available values include: left, right, center.
6 Insights | 659
6.4 Dashboard Widgets

"url": "string"
Embeds a custom URL link into the text. Click the text within a dashboard or its preview to go to the defined URL
address.

NOTE

● The length of the URL address is limited to 2000 characters.

● A valid URL address must contain one of these prefixes: http://, https://, or #/.

"tooltip": "string"
Embeds a custom tooltip into the text. Display it within a dashboard or its preview by hovering the mouse over
it.

The length of the tooltip is limited to 1000 characters.

6.4.16.2 JSON Example

EXAMPLE

"type": "widget:Insights.Text",
"localProperties": {
"content": "PREPARATION"
}

6.4.17 widget:Insights.WordCloud
Displays a cloud formation of words (e.g. company names) which can be configured to filter the records displayed
by other widgets (e.g. click a company name to force a table to display only records related to a corresponding
company).
6 Insights | 660
6.4 Dashboard Widgets

EXAMPLE

6.4.17.1 Widget Configuration


Configure the widget:Insights.WordCloud element via its localProperties object:

localProperties Mandatory Subproperties Mandatory

height YES N/A N/A

wordCount YES N/A N/A

textDataProperty YES N/A N/A

relevanceDataProperty YES N/A N/A

minFontSize / maxFontSize YES N/A N/A

textHighlightRules NO dataProperty YES

color YES

groupName YES N/A N/A

textColor YES N/A N/A

controlledFilterCriterion NO criterion YES

dataProperty YES

"height": number
Defines the height of a word cloud object (in pixels).
6 Insights | 661
6.4 Dashboard Widgets

"wordCount": number
Defines the number of words displayed by the cloud formation including the word defined by the groupName
property described below.

"textDataProperty": "string"
Defines a specific data field (e.g. a pool of company names) as the selection source for the words intended for
display.

"relevanceDataProperty": "string"
Defines a specific data field (e.g. records of the number of completed jobs) as the relevance indicator. The cloud
formation displays the words with the highest relevance (e.g. the names of those companies whose number of
completed jobs is the highest). The relevance indicator—taking into account the number of words to be dis-
played—also automatically calculates the words' size and position within the cloud formation.

NOTE The words' size is calculated to fall within the values defined by the minFontSize and maxFontSize
properties described below.

"minFontSize": number / "maxFontSize": number


Defines the smallest/largest possible font size for the displayed words.

"textHighlightRules": [array]
Defines rules that dictate the color of the displayed words.

Configure the array (any number of times for multiple simultaneous rules) using these properties:

● "dataProperty": "string"

Defines the data field (e.g. the number of uncompleted jobs) which is taken into account when a color
(defined below) is to be selected. The first non-zero dataProperty applies.

● "color: "string"

Defines the color. The entered value must be a hex color code.

NOTE If you configure multiple rules, the priority is determined by the order in which the rules were
configured.

"groupName": "string"
Defines a word to be displayed within the cloud formation that represents all the words, not meeting the criteria
of the wordCount limit. The color of this word is taken either from the textColor property or from an applicable
textHighlightRules property rule with the highest priority.
6 Insights | 662
6.4 Dashboard Widgets

"textColor": "string"
Using a hex code, it defines the default color of the word defined in the groupName property and the default color
of all the defined words that do not fall within any of the rules created in the textHighlightRules property. This
property becomes obsolete if all defined textHighlightRules property rules apply.

"controlledFilterCriterion": {object}
Uses the words within the cloud formation to filter the records displayed by other widgets.

Configure the whole object using these properties that are used by the filterBy property within the visual elements
you wish to be filtered:

● "criterion": "string"

Defines the name of the filter. If your dashboard design contains multiple tables with filtering, this property
identifies which filter is supposed to apply to which visual element.

● "dataProperty": "string"

Defines a specific data field which is used as a source of filter values. The entered data field value must
correspond to a value from the produced data.

6.4.17.2 JSON Example

EXAMPLE

"type": "widget:Insights.WordCloud",
"dataNode": {
"application": "Insights",
"path": "productionView.receipt_WordCloud"
},
"localProperties": {
"height": 200,
"textDataProperty": "company",
"relevanceDataProperty": "completed",
"groupName": "OTHERS",
"wordCount": 15,
"textColor": "#68bb68",
"minFontSize": 15,
"maxFontSize": 90,
"textHighlightRules": [
{
"dataProperty": "missed",
"color": "#d32f2f"
},
{
"dataProperty": "atRisk",
"color": "#ffab40"
},
{
"dataProperty": "completed",
6 Insights | 663
6.5 Using Insights

"color": "#68bb68"
}
],
"controlledFilterCriterion": {
"criterion": "selectedCompanyId",
"dataProperty": "companyId"
}

6.5 Using Insights


Work in Insights is divided into these sections, which you can navigate between using the menu which is found
in Quadient Cloud | Applications | Insights:

● My Dashboards

● Dashboard Management

● Component Templates

● Data Storage

● Custom Data Sources

● API Keys

● Download Section

NOTE Your Quadient Cloud account was created and one of these Insights user roles was assigned to
you: Insights Dashboards Manager or Insights Application Administrator. Insights Dashboard Managers
can only work with My Dashboards, Dashboard Management and Customers.

To learn about the assignment of Insights user roles, consult the Quadient Cloud Administration document-
ation.

6.5.1 My Dashboards
Displays all the dashboards that you have been given access to by an administrator via Dashboard Management.
6 Insights | 664
6.5 Using Insights

Your data are automatically updated every 5 minutes. If you wish to update them sooner, click REFRESH DATA.

If there are multiple dashboards available to you, select the one you wish to display using the Shared Dashboards
drop down menu.

TIP You can also filter the whole dashboard content based on selected criteria (e.g. customers). To do
so, enter the respective customer's name in the global filter in the application's upper-right corner.

To be able to only display the filtered content, you need to configure individual component templates to
include the related filterBy settings (e.g. allow the template to be filtered according to the customer's
name).

6.5.2 Dashboard Management


Allows you to assemble, edit, preview, share, delete and clone dashboards while listing all the created ones.

Dashboard Management Tools

Add Adds a new dashboard.

Preview Previes the dashboard.

Edit Edits the selected dashboard.

Clone Clones the selected dashboard

Distribute Distributes (shares) the selected dashboard.

Delete Deletes the selected dashboard

Previewing a Dashboard
To preview a dashboard:

1. Click the dashboard you wish to preview.

2. Click Preview.

Data preview automatically updates every 5 minutes. To force an update and preview the most recent data, click
Update located below the previewed component template's name.
6 Insights | 665
6.5 Using Insights

Editing a Dashboard
To edit the name or composition of an existing dashboard:

1. Select the dashboard you wish to edit.

2. Click Edit.

3. Follow the instruction in the Dashboard Assembling section to edit the dashboard.

Cloning a Dashboard
When assembling a dashboard whose design is similar to an existing dashboard, you can clone the existing
dashboard and adjust it to your needs:

1. Select the dashboard you wish to clone.

2. Click Clone.

3. Select the cloned dashboard and click Edit.

4. Follow the instruction in the Dashboard Assembling section to make your adjustments.

Distributing a Dashboard
Allow users to access the dashboard (internal or customer users).

WARNING Before sharing your dashboard, make sure to add a corresponding condition in the Data
Filter to display only the appropriate data for the intended user.

To distribute (share) a dashboard:

1. Select the dashboard you wish to share.

2. Click Distribute.
6 Insights | 666
6.5 Using Insights

3. In the opened window, decide whether you are sharing the dashboard with an internal or customer user
and click the corresponding Share icon.

4. In the opened User Selection pop-up window, select the desired users:

Selecting Internal Users

a) From the list of internal users, select those you wish to have access to the dashboard.

b) Select whether you wish for the selected users to be notified about newly the assigned dashboard
access.

c) Click OK to finish.
6 Insights | 667
6.5 Using Insights

Selecting Customer Users

a) Select the customer whose employee is the user you wish to give access to.

b) From the list of customer users, select those you wish to have access to the dashboard.

c) Select whether you wish for the selected users to be notified about the newly assigned dashboard
access.

Sharing a dashboard with a new customer user also sends an activation email which customer users
can use to set up their password.

d) Click OK to finish.

NOTE Users who have access to specific dashboards are listed in the detail of individual dashboards.
Open the detail by clicking as shown below:
6 Insights | 668
6.5 Using Insights

Removal
To delete a dashboard:

1. Select the dashboard(s) you wish to delete.

2. Click Delete.

3. Click DELETE to confirm.

6.5.3 Component Templates


Store and manage component templates.

A component template is a JSON definition of a reusable piece of dashboard containing one or more configured
widgets and their data connection (e.g. a table with specified columns to show). Using these templates, you can
assemble complete dashboards in the Dashboard Editor (the Dashboard Management section).

TIP Go to the Preparing Dashboard Component Templates section to learn how to create dashboard
components.

Component Template Tools

Upload Uploads a new component template.

Preview Previews the selected component template.

Edit Edits the selected component template.

Download Downloads the selected component template.

Occurrences Shows template occurrences.

Delete Deletes the selected component template.

6.5.3.1 Uploading Component Templates


To upload a component template, click Upload.

TIP You can find sample component templates in our starter kits.

6.5.3.2 Previewing Component Templates


Previews a selected component template.

Data preview automatically updates every 5 minutes. To force an update and preview the most recent data, click
REFRESH DATA located below the previewed component template's name.
6 Insights | 669
6.5 Using Insights

6.5.3.3 Editing Component Templates


Opens the component template editor which is split into these configuration modes:

● Style Editor

Provides GUI features for editing widget properties.

● Data Query Editor

Provides GUI features for editing data queries within widgets that display queryable data.

● JSON Editor

Provides a simple text editor for editing template JSON definitions.

NOTE Changes made to the template do not manifest themselves automatically in dashboards that use
it. You must create a new dashboard using the updated template.

Style Editor
Provides GUI features for editing widget properties:

1 Template preview Adjusts itself based on the changes you make.

2 Template Editor Controls

Style Editor / JSON – Switches between the style editor and the JSON editor.

Save – Saves the changes made to the template.

Save As – Saves the changes made within a new instance of the template.

Close Editor – Closes the editor.


6 Insights | 670
6.5 Using Insights

NOTE These controls also apply to the JSON editor.

3 Widget selector Selects one of the widgets from the component template whose style you wish to edit.

TIP Alternatively, you can click the widget within the template preview to select it.

4 Data tab Opens the Data Query Editor if the selected widget displays queryable data.

5 Style tab Edits the visual properties of a selected widget. The widgets whose style you can edit in this
tab include:

● layout:Insights.Group

● widget:Insights.ColumnAndLineChart

● widget:Insights.Counter

● widget:Insights.Donut

● widget:Insights.EmbeddedHtml

● widget:Insights.Image

● widget:Insights.Text

NOTE The properties you can edit within these widgets correspond to the properties that can be
configured within their JSON definitions.

Data Query Editor


Provides GUI features to edit data queries within widgets that display queryable data:
6 Insights | 671
6.5 Using Insights

1 Table displaying the data result of the configured data query.

2 Space designated to configure the data query objects.

3 Data query objects that you can configure:

● Input Data Filters

● Group By Processor

● Output Fields

NOTE Changes made to the data query in the editor may not manifest themselves within the component
template unless you edit the component's JSON definition as well.

Input Data Filters


Configure data filters that apply to the raw values within the whole Output Data Table:

1. Click Edit to open the Input Data Filter window.

2. Click ADD NEW CONDITION to add a filtering condition. Configure the condition by selecting the desired
condition field. The available condition fields correspond to the data model (Messenger, Billing, or Custom
Data Source) your component template uses.
6 Insights | 672
6.5 Using Insights

EXAMPLE
A filter that forces the whole Output Data Table to only display transactions that occurred before
February 13th.

3. Click OK to confirm the data filters.

Group By Processor
Modify the data accessed through the Query Engine by merging them into groups based on identical values.

EXAMPLE
Instead of accessing all occurred transactions separately, you can group them based on the day they oc-
curred.

NOTE You can only implement one grouping mechanism per data query.

Group By Configuration

1. Click Edit to open the Group By Field window.

2. Configure the Group By properties:

Output field Name the output field using any string.

The output field configured here corresponds to the asDataProperty field in the component's JSON
configuration.

Input field A data field that groups the data. The available input fields correspond to the data model
(Messenger, Billing or Custom Data Source) your component template uses.

Grouping type The available grouping types include:

● Day – Groups data based on the day of occurrence.

Applicable to date-time fields only.

● Month and year – Groups data based on the month and year of occurrence.
6 Insights | 673
6.5 Using Insights

Applicable to date-time fields only.

● Match – Groups data based on the values they share.

Applied automatically to any field that is not a date-time field. This excludes Boolean, which
cannot be used for grouping, or fields representing a time period, i.e. those whose format is defined
to "format": "milliseconds" (see also Further Data Field Specifications in the JSON Definitions
of Custom Data Source section).

3. Click OK to confirm the configuration.

Output Fields
Access fields in your data query. This only applies to record counting fields. Other field types are read-only.

1. Click Add to open the Add Record Counting Field window.

2. Configure the Output Field properties:

Output field name Name the output field. The name can consist of these characters: a-z, A-Z, 0-9, -, _.
The name length is limited to 50 characters.

The output field configured here corresponds to the asDataProperty field in the component's JSON
configuration.

Data source Select the data source whose records you wish to count.

The available options correspond to the data model (Messenger, Billing or Custom Data Source) your
component template uses.

ADD NEW CONDITION Configure data filters that apply to the currently defined data field.

The available condition fields correspond to the data model (Messenger or Billing) your component
template uses.

EXAMPLE
A filter that forces the currently defined data filed to only display transactions that occurred
before February 13th.

3. Click OK to add the new field to your data query.

To delete a record counting field, click Delete within the field you wish to delete:
6 Insights | 674
6.5 Using Insights

JSON Editor
Provides a simple text editor for editing template JSON definitions.

6.5.3.4 Update
To update an already uploaded component template:

1. Select the template you wish to update and click Download to download the corresponding JSON
file.

2. Use the Preparing Dashboard Component Templates section to make your adjustments to the downloaded
JSON file.

3. Upload the adjusted JSON file back into Insights.


6 Insights | 675
6.5 Using Insights

4. Verify that the update took place by looking at the corresponding record inside the Updated column.

5. Verify that you adjusted the updated template correctly in its preview.

NOTE Changes made to the template do not manifest themselves automatically in dashboards that use
it. You must create a new dashboard using the updated template.

6.5.3.5 Template Occurrences


A component template can be used by many Quadient Cloud objects:

● Insights – Dashboards

● Customer Journey Map – Programs, Global maps, Touch points

To get a list of all the objects that use a component template:

1. Select the template whose list of objects you wish to get.

2. Click Occurrences.

3. Study the opened list.

6.5.3.6 Delete
To delete a component template, select one or more templates you wish to delete and click Delete.

If one or more component templates are used in an Quadient Cloud object (e.g. Insights Dashboard or Customer
Journey Map program), you are required to confirm your choice by the Delete Templates pop-up window.
6 Insights | 676
6.5 Using Insights

TIP To find out which Quadient Cloud objects use the template you are deleting, go to the Template
Occurrences section.

6.5.4 Data Storage


This section lists all the data uploaded into each widget using an API key. It helps you check that all your data
were correctly uploaded.

Data Storage Tools

Download Downloads the selected data.

Delete Deletes the selected data.


6 Insights | 677
6.5 Using Insights

Downloading Data
You can download and check the data fields uploaded to each widget:

1. Select the data field you wish to download to activate the data management tools.

2. Click Download.

Deleting Data
You can delete a specific data field which is immediately projected inside the dashboard widget that contained
the data.

To do so:

1. Click the data field you wish to delete to activate the data management tools.

2. Click Delete.

TIP You can find sample data to test your dashboards in our starter kits.

6.5.5 Custom Data Sources


Store and manage custom data sources.

A custom data source is a JSON definition that declares a data structure that Insights should expect to be able
to process data from another software using our Data Query Engine.
6 Insights | 678
6.5 Using Insights

Custom Data Sources Tools

Upload Uploads a custom data source.

Download Downloads a selected custom data source.

Delete Deletes selected custom data sources.

6.5.6 API Keys


Creates API keys which are used as authenticators for uploading push data into Insights. Created API keys are
copied and pasted into the JSON definitions of push data (both Queryable and Raw).

API Key Tools

Add Adds a new API key.

Edit Edits the selected API key.

Delete Deletes the selected API key.

Adding a New API Key


1. Click the Add.

2. Describe the API key so that you can recognize it when there are multiple API keys created and click
CREATE.

Editing an API Key


To edit the description of an already created API key:

1. In the list of created API keys, click the one whose description you wish to edit to activate the API key
management tools.

2. Click Edit.

3. Edit the description and click SAVE.

Deleting an API Key


To delete an API Key:

1. In the list of created API keys, click the one you wish to delete to activate the API key management tools.

2. Click Delete.
6 Insights | 679
6.5 Using Insights

6.5.7 Download Section


Download Section allows users with the Insights Application Administrator role to download resources (e.g.
the latest versions of our starter kits). The resources are made available for download by the cloud administrator
or supporter.

To download a file, click Download and save the file in your computer file system.

Insights Starter Kits


Client_Billing_<version>.zip Contains Query Engine based component templates that display data related
to Quadient Cloud credit transactions.

Common_<version>.zip Contains various examples of component templates.

Customer_Journey_Map_<version>.zip Contains component templates that display data related to Customer


Journey Map.

SPD_From_Excel_<version>.zip Contains an Excel-to-JSON transformation WFD file, sample Excel files, and
documentation for changing data rapidly when demonstrating the capabilities of Insights components.

Interactive_and_ICM_<version>.zip Contains component templates that display data related to Inspire Inter-
active and a WFD file that extracts and uploads the necessary data.

Messenger_<version>.zip Contains component templates (both standard and Query Engine based) that display
data related to Inspire Messenger.

Production_Server_<version>.zip Contains Query Engine based component templates that display data related
to Inspire Production Server and the necessary Custom Data Source.

Service_Provider_Dashboard_<version>.zip Contains a sample production solution (component templates,


data, Inspire Designer and Automation components, and documentation) to help you easily create your
dashboards.

NOTE The version of each starter kit corresponds to a released version of Insights and tells you when
the given kit was last updated.

6.5.8 Frequently Used Features


Learn about the features used frequently throughout the Insights interface in these sections:

Content Sorting

Content Filtering

6.5.8.1 Content Sorting


Most of the Insights user interface contains tables whose contents you can sort in alphanumeric order:

1. Choose a column based on which the contents are sorted.


6 Insights | 680
6.5 Using Insights

NOTE By default the table is sorted based on the column whose name has either the up arrow
(descending order) or down arrow (ascending order) icon next to it.

2. Hover over the name of the chosen column to display the sort icon.

3. Click an arrow icon once to activate descending sorting. Click it again to activate ascending sorting.

6.5.8.2 Content Filtering


Most of the Insights user interface contains tables whose contents you can filter using any text string:

1. Locate the filter text box above the content tables.

2. In the filter text box, type any alphanumeric string. The table then displays only the content in which the
text string occurs.
7 Messenger

7.1 Application Overview


7.2 Using Messenger
7.3 API Services
7.4 Solution Examples
7.5 Integration with Insights
7 Messenger | 682
7.1 Application Overview

7.1 Application Overview

Inspire Messenger schedules and sends personalized messages from Inspire Designer. Users can track delivery
status, manage the messages (before and after they have been sent), and view detailed statistics about delivery
and response in real time. See An Overview of Quadient Cloud for a introduction to the components and
functionality.

Inspire Designer
Batch

Quadient Cloud Emails


Service provider
SMS Messages
Batch
Messenger

Notifications Recipients
Notification service

The above schema shows components used for the Messenger solution:

● Inspire Designer – On-premise application where batches are designed and subsequently sent to
Quadient Cloud for processing.

● Service provider – 3rd party provider (e.g. MailJet, Tata SMS) which deliver processed emails and SMS
messages to recipients.

● Notification service – Notifications are configured in Inspire Designer's Digital Communications Data
module and Digital Services to be sent to end-clients' devices via 3rd party push notification servers.

● API services – The communication with Messenger is established using a variety of API services.

+ + +

Emails SMS Messages Documents Notifications

Messenger can send:

● Emails

● SMS messages

● Documents

● Notifications
7 Messenger | 683
7.2 Using Messenger

7.2 Using Messenger


The Messenger application has the following main sections:

● Overview

● Email

● SMS

● Download Section

● Settings

● Unsubscribe Page

NOTE After your Quadient Cloud account was created, the Messenger Application Administrator user
role was assigned to you. For full access to the application, the Batch management permission must be
enabled. Additionally, your tenants cannot access the Download Section.

For more information on the assignment of user roles, see the Users and Roles section in Administration
documentation.

7.2.1 Overview
The default Overview dashboard shows the status and other delivery information about all messages. It consists
of the Emails Overview and the SMS Overview. You can also display the amount and percentage charts of emails
and SMS messages (sent, delivered, opened, etc.) within a certain period by using the From and To date pickers.

You can assemble a custom dashboard in Insights (to learn how to create an Insights dashboard, see the Insights
documentation).

Changing the Dashboard


To change the dashboard:

1. Click CHOOSE DASHBOARD in the top-right corner. The Choose Dashboard dialog opens.
7 Messenger | 684
7.2 Using Messenger

2. Select the new dashboard and click CHOOSE to confirm.

3. Optionally, click RESET TO DEFAULT to revert to the default dashboard

For more information, see the Integration with Insights section in the Customer Journey Map documentation.

IMPORTANT The CHOOSE DASHBOARD option is available only if Insights is enabled, and your
user role has the Dashboard management permission (turned on by default for the Insights Application
Administrator and Insights Dashboards Manager roles). User roles and permissions are defined in the
Administration section of Quadient Cloud.

NOTE This feature is not available to your tenants, they can only view the default dashboard.

Emails Overview
7 Messenger | 685
7.2 Using Messenger

1 Emails

All Emails Emails from all active batches prepared to be sent to the service provider.

Sent Successfully sent from Messenger to the service provider.

In Progress Being processed and sent.

Failed Could not be sent from Messenger to the service provider.

TIP If your emails fail, check whether you have your email domain verified, and the email address
used as the "sender" is verified in Administration | Domain Verification section.

2 Delivered Emails

Unopened Have not been opened by the recipients yet.

Opened Were opened by the recipients.

Unsubscribed Users unsubscribed from receiving emails.

Marked as Spam Marked as spam by the recipients.

WARNING This feature functions only with some delivery servers and thus the data may not be al-
ways accurate.

IMPORTANT Actions of recipients of BCC emails are tracked and cannot be separated from the original
emails, e.g. a BCC recipient opening an email will be counted in Opened (in addition to the original email).

3 Bounce Rate Statistics

Bounce Rate Percentage of bounced emails. Bounced emails are returned by the recipients' mail servers, e.g.
their inbox is full or account is inactive.

Emails Bounced Number of bounced (returned) emails.

Bounce Threshold Maximum email bounce rate. This threshold is set by the Cloud administrator.

WARNING High bounce rates can negatively affect successful delivery of emails.
7 Messenger | 686
7.2 Using Messenger

SMS Overview

1 SMS

Sent Successfully sent to the service provider.

In Progress Being processed and sent.

Failed Could not be sent from Messenger to the service provider.

2 Delivered SMS

Delivered Successfully delivered to the recipients.

Undelivered Could not be delivered to the recipients by the service provider.

7.2.2 Emails and SMS Messages

Emails SMS Messages

In this section

Emails
SMS messages

See also

Email Throttling
URL Tracking
Batch Detail
CSV Report File

After you send the messages or schedule them for later sending, you will see the email batches in the Email
window (SMS batches in the SMS window) of Messenger. You can also see information about notifications and
documents, which you can send as a part of an email batch via Messenger.
7 Messenger | 687
7.2 Using Messenger

There are two types of batches:

Standard
Each item displayed under Active Batches, Waiting Batches, Expired Batches is sent as a batch of messages,
i.e. a set of emails (optionally containing Dynamic Communications, PDF, notifications) or SMS messages to cus-
tomers. Standard messages can be sent as one batch either manually from Messenger, immediately after the
batch is uploaded, or scheduled in Inspire Designer.

On-demand
On-demand batches contain fewer messages in a single batch making the overview easier to understand, e.g.
you need to send 10 simple emails to customers as soon as possible. The bach is displayed only in the separate
On-demand Batches tab as it is never scheduled and never expires. Check Single message mode in Designer's
Inspire Messenger Engine configuration to send a batch as on-demand.

IMPORTANT Before you start sending emails, check whether you have your email domain verified, and
the email address used as the "sender" is verified in Administration | Domain Verification section.

NOTE

● Each company can only have one on-demand batch. When you send another on-demand batch,
those messages are added to the first sent on-demand batch.

● Your tenants cannot view On-demand Batches.

7.2.2.1 Emails
Depending on the status and type of the batch, the information is available on the tabs:

● Active Batches

● Waiting Batches
7 Messenger | 688
7.2 Using Messenger

● Expired Batches

● On-demand Batches

IMPORTANT There is a maximum size of an email. Larger emails won't be sent.

● An email with attachments can be a maximum of 10MB in size.

● One attachment can be a maximum of 7MB of data in size.

Managing Batches
Depending on the status and type of the batch, these actions are available:

View Opens the Batch Detail window for the selected standard batch.

Scramble Email Addresses Hides email addresses of recipients in batch and CSV report details for the
selected batch.

This action is irreversible and available for batches in any state, except Expired.

NOTE In case the global option is enabled, the icon is disabled.

Download Report Downloads a CSV file for the selected batch.

This is available only for Sent and Expired batches.

Schedule Schedules sending date and time of the selected batch.

This is available only for Waiting batches. When the batches are scheduled for a certain date and time
in Inspire Designer, you can still reschedule them with this option.

Set Expiration Changes the expiration time.

The default expiration time is three months after the batch was started.

Start Starts sending the selected batch immediately.

This is available only for Waiting batches. The maximum cost for the batch in Quadient Cloud Credits is
displayed. Price can vary according to your pricing policy and the number of BCC emails in the batch. For
more information, contact Quadient support.

Abort Aborts sending of the selected batch.

This is available only for email in active batches.

WARNING An aborted batch cannot be resumed.

Delete Deletes the selected batch.

This is available for batches in any state, except on-demand and Customer Preference Management
batches.
7 Messenger | 689
7.2 Using Messenger

TIP You can also right-click a batch to access the actions via the context menu.

You can also filter batches using the:

● From and To date fields.

● Customer name, Batch ID and/or Batch name.

NOTE For your tenants:

● Only the View action is available.

● They can only view the batches that were sent under their customer name.

● They cannot filter batches using Customer name.

Active Batches
7 Messenger | 690
7.2 Using Messenger

This tab is divided into columns:

ID Unique batch ID.

Batch Name Name of the batch specified in Designer's Digital Communications Data module .

State State of the batch:

Successful The majority of emails in this batch was successfully sent from Messenger to
the service provider.

Bounced >=x% The bounce rate is higher than the set threshold.

All failed The delivery of all emails in this batch failed.

Aborted by a user The batch was aborted by a user.

Aborting Batch is aborting. If you had used the email throttling, the batch will be aborted
before the next wave is sent.

Sending Messages are being sent to the service provider.

Batch / Delivered / Opened Number of sent, delivered, and opened messages in the batch.

Price Estimated price of the whole batch.

NOTE Your tenants cannot view information about the price.

Started Date and time sending of the batch started.

Active Batch Details


To see more details, click the related expand icon.
7 Messenger | 691
7.2 Using Messenger

1 Batch Info

Customer Customer's name specified in Designer's Digital Communications Data module . Your tenants can
view only batches that are sent using this name.

Price The final cost of the batch in Quadient Cloud Credits.

Custom tracking URL Custom URL used for tracking, e.g. customer's clicks in emails.

NOTE Your tenants cannot view the Batch Info.

2 Statistics

Data about emails/SMS messages in a batch, i.e. number of emails, successfully sent and delivered emails, emails
opened by users, unique clicks and unsubscribed users who clicked the unsubscribe link. You can find more detailed
information in the Batch Detail for each message in the batch, or in the CSV file that you can download.

Items in batch Number of messages in a batch.

Sent to provider Successfully sent from Messenger to the external provider.

Bounced Bounced (returned) emails.

Failed Failed to send from Messenger to the service provider.

Marked as Spam Marked as spam by the recipients in their inbox.


7 Messenger | 692
7.2 Using Messenger

WARNING This feature functions only with some delivery servers and thus the data may not be al-
ways accurate.

Sent by provider Successfully sent by the external provider to the recipients.

Opened by users Opened by the recipients.

Unique clicks Unique link clicks in the emails.

Unsubscribed users Users unsubscribed from receiving emails.

Items with BCC Number of emails that will also be forwarded as a secret copy. You must configure the senders
and recipients of secret copies in Settings first.

3 Batch Composition

Emails or notification + document The batch content: only emails, notifications, PDF/Dynamic Communications
documents, or various combinations of the three.

4 Throttled Delivery

Interval (minutes) Interval in which groups of emails are sent.

Limit Number of emails sent in each group for every wave.

NOTE For more information, see the Email Throttling section.

5 Custom Fields

Custom Fields are used with Omnichannel Coordination as metadata or additional information relating to one
or more batches. They are defined in Settings and their values are specified in Inspire Designer's Digital Commu-
nications Data module .

6 History

Details about the history of the batch, e.g. when the Batch uploaded, its Scheduled expiration, etc.

Waiting Batches
7 Messenger | 693
7.2 Using Messenger

This tab is divided into columns:

ID Unique batch ID.

Batch Name Name of the batch specified in Designer's Digital Communications Data module .

State State of the batch:

Waiting Waiting/scheduled to be sent.

Processed Successfully processed.

Processing Being processed.

Scheduled for Processing Waiting to be processed.

Uploaded Successfully uploaded.

Uploading Being uploaded from Inspire Designer.

Batch Number of messages in the batch.

Scheduled Date and time the batch is scheduled to be sent.

Waiting Batch Details


To see more details, click the related expand icon. The details are same as for Active Batches except the Es-
timated price (before the batch is started, the cost may be recalculated depending on the current state of the
pricing policy).

Expired Batches

This tab is divided into columns:

ID Unique batch ID.

Batch Name Name of the batch specified in Designer's Digital Communications Data module .

Batch / Delivered / Opened Number of sent, delivered and opened messages in the batch.

Price Final price of the whole batch.

Expired Date and time the batch expired/is scheduled to expire.


7 Messenger | 694
7.2 Using Messenger

Expired Batch Details


To see more details, click the related expand icon. The details are same as for Active Batches.

On-demand Batches

This tab is divided into columns:

ID Unique batch ID.

Batch / Delivered / Opened Number of sent, delivered and opened messages in the batch.

Last Update Date and time the batch info was updated.

On-Demand Batch Details


To see more details, click the related expand icon. The details are same as for Active Batches, except the
Price and Throttled Delivery.

7.2.2.2 SMS Messages


Depending on the status and type of the batch, the information is available on the tabs:
7 Messenger | 695
7.2 Using Messenger

● Active Batches

● Waiting Batches

● Expired Batches

● On-demand Batches

Managing Batches
Depending on the status and type of the batch, the same actions and options are available as for email batches,
except Abort.

Active Batches

This tab is divided into columns:

ID Unique batch ID.

Batch Name Name of the batch specified in Designer's Digital Communications Data module .

State State of the batch:


7 Messenger | 696
7.2 Using Messenger

Completed Finished sending.

Sending Being sent.

Batch / Delivered Number of sent and delivered messages in the batch.

Price Estimated price of the whole batch.

Started Date and time sending of the batch started.

Active Batch Details


To see the basic details, click the related expand icon.

1 Batch Info

Customer Customer's name specified in Designer's Digital Communications Data module . Your tenants can
view only batches that are sent using this name.

Price Price of the batch in Quadient Cloud Credits.

Custom tracking URL Custom URL used for tracking e.g. customer's clicks in SMS messages.

2 Statistics

SMS in batch Number of SMS messages in the batch.

Sent by Messenger Successfully sent from Messenger to the external provider.

Delivered by provider Successfully delivered by the external provider.

Unique clicks Unique link clicks in the SMS messages.

Unsubscribed users Users unsubscribed from receiving SMS messages.

3 Custom Fields

Custom Fields are used with Omnichannel Coordination as metadata or additional information relating to one
or more batches. They are defined in Settings and their values are specified in Designer's Digital Communications
Data module.
7 Messenger | 697
7.2 Using Messenger

4 History

Batch uploaded Date and time the batch was uploaded.

Scheduled expiration Date and time the batch is scheduled to expire.

Waiting Batches

This tab is divided into columns:

ID Unique batch ID.

Batch Name Name of the batch specified in Designer's Digital Communications Data module .

State State of the batch:

Waiting Waiting/scheduled to be sent.

Processed Successfully processed.

Processing Being processed.

Scheduled for Processing Waiting to be processed.

Uploaded Successfully uploaded.

Uploading Being uploaded from Inspire Designer.

Batch Number of messages in the batch.

Scheduled Date and time the batch is scheduled to be sent.

Waiting Batch Details


To see more details, click the related expand icon. The details are same as for Active Batches except the Es-
timated price.
7 Messenger | 698
7.2 Using Messenger

Expired Batches

This tab is divided into columns:

ID Unique batch ID.

Batch Name Name of the batch specified in Designer's Digital Communications Data module .

Price Final price of the whole batch.

Expired Date and time the batch expired/is scheduled to expire.

Expired Batch Details


To see more details, click the related expand icon.

1 Statistics

Sent Successfully sent from Messenger to the external provider.

Delivered Successfully delivered by the external provider

Clicks Unique link clicks in the SMS messages.

2 Expiration

Date and time the batch expired.


7 Messenger | 699
7.2 Using Messenger

On-demand Batches

This tab is divided into columns:

ID Unique batch ID.

Batch / Delivered Number of sent and delivered messages in the batch.

Last Update Date and time the batch info was updated.

On-demand Batch Details


To see more details, click the related expand icon. The details are same as for Active Batches, except the
Batch info.

7.2.2.3 Email Throttling


When you send a batch with a large number of emails, you can separate them into groups and send those groups
in waves, e.g. 10 thousand emails every 2 hours. This is done by enabling the Enable Throttled Delivery option
in the Start Batch dialog when you start a waiting batch.
7 Messenger | 700
7.2 Using Messenger

Enable throttling and specify the following:

Interval Time interval in which the separate waves of emails will be sent. You can also specify the interval by
selecting: Days, Hours, Minutes.

Limit Number of emails you want to send in each group (wave).

CAUTION To maintain Quadient Cloud's optimal performance, the amount of emails specified in
Limit should be rounded up to a value divisible by 6 (e.g. if one wave is desired to be 9,055 emails, it
is round up to 9,060). This feature may change in the future.

TIP You can also use the email throttled delivery in Inspire Designer when configuring the Inspire Mes-
senger Engine . These email batches will have Enable Throttled Delivery already enabled and configured
when you upload them to Messenger.

7.2.2.4 URL Tracking


Messenger tracks recipients' clicks on links in received emails, with statistics being displayed in the batch detail.

By default, Messenger tracks all URL links inserted into Inspire Designer's Layout module via the Insert | Insert
URL Target menu option.
7 Messenger | 701
7.2 Using Messenger

You can also:

● Track Links via URL Aliases

● Track Links via Custom Domains

● Disable Link Tracking

IMPORTANT Actions of recipients of BCC emails are tracked and cannot be separated from the original
emails, e.g. a BCC recipient's click on a link will be counted in the original email's CSV report.

NOTE Messenger tracks unsubscribe and landing page URL links as well.

Tracking Links via URL Aliases


By default, links are tracked and displayed as the exact URL address in Batch Detail | URL Tracking, e.g.
http://www.quadient.com.

To track them using aliases, add ##alias at the end of the URL, e.g. http://www.quadient.com##Quadient. Such
aliases are displayed as the URL value under URL Tracking. All URL addresses (links) clicks, with the same alias
in one email, will be grouped under the same URL value.

EXAMPLE These links with Quadient and Test aliases will be displayed under URL Tracking as:

1 Quadient

2 Test

http://www.quadient.com##Quadient

https://university.quadient.com##Quadient

http://www.test.com##Test
7 Messenger | 702
7.2 Using Messenger

Tracking Links via Custom Domains


By default, tracking URL links are automatically generated by Messenger, e.g. http://companyname.quadi→
entcloud.eu/api/query/Messenger/TrackerQuery?Uri=string. When recipients click such links, they are redirected
to the desired URL address. You can use your own domain for tracked links, to do so:

1. Contact Quadient Cloud support with a URL tracking request with a custom domain.

2. Provide your domain service provider with the given information. Your domain needs to be linked to the
Quadient Cloud IP address.

Tracked URL links with a custom domain then look e.g. like this: http://yourdomain.com/api/query/Messen→
ger/TrackerQuery?Uri=string. The custom domain is also displayed as the Custom tracking URL value in Batch
Info.

IMPORTANT For URL tracking with HTTPS custom domains, you must supply your SSL certificate to
Quadient Cloud support.
7 Messenger | 703
7.2 Using Messenger

TIP You can specify both URL tracking with aliases and custom domains in Inspire Designer .

Disabling Link Tracking


If you don't want to track URL link recipients' clicks in emails, insert two # symbols with no alias at the end of a
URL address. E.g. http://www.quadient.com##. Such links will not be tracked.

EXAMPLE
http://www.quadient.comt##

7.2.2.5 Batch Detail


Displays statistics and charts about:

● Emails

● SMS messages

To see the advanced details, select a batch and click View.

NOTE The Batch Detail window has the following restrictions:

● BCC emails are not included in the statistics.

● It is not available for Expired Batches.

Emails
Email batch detail has the following tabs:

● Statistics

● Data

Statistics Tab
Graphical statistics representation:
7 Messenger | 704
7.2 Using Messenger

1 Messenger + Error Statistics

Opened Opened by recipients.

Sent by Provider Successfully sent by external providers to the recipients.

Sent to Provider Successfully sent from Messenger to external providers.

Unsubscribed Unsubscribed from receiving emails (recipients click the unsubscribe link).

Marked as Spam Marked as spam by the recipients in their inbox.

WARNING This feature functions only with some delivery servers and thus the data may not be al-
ways accurate.

Bounced Returned (bounced) from the recipients' email server.

Failed Failed to send.


7 Messenger | 705
7.2 Using Messenger

2 Used Technology

Operating Systems Operating systems used to open the emails.

Used Browsers Browsers used to open the emails.

3 Basic Info

Customer Customer name used for further filtering.

Your tenants can view only batches that are sent using this name.

Price Price of the batch in Quadient Cloud Credits.

Uploaded Date and time the batch was uploaded, and the scheduled expiration.

Expire Date and time the batch is scheduled to expire.

NOTE Your tenants cannot view Customer and Price information.

Data Tab
Details about particular emails:

This tab is divided into columns:

ID Unique ID.

Type Type of the sent item:

Emails

Notifications

Emails or Notification

Dynamic Communications

Document Document content:

indicates that a batch contains a document operation (Create/Update/Delete) specified in Inspire


Designer's Digital Communications Data module .

Sender Sender's email address.

Recipient Recipient's email address.


7 Messenger | 706
7.2 Using Messenger

NOTE In cases where the Scramble Email Addresses option has been used, the recipient's inform-
ation is not displayed.

State Current email state.

Delivered indicates the email has been successfully delivered.

Bounced indicates the email has bounced (returned) from the recipient's email server.

Opened indicates the recipient has opened the email.

Unsubscribed indicates the recipient has unsubscribed from receiving emails.

Marked as Spam indicates the recipient has marked the email as spam in their inbox.

In-Depth Details
To see more details, click the related expand icon. These details depend on the batch content and may vary.

1 Message Info

Message ID Unique message ID.

Type Type of the sent item.

Contains document Yes/No – The email contains/doesn't contain a document operation (Create/Update/Delete)
specified in Inspire Designer's Digital Communications Data module .

Client operating system Operating system the recipient used to open the email.

Client browser Internet browser the recipient used to open the email.
7 Messenger | 707
7.2 Using Messenger

2 Delivery Info

Service provider External providers Messenger uses for sending batches, e.g. MailJet.

Message from provider Information message from the service provider. If you need help understanding the
message, contact the service provider support.

Sent by provider Date and time the email was sent by the external provider to the recipient.

NOTE For more information about external providers, see the Domain Verification section in the Admin-
istration documentation.

3 URL Tracking

URL URL address inserted in Inspire Designer.

TIP You can track particular link clicks made by recipients. For more information on how to insert
tracked URL links see the URL Tracking section.

Time and IP address Date and time the URL address was opened / device IP address from which the URL address
was opened.

4 User Behavior

User action Recipient's action, e.g. Unsubscribed when the user has clicked the unsubscribe link.

Time and IP address Date and time the recipient made the action / device IP address from which the user made
the action.

5 Statistics

View count Total number of views, i.e. how many times the recipient opened the email.

First/Last view Date and time the recipient opened the email for the first/last time.

SMS Messages
SMS message batch detail has the following tabs:

● Statistics

● Data

Statistics Tab
Graphical statistics representation:
7 Messenger | 708
7.2 Using Messenger

1 Basic Info

Customer Customer name used for further filtering. Your tenants can only view batches that are sent using this
name.

Price Price of the batch in Quadient Cloud Credits.

Uploaded Date and time the batch was uploaded, and the scheduled expiration.

Expire Date and time the batch is scheduled to expire.

NOTE Your tenants cannot view Customer and Price information.

2 Messenger Statistics

Sent to Provider Successfully sent from Messenger to external providers.

Failed Failed to send.

Opened Opened by recipients.

Unsubscribed Users unsubscribed from receiving SMS messages.

3 Batch Content

SMS Statistics which show the number of Sent, In Progress or Failed SMS messages.

Data Tab
Details about particular SMS messages:
7 Messenger | 709
7.2 Using Messenger

This tab is divided into columns:

ID Unique message ID.

Recipient Recipient's phone number in the <+> + <country code> + <phone number> format, e.g. +420123456789.

State Current SMS message state.

NOTE An invalid state occurs in case of transmission channel discrepancies. For example, if a message
within the batch has a country code that the transmission channel is not configured to send messages
to (if you change the settings for, you must then send SMS message separately or create a new batch.

Unsubscribed Yes – Recipient has unsubscribed from receiving SMS messages.

Unsubscribed Reason Information provided by the recipient when unsubscribing via a reply to the received
SMS message, e.g. I have been receiving too many SMS messages.

Delivered Yes – SMS message has been successfully delivered.

Delivery Description Device the message was delivered to / delivery error description.

In-Depth Details
To see more details, click the related expand icon. These details depend on the batch content and may vary.

1 Message Info

Message ID Unique message ID.

Type Type of the sent item: Sms.


7 Messenger | 710
7.2 Using Messenger

2 URL Tracking

URL URL address inserted in Inspire Designer.

TIP You can track particular link clicks made by recipients. For more information on how to insert
URL links, see the section on Insert menu (Layout module) in the Inspire Designer User Manual.

Time and Location Date and time the URL address was opened / device IP address from which the URL address
was opened.

7.2.2.6 CSV Report File


If you need to process the batch detail information automatically, e.g. reuse it as data for further message creation
in Inspire Designer, click Download Report to download one of the following report files. The content of the
file is the same as the information in the Batch Detail window and it differs slightly for emails and SMS messages.

● Email report

● SMS message report

For Emails
The values are in this order:

MessageType;MessageId;ToMail;EmailState;Delivered;ProviderAndStatusMessage;FirstTimeDateOpen;Last→
TimeDateOpen;TimesOpen;Unsubscribed;Connector;CustomField;LandingPageUrl;DocumentState;Document→
Operation;DocumentId;NotificationState;ClientId;FromMail;BrowserType;OsType;SentAt;Marke→
dAsSpam;Bounce;DeliveryNotificationTime;OpenedByNotification
TrackUrl;TrackUrlDate;TrackUrlIp
BCCAddress;BCCDelivered

NOTE The order of the values is only valid when using recommended options. The CSV report contains
information from emails, documents and notifications. For more information, see the Digital Communications
Data module description.

1. MessageType – Type of a message: Message.

2. MessageId – Unique identifier generated automatically by Messenger for each email.

3. ToMail – Email address of the recipient.

NOTE In cases where the Scramble Email Addresses option has been used, the value displays
as <Deleted>.

4. EmailState – State of the email (same as for documents and notifications):

● Empty string
7 Messenger | 711
7.2 Using Messenger

NOTE A message receives an Empty string state in cases where it does not contain the
particular record type in Inspire Designer.

● WaitingForSend

● SendFailed

● Sent

● Invalid

5. Delivered – Boolean number: 1 is for delivered emails, 0 for undelivered emails.

6. ProviderAndStatusMessage – Name of the email provider and a status message, e.g. MailJetV1:Sent.

7. FirstTimeDateOpen – First time a recipient opened the email.

8. LastTimeDateOpen – Last time a recipient opened the email.

9. TimesOpen – Total number of times a recipient opened the email.

10. Unsubscribed – Boolean number: 1 is for unsubscribed, 0 for still subscribed.

11. Connector – Email service (external provider) used to send the message:

● MailJet – Default email service provider used when you verify your domain in the Domain Verification .

● Devnull – Email provider used in case MailJet is disabled.

● Smtp – Simple Mail Transfer Protocol.

● SparkPost – Alternative email provider.

12. CustomField – Custom identifier you can add to each message to link a record in Inspire Designer's Digital
Communications Data module with your report.

NOTE This field's name, in the Digital Communications Data module, is Message ID.

13. LandingPageURL – URL address to a landing page used in the sent email. For more information on how to
use landing pages, see the complete Creating Batches in Inspire Designer example.

14. DocumentState – State of the document (same as for emails and notifications).

15. DocumentOperation– Type of operation the sending of the batch triggered in Digital Services:

● Create – Created a new document.

● Update – Updated a document.

● Delete – Deleted a document.

For more information, see the Digital Communications Data module description.

16. DocumentId – Unique number generated automatically for each document.


7 Messenger | 712
7.2 Using Messenger

17. NotificationState – State of the notification (same as for emails and documents).

18. ClientId – Unique recipient (client) ID, e.g. G8SPzMhIhx1Ca7wxFb7E3108275.

19. FromMail – Sender's email address.

20. BrowserType – Browser the user used for opening the email.

21. OsType – Operating system the user used for opening the email.

22. SentAt – Date and time the message was sent by the service provider.

23. MarkedAsSpam – Boolean number: 1 is marked as spam, 0 not marked as spam.

24. Bounce – Information about the email bounce type:

● Unknown – Default value (did not bounce).

● Soft – Temporary issue, e.g. email server is not responding.

● Hard – Permanent issue, e.g. recipient email address does not exist.

● Block – Blocked by the provider, e.g. due to disallowed attachment types.

25. DeliveryNotificationTime – Date and time the notification was delivered.

26. OpenedByNotification – Boolean number: 1 is for being opened by a notification, 0 is for not being opened
by a notification.

27. TrackUrl – URL tracking address.

TrackURL from LandingPage may be listed several times relative to the number of recipient's clicks.

28. TrackUrlDate – Date and time of the user's URL visit.

29. TrackUrlIp – IP address of the URL visitor.

30. BCCAddress – Email address the blind carbon copy (BCC) was sent to.

31. BCCDelivered – Boolean number: 1 is for delivered BCC emails, 0 for undelivered BCC emails.

EXAMPLE A row containing email batch details.


Message;"1";"j.smith@test.com";"Sent";"1";"2016-01-05 06:54:18Z";2016-01-05
06:56:25Z";"3";"0";"Mailjet";"https://quadientcloud.eu/..."
TrackUrl;"LandingPage";"2019-05-06 09:10:25Z";"82.142.121.194"
BCC;"test@quadient.eu";"0"

Email Error Codes

MailJet
Error codes when using MailJet as the external provider:
7 Messenger | 713
7.2 Using Messenger

Recipient

● user unknown – Email address doesn't exist.

● mailbox inactive – Account is inactive, may not exist anymore.

● quota exceeded – Inbox is full / account is inactive.

● blacklisted – Recipient is blacklisted.

● spam reporter – Recipient reported previous messages as spam.

Domain

● invalid domain – Domain part of the address is not valid. Or the domain has expired.

● no mail host – Destination mail server doesn't exist.

● relay/access denied – Destination mail server is not responding.

● greylisted – Temporary issue due to possible unrecognised senders. Delivery will be re-attempted.

● typofix – Domain part of the recipient email address is not valid.

Content

● bad or empty template – Email template has no content and/or is not valid.

● error in template language – Email template contains a language error.

Spam

● sender blocked – Sender email address is blocked.

● content blocked – Email content is classified as spam and the email was rejected.

● policy issue – There is a policy issue, please contact the MailJet support.

System

● system issue – Temporary issue on MailJet's server side.

● protocol issue – Protocol issue on MailJet's server side. This should not happen, please contact the MailJet
support.

● connection issue – Connection issue on MailJet's server side. This should not happen, please contact the
MailJet support.

Mailjet

● preblocked – Email has been rejected recently (repeatedly). MailJet doesn't send it again to keep a better
bounce rate.

● duplicate in campaign – You used a duplicate campaign and sent more than one email to a single recip-
ient. Only the first email was sent.
7 Messenger | 714
7.2 Using Messenger

For SMS Messages


The values are in this order:

MessageType;MessageId;ToNumber;SmsState;Unsubscribe;UnsubscribeReason;Delivered;ProviderAndStatusMes→
sage;CustomField;RawStatusCode;SenderID;TrackUrl;TrackUrlDate;TrackUrlIp

1. MessageType – Type of the message: Message.

2. MessageID – Unique number generated automatically for each SMS message.

3. ToNumber – Recipient's phone number in the <+> + <country code> + <phone number> format, e.g.
+420123456789.

4. SmsState – State of the SMS message. Same as for emails.

5. Unsubscribed – Boolean number: 1 is for unsubscribed, 0 for still subscribed.

6. UnsubscribeReason – Information provided by the recipient when unsubscribing via a reply to the received
SMS message, e.g. Please, do not send me SMS again.

7. Delivered – Boolean number: 1 is for delivered, 0 for undelivered messages.

8. ProviderAndStatusMessage – Name of the SMS provider used to send the message and a status message,
e.g. Tata:Delivered to Mobile.

NOTE For more information on how to use external SMS providers, see the SMS Gateway de-
scription.

9. CustomField – Custom identifier you can add to each message to link a record in Inspire Designer's Digital
Communications Data module with your report.

NOTE This field's name, in the Digital Communications Data module, is Message ID.

10. RawStatusCode – Raw status code from the SMS provider, e.g. 11.

11. SenderID – Sender identifier with the highest available priority (FromName from Digital Communications
Data module module in Inspire Designer), or an alias from transmission channels (a local transmission
channel set by company administrator for particular company, or from a global transmission channel set
by the Cloud Administrator for all companies).

12. TrackUrl – URL tracking address.

13. TrackUrlDate – Date and time of the user's URL visit.

14. TrackUrlIp – IP address of the URL visitor.

EXAMPLE A row containing SMS message batch details.


Message;"1";"+420123456";"WaitingForSend";"0";;"1";"Tata:Delivered to mobile";;11
7 Messenger | 715
7.2 Using Messenger

7.2.3 Download Section


Provides sample script and WFD files designed in Inspire Designer that can be used for creating messages and/or
retrieving information from Messenger. You can download them and adjust them according to your needs. Their
usage is indicated in the description for each provided file. The files use Messenger APIs.

To download a sample file, select it, then click Download.

Available Files

● sampleDesign.wfd

● messengerSmsBatchReport.wfd

● messengerEmailBatchReport_Enhanced.wfd

● fetchCompanyBatches.wfd

● downloadMessengerCSVBatches.wfd

● downloadMessengerCSV.wfd

● deleteBatch.wfd

● retrieveDeltaData.wfd

● retrieveDeltaData.py

sampleDesign.wfd
Sample WFD file that creates personalized emails and SMS messages to be sent via Inspire Messenger.
7 Messenger | 716
7.2 Using Messenger

TIP For a detailed description of how to design email/SMS messages, see the Designing and Sending
Emails example.

This sample WFD contains 3 main layout modules with pre-defined designs:

Attachment
Sample document design used for PDF email attachments.
7 Messenger | 717
7.2 Using Messenger

Email
Sample document design used for email body content.
7 Messenger | 718
7.2 Using Messenger

SMS
Sample document design used for SMS messages.
7 Messenger | 719
7.2 Using Messenger

messengerSmsBatchReport.wfd / messengerEmailBatchReport_Enhanced.wfd
Creates a report for an email/SMS message batch (charts and statistic details about: which messages were sent,
delivered, and viewed, as well as when and who unsubscribed). Creating this report requires a CSV data file with
the batch information. The WFD file works almost the same for emails and SMS messages.

1. Open the messengerEmailBatchReport_Enhanced.wfd / messengerSmsBatchReport.wfd file using Inspire


Designer.

2. Open the Data Input module .


7 Messenger | 720
7.2 Using Messenger

3. Configure the module so that it refers to the CSV report file that you want to use to create a chart. The
configuration includes:
7 Messenger | 721
7.2 Using Messenger

Input file Path to the downloaded CSV report file.

TIP You can use the downloadMessengerCSV.wfd sample WFD file to download the CSV report
file.

4. Press the <F6> key to proof the workflow and preview the look of the chart.
7 Messenger | 722
7.2 Using Messenger

fetchCompanyBatches.wfd
Sample WFD file that lists all email/SMS message batches for a specific period.

1. Open the fetchCompanyBatches.wfd file using Inspire Designer.

2. Open the Param Input module .


7 Messenger | 723
7.2 Using Messenger

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the Messenger
batch you want to delete. The configuration includes:

email Email address you use to sign in to Quadient Cloud.

pass Password you use when signing in to Quadient Cloud.

companyName Company name you entered when signing up for Quadient Cloud.

type Types of batches you want to list: email/sms.

from The earliest date of batch upload (UTC), yyyy-MM-dd format.

to The latest date of batch upload (UTC), yyyy-MM-dd format.

instanceUrl URL address of the regional instance of Quadient Cloud you use, e.g. www.quadientcloud.eu.

4. Press the <F6> key to proof the workflow, which triggers the script in the Imposition Script module and
lists batches for the specified period from Quadient Cloud. The imposition script calls the List-
BatchesQueryByUploadTime API service.
7 Messenger | 724
7.2 Using Messenger

EXAMPLE Data proof listing 2 batches and their names and IDs:

TIP Alternatively, you can press the <F5> key and click Start, which produces a CSV file containing
a list of batches and their names and IDs.

downloadMessengerCSV.wfd
Sample WFD file that produces a CSV report file with details for a specific batch.

1. Open the downloadMessengerCSV.wfd file using Inspire Designer.

2. Open the Param Input module .

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the Messenger
batch for which you want to download a CSV report file. The configuration includes:
7 Messenger | 725
7.2 Using Messenger

email Registered email address you entered when signing up for Quadient Cloud.

pass Password you entered when signing up for Quadient Cloud.

batchId Unique batch ID.

companyName Company name you entered when signing up for Quadient Cloud.

instanceUrl URL address of the regional instance of Quadient Cloud you use (e.g. www.quadientcloud.eu).

4. Press the <F5> key and start the production, which triggers the script in the Imposition Script module
and produces a CSV report file for the specified batch in Quadient Cloud. The imposition script calls the
ReportQuery API service.

NOTE For a detailed description of the response returned values, see the CSV Report File section.

downloadMessengerCSVBatches.wfd
A combination of fetchCompanybatches.wfd and downloadMessengerCSV.wfd. It downloads a CSV report for each
of the fetched batches in a given time period.

1. Open the downloadMessengerCSVBatches.wfd file using Inspire Designer.

2. Open the Param Input module .


7 Messenger | 726
7.2 Using Messenger

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the Messenger
batch for which you want to download a CSV report file. The configuration includes:

email Email address you use to sign in to Quadient Cloud.

pass Password you use when signing in to Quadient Cloud.

companyName Company name you entered when signing up for Quadient Cloud.

batchId Unique batch ID.

companyName Company name you entered when signing up for Quadient Cloud.

type Types of batches you want to list: email or sms.


7 Messenger | 727
7.2 Using Messenger

from The earliest date of batch upload (UTC), in yyyy-MM-dd format.

to The latest date of batch upload (UTC), in yyyy-MM-dd format.

instanceUrl URL address of the regional instance of Quadient Cloud you use (e.g. www.quadientcloud.eu).

CSVBatchesOutputPath Output directory for the CSV files.

4. Press the <F5> key, and start the production which triggers the script in the Imposition Script module ,
lists batches for the specified period from Quadient Cloud, and produces a CSV report file for the specified
time frame. The imposition script calls the ReportQuery API service.

NOTE For a detailed description of the returned response values, see the CSV Report File section.

deleteBatch.wfd
Sample WFD file that deletes a specific batch.

1. Open the deleteBatch.wfd file using Inspire Designer.

2. Open the Param Input module .

3. Configure the module so it refers to the instance of Quadient Cloud that contains the Messenger batch
you want to delete. The configuration includes:
7 Messenger | 728
7.2 Using Messenger

email Registered email address you entered when signing up for Quadient Cloud.

pass Password you entered when signing up for Quadient Cloud.

batchId Unique batch ID.

companyName Company name you entered when signing up for Quadient Cloud.

instanceUrl URL address of the regional instance of Quadient Cloud you use (e.g. www.quadientcloud.eu).

4. Press the <F6> key to proof the workflow, which triggers the script in the Imposition Script module and
deletes the specified batch from Quadient Cloud. The imposition script calls the RemoveBatchById API
service.

retrieveDeltaData.wfd
Sample WFD file that executes and completes the delta query. It continues to monitor responses indefinitely unless
aborted by user.

1. Open the retrieveDeltaData.wfd file using Inspire Designer.

2. Open the Param Input module .


7 Messenger | 729
7.2 Using Messenger

3. Configure the module so that it refers to the instance of Quadient Cloud that contains the Messenger data
for which you want to execute the delta query. The configuration includes:

companyName Company name you entered when signing up for Quadient Cloud.

companyUrl URL address of your Quadient Cloud company.

maxCount The maximum number of records that should be returned in one iteration.

apiKey Secret password for authenticating your Cloud company.

4. Press the <F5> key and start the production, which triggers the script in the Imposition Script module
and executes the delta query. The imposition script calls the MultiRetrieveData, BatchNamesQuery, and
MessageCustomFieldsQuery API services.

NOTE For a detailed description of the response returned values, see the CSV report file section.
7 Messenger | 730
7.2 Using Messenger

TIP You can also use API services or the retrieveDeltaData.py python script to execute the delta query.

retrieveDeltaData.py
Sample python script that executes the delta query. It continues to monitor responses indefinitely unless aborted
by user.

To run the script, first you must set the correct parameters within it (see the comments identifiable by # in the
script). Once started, the script creates a session for the company user. Then it calls the MultiRetrieveData request
using correct Messenger parameters and retrieves the data for the delta query. The downloaded data is equivalent
to the data in the CSV report file (except the report file only contains the final state of the data).

The script calls the BatchNamesQuery and MessageCustomFieldsQuery requests using the response data from
the MultiRetrieveData request to acquire additional data and decompress the RLE values, i.e. using batch IDs
from the MultiRetrieveData response to acquire batch names and custom fields. The script calls the requests
cyclically until all data is processed (displayed via console).

The max_count parameter specifies the maximum number of records that should be returned in one iteration, e.g.
if the max_count value is 50 and there is 200 data items available, then the script will execute 4 iterations. The
loaded data is deleted in the following iterations until there are none left in the database. When no data remain
in the database, the script stops retrieving data and remains in standby until more data are available for processing.
Finally, the script then combines the data into a whole and renders the processed complete data.

NOTE You can use the time.sleep parameter to simulate slow data processing. This parameter forces
the data to be processed slowly and thus timeouts are requested.

#Version 2.12
from urllib.parse import urlencode
from urllib.request import Request, urlopen
from collections import defaultdict
from threading import Thread, Event
import json
import sys
import time

# params declaration
if len(sys.argv) >= 5:
company_url = sys.argv[1]
first_time_run = sys.argv[4]
node_id = sys.argv[5]
api_key = sys.argv[6]
max_count = sys.argv[7]
else:
company_url = 'http://mycompany.quadientcloud.eu' # company's URL address
first_time_run = True
node_id = 'node1' # unique identifier of a node
api_key = 'g3DOkCYxZ8AC8jVyawZQfIAJnwM7Ya/8wlFxL1s61Ryw'
max_count = 10

class Helper:
7 Messenger | 731
7.2 Using Messenger

def fetch_json_from_url(self, requrl, post_fields, last_publish_event_id=0):


request = Request(requrl)
req_data = json.dumps(post_fields)
req_data_bytes = req_data.encode('utf-8')
request.add_header('Content-Length', len(req_data_bytes))
request.add_header('Content-Type', 'application/json; charset=utf-8')

if (last_publish_event_id > 0):


request.add_header('lastpublishedeventid', last_publish_event_id)

response = urlopen(request, req_data_bytes)


resp = response.read()
return json.loads(resp.decode())

def batch_names_json_to_dict(self, json):


batch_names = defaultdict()
for item in json['items']:
batch_names[item['batchId']] = item['batchName']
return batch_names

def custom_field_json_to_dict(self, json):


custom_fields = defaultdict()
for item in json['items']:
if not item['batchId'] in custom_fields:
custom_fields[item['batchId']] = defaultdict()
if 'customField' in item.keys():
custom_fields[item['batchId']][item['messageId']] = item['customField']

return custom_fields

def read_custom_fields(self, batch_items):


custom_fieldsUrl = company_url + '/api/query/Messenger/MessageCustomFieldsQuery'
custom_fields_post_fields = {'ApiKey': api_key,
'MessageIdRle': []}
# RLE data for MessageCustomFieldsQuery parameter
for batch in batch_items.keys():
for messages in batch_items[batch]:
custom_fields_post_fields['MessageIdRle'].append(
{'BatchId': batch, 'FirstMessageId': messages.messageId, 'Count': mes→
sages.count})

custom_fields_json = helper.fetch_json_from_url(custom_fieldsUrl, custom_fields_post_fields)

return helper.custom_field_json_to_dict(custom_fields_json)

def read_batch_names(self, batch_items):


# reads batch names
batch_namesUrl = company_url + '/api/query/Messenger/BatchNamesQuery'
batch_names_post_fields = {
'ApiKey': api_key, 'BatchIds': []
}
# batchIds for BatchNamesQuery parameter
for batch in batch_items.keys():
batch_names_post_fields['BatchIds'].append(batch)
7 Messenger | 732
7.2 Using Messenger

return helper.batch_names_json_to_dict(
helper.fetch_json_from_url(batch_namesUrl, batch_names_post_fields))

def call_one_minute_timeout(self, processing_items, last_event_id):


timeout_url = company_url + '/api/publish/MobileBackend/MultiStoreReplyData'
timeout_post_fields = {
'CompanyName': company_name,
'ApiKey': api_key,
'NodeId': node_id
}
timeout_post_fields['Processing'] = [{'Id': '', 'Type': 'MSG', 'QueueStamps': pro→
cessing_items}]
timout_result = helper.fetch_json_from_url(timeout_url, timeout_post_fields,
last_event_id)
print('Timeout call')
return timout_result['eventId']

class ResultDeltaItem:
def __init__(self, batch_id, message_id, batchname, tracking_url, customfield, type, delta):
self.batch_id = batch_id
self.message_id = message_id
self.tracking_url = tracking_url
self.batch_name = batchname
self.custom_field = customfield
self.type = type
self.delta = delta

def __str__(self):
return "batch_id=%s batch_name=%s message_id=%s custom_field=%s tracking_url=%s %s: %s" %
(
self.batch_id, self.batch_name, self.message_id, self.custom_field, self.tracking_url,
self.type,
self.delta)

class MessageRle:
def __init__(self, message_id, count, track_url):
self.messageId = message_id
self.count = count
self.track_url = track_url

# if data processing is longer than 20 seconds, a 1 minute timeout is called


# timeout means that the data that is being currently processed aren't available for another node
to process
# if timeout expires and the data was not deleted, then the data will be available for another
node
class TimeoutCaller(Thread):
def __init__(self, event, helper, last_event_value, processing_items):
Thread.__init__(self)
self.helper = helper
self.processing_items = processing_items
7 Messenger | 733
7.2 Using Messenger

self.last_event_value = last_event_value
self.stopped = event

def run(self):
while not self.stopped.wait(20):
if len(self.processing_items) > 0:
helper.call_one_minute_timeout(self.processing_items, self.last_event_value)

company_name_start = company_url.find('//')
if company_name_start > 0:
company_name_start = company_name_start + 2
else:
company_name_start = 0
company_name_end = company_url.find('.')
company_name = company_url[company_name_start:company_name_end]

helper = Helper()

retrieve_data_url = company_url + '/api/longpoll/MobileBackend/MultiRetrieveData'


main_post_fields = {
'CompanyName': company_name,
'ApiKey': api_key,
'NodeId': node_id,
"MaxCount": max_count,
'done': [],
'processing': [],
'failed': []
}

if first_time_run:
main_post_fields['Channels'] = [{'Type': 'MSG'}]
first_time_run = False

last_processed_items_queue_stamps = []

lastEventId = 0
stopFlag = Event()
timeoutCaller = None

print('If there are no data in the database, the script will be in standby until data are added.')
while True:

batches = defaultdict(list)
delta_result_list = []
# "Done" items are items processed in the previous iteration and will be deleted in this iter→
ation
if len(last_processed_items_queue_stamps) > 0:
main_post_fields['Done'] = [{'Id': '', 'Type': 'MSG', 'QueueStamps': last_pro→
cessed_items_queue_stamps}]
last_processed_items_queue_stamps = []

if not timeoutCaller is None:


stopFlag.set()
7 Messenger | 734
7.2 Using Messenger

delta_data = helper.fetch_json_from_url(retrieve_data_url, main_post_fields, lastEventId)

try:
if 'eventId' in delta_data.keys():
lastEventId = delta_data['eventId']

if 'channels' in delta_data.keys():
if len(delta_data[
'channels']) > 0:
for data_rle in delta_data['channels'][0]['data']:
batches[data_rle['batchId']].append(MessageRle(data_rle['messageId'],
data_rle['count'],
data_rle['trackUrl']))
for delta in data_rle['deltaQueryValues']:
for i in range(0, data_rle['count']):
delta_result_list.append(
ResultDeltaItem(data_rle['batchId'], data_rle['messageId'] + i,
'',
data_rle['trackUrl'], '',
delta['deltaType'],
delta['deltaValue']))

except Exception as ex:


print('MultiRetrieveData error.')
print(ex)
break

print("Data loaded")
if len(delta_result_list) > 0:
try:
batch_names = helper.read_batch_names(batches)
custom_fields = helper.read_custom_fields(batches)
except IncompleteRead:
print("Incomplete read occured.")
continue

# items to be deleted in next iteration


if 'channels' in delta_data.keys() and len(delta_data['channels']) > 0:
for data_to_delete in delta_data['channels']:
if 'queueStamps' in data_to_delete.keys():
last_processed_items_queue_stamps.extend(data_to_delete['queueStamps'])

stopFlag = Event()
timeoutCaller = TimeoutCaller(stopFlag, helper, lastEventId, last_pro→
cessed_items_queue_stamps)
timeoutCaller.start()

# uncomment code below for a simulation of slow processing (it causes the processing to
be more than 20 seconds long and forces timeouts)
# time.sleep(30)
# for details see the TimeoutCaller class

# completes data by adding batch names and custom fields


7 Messenger | 735
7.2 Using Messenger

for delta in delta_result_list:


if delta.batch_id in batch_names.keys():
delta.batch_name = batch_names[delta.batch_id]
if delta.batch_id in custom_fields.keys() and delta.message_id in cus→
tom_fields[delta.batch_id].keys():
delta.custom_field = custom_fields[delta.batch_id][
delta.message_id]

for d in delta_result_list:
print(d)

else:
stopFlag.set()
break

7.2.4 Settings
In this section

Scramble Email Addresses


Bulk Limit
Batch Custom Fields
Extended Delivery Data API
BCC (Blind Carbon Copies)
Custom Domain Management

Here you can manage options that globally affect the Messenger application.

Use the ON / OFF switches to enable / disable options and click SAVE to confirm.
7 Messenger | 736
7.2 Using Messenger

Scramble Email Addresses


Hides email addresses of the recipients in batch details and the CSV report file.

To hide the email addresses of the recipients in a specific batch, go to the Email section.
7 Messenger | 737
7.2 Using Messenger

WARNING This action is irreversible and only available on the level of a whole batch. It is not possible
to select specific items inside of a batch.

NOTE In case this global setting is enabled, it is not possible to scramble individual batches.

Bulk Limit
Sets the number of emails processed by a single action. The bulk limit is the maximum number of emails processed
per batch (the default and lowest number is 500 emails, the highest possible number of emails is 5,000).

NOTE This option:

● Is not used with the Mailjet email provider.

● Is only available for user roles with the Messenger Application Administrator permission.

Batch Custom Fields


Creates custom fields which can be used with Omnichannel Coordination as metadata or additional information
relating to one or more batches. Their values can be specified in Inspire Designer's Digital Communications Data
module.

Click ADD NEW ITEM to define your custom fields (maximally 10).

Extended Delivery Data API


Updates and tracks state changes (the opening of emails, message delivery, URL tracking, etc.) for emails and
SMS batches via Delta Query.

IMPORTANT Contact Quadient Cloud support to fully enable this option.

BCC (Blind Carbon Copies)


Sends blind carbon copies (BCC) of emails to the specified email addresses. This functionality is only available
for Mailjet and SparkPost connectors.

Define the Sender value, and the Send secret copy to address. Click ADD NEW ITEM to create additional defin-
itions. If the defined sender matches an email in a specific batch (in Inspire Designer), the batch will be processed
and sent with the secret copy.

CAUTION Batch cost increases depending on the number of BCC emails that are sent. Each additional
BCC email costs the same amount of credits as a normal email according to your pricing policy.
7 Messenger | 738
7.2 Using Messenger

IMPORTANT BCC emails are applied only to batches that were processed by Inspire Designer after the
option was enabled.

Actions of recipients of BCC emails are tracked and cannot be separated from the original emails, i.e. a
BCC recipient's click on a link will be counted in the original email's CSV report etc.

NOTE Before you configure this option, the Sender email addresses must firstly be verified in Adminis-
tration | Domain Verification .

BCC emails cannot be applied to On-demand Batches

Custom Domain Management


Manages custom domains. To add and enable new domains, contact Quadient support.

Tracking domain Selects a custom domain used for tracking recipients' clicks on links in emails. If not specified,
the default Quadient Cloud tracking URL link will be used.

URL Shortener Custom short domain used in links processed by Messenger. If not specified, the default
Quadient Cloud shortener will be used.

7.2.5 Unsubscribe Page


You can upload your own customized unsubscribe page if you don't want to use the default Cloud one. Recipients
of your emails/SMS messages are redirected to this page when they click the Unsubscribe link.

You can create complex HTML unsubscribe pages using your developer tools or Dynamic Communications in
Inspire Designer. See the Unsubscribe Page Requirements.

Managing Unsubscribe Page Files

Upload Uploads a File or an Archive (the files are automatically extracted when you upload the
ZIP archive).

The path to the file is <companyname>.quadientcloud.eu/unsubscribe/<filename>.<extension>, e.g. ht-


tps://gfBank.quadientcloud.eu/unsubscribe/image.png.
7 Messenger | 739
7.2 Using Messenger

NOTE

● Each file must have a unique name. A new file with the same name and extension overrides
the original one.

● The maximum size of a single file is 5MB, and the maximum number of files a company can
add is 50.

● When you add a ZIP archive containing files and a file with the same name and extension
already exists, it overrides the original one.

● The maximum size of a ZIP archive is 15MB.

Delete Deletes the selected files.

IMPORTANT As soon as you delete the index.html file, the default Cloud unsubscribe page is
used.

Figure 7.1 Default Cloud Unsubscribe Page


7 Messenger | 740
7.3 API Services

Unsubscribe Page Requirements


● The main unsubscribe page file name must be index.html (case sensitive).

● You need to parse data from the unsubscribe page URL address and use it in the API call request. The
format is:

<companyname>.quadientcloud.eu/unsubscribe/#/messenger/unsubscribe/<BatchId>/<Mes→
sageId>/<Email>/<hash>

● You need to implement these API services in your unsubscribe page:

○ UnsubscribeInfo – To check if recipients are subscribed/unsubscribed.

○ UnsubscribeUser – To unsubscribe recipients.

7.3 API Services


This section describes APIs that provide remote access to essential actions on batches including:

● Authorization

● Retrieving CSRF Token

● Managing Batches

● Managing Extended Delivery Data (Delta Query)

● Managing Recipient Subscription

● Replacing Resources in Sent Emails

● Analyzing Response

NOTE In the examples below, there are <company> place holders, which should be replaced by the real
name of an existing Quadient Cloud account.

7.3.1 Authorization
The only authorization method is via Session-Id, which you will acquire by API method login.

Retrieve Session-Id
Retrieves a Session-Id you need for the authentication.

URI /api/publish/Users/Login

Format JSON
7 Messenger | 741
7.3 API Services

Method POST

Authentication None

Parameters
Use these parameters in the request body:

● email – Email address used for logging into Quadient Cloud.

● password – Password used for logging into Quadient Cloud.

EXAMPLE Request body:


{
"email": "j.smith@domain.com",
"password": "pwd"
}

Response body:
{
"eventId": 3377484,
"time": "/Date(1503407158903)/"
}

EXAMPLE Response header:


HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 148
Content-Type: application/json;charset=utf-8
Server: hidden
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST
Set-Cookie: Session-Id=268907ce-89fe-4175-bdad-7733cd980182; domain=.quadientcloud.eu; path=/;
secure; HttpOnly
Strict-Transport-Security: max-age=31536000; includeSubDomains
Date: Tue, 03 May 2016 08:57:42 GMT

TIP This command takes a JSON file with credentials and stores the response header into a text file:

curl https://<company>.quadientcloud.eu/api/publish/Users/Login -H "Content-Type: applica→


tion/json" -d "@login.json" -D "header.txt"
7 Messenger | 742
7.3 API Services

7.3.2 Retrieving CSRF Token


This token is used for Cross Site Request Forgery (CSRF) prevention. This step is optional for methods which do
not modify data.

Retrieve Token
Retrieves a CSRF token you need for the data modification.

URI /api/query/Session/SessionInfo

Format JSON

Method GET, POST

Authentication Session-Id, EventId

EXAMPLE Request header:

Key Value

Cookie Session-Id=268907ce-89fe-4175-bdad-7733cd98018

LastPublishedEventId 3377484

NOTE Lastpublishedeventid is the value of the EventId parameter from the last publish response.

EXAMPLE Response body:


{
"userId": 2972898,
"companyId": 2972898,
"createdTime": "\/Date(1507809103629)\/",
"isAdmin": {
"isCloudAdmin": false,
"isCloudSupport": false,
"isLocalOfficeAdmin": false,
"isInstanceAdmin": false,
"isCloudAccounting": false
},
"companyName": "companyname",
"autologged": false,
"commandToken": "1337b696-797d-4a5d-91dd-085dd78f92b3",
"impersonatorUserId": 0,
"isWriteForbidden": false,
"gettingStartedShown": false,
"lastRefreshedToken": "\/Date(-62135596800000)\/",
"impersonatorCompanyId": 0
}
7 Messenger | 743
7.3 API Services

TIP This command sets the Session-Id using a cookie directly and returns JSON containing the CSRF
token (commandToken):

curl https://<company>.quadientcloud.eu/api/query/Session/SessionInfo -H "Content-Type: ap→


plication/json" -b "Session-Id=268907ce-89fe-4175-bdad-7733cd980182" > session-info.json

7.3.3 Managing Batches


● List Batches

● List Batches by Name

● Retrieve Current Batch Status

● Execute Batch

● Schedule Batch

● Delete Batch by ID

List Batches
Lists all the batches (email/SMS messages) for the specified period.

URI /api/query/Messenger/ListBatchesQueryByUploadTime

Format JSON

Method GET, POST

Authentication Session-Id, EventId

Parameters
Use these parameters in the POST request body:

● type – Channel used to upload a batch: email or sms.

● from – The earliest date of batch upload in the Unix time format in milliseconds.

● to – The latest date of batch upload in the Unix time format in milliseconds.

For GET requests, use this URL format: https://companyname.quadientcloud.eu/api/query/Messenger/List→


BatchesQueryByUploadTime?Type=type&From=UnixTimestamp&To=UnixTimestamp.

NOTE The from and to timestamps must be in the Unix time, e.g. 1503474815000.
7 Messenger | 744
7.3 API Services

EXAMPLE Request header:

Key Value

Cookie Session-Id=268907ce-89fe-4175-bdad-
7733cd980182

Lastpublishedeventid 3377484

NOTE Lastpublishedeventid is the value of the EventId parameter from the last publish response.

EXAMPLE Request body:


{
"type": "Email",
"from": "/Date(1500793901000)/",
"to": "/Date(1503468701000)/"
}

Response body:
{
"running": [
{
"id": 6277156,
"name": "template1 - 16",
"companyName": "Company Name",
"companyId": 2972898,
"type": "Email",
"customer": "Customer Name",
"state": "Completed",
"lastUploadTime": "\/Date(1507806496062)\/",
"expirationTime": "\/Date(1515755222332)\/",
"startedTime": "\/Date(1507806498214)\/",
"sent": 2,
"delivered": 2,
"failed": 0,
"opened": 1,
"uniqueClicks": 0,
"unsubscribeCount": 0,
"sms": 0,
"emails": 2,
"creditCost": 0.01,
"scheduledAtTime": "\/Date(-62135596800000)\/",
"isScheduled": false,
"onDemand": false,
"deletable": true,
"userId": 2972898,
"waveInterval": 0,
"waveSize": 0,
7 Messenger | 745
7.3 API Services

"emailBatchBounceThresholdValue": 5.0,
"emailBatchFailedStateValue": 10.0,
"bounced": 0,
"markedAsSpam": 0,
"customTataAccountId": 0,
"isScrambled": true
}
],
"waiting": [],
"expired": [],
"onDemand": []
}

NOTE running, waiting, expired and onDemand states may or may not contain values.

TIP This command takes a JSON file with the specified batch range, authorizes requests with the Session-
Id and CSRF token and returns a JSON file containing the batch list:

curl https://<company>.quadientcloud.eu/api/query/Messenger/ListBatchesQueryByUploadTime -H
"Content-Type: application/json" -b
"Session-Id=c7fbfab7-3a0f-4035-b51d-e9428a19c3e4" -d
"@batch-range.json" > batch-list.json

List Batches by Name


Lists all the batch IDs (email/SMS messages) for the specified batch name.

URI /api/query/Messenger/ListRecentCreatedBatchIdsBy-
NameQuery

Format JSON

Method GET, POST

Authentication Session-Id, EventId

Parameters
Use these parameters in the request body:

● type – Channel used for batch upload: Email or Sms.

● batchName – Name of the batch specified in the Digital Communications Data module .

For GET requests, use this URL format: https://companyname.quadientcloud.eu/api/query/Messenger/Lis→


tRecentCreatedBatchIdsByNameQuery?Type=Type&BatchName=BatchName.
7 Messenger | 746
7.3 API Services

EXAMPLE Request header:

Key Value

Cookie Session-Id=268907ce-89fe-4175-bdad-
7733cd980182

Lastpublishedeventid 3377484

NOTE Lastpublishedeventid is the value of the eventId parameter from the last publish response.

EXAMPLE Request body:


{
"type": "Email",
"batchName": "Test Batch"
}

Response body:
{
"batchIds": [
3468971,
3468840,
3468827
]
}

IMPORTANT This request can only be made within 24 hours from the time the batch upload is completed.

Retrieve Current Batch Status


Retrieves a detailed status of the specified batch.

URI /api/query/Messenger/ReportQuery

Format JSON

Method GET, POST

Authentication Session-Id, EventId

Parameters
Use the BatchId batch identifier in the request body.

For GET requests, use this URL format: https://companyname.quadientcloud.eu/api/query/Messenger/Re→


portQuery?BatchId=batchId.
7 Messenger | 747
7.3 API Services

EXAMPLE Request header:

Key Value

Cookie Session-Id=268907ce-89fe-4175-bdad-
7733cd980182

Lastpublishedeventid 3377484

NOTE Lastpublishedeventid is the value of the eventId parameter from the last publish response.

EXAMPLE Request body:


{
"batchId": "6375198"
}

Response body:
"Message";"1";"example@example.net";"Sent";"1";"MailJetV1:Sent-sent (250 2.6.0 <d5f19689.AP→
wAAACG68wAAWTx6JcAAGcYlwsAAAAAAAIAAAAAAAZpdwBZ3yFH@mailjet.com> [InternalId=3298534883868,
Hostname=DB6PR0601MB2181.eurprd06.prod.outlook.com] 11497 bytes in 0.185, 60.642 KB/sec Queued
mail for delivery)";"2017-10-12 08:01:23Z";"2017-10-12 08:02:14Z";"4";"1";"MailJet
(MailJet)";;;;;;;;"example@example.net";"Outlook2016";"Windows10";"2017-10-12 08:01:13Z";;"0"
"TrackUrl";"Unsubscribe";"2017-10-12 08:02:14Z";"109.107.202.2"

NOTE For a detailed description of the response returned values, see the CSV Report File section.

TrackURL from LandingPage may be listed several times relative to the number of recipient's clicks.

TIP This command takes a JSON file with the batchId, authorizes requests with the Session-Id and returns
a JSON file containing a CSV line with batch properties:

curl https://<company>.quadientcloud.eu/api/query/Messenger/ReportQuery -b "Session-Id=c7fb→


fab7-3a0f-4035-b51d-e9428a19c3e4" -d "@batch-id.json" > batch-info.json

Execute Batch
Executes the specified batch and Messenger starts sending messages.
7 Messenger | 748
7.3 API Services

URI /api/publish/Messenger/StartBatchSending

Format JSON

Method GET, POST

Authentication Session-Id + CSRF token

Parameters
Use the batchId batch identifier in the request body.

For GET requests, use this URL format: https://companyname.quadientcloud.eu/api/publish/Messenger/Start→


BatchSending?BatchId=batchId.

EXAMPLE Request header:

Key Value

Cookie Session-Id=268907ce-89fe-4175-bdad-
7733cd980182

CommandToken 8bdc627a-28b0-4f15-8153-99984c4a1290

EXAMPLE Request body:


{
"batchId": "6431119"
}

Response body:
{
"eventId": 6452268,
"time": "/Date(1462287895106)/"
}

TIP This command takes a JSON file with the batchId, authorizes requests with the Session-Id and CSRF
token, executes the batch and then returns a JSON file containing response details:

curl https://<company>.quadientcloud.eu/api/publish/Messenger/StartBatchSending -H
"Content-Type: application/json" -H "CommandToken:d28a6749-565f-4661-98fd-157756aceb99" -b

"Session-Id=c7fbfab7-3a0f-4035-b51d-e9428a19c3e4" -d
"@batch-id.json" > batch-sending-result.json
7 Messenger | 749
7.3 API Services

Schedule Batch
Schedules the specified batch start time to certain date and time.

URI /api/publish/Messenger/ChangeBatchScheduleTime

Format JSON

Method POST

Authentication Session-Id + CSRF token

Parameters
Use these parameters in the request body:

● batchId – Unique batch ID.

● newScheduledTime – Date and time you want to schedule.

NOTE The new batch start time cannot be set to the past, as the request returns an error. The time values
are in the UTC time format.

EXAMPLE Request header:

Key Value

Cookie Session-Id=268907ce-89fe-4175-bdad-
7733cd980182

CommandToken 8bdc627a-28b0-4f15-8153-99984c4a1290

EXAMPLE Request body:


{
"batchId": "6431119",
"newScheduledTime": "2016-05-10 17:15"
}

Response body:
{
"eventId":6452542,
"time":"\/Date(1462288932362)\/"
}

TIP This command takes a JSON file with the batchId, authorizes requests with the Session-Id and CSRF
token, reschedules the batch and returns a JSON file containing response details.
7 Messenger | 750
7.3 API Services

curl https://<company>.quadientcloud.eu/api/publish/Messenger/ChangeBatchScheduleTime -H
"Content-Type: application/json" -H "CommandToken:d28a6749-565f-4661-98fd-157756aceb99" -b

"Session-Id=c7fbfab7-3a0f-4035-b51d-e9428a19c3e4" -d "@batch-reschedule.json" > batch-res→


chedule-result.json

Delete Batch by ID
Deletes the specified batch.

NOTE On-demand batches and batches in the Sending state cannot be deleted.

URI /api/publish/Messenger/RemoveBatchById

Format JSON

Method GET, POST

Authentication Session-Id + CSRF token

Parameters
Use these parameters in the request body:

● batchId – Unique batch ID.

For GET requests, use this URL format: https://companyname.quadientcloud.eu/api/publish/Messenger/Remove→


BatchById.

EXAMPLE Request header:

Key Value

Cookie Session-Id=268907ce-89fe-4175-bdad-
7733cd980182

CommandToken 8bdc627a-28b0-4f15-8153-99984c4a1290

EXAMPLE Request body:


{
"batchId":"6431119"
}

Response body:
7 Messenger | 751
7.3 API Services

{
"eventId":6451026,
"time":"\/Date(1462285061137)\/"
}

TIP This command takes a JSON file the batchId, authorizes requests with the Session-ID and CSRF
token, deletes batch and returns a JSON file containing response details.

curl https://<company>.quadientcloud.eu/api/publish/Messenger/RemoveBatchById -H
"Content-Type: application/json" -H "CommandToken:8bdc627a-28b0-4f15-8153-99984c4a1290" -b

"Session-Id=268907ce-89fe-4175-bdad-7733cd980182" -d "@batch-id.json" > batch-deleting-res→


ult.json

7.3.4 Managing Extended Delivery Data (Delta Query)


Extended delivery data services (delta query) gather all changes in data since the prior query (e.g. answers to
SMS or email messages, link clicks, users unsubscribing, etc.). The delta query protocol defines a pull-model
protocol for clients to obtain changes in entity sets.

To complete delta query you must (in this order):

1. Enable Extended Delivery Data API in Settings and contact Quadient Cloud to fully enable the delta query.

2. Call MultiRetrieveData using the MSG parameter.

3. Call BatchNamesQuery.

4. Call MessageCustomFieldsQuery.

5. Join the acquired BatchNamesQuery and MessageCustomFieldsQuery data with the MultiRetrieveData
response.

IMPORTANT Alternatively, use the sample wfd file or python script to execute the delta query.

NOTE If you want to check the status of your delta query data communication (via Service Monitoring),
you must have access to the Digital Services application.

MultiRetrieveData
Calls all the gathered client data and returns the data gathered since the last call to this service. When using the
MSG channel, the data are equivalent to the messenger CSV report file data. For more information about the request,
see the Digital Services documentation.
7 Messenger | 752
7.3 API Services

URI /api/longpoll/MobileBackend/MultiRetrieveData

Format JSON

Method POST

Authentication Session-Id

Parameters
For detailed information about the parameters, see the MultiRetrieveData and CSV report file documentation.
Use the MSG channel type for Messenger delta query.

NOTE In further calls, QueueStamps can be used to delete already processed data by defining them in the
done state parameter. If data processing takes too long (more than 20 seconds), Quadient Cloud must be
notified. To prolong the data processing period, call the MultiStoreReplyData request using the QueueStamps
values of the data that is being processed slowly or has not been processed yet. Timeout then won't occur
and the data also won't be duplicated by other nodes.

EXAMPLE Request body:

{
"ApiKey": "oijyfFR6fk6qZ82V18E7T587HO4xsaivos+C+eM2Fw=",
"NodeId": "node1",
"MaxCount": 500,
"Channels": [
{
"Type": "MSG"
}
],
"Done": [
{
"Id": "",
"Type": "MSG",
"QueueStamps": [
326,
327,
328
]
}
],
"Processing": [
{
"Id": "",
"Type": "MSG",
"QueueStamps": [
329,
330
]
}
],
"Failed": [
{
7 Messenger | 753
7.3 API Services

"Id": "",
"Type": "MSG",
"QueueStamps": [
331,
332,
333
]
}
]
}

Response body:
{
"channels": [
{
"type": "MSG",
"id": "",
"queueStamps": [
326,
327
],
"data": [
{
"batchId": 31196837,
"messageId": 1,
"count": 10,
"trackUrl": "",
"deltaQueryValues": [
{
"deltaType": "MessageState",
"deltaValue": "WaitingForSend"
}
]
},
{
"batchId": 31196839,
"messageId": 1,
"count": 10,
"trackUrl": "",
"deltaQueryValues": [
{
"deltaType": "MessageState",
"deltaValue": "WaitingForSend"
}
]
}
]
}
],
"eventId": 35339531,
"status": "Ok"
}
7 Messenger | 754
7.3 API Services

BatchNamesQuery
Returns names of batches via batch IDs. As response to the MultiRetrieveData request does not contain batch
names but only batch IDs, to complete the delta query data you must call the BatchNamesQuery using batch IDs
returned by the MultiRetrieveData request.

URI /api/query/Messenger/BatchNamesQuery

Format JSON

Method POST

Authentication Session-Id

Parameters
Use these parameters in the request body:

● apiKey – Secret password for authentication of your Quadient Cloud company.

● batchIds – A list of unique batch IDs returned by the MultiRetrieveData request.

EXAMPLE Request body:


{
"apiKey": "kioefhFR6fk6qZ82V18E7TtG0HO4xsaivos+C+eM2Fw=",
"batchIds": [
31175798,
31175800,
31175802,
31175804
]
}

Response body:
{
"items": [
{
"batchId": 31175798,
"batchName": "10standard"
},
{
"batchId": 31175800,
"batchName": "15standard"
},
{
"batchId": 31175802,
"batchName": "20standard"
},
{
"batchId": 31175804,
"batchName": "30standard"
}
]
}
7 Messenger | 755
7.3 API Services

MessageCustomFieldsQuery
Using batch IDs, the request returns custom fields and message IDs.

URI /api/query/Messenger/MessageCustomFieldsQuery

Format JSON

Method POST

Authentication Session-Id

Parameters
Use these parameters in the request body:

● apiKey – Secret password for authentication of your Quadient Cloud company.

● batchId – A unique batch ID returned by the MultiRetrieveData request.

● firstMessageId – A unique ID of the first message you wish to count from.

● count – Number of records that should be returned, starting with the specified firstMessageId.

The number of returned records includes the one specified in firstMessageId, e.g. if firstMessageId is
specified as 5 and count is specified as 10, records with message IDs from 5 to 14 will be returned.

EXAMPLE Request body:


{
"apiKey": "dftedhFR6fk6qZ82V18E7TtG0HO4xsaivos+C+eM2Fw=",
"messageIdRle": [
{
"batchId": 31175798,
"firstMessageId": 1,
"count": 10
},
{
"batchId": 31175800,
"firstMessageId": 1,
"count": 10
},
{
"batchId": 31175802,
"firstMessageId": 1,
"count": 10
}
]
}

Response body:
{
"items": [
{
"batchId": 31175798,
"messageId": 1,
7 Messenger | 756
7.3 API Services

"customField": "CF1"
},
{
"batchId": 31175800,
"messageId": 2,
"customField": "CF2"
},
{
"batchId": 31175802,
"messageId": 3,
"customField": "CF3"
}
]
}

Join data
To finalize the delta query, you must join the data:

1. The MultiRetrieveData request uses Run-length encoding (RLE), which is a simple form of lossless data
compression in which runs of data (that is, sequences in which the same data value occurs in many con-
secutive data elements) are stored as a single data value and count, rather than as the original run. This
is most useful on data that contains many such runs.

The values in this case must be first decompressed:

EXAMPLE
Original values:
{
"batchId": 31196837,
"messageId": 1,
"count": 3,
"deltaQueryValues": [
{
"deltaType": "MessageState",
"deltaValue": "WaitingForSend"
}
]
}

Decompressed messageId values:

{
"batchId": 31196837,
"messageId": 1,
"deltaQueryValues": [
{
"deltaType": "MessageState",
"deltaValue": "WaitingForSend"
}
7 Messenger | 757
7.3 API Services

]
},
{
"batchId": 31196837,
"messageId": 2,
"deltaQueryValues": [
{
"deltaType": "MessageState",
"deltaValue": "WaitingForSend"
}
]
},
{
"batchId": 31196837,
"messageId": 3,
"deltaQueryValues": [
{
"deltaType": "MessageState",
"deltaValue": "WaitingForSend"
}
]
}

2. Join the batchName values acquired from the BatchNamesQuery response with data from the MultiRe-
trieveData response.

3. Join the customField values from the MessageCustomFieldsQuery response with the decompressed mes→
sageId values in data from the MultiRetrieveData response.

7.3.5 Managing Recipient Subscription


Check Subscription Status
Checks if the specified recipient is subscribed/unsubscribed.

URI /api/query/Messenger/UnsubscribeInfo

Format JSON

Method POST

Authentication None

Parameters
Use these parameters in the request body:

● batchId – Unique batch ID.

● email – Recipient's email address.


7 Messenger | 758
7.3 API Services

● messageId – Unique message ID in the batch.

● hash – Unique string automatically generated for each message.

NOTE You can get the parameters from the unsubscribe page URL address. The format is <company→
name>.quadientcloud.eu/unsubscribe/#/messenger/unsubscribe/<BatchId>/<MessageId>/<Email>/<hash>.

E.g. https://gfbank.quadientcloud.eu/unsubscribe/#/messenger/unsub-
scribe/209343261/1/j.smith@email.com/13c7bb34

EXAMPLE Request body:


{
"batchId": 209842776,
"email": "j.smith@test.com",
"messageId": 1,
"hash": "c29904a6"
}}

Response body:
{
"customerName": "gfBank",
"alreadyUnsubscribed": false,
"batchType": "email"
}

The response returns these parameters:

Parameter Value

customer Name of the Cloud company, e.g. gfBank.

alreadyUnsubscribed false – Recipient is still subscribed.

true – Recipient is unsubscribed.

batchType email

sms

Unsubscribe Recipients
Unsubscribes the specified recipient from receiving emails/SMS messages.

URI /api/publish/Messenger/UnsubscribeUser

Format JSON

Method POST

Authentication None
7 Messenger | 759
7.3 API Services

Parameters
Use these parameters in the request body:

● batchId – Unique batch ID.

● email – Recipient's email address.

● messageId – Unique message ID in the batch.

● hash – Unique string automatically generated for each message.

NOTE You can get the parameters from the unsubscribe page URL address. The format is <company→
name>.quadientcloud.eu/unsubscribe/#/messenger/unsubscribe/<BatchId>/<MessageId>/<Email>/<hash>.

E.g. https://gfbank.quadientcloud.eu/unsubscribe/#/messenger/unsub-
scribe/209343261/1/j.smith@email.com/13c7bb34

EXAMPLE Request body:


{
"batchId": 209003208,
"email": "recipient@email.com",
"messageId": 1,
"hash": "b826ea15"
}

Response body:
{
"eventId": 31599550,
"time": "\/Date(1540310667195)\/"
}

7.3.6 Replacing Resources in Sent Emails


Upload Replacement Resource
Instantaneously replaces the resources in a sent email batch. Before the batch is sent, the resources must be
tagged with the Replacement Id in Inspire Designer.

This is useful if you want to dynamically change the content of sent emails, e.g. if you want to update a poll with
the current results, update a progress bar of a package delivery with the current destination, etc.

IMPORTANT The maximum size of data in each request is 700kB, and the functionality cannot be used
for Dynamic Communications landing pages and email background images. Replacement resources are
deleted when the batch expires.
7 Messenger | 760
7.3 API Services

URI /api/query/Messenger/UploadTaggedResource

Format JSON

Method POST

Authentication Via request body

Parameters
Use these parameters in the request body:

● apiKey – Secret password to authenticate your Quadient Cloud company (you can get it from the API Keys
section in Quadient Cloud | Administration).

● batchId – A unique batch ID.

● tag – An identifier of the resource. It is the Replacement Id value in Inspire Designer.

● base64Data – Data of the replacement resource encoded into Base64 format. Supported image formats
are: PNG, JPG, and GIF.

EXAMPLE Request body:


{
"apiKey": "dea6a8d6-e7ef-4d0e-8d4b-0532355c598e4",
"batchId": 1234,
"tag": "ImageTag1",
"base64Data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXN→
SR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ld→
CA0LjEuNv1OCegAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII="
}

Delete Replacement Resource


Deletes the replacement resources from a sent email batch. With the replacement resources deleted, the ones
originally attached to the batch in Inspire Designer will be displayed.

URI /api/query/Messenger/DeleteTaggedResource

Format JSON

Method POST

Authentication Via request body

Parameters
Use these parameters in the request body:

● apiKey

● batchId

● tag
7 Messenger | 761
7.4 Solution Examples

EXAMPLE Request body:


{
"apiKey": "dea6a8d6-e7ef-4d0e-8d4b-0532355c58e4",
"batchId": 1234,
"tag": "ImageTag1"
}

7.3.7 Analyzing Response


If the API call is properly configured (valid Session-Id, CSRF token, parameter names and corresponding values),
it returns Ok status (HTTP status = 200).

However, this does not necessarily mean the required operation has been finished successfully. It is recommended
to analyze the returned JSON response, especially for presence of error and errorParameters keys.

EXAMPLE If a non-existent batchId is specified as a parameter when deleting a batch, the following
response is returned:
{
"error": {
"errorType": "general",
"error": "There is no batch {0}.",
"errorParameters": [
"62298738"
]
}
}

7.4 Solution Examples


Inspire Messenger sends designed personalized communications to customers (using templates created in Inspire
Designer).

● Designing and Sending Emails

● Designing and Sending SMS Messages

● Sending Documents

● Sending Notifications
7 Messenger | 762
7.4 Solution Examples

7.4.1 Designing and Sending Emails


In this section See also

Preparing Workflows Tips on How to Avoid Rasterization


Designing Emails Inserting Deep Links
Archiving Email Templates Importing a Pre-prepared HTML
Configuring the Inspire Messenger Template
Engine Tips Regarding Spam Filters
Connecting to Quadient Cloud URL Tracking
Sending Email Batches

To design and send email batches you need:

1. Configured workflow in Inspire Designer


Containing:

Input module Imports data, e.g. customers' details from external files and/or databases.

Digital Communications Data module Enters, selects, and formats data so that it can be used by the
Inspire Messenger engine .

Layout module Designs the personalized email body and inserts variables.

Output module Defines parameters for the formats in which the workflow design will be created when
the WFD file is processed.

EXAMPLE
7 Messenger | 763
7.4 Solution Examples

This sample workflow demonstrates an email (optionally with an attachment – DC/PDF, notification)
and SMS message campaign in a single workflow using two Layout, Digital Communications Data,
and Output modules.

2. Access to Quadient Cloud


With:

Company account Registered and verified account at https://quadientcloud.eu .

Inspire Messenger Sends emails to customers and tracks details such as delivered, bounced, unsubscribed
emails.

Sufficient amount of Quadient Cloud Credits Sending emails via Messenger costs credits. You can view
the Price List to calculate the final prices.

7.4.1.1 Preparing Workflows

1 Input Module

To read data into your workflow (e.g. customers' email addresses), use a data input module according to your
data source.
7 Messenger | 764
7.4 Solution Examples

EXAMPLE A CSV file with customers' data loaded into the Data Input module .

2 Layout Module

1. Insert the Layout module to your workflow.

2. Connect it with the Input module.

See the Designing the Email section below for a detailed description of how to properly design an email.

3 Digital Communications Data Module

1. Insert the Digital Communications Data module into your workflow.

2. Connect it with the Data Input module.

3. Open the Digital Communications Data module.

4. Select the Parent Array containing data connected from the input module.

5. Select Messenger and the Email Scenario.

6. Click OK, and connect the Digital Communications Data module with the Layout module. Open the Digital
Communications Data module again.

7. Specify the fields:


7 Messenger | 765
7.4 Solution Examples

Required fields:

● FromMail – Sender's email address.

● ToMail – Recipient’s email address.

For a description of the other fields, see the Field Names description in the Inspire Designer | Digital
Communications Data documentation.

WARNING You need a verified FromMail address and domain. Otherwise, emails will not be sent from
Quadient Cloud. To verify these, go to Quadient Cloud | Administration | Domain Verification.

NOTE

● These settings can also be done via sheet names ; however it is important to know which sheet
name corresponds to which field name in this module. If both ways are used (Digital Communications
Data module and sheet names), settings in the Digital Communications Data module are used. If
both a constant and variable value are defined for a field, the variable is used.

● Optionally, you can also send notifications and/or documents together with emails. To do so, select
Digital Services and Messenger and fill in all the necessary field names in the Digital Communications
Data module .
7 Messenger | 766
7.4 Solution Examples

Changing the Link to the Landing Page


Designer adds a link to the landing page ("Can't see this email correctly? <<Click here>>") by default, so the re-
cipients can open the emails in the web browser. You can change this automatically generated URL link.

To do so:

1. Open the Digital Communications Data module.

2. Set the value of the OverrideLandingPageURL as the target URL link, e.g. http://www.mycompany.com.

TIP You can prepare a dynamic communication , upload it to Quadient Cloud via Publish Content On
Web , and use the URL address as the link to the landing page.

4 Output Module

1. Insert the Output module to your workflow.

2. Connect it with the Digital Communications Data module.

3. Keep the default settings for this module.

7.4.1.2 Designing Emails


Start designing the email template by adding flows, objects, texts etc. When using the output engine:

HTML Simple Only a flow selected as the Main flow on the Pages | General tab (Layout properties) is
processed, so insert all the objects to this flow.
7 Messenger | 767
7.4 Solution Examples

WARNING See the HTML Simple engine limitations before you start designing the email.

HTML Almost no design limitations, so you can insert more flows and any supported objects.

Tips on How to Avoid Rasterization


● Flow areas are completely within the page.

● Flow areas are not placed in an element.

● There are no overflows.

● The text is not in sections.

● The text is not closer than 1px from the nearest border.

● Objects are not overlapping with text.

● Text background is monochromatic.

● Parallel processing is disabled in the Main Production window .

Inserting Deep Links


It is possible to insert deep links which will interact with an application (e.g. opening an unfinished document,
leading the user to a page where they can change their password before its expiration, etc.)

To insert a deep link, click on the Insert menu and select Insert a URL Target , type text of your choice in the
Text edit field. In the URL edit field type one of the following deep link formats:

#deeplink The link opens the application using the previously configured Cloud Application ID / Application
ID .

#deeplink-ApplicationID The link opens the application with the ID specified in the deep link address.

#deeplink/$DocumentID$ The link opens a document specified with the DocumentID placeholder in the applic-
ation using the previously configured Cloud Application ID / Application ID .

#deeplink-ApplicationID/$DocumentID$ The link opens a document specified with the DocumentID placeholder
in the application with the ID specified in the deep link address.

EXAMPLE
In the processed email, the deep link: #deeplink-1023/test/$4512545$ will be generated as: http://company-
1023.quadientcloud.eu/mobile-app/test/4512545.
7 Messenger | 768
7.4 Solution Examples

Importing a Pre-prepared HTML Template

As an alternative, you can import your own predefined HTML templates:

1. Insert the Template Merger module to your workflow.

2. Connect it with the Input module.

3. Open the Template Merger module.

4. Import the HTML template either by inserting the source code or using the Import | Import Text from File.

5. Edit the template according to your needs, e.g. drag and drop variables onto the placeholders.

6. Proof the document by pressing <<F6>> and selecting HTML Simple Proof to see the result.

WARNING You can only produce emails in the HTML Simple engine when using the Template Merger
module.
7 Messenger | 769
7.4 Solution Examples

EXAMPLE An example HTML template inserted into the Template Merger module.

7.4.1.3 Archiving Email Templates


When you design complex email templates you can archive them as output files. The best way is to produce
them as TNOs (Inspire Native file type) with embedded HTML.

To do so:

1. Open the Main Production window by pressing <<F5>>.

2. Select InspireNative as the Engine.

3. Open the configuration by clicking on the Edit button.


7 Messenger | 770
7.4 Solution Examples

4. Set the engine:

HTML Config Tab

● HTML type – Select either HTML or HTML Simple, so that the HTML source code is embedded into
the TNO.

5. Start the production by clicking on the Start button.

TIP You can import the TNO file containing the designed emails back to Designer, edit the template, and
resend to customers.

7.4.1.4 Configuring the Inspire Messenger Engine


To send email batches via Messenger, you need to use and configure the Inspire Messenger engine :

1. Open the Main Production window by pressing <<F5>>.

2. Select Inspire Messenger as the Engine.

3. Open the configuration by clicking on the Edit button.

4. Set the engine:

● Sending mode: Email

● Preferably, select User starts sending the batch manually so you can start the batch in Quadient
Cloud whenever you want.

TIP You can also schedule sending emails or start sending immediately when the batch is
uploaded by selecting Start sending at / Start sending when the batch is uploaded.
7 Messenger | 771
7.4 Solution Examples

General Tab

1 Email Generation Mode

Email
Based on your email design, select one of these options:

● HTML

● HTML Simple

Landing page
Select the format of the automatically-generated landing page:

● Same as Email – The same format as the email.

● Website mode – The website mode of the advanced HTML engine.

● Dynamic Communications mode – For Dynamic Communications emails.

2 Email Throttling When you send a batch with a large number of emails, you can separate them
into groups and send those groups in waves, e.g. 10 thousand emails every 2 hours.

Check Enable throttled delivery and specify:

● Interval – Time interval in which the separate groups of emails will be sent. You can also
specify the interval by selecting: Days, Hours, Minutes.

● Limit – Number of emails you want to send in each group (wave).

NOTE You can also use email throttled delivery in Inspire Messenger when you start
sending the batch manually or schedule the batch.
7 Messenger | 772
7.4 Solution Examples

3 Attachment maximum size Maximum size of email attachments in bytes.

4 Landing Page and Unsubscribe Text Format Set the text format for the landing page and unsub-
scribe text.

HTML Tab

Email

● Rasterize flows: Uncheck

The HTML tab is available only when the HTML engine is selected.

TIP Leave Rasterize flows always unchecked to prevent bad quality rasterized emails.

7.4.1.5 Connecting to Quadient Cloud


You need to connect to your company account in Quadient Cloud so Inspire Designer can upload data to Messenger.
7 Messenger | 773
7.4 Solution Examples

Connection can be established using:

1 Inspire Content Manager token


2 Quadient Cloud credentials

When you have successfully connected Inspire Designer to Quadient Cloud, the Token is valid. message appears.

TIP You can archive the batch and save it to a specified location (this will create one or more ZIP files
and a BATCHINFO file).

7.4.1.6 Sending Email Batches


Starting the Production
Once you have everything configured and prepared, you need to start the production, which uploads data to
Quadient Cloud and Messenger then sends emails to customers depending on the settings of the Inspire Messenger
engine (it either sends them automatically – immediately when uploaded or on the scheduled date; or uploads
them to Messenger to wait for manual initiation.

To start the production:

1. Click on the Start button in the Main Production window .

2. Wait until the production is finished and the email batch is uploaded to Quadient Cloud.

NOTE If the email size (including any attachments) exceeds the maximum limit of 10MB, an error
message appears in the production Log window-pane . Exceeding the maximum size limit can
cause an error while uploading to Quadient Cloud.
7 Messenger | 774
7.4 Solution Examples

3. Go to https://quadientcloud.eu and:

● Start sending the emails manually.

● And/or check the sending results.

TIP You can also archive the designed emails as a TNO file.

7.4.1.7 Tips Regarding Spam Filters


Text / image balance Email containing a lot of images is the most common cause of messages going to spam,
especially if your message is one big image with hardly any text.

Keywords Certain words or phrases can often be filtered as spam, such as "Earn extra cash", "100% free",
"opportunity" or "click here" even when used legitimately.

Punctuation Too many exclamation marks and quotation marks can also be problematic.

Subject line The language and punctuation issues are relevant here; keep your subject short and free of prob-
lematic keywords and exclamation marks.

Text formatting Using bold or brightly-coloured text can be problematic. Making your text large or typing in all
capitals is also not recommended.

Links Having a lot of links can result in your message being marked as spam.
7 Messenger | 775
7.4 Solution Examples

7.4.2 Designing and Sending SMS Messages


Designing and sending SMS messages functions identically to sending emails, with the following exceptions:

Layout Module
The main flow can contain only text and variables (such as unsubscribe links ).

The number of characters in a SMS message can be limited depending on the SMS provider, e.g. for Bulk SMS
messages, these rules apply: One SMS message contains a maximum of 160 characters; any passage of text
containing more than 160 characters is split into more messages, and the maximum number of split SMS messages
is 6. Therefore, a message can only have a maximum of 960 characters.

If SMS messages are split, messages will have less than 160 characters. If a message contains national characters
(i.e. characters above ASCII 127), the SMS is converted and uses UNICODE characters instead. In such a case, a
message can only contain a maximum of 70 characters and the message cannot be split.

Digital Communications Data Module


The SMSScenario needs to be selected, and the only required field name is ToNumber.

Inspire Messenger Engine


The Sending mode needs to be set to SMS.
7 Messenger | 776
7.4 Solution Examples

7.4.3 Documents + Notifications


7.4.3.1 Sending Documents
You can use Inspire Designer and Digital Services to send Dynamic Communications and PDF files containing
personalized content. These documents are saved in Quadient Cloud's content delivery service via the GUI of
Digital Services, the Enterprise API services or configuration in Inspire Scaler.

Recipients (clients) then open the documents via a mobile application built with Digital Advantage SDK .

For more information, see the Digital Advantage Suite Configuration Guide .

7.4.3.2 Sending Notifications


You can use Inspire Designer and Digital Services to send notifications to your recipients' (clients') mobile devices
built with the Digital Advantage SDK or Digital Services' Build Configuration tool. The notifications contain a
title and message.

If you wish to send notifications with a high priority (they will be sent immediately before notifications without a
specified priority), check the High priority option in the Inspire Messenger engine configuration .

For more information, see the Digital Advantage Suite Configuration Guide .
7 Messenger | 777
7.5 Integration with Insights

7.5 Integration with Insights


Insights aims at business users of different perspectives. It provides – without a complicated deployment – a set
of customizable dashboard widgets that display the status of production environments, such as missed SLA's,
errors, etc.

For Messenger, you can prepare a custom dashboard in Insights, and replace the default Overview dashboard.

TIP

● To learn how to create an Insights dashboard displaying Messenger data, go to the Dashboard
Creation section.

● To learn how to create a custom Overview dashboard, see the corresponding Set up in Inspire In-
sights section in the Customer Journey Map documentation.
8 Omnichannel Coordination

8.1 Application Overview


8.2 Before You Start
8.3 Using Omnichannel Coordination
8.4 API Services
8.5 Sample Solutions and Configuration Examples
8 Omnichannel Coordination | 779
8.1 Application Overview

8.1 Application Overview

Omnichannel Coordination enables business users to communicate with customers using various communication
channels. See An Overview of Quadient Cloud for a introduction to the components and functionality.

Quadient Cloud On-premise


Gives processing instructions
via delivery rules
Omnichannel Orchestrates document production
Inspire Scaler
Coordination
Returns procesing data
to enable statistics

Processes template workflows


Reads template info

Inspire Reads data from ICM Inspire


Content Manager Production Server
(template storage) (production facility)

Basic terms used throughout this chapter:

Omnichannel Spanning all the available channels.

Service Provider (SP) The owner of facilities and equipment able to send and deliver communications through
multiple channels. In the Quadient Cloud user terminology, this typically equals Company.

Business User (BU) A company that uses the services of an SP to deliver custom communications to their cus-
tomers. In the Quadient Cloud user terminology, this typically equals Customer.

Designer Workflow A WFD workflow containing a template of the communication that the BU wants to send
to their customers.

Scaler Workflow / The Backend The backend engine of the application. It is fully configurable for advanced
users.

Sample Solution / Demo Solution / Demo Job A solution prepared by Quadient for demonstration purposes.
In the current version, it is also a recommended starting point for the creation of BU’s custom communications.

On-premise Stored locally on clients’ own storage systems. Omnichannel Coordination offers a functionality
to prevent sending sensitive data to the cloud. See the Hotfolder and Sharefolder section.

8.2 Before You Start


Omnichannel Coordination (OCC) utilizes the following on-premise components:

Inspire Content Manager

Inspire Designer

Inspire Production Server

Inspire Scaler
8 Omnichannel Coordination | 780
8.2 Before You Start

Inspire Interactive

The following Quadient Cloud applications are integrated into various functions of OCC and should be activated
to leverage its full potential:

Customer Journey Map

Customer Preference Management

Digital Services

Inspire Insights

Inspire Messenger

IMPORTANT If you are using Omnichannel Coordination in a production environment, please follow Inspire
Deployment - Reference Guide .

8.2.1 Compatibility Overview


Omnichannel Coordination (OCC) is essentially an extension of Inspire Scaler. It is designed to work with multiple
Scaler versions. However, certain restrictions apply when used with earlier versions.

To help the systems integrator set up a working OCC environment, Quadient provides a sample package which
contains examples of integration settings for the supported Scaler versions.

Each OCC version's download section contains up to two ICM packages. They are intended to only be used once
with a Scaler version indicated in the package name.

WARNING Make sure you import the correct package version.

IMPORTANT Previously imported sample packages cannot be upgraded to a new version. We want to
provide relevant and up-to-date sample solutions, which sometimes means that we have to introduce
breaking changes to the solutions. Do not import a new sample package if you already have an established
OCC solution.

The following compatibility scenarios are supported:

Combination of Component Versions Supported Functionality

The same current major version of Quadient Everything works as described in this user guide.
Cloud, Inspire Scaler and ICM package.

Current version of Quadient Cloud, the previous Your established solution works, but features that had a
Inspire Scaler version, and a corresponding ICM counterpart developed in the new Inspire Scaler version
package version.
8 Omnichannel Coordination | 781
8.2 Before You Start

Combination of Component Versions Supported Functionality

are not available. Do not import a new version of the


sample package.

Current version of Quadient Cloud, the latest In- Your established solution works, but features that had a
spire Scaler GA version, and a corresponding ICM counterpart developed in later Inspire Scaler versions are
package version. not available. Import a new version of the sample package
only if you are creating a fresh environment.

8.2.2 User Role Permissions


Omnichannel Coordination users in the parent company can have the following user roles assigned. They determine
the user’s level of access to certain features of the application:

Omnichannel access Grants access to the application itself, and the following sections:

● Overview

● Jobs

● Channel Processes

● Channel Process Types

● Delivery Rules

● Templates

Omnichannel administration Grants an advanced permission that allows:

● Importing and exporting delivery rules.

● Setting permissions to delivery rules.

● Sharing content with customers.

● Changing the settings.

● Downloading files from the download section.

To set permissions for OCC:

1. As Company Administrator, go to Quadient Cloud ADMINISTRATION | Users and Roles | Roles.

2. Edit the role to which you want to add the permission for Omnichannel Coordination or create a new one,
if needed. See also Roles.

3. Assign the permissions.

8.2.3 Sample Package


Omnichannel Coordination is a highly customizable cloud environment that must be set up individually for each
Quadient Cloud company. To facilitate the setup process, Quadient provides a suite of sample content that is
available in the application upon its activation.
8 Omnichannel Coordination | 782
8.3 Using Omnichannel Coordination

This sample content includes:

● Backend workflows for Scaler

● Channel process types

● Channel processes

● Delivery rules

● Designer workflows with communication templates

● Interactive template

● CPM template

● Digital Services application template

● Data input files with generic data

We recommend using the sample content as a base for creating your own solution. For more information and a
sample package deployment guide, go to Sample Solutions and Configuration Examples.

8.3 Using Omnichannel Coordination

Omnichannel Coordination has these sections:

● Overview

● Jobs

● Channel Processes

● Channel Process Types


8 Omnichannel Coordination | 783
8.3 Using Omnichannel Coordination

● Delivery Rules

● Templates

● Settings

● Download Section

8.3.1 Overview
Overview shows real-time data about all the jobs going through Omnichannel Coordination. It uses Insights
query engine, a feature that needs to be purchased and activated separately. For more information on the query
engine, see the Queryable Data chapter.

If you have the Insights application activated and the query engine enabled, the dashboard is created automat-
ically the first time you visit this section. The default version displays the following information:

1 Global filters that affect the entire dashboard.

2 All current and past jobs and their states. Use the check box on the left to filter the dashboard by job
name.

3 Total number of communications (emails, SMSs, PDFs, in-app messages etc.) that went through any
channel process until the Job Successful or Job Failed final state.

4 Number of communications that went through a specific channel process, for each channel process.
8 Omnichannel Coordination | 784
8.3 Using Omnichannel Coordination

5 Column chart showing the number of sent communications for each month.

NOTE

● This dashboard displays information about the jobs that the current user has access to, i.e. those
that are listed in the user’s jobs section. For more information, go to Permissions and Sharing.

● If you do not have the Insights application and/or the query engine feature enabled, the contents
of the Overview dashboard are hidden.

Dashboard Management
The Overview dashboard is an embedded Insights dashboard, and can be customized through Inspire Insights .

To manage the layout and information displayed on the dashboard:

1. Make sure you have the Insights Dashboards Manager user permission.

2. Go to Insights.

3. Open Dashboard Management.

4. Select OmniChannel Dashboard and click Edit.

5. Design your Overview dashboard through Insights Dashboard Management.


8 Omnichannel Coordination | 785
8.3 Using Omnichannel Coordination

EXAMPLE OmniChannel Dashboard components provided as templates for filtering

These example filters are provided by Quadient. There are 10 custom field filters, because Messenger
batches contain exactly 10 custom fields.

NOTE Components of the Insights OmniChannel Dashboard are provided with Omnichannel Coordination
as a developer’s example of filtering templates. Changing the Messenger custom fields does not change
the custom fields in this dashboard. They should be updated manually to match your defined Messenger
custom fields.

Connecting a custom dashboard


If you are familiar with Insights, you can assemble your own custom dashboard and connect it to your Omnichannel
Coordination Overview using the CHOOSE DASHBOARD button.

8.3.2 Jobs
The main functionality of Omnichannel Coordination is accomplished through jobs. Each job requires input data
uploaded as a CSV file. The CSV file is modified during the course of the job – information from individual steps
of the job processing workflow is added to the file.

At any stage of the workflow, you can download and view the CSV file version that is currently in use.
8 Omnichannel Coordination | 786
8.3 Using Omnichannel Coordination

Jobs Controls

New Creates a job.

TIP Jobs can also be started by uploading an input file to the hotfolder or through the API services.

View Dashboard Opens a dashboard with information related to the selected job. The dashboard content
automatically refreshes every 30 seconds.

Edit Edits a job.

Start Starts the job processing of the selected job.

Clone Creates a job with the same settings as the selected job. You can select new CSV input data.

Resubmit Recreates and restarts the selected job (with the same input data).

Download Original CSV Downloads the CSV file that has been used as the input for the selected job.

Download Enriched CSV Downloads the CSV currently in use by the selected job. The enriched CSV file
contains additional data (e.g. DeliveryStatus and AcceptanceResult), created during the job processing.
8 Omnichannel Coordination | 787
8.3 Using Omnichannel Coordination

NOTE The CSV file can only be downloaded during the retention time that you set while creating
the job. After that, it is removed from the cloud and no longer accessible anywhere.

Stop Stops the processing of the selected job.

WARNING After a job is stopped using this option, it cannot be restarted – you have to recreate
it.

Delete Deletes the selected jobs. You can only delete jobs that are currently not being processed.
8 Omnichannel Coordination | 788
8.3 Using Omnichannel Coordination

8.3.2.1 Creating and Editing Jobs

Create Job / Edit Job – Options Description

Name Names the job.

Description Enters additional optional information for the users. This is visible in the job’s details.

CSV input Selects a CSV file with client data, such as information about the recipients of your communications,
to be uploaded to the cloud as the input file.

The CSV file is checked for validity upon uploading – it must contain a column named Email (case insensitive).

TIP See the SampleInputData.csv file in the download section for a sample CSV data source file.
8 Omnichannel Coordination | 789
8.3 Using Omnichannel Coordination

Retention Time Determines after how long the input data (the CSV file) are removed from Quadient Cloud.

Customer The customer for whom this job is created.

Schedule start Schedules the start of processing of the job to a future date.

Start date Enters the start date of the job.

Available when the Schedule start slider is set to ON .

Delivery rule Selects a delivery rule that will be used to manage this job.

Selecting a delivery rule will display properties of the channel processes used by that delivery rule. By default,
they use the globally set values of their respective channel process types and channel processes. You can
uncheck the Use default value check box and override the settings for this particular job.

Channel process’ properties are shown in the same order as in their corresponding delivery rule.

Template Validation
When Use default value is unchecked, the existence of the chosen template is validated upon saving the
job draft. However, if you change the template name after this stage, the template path will reference an
invalid location, so the job processing will fail. If that option is checked, there is no validation.

Custom fields Enters the values of the Messenger custom fields associated with this job.

Only those custom fields that have their name set are displayed here, even though the respective Messenger
batches will always contain all 10. The undefined custom fields will have an empty value.

These custom fields can be used to filter the Overview dashboard content.

8.3.2.2 Job Processing


Jobs are processed by Inspire Scaler based on the delivery rules that you set up.

New jobs are always processed using the latest published version of the given delivery rule. If a job is already
running when a new delivery rule version is published, it will continue to run on the version with which it was
started.

If any processing error occurs and Inspire Scaler returns a message with a description of the error, it is immediately
displayed in Quadient Cloud's GUI.

NOTE The error reporting feature requires Inspire Scaler 12.3 and later.

8.3.2.3 Filtering Content

For easier management of Omnichannel Coordination content, you can use the text box in the upper-right part
of the screen to filter it.

Channel processes, templates, and delivery rules can be filtered according to what customers they have been
shared with.
8 Omnichannel Coordination | 790
8.3 Using Omnichannel Coordination

Jobs have a separate, improved filter.

8.3.2.4 Filtering Jobs

Jobs Filter – Options Description

Name Name of the job in Omnichannel Coordination.

Job ID Unique identifier of the job.

Created from / To Time period when the job was created.

Started from / To Time period when the job was started.

Search attributes Additional attributes for job filtering.

NOTE The Touch Points filter appears only if you have a CJM touch point connected (linked) to a
delivery rule.
8 Omnichannel Coordination | 791
8.3 Using Omnichannel Coordination

Pagination in Jobs Filter


Use the combo box at the bottom of the screen to change the number of items displayed in the list.

8.3.2.5 Delivery Rule Preview

Click the Preview link next to the delivery rule name in the expanded view of a created job to display that version
of the given delivery rule in a read-only mode.

8.3.2.6 Locking Template Versions


Omnichannel Coordination keeps track of the date and time of the job creation and submission. You can set the
Scaler backend to use this time stamp to process the correct version of a communication template, e.g. if you
create a job with one template version, but change the template before submitting the job, then the job uses the
updated template version.

This setting is controlled by the omni-enable-lock-template-version environment variable.

NOTE This setting does affect CPM templates, as those are not versioned.
8 Omnichannel Coordination | 792
8.3 Using Omnichannel Coordination

8.3.2.7 Custom Fields

Custom fields can be used to store additional information into Messenger batches. For example, you can define
unique campaign codes for different email campaigns or assign descriptive meta information to better manage
large number of simultaneous campaigns.

Definition
There are exactly 10 custom fields available in Messenger. Their names can be defined in Messenger Settings.
If a name is not defined, the custom field (with an empty value) will still be included in the batch, even though it
does not display neither in the Jobs screen, nor in the dashboard.

Connection to the related WFD and WFS workflows


The custom fields data represent variables (fields) of Inspire Designer’s Digital Communications Data module ,
to which it is sent as input by Inspire Scaler. Thus, it is always an integral part of all the jobs and batches that
go through Messenger and can be used for statistics and filtering.

Support for CPM templates


This functionality is only available in WFD and JLD templates, i.e. if your delivery rule uses a CPM template, the
custom fields’ values cannot be propagated to the Messenger batches.
8 Omnichannel Coordination | 793
8.3 Using Omnichannel Coordination

8.3.3 Channel Processes

Channel process defines how a communication will be processed by Inspire Scaler. It combines the given processing
instructions for the type of communication it is (see channel process types) and connects it to a template which
provides the communication’s content. The template can be from:

● Inspire Designer (WFD format, saved in ICM)

● Inspire Interactive (JLD format, saved in ICM)

● Customer Preference Management (saved in Quadient Cloud)

Channel processes can be further modified on the level of individual workflow modules inside the delivery rules
editor.

Channel Processes Controls

New Creates a channel process.

Edit Edits a channel process.

Clone Creates new channel processes identical to the selected ones, so that they can be edited to be
different.

Share Shares the selected channel process with a customer.

Delete Deletes the selected channel process. Multiple items can be selected at once.
8 Omnichannel Coordination | 794
8.3 Using Omnichannel Coordination

Creating and Editing Channel Processes

Create Channel Process / Edit Channel Process – Options Description:

Name Names the channel process.

Description Enters additional optional information for the users. This is visible on the list of channel processes.

Channel process type Selects a channel process type to load its preset execution parameters.
8 Omnichannel Coordination | 795
8.3 Using Omnichannel Coordination

Channel process icon Selects an icon to be shown alongside the channel process to represent it in delivery
rules editor.

You can upload your own custom icons. The supported resolution is 80 x 80 px. The supported image formats
include: JPEG, PNG, GIF, SVG, and BMP.

Template Selector Connects a communication template to the channel process. You can either Select from
Template Explorer and navigate to the desired template in template explorer, or select the Custom template
type and enter a path to the desired template in the Template name text box. Depending on the template
location, the path format changes:

● For CPM templates (saved in CPM): cpm://<TemplateName>

● For Designer WFD templates (saved in ICM): scaler/default/wfd/<TemplateName>.wfd

● For Interactive JLD templates (saved in ICM): interactive/<CompanyName>/Templates/<Template→


Name>.jld

Template Metadata
If the Select from Template Explorer option is used, you can also view metadata pushed from Scaler in the
template explorer window, as well as filter the templates using their file names and this metadata.

The template metadata that is showing here is pushed to OCC GUI through the SaveTemplates public API
service. You can find an example of the implementation in our sample solution – the OmniQueryTemplates.wfs
Scaler workflow.

You can use your own metadata storage logic and configure the SaveTemplates API service to read the
metadata information from your custom metadata storage.

EXAMPLE Template Explorer window with sample Template Metadata (stored in ICM)

Execution Parameters Assigns values to Input Parameters of the OCC Input Scaler module. These are used
to customize some properties of the communications:
8 Omnichannel Coordination | 796
8.3 Using Omnichannel Coordination

Column Name Description

Name Name of the Input Parameter, e.g. Sender.

Default Value Default value pre-filled for the corresponding parameter when creating a channel process
based on this channel process type.

Mandatory Information about the Action if Missing column settings for the corresponding execution
parameter of the OCC Input Scaler module :

● Optional = No action if missing

● Mandatory = Fail job if missing

Table 8.1 Channel Process Execution Parameters

NOTE Existing execution parameters settings are inherited from their respective channel process
type settings, including editing rights. Channel process-specific parameters added from this screen
are always fully editable, so you can further customize your backend workflow.

Execution Parameters Controls

ADD PARAMETER Adds a new row to the list of parameters.

LOAD PARAMETERS Loads parameters of the channel process type from the OCC Input module
in the WFS Scaler workflow that manages the backend.

NOTE For LOAD PARAMETERS to work, your Scaler instance needs to be connected to Omnichannel
Coordination using an API Key.
8 Omnichannel Coordination | 797
8.3 Using Omnichannel Coordination

8.3.4 Channel Process Types

Channel process types represent the delivery methods that are available for any communication. Each type can
have execution parameters defined. These are used when channel processes are executed in Inspire Scaler.

TIP Upon first entering the Channel Process Types section, you will see some pre-configured items.
These can be used with our sample solution. In the production environment, set them up individually ac-
cording to each Service Provider’s capabilities.

NOTE Importing custom delivery rules, such as the additional delivery rules available in the Download
Section, will also create or modify any channel process types and channel processes that are included in
those delivery rules.

Channel Process Types Controls

New Creates a channel process type.

Edit Edits a channel process type.

Delete Deletes the selected channel process type. Multiple items can be selected and deleted at once.
8 Omnichannel Coordination | 798
8.3 Using Omnichannel Coordination

Creating and Editing Channel Process Types

Create Channel Process Type / Edit Channel Process Type – Options Description:

Name Names the channel process type.

It will appear in the Channel process type combo box selection inside the create channel process dialog.

Description Enters additional optional information for the users. This is visible on the list of channel process
types.

Icon Selects an icon to be shown to all users alongside the channel process type for a better visual representation.

You can upload your own custom icons. The supported resolution is 80 x 80 px. The supported image formats
include: JPEG, PNG, GIF, SVG, and BMP.

Execution parameters Assigns values to Input Parameters of the OCC Input Scaler module. These are used
to customize some properties of the communications:
8 Omnichannel Coordination | 799
8.3 Using Omnichannel Coordination

Column Name Description

Name Name of the Input Parameter, e.g. Sender.

Default Value Default value pre-filled for the corresponding parameter when creating a channel process
based on this channel process type.

Editable Editing rights for the corresponding parameter in the create/edit channel process screen:

● Value Editable – Only the value of the given parameter will be editable on the
level of the corresponding channel processes.

Editing the values of Value Editable execution parameters here does not change
the values of these execution parameters inside the corresponding channel
processes.

● Fully Editable – Both the value and the name of the parameter will be editable
on the level of the corresponding channel processes.

This option is only available for legacy channel process types to guarantee
backwards compatibility and cannot be selected for new and modified channel
process types.

● Not Editable – Execution parameters will not be editable on the level of the cor-
responding channel processes.

This option automatically updates all the Not Editable execution parameters in
all the related channel processes.

Mandatory Information about the Action if Missing column settings for the corresponding execution
parameter of the OCC Input Scaler module :

● Optional = No action if missing

● Mandatory = Fail job if missing

Table 8.2 Channel Process Type Execution Parameters

Execution Parameters Controls

ADD PARAMETER Adds a new row to the list of parameters.

LOAD PARAMETERS Loads parameters of the channel process type from the OCC Input module
in the WFS Scaler workflow that manages the backend.

SHOW DATA STRUCTURE Shows the data structure defined in the OCC Input module in the WFS
Scaler workflow that manages the backend. You can load the structure directly from the cloud GUI.

NOTE For LOAD PARAMETERS and SHOW DATA STRUCTURE to work, your Scaler instance
needs to be connected to Omnichannel Coordination using an API Key.
8 Omnichannel Coordination | 800
8.3 Using Omnichannel Coordination

8.3.5 Data Structure Explorer


Accessible from both Create Channel Process Type and Create Channel Process screens, the Data Structure
Explorer window shows the data structure configured in the OCC Input module in the WFS Scaler workflow
that manages the processing of jobs. The conditions based on which OCC reads the data structure, are:

● Inspire Scaler is connected to Quadient Cloud through Listener ID or API Key.

● A WFS Scaler workflow that contains an OCC Input module is deployed.

TIP See the Deployment Configuration section for a description of how to set up Omnichannel Coordin-
ation to properly read the data structure in Scaler.

NOTE This feature is available in Inspire Scaler version 12.3 and later.

Optional and mandatory execution parameters


Execution parameters that are marked as Mandatory are required for the job processing, i.e. the processing will
fail if these are missing in an OCC job.

EXAMPLE Data structure of the default Omnichannel.wfs workflow (Inspire Scaler)


8 Omnichannel Coordination | 801
8.3 Using Omnichannel Coordination

8.3.6 Delivery Rules


Delivery rules are workflows that instruct the backend on how to process jobs.

TIP Read about the delivery rules that are available in this section upon the activation of the application
in Sample Solutions and Configuration Examples.

Delivery Rules Controls

New Creates a new delivery rule.

Import Imports a delivery rule and the corresponding channel processes.

The application uses its own native OCC file format. It is possible to import multiple delivery rules at once.
Delivery rules can only be imported to the same version of OCC from which they have been exported.

Export Exports multiple delivery rules and the corresponding channel processes to a single OCC file.

You can choose to export the latest version or the version with a specific approval state, per each delivery
rule.

View Opens the latest version of the selected delivery rule in read-only mode.

Create Draft / Open Draft Opens the selected delivery rule in the delivery rules editor.

Clone Creates a new delivery rule identical to the selected one, so that it can be edited to be different.

See Clone Delivery Rule Dialog.

Versions Opens an overview of all versions of the selected delivery rule. You can also set approval states
there.

Properties Edits a delivery rule.


8 Omnichannel Coordination | 802
8.3 Using Omnichannel Coordination

Permissions and Sharing Manages permissions and sharing.

Delete Deletes the selected delivery rule. You can select and delete multiple delivery rules at once.

8.3.6.1 Execution Timeout


When creating or editing delivery rules, you can set an execution timeout – the amount of time after which Scaler
stops processing the Job and returns the “Timeout” final state.

8.3.6.2 Delivery Rules Versioning


The editor supports versioning so that delivery rules can be changed while a job is running. When you open a
delivery rule in the editor, a draft from the latest published version is created. Only the latest published version
of a delivery rule is used to process new jobs.

8.3.6.3 Delivery Rules Status


8 Omnichannel Coordination | 803
8.3 Using Omnichannel Coordination

The status of a delivery rule changes depending on the set validity range for that delivery rule. The available
statuses are:

● Published – is available for use in Omnichannel Coordination jobs.

● Draft – is in the draft state, i.e. the most recent version has not been created yet.

● Scheduled for publishing – its validity range starts at a future date.

● Expired – its validity range has ended at a past date.

NOTE The validity range of delivery rules can be set in delivery rules properties.

8.3.6.4 Approval States


You can mark specific versions of delivery rules with approval states. Modify your available approval states in
the settings.

8.3.6.5 Delivery Rules Details


Click the arrow to the left of the delivery rule’s name to display details about it. The following information is
provided:

● Description of the delivery rule.

● Validity of the delivery rule.

● Permissions associated with the delivery rule, i.e. what user roles can create jobs based on it and what
user roles can edit it.
8 Omnichannel Coordination | 804
8.3 Using Omnichannel Coordination

8.3.6.6 Create New Delivery Rule / Edit Delivery Rule Properties Dialog

Options Description

Name / Description Names the delivery rule.

Description Enters additional optional information for the users. This is visible on the list of delivery rules.

Execution timeout Applies an execution timeout to the delivery rule.

Limit delivery rule validity Restricts the availability of the delivery rule (to be used for job creation) to the specified
time period.

Link to touch point Links to a CJM touch point.

Only available if you have a touch point defined inside a program in your CJM.
8 Omnichannel Coordination | 805
8.3 Using Omnichannel Coordination

8.3.6.7 Clone Delivery Rule Dialog

Options Description

Clone permissions and sharing If checked, the cloned delivery rule will inherit the permissions and sharing
settings of the original delivery rule.

The other options here are the same as for the Create New Delivery Rule / Edit Delivery Rule Properties Dialog.
8 Omnichannel Coordination | 806
8.3 Using Omnichannel Coordination

8.3.7 Delivery Rules Editor

Use the editor to create or modify delivery rules. It consists of the following areas:

1 List of all available channel processes. Drag them to the workspace to design your delivery rule.

2 List of all available coordination tools. Drag them to the workspace to design your delivery rule.

3 The text area tool. Drag it to the workspace to design your delivery rule.

4 Workspace to design your delivery rule.

5 Tools used for validation and publishing.

8.3.7.1 Workspace
Space where the delivery rule workflow is designed. Channel Processes and Coordination Tools behave as
workflow modules here. You can drag them from the left-side menu into the workspace, then interact with them
by double clicking or using the right-click context menu. The following task types (workflow modules) can be
defined inside a delivery rule:

● Job Started and Job Successful / Job Failed. Delivery rules cannot be saved without a starting and ending
point in the workflow. These modules do not require any settings and cannot be edited.
8 Omnichannel Coordination | 807
8.3 Using Omnichannel Coordination

● Action

● Transition

● Condition

● Recurring Condition

● A/B Testing Start & A/B Testing Result modules


8 Omnichannel Coordination | 808
8.3 Using Omnichannel Coordination

8.3.7.2 Delivery Rule Action Dialog


Produces communications through the set channel process. The settings within each workflow module can indi-
vidually override the global settings of the corresponding channel process.

Options Description

Name Names the channel process module.

Link to touch point Links the delivery rule to a CJM touch point. Only available if you have a touch point defined
inside a program in your CJM.

Input connectors Creates anchor points for connecting multiple inputs to the action.
8 Omnichannel Coordination | 809
8.3 Using Omnichannel Coordination

You can connect up to 5 workflow modules to any given Action workflow module. This allows you to join up
to 5 separate workflow paths back together, e.g:

Template Selector Connects a communication template to the Action. These settings are inherited from the
Create Channel Process dialog by default, but can be overridden for each individual delivery rule Action.

Execution Parameters Assigns values to Input Parameters of the OCC Input Scaler module. These settings are
inherited from the Create Channel Process dialog by default, but can be overridden for each individual delivery
rule Action.

TIP When using a custom JLD template , click next to the Template name text box to directly go
to that template in Inspire Interactive. This feature requires at least Inspire Scaler 12.2.

8.3.7.3 Delivery Rule Transition Dialog


Schedules an action to be executed after the set amount of time. Create it by connecting anchor points of two
different workflow modules, and edit by double clicking on the created connection.
8 Omnichannel Coordination | 810
8.3 Using Omnichannel Coordination

Options Description

Label Names the workflow task. We recommend to use a descriptive name for better clarity of the workspace.

Delayed Sets after how much time the next module in the workflow is processed.

8.3.7.4 Delivery Rule Condition Dialog


Sets a condition for job processing via the following tabs:

● General

● Store Data to CSV

General Tab

Options Description

Name Names the workflow module.

Input Indicates the module that is being evaluated by this condition.

Scope Sets the processing method for the condition. You can select from the following:

● Overall – Checks the amount of true values of the variable set in the Variable Name text box, divided
by the number of entries in the CSV data input file.

● Per record – Checks the defined condition of the variable set in the Variable Name text box for each
record in the CSV data input file.

Channel Process Selects the module that triggers the Messenger batch (identified by its batch ID), whose data
is used for evaluating this condition. By default, this is set to the channel process module that immediately
precedes it in the delivery rule workflow. It should be set to a module that uses the Email channel process
type, because it is the only type that can track data coming from CPM.
8 Omnichannel Coordination | 811
8.3 Using Omnichannel Coordination

IMPORTANT With Inspire Scaler version 12.4 and later, you need to manually edit the AGM Rule
and point the Acceptance Check Print and Acceptance Check SMS conditions to the correct module
(channel process).

For example, in the default AGM Rule this means the Email channel process module.

Conditions Sets conditions that are evaluated by the backend:

Variable Name Name of the variable used by the backend – in the Data Transformer module of the
GetJobResultsFull.wfd workflow, by default located at:

ICM-root:\\scaler\default\wfd\getResults\

Operator Logical operator.

Value String for Per record Scopes, rational number for Overall Scopes.

Routing Workflow module to be processed if the condition is met.

Default Sets workflow module to be processed if the condition is not met.

Store Data to CSV Tab


8 Omnichannel Coordination | 812
8.3 Using Omnichannel Coordination

Options Description

Variable Name Name of the variable that is sent by Scaler back to the Cloud and whose value describes the
result of the recipient’s interaction with the received email, e.g. whether he or she has accepted the AGM in-
vitation or not.

By default, that variable is the AcceptanceResult variable, as read from the Data Transformer module of the
GetJobResultsFull.wfd workflow, located at:

ICM-root:\\scaler\default\wfd\getResults\

Column Name Name of the CSV column to which the variable value is stored and from which it is read again
and used in further processing of the job.

EXAMPLE For example, if the job continues with the AGM On Premise Print & Mail module, it is
passed to the Data Input module of the AGM_Print.wfd workflow, located at:

ICM-root:\\scaler\default\wfd\

IMPORTANT If you have upgraded to Inspire Scaler version 12.4 and later from a previous version where
you already had an established Omnichannel Coordination solution, you need to manually map the newly
implemented variables to conditions inside the AGM Rule:

Condition Name Variable and Column Mappings

Acceptance Check Email AcceptanceResult, LandingPageUrl

Acceptance Check Print AcceptanceResult, LandingPageUrl

Acceptance Check SMS N / A (the last condition module of the workflow does not need to store
any data, because the job ends after it is processed)

Table 8.3 Default mappings of AGM Rule conditions for the Store Data to CSV feature

8.3.7.5 Delivery Rule Recurring Condition Dialog


Sets a condition that is repeatedly processed. It differs from a regular condition because it can be met either by
passing the amount of successful acceptance checks or by a time limit.
8 Omnichannel Coordination | 813
8.3 Using Omnichannel Coordination

Options Description

Name The name that’s displayed in the delivery rules editor.

Input Module that is being evaluated by this condition.

Interval Time interval after which the condition is repeatedly processed.

Run for Period of time for which the recurring condition runs. Processing of the condition stops either after this
amount of time or after a percentage of acceptance checks (set in the Threshold field) is passed.

Threshold Percentage of acceptance checks that must be successfully passed before moving on in the workflow.
Processing of the condition stops either after this percentage is passed or after a time limit set in the Run
for field.

Variable Name Scaler variable in response data or a column in the input CSV file. It requires a counterpart in
the backend. By default, the Scaler backend works with the AcceptanceCheck name.

Routing (Condition Met) Workflow module to be processed if the condition’s acceptance check is passed.

Routing (Condition Not Met) Workflow module to be processed if the condition’s acceptance check is not
passed.
8 Omnichannel Coordination | 814
8.3 Using Omnichannel Coordination

NOTE If you Scramble Email Addresses in Messenger, Inspire Scaler will not be able to get responses
from Messenger, and the recurring condition processing will fail.

8.3.7.6 Delivery Rule A/B Testing


The A/B testing functionality consists of two workflow modules. A delivery rule has to contain both of them and
they have to be adjacent to each other:

● A/B Testing Start – Sends the defined amount of communications through the defined channels in a test
mode. You can set different execution parameters and communication templates for each channel process
that goes through the test mode.

● A/B Testing Result – Sets the conditions that determine which version of the communication will be sent
in the rest of the batch. The remaining part of the batch is then sent through the corresponding channel
process.

AB Testing Start Dialog


8 Omnichannel Coordination | 815
8.3 Using Omnichannel Coordination

Options Description

Name Name displayed in the delivery rules editor.

Link to touch point Link to a CJM touch point. There can be a link from each of the channel processes included
in the module.

This feature is available only if you have a touch point defined inside a program in your CJM. Click the created
link to go to a detail of that touch point.

Sample size Percentage of communications from the entire batch that will be sent in the test mode.

Channel process select Channel process with the communication template. Select a channel process from the
combo box to display the customizable parameters. These settings are inherited from the Create Channel
Process dialog by default, but can be overridden for each individual channel process.

Copy settings from previous channel process Clones the settings of the preceding channel process.

ADD CHANNEL PROCESS Adds another channel process. There is no maximum limit.

AB Testing Result Dialog

Options Description

Name Name displayed in the delivery rules editor.

Scope The scope of A/B testing is always per record, i.e. the condition is always checked for each processed
item.

Link to touch point Link to a CJM touch point. Only available if you have a touch point defined inside a program
in your CJM.

Variable Name Scaler variable in response data or a column in the input CSV file (e.g. AcceptanceResult). It
requires a counterpart in the backend.

Operator The logical operation that is applied to the set variable.

Value Value of the variable that is checked using this condition (e.g. True). It requires a counterpart in the
backend.
8 Omnichannel Coordination | 816
8.3 Using Omnichannel Coordination

8.3.7.7 Edit Text Area Dialog


Creates a customizable text area in the workspace. You can use it to improve the clarity of various parts of the
delivery rule, or to annotate them.

Options Description

Bold Formats the text as bold.

Italic Formats the text as italics.

Create link / Edit link Enter an URL address to create a clickable link.

Font size (px) Font size of the text displayed in the upper-left corner of the text area.

Color Color of the background of the text area.

Border Toggles displaying of the text area border.

8.3.7.8 Saving and Publishing Delivery Rules Versions


When you are done editing a delivery rule, use the buttons at the top-right to save and publish your version.

Delivery Rules Controls

Help Opens the Quadient Cloud HTML user guide.

Delivery Rule Validation Checks the delivery rule workflow for errors that would prevent a job processing
successfully.

A workflow cannot be saved if there are errors. You can see the amount of errors present in the workflow
as a number badge over the button’s icon.

Save Draft Saves the current state of the delivery rule. It is still treated as a draft, until you publish (create)
a version.
8 Omnichannel Coordination | 817
8.3 Using Omnichannel Coordination

Delete Draft Deletes the current delivery rule draft without saving it.

Create Version Publishes a new version of the delivery rule. The last published version is always used
when processing new jobs.

Close Closes the delivery rules editor.

If you've made any unsaved changes to your delivery rule, a confirmation prompt appears before closing
the editor.

8.3.8 Permissions and Sharing Dialog

To access this dialog, select a delivery rule and click Permissions and sharing in the list of delivery rules. The
sharing logic is the same as in other sections of the application. The Permissions tab allows you to manage indi-
vidual user role’s access to the following actions in Omnichannel Coordination for the selected delivery rule:

● Create a job based on the delivery rule (this also means the given user role will only be able to display
already created jobs for which it has the Create job permission).

● Edit the delivery rule.

NOTE Roles with the Edit delivery rule permission must also have the Create job permission.

Only user roles with the Omnichannel administration permission can set permissions to delivery rules.

In the customer view, only the delivery rules that have been shared with the current user are displayed in the list
of delivery rules.
8 Omnichannel Coordination | 818
8.3 Using Omnichannel Coordination

Concurrent behavior of the permissions system


If a user who is currently creating or editing a job suddenly loses access to content used by that job (e.g. due to
another user removing his or her permissions), an error message appears immediately.

8.3.9 Templates

Omnichannel Coordination templates provide the actual content of the communications that are sent to their
recipients. You can browse and share templates with customers in this screen.

Templates listed here are the same as templates listed in the template explorer window within the Create
Channel Process dialog. The following template types are supported:

CPM Templates saved in your Customer Preference Management. They can be imported directly from the GUI.

Designer WFD files, typically saved in ICM.

Interactive JLD files, typically saved in ICM.

For more details on how to set up the backend so it displays templates here, go to Deployment Configuration.

Templates Controls

Share Template Shares the selected template with a customer.


8 Omnichannel Coordination | 819
8.3 Using Omnichannel Coordination

8.3.10 Content Sharing


Quadient Cloud companies can share the following items with their customers:

● Channel processes

● Templates

● Delivery rules

Shared items can be used by the customers in their customer view.

Notifications
When an item is shared to a customer, or if a shared item is modified, the customer will get a notification.

8.3.11 Settings

In this section of the application, you can:

● Set the connection between your Omnichannel Coordination in the cloud and Inspire Scaler version 12.3
and older on-premise (see Deployment Configuration).

IMPORTANT If you use Scaler version 12.4 and later, keep the Listener ID text box empty.
8 Omnichannel Coordination | 820
8.3 Using Omnichannel Coordination

NOTE Establishing the connection between Quadient Cloud and Inspire Scaler through the
Listener ID has been retired in Scaler version 12.3. With Scaler version 12.4 and higher, this con-
nection is established through the API Key. We keep this option here to maintain backwards
compatibility with older Scaler versions.

● Set the approval states that are used throughout Omnichannel Coordination.

Scaler connection
The colored dot and text indicate the current status of the connection between Omnichannel Coordination in
Quadient Cloud and Inspire Scaler version 12.3 and older on-premise.

Ok Last polling request from Scaler occurred less than 2 minutes ago.

Warning Last polling request from Scaler occurred between 2 and 10 minutes ago.

Error Last polling request from Scaler occurred more than 10 minutes ago.

None No connection has been made from Scaler.

Table 8.4 Possible Scaler connection statuses

Approval states
The values defined here are available throughout the application as combo box options. You can define as many
as you like.

EXAMPLE

8.3.12 Download Section


The download section contains the following files:

File Name Description

SampleApplicationTem- Sample Digital Services application template.


plate.html

SampleCPMTemplate.export Sample communication template for Customer Preference Management, used


by the sample AGM rule. Can be imported to CPM.

SampleInteractiveDeliveryR- Package with additional sample delivery rules. Can be imported to OCC in
ules<versionNumber>.occ the Delivery Rules section.
8 Omnichannel Coordination | 821
8.3 Using Omnichannel Coordination

File Name Description

SampleInteractiveTem- ICM package with a customized JLD template to be used in the Vital Insurance
plate<versionNumber>.pkg Welcome Kit (with Interactive) sample scenario.

SampleOCCPackage<versionNum- ICM package with:


ber>_Scaler<versionNum-
● Scaler WFS workflows – sample Omnichannel Coordination on-premise
ber>.pkg
backend.

● Designer WFD workflows – sample Designer-based communication


templates and supporting workflows.

IMPORTANT Make sure you use the correct PKG version compatible
with your installed Inspire Scaler version. For more information, see
Compatibility Overview.

SampleInputData.csv CSV file with a sample data structure.

SampleInputData_MobileChan- CSV file with a data structure supported by the sample gfBank MobileChannel
nel.csv rule delivery rule.

SampleInputData_VitalWel- CSV file with a data structure supported by the following additional delivery
comeKit.csv rules (available within the SampleInteractiveDeliveryRules<versionNum-
ber>.occ package):

● Vital Contact Number Change

● Vital Insurance Welcome Kit

Table 8.5 Content of the download section

8.3.13 Customer View


In Omnichannel Coordination, customers can display and access the following sections:

● Overview

● Jobs

● Channel Processes

● Delivery Rules

● Templates

WARNING When a customer’s account is deleted, all data (jobs and delivery rules) created by this cus-
tomer are deleted as well.

Overview
Customers can see the Overview dashboard with information about jobs that are also visible to them.
8 Omnichannel Coordination | 822
8.4 API Services

Jobs
Customers can create and start jobs with resources (templates, delivery rules) that have been shared with them.

Channel Processes
Customers can see channel processes that have been shared with them, but they cannot edit the global parameters.
They can edit channel process parameters on the level of delivery rules or individual jobs.

Delivery Rules
Customers can see delivery rules that have been shared with them, edit the delivery rules and create new ones,
but not import or export them. They can edit channel process parameters individually inside each delivery rule.

Templates
Customers can see templates that have been shared with them, but they cannot edit the templates, because
they are stored in the service provider’s ICM or CPM.

8.4 API Services


Public API provides remote access to the management of Omnichannel Coordination jobs and content. The fol-
lowing actions can be performed by calling the public API:

● Login – retrieve session ID

● SessionInfo – retrieve command token

● GetCompanyIdByName – retrieve company ID

● GetTemplateModifiedInfoList – retrieve templates list

● SaveTemplates – update templates list

● GetDeliveryRuleIdByName – retrieve delivery rule ID

● PublicGetDeliveryRuleListQuery – retrieve delivery rules list

● PublicExportDeliveryRuleQuery – export delivery rule

● PublicDeliveryRuleImport – import delivery rule (request)

● PublicImportDeliveryRuleGetResultQuery – import delivery rule (result)

● CsvInputFile – upload CSV input file

● CsvInputFileUploaded – check CSV input upload status

● SaveJob – create job

● PublicSaveJob – save job including CSV input

● GetJobIdByName – retrieve job ID


8 Omnichannel Coordination | 823
8.4 API Services

● StartJob – start job

● PublicGetJobDataQuery – retrieve job data

Permission Level
You require an appropriate permission level to call the public API. The permission level is determined by the user
role assigned to the authenticated user.

8.4.1 Retrieve Session-Id (Login)


Retrieves a Session-Id cookie needed for the authorization towards Quadient Cloud.

URI /api/publish/Users/Login

Format JSON

Method POST

Authentication None

Permission Level Basic User

EXAMPLE
Request body:
{
"Email":"j.doe@domain.com",
"Password":"pwd"
}

EXAMPLE
Response header:

Key Value

Set-Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadi-


entcloud.eu; path=/; secure; HttpOnly

Response body:
{
"eventId":26548511,
"time":"\/Date(1522998661145)\/"
}

8.4.2 Retrieve commandtoken (SessionInfo)


Retrieves a commandtoken needed for data modification in Quadient Cloud.
8 Omnichannel Coordination | 824
8.4 API Services

URI /api/query/Session/SessionInfo

Format –

Method POST

Authentication Session-Id

Permission Level Basic User

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

EXAMPLE
Response body:
{
"userId":1030,
"companyId":1030,
"parentTenantCompanyId":0,
"createdTime":"\/Date(1539253363396)\/",
"isAdmin":{
"isCloudAdmin":false,
"isCloudSupport":false,
"isLocalOfficeAdmin":false,
"isInstanceAdmin":false,
"isCloudAccounting":false
},
"companyName":"sweetlemon",
"autologged":false,
"commandToken":"e1d5b4f4-87e9-43e1-aa51-d1d0777b4e3b",
"impersonatorUserId":0,
"isWriteForbidden":false,
"gettingStartedShown":false,
"externalAuthProviderId":0,
"lastRefreshedToken":"\/Date(-62135596800000)\/",
"impersonatorCompanyId":0
}

8.4.3 Retrieve Company ID (GetCompanyIdByName)


Returns the ID of a company specified by its name.
8 Omnichannel Coordination | 825
8.4 API Services

URI /api/query/OmniChannel/GetCompanyIdByName

Format JSON

Method POST

Authentication Session-Id

Permission Level Omnichannel Access

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

Request body:
{
"name":"documentation"
}

EXAMPLE
Response body:
{
"id":101038
}

8.4.4 Retrieve Templates List (GetTemplateModifiedInfoList)


Returns the list of all templates that are being managed by Omnichannel Coordination.

URI /api/query/OmniChannel/GetTemplateModifiedInfoList

Format JSON

Method GET

Authentication Session-Id

Permission Level Omnichannel Administration


8 Omnichannel Coordination | 826
8.4 API Services

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

EXAMPLE
Response body:
{
"items":[
{
"category":"Designer",
"path":"scaler/default/wfd/AGM_Print.wfd",
"modified":"\/Date(1549012536494)\/"
},
{
"category":"Interactive",
"path":"Interactive/Vital/Templates/Homeowner Application.jld",
"modified":"\/Date(1549284491571)\/"
},
{
"category":"Interactive",
"path":"Interactive/Vital/Templates/Vital_WelcomeLetter.jld",
"modified":"\/Date(1549284492239)\/"
}
]
}

8.4.5 Update Templates List (SaveTemplates)


Updates the list of templates available in Omnichannel Coordination with data from the request body, including
metadata.

URI /api/publish/OmniChannel/SaveTemplates

Format JSON

Method POST

Authentication Session-Id, commandtoken

Permission Level Omnichannel Administration


8 Omnichannel Coordination | 827
8.4 API Services

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadi-


entcloud.eu; path=/; secure; HttpOnly

CommandToken f8e1f44e-f2e1-47b6-8a91-7f0205e597b4

Request body:
{
"deletedTemplates":[
{
"category":"Designer",
"path":"scaler/default/wfd/AGM_Print.wfd"
},
{
"category":"Designer",
"path":"scaler/default/wfd/AGM_Sms.wfd"
}
],
"updatedTemplates":[
{
"path":"scaler/default/wfd/AGM_Print_21.wfd",
"category":"Designer",
"modified":"/Date(1526355896748)/",
"size":576512,
"preview":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
"metadataInfos":[
{
"Name":"Name1",
"Value":[
"Value1"
]
},
{
"Name":"Name2",
"Value":[
"Value2"
]
}
]
},
{
"path":"interactive/default/wfd/AGM_Print_22.wfd",
"category":"Interactive",
"modified":"/Date(1526355896748)/",
"size":576512,
"preview":"data:image/jpeg;base64,/9j/4AAQSkZ...",
"previewLink":"http://localhost/interactive/?view=interactive"
}
8 Omnichannel Coordination | 828
8.4 API Services

]
}

NOTE The metadataInfos parameter represent an array of values that are pushed to OCC to be displayed
in Template Explorer. In our sample solution, these values are filled by ICM metadata , but you can cus-
tomize your solution to use your own metadata storage logic.

8.4.6 Retrieve Delivery Rule ID (GetDeliveryRuleIdByName)


Returns the ID of a delivery rule specified by its name.

URI /api/query/OmniChannel/GetDeliveryRuleIdByName

Format JSON

Method POST

Authentication Session-Id

Permission Level Omnichannel Access

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

Request body:
{
"Name":"AGM Rule"
}

EXAMPLE
Response body:
{
"id":100
}
8 Omnichannel Coordination | 829
8.4 API Services

8.4.7 Retrieve Delivery Rules List (PublicGetDeliveryRuleListQuery)


Returns the ID, name, description and state of all published delivery rules.

URI /api/query/OmniChannel/PublicGetDeliveryRuleListQuery

Format –

Method POST

Authentication Session-Id

Permission Level Subtenant

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

EXAMPLE
Response body:
{
"items":[
{
"id":100,
"name":"AGM rule",
"description":"Rule to send AGM invitation via email, print then SMS",
"state":"Active"
},
{
"id":101,
"name":"Bounceback rule",
"description":"Rule for bouncebacked jobs in Messenger",
"state":"Active"
},
{
"id":102,
"name":"gfBank MobileChannel rule",
"description":"Rule for sample integration with Mobile Channel",
"state":"Active"
},
{
"id":103,
"name":"AB Testing rule",
"description":"Rule to compare the result of A/B testing",
"state":"Active"
}
8 Omnichannel Coordination | 830
8.4 API Services

]
}

8.4.8 Export Delivery Rules (PublicExportDeliveryRuleQuery)


Exports one or multiple delivery rules into the native OCC format.

URI /api/query/OmniChannel/PublicExportDeliveryRuleQuery

Format JSON

Method POST

Authentication Session-Id

Permission Level Omnichannel Administration

NOTE Users calling this public API must have the Omnichannel administrator user role.

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

Request body:
{
"ExportType":"1",
"DeliveryRuleNames":[
"AGM Rule",
"Bounceback Rule"
]
}

The following export types are supported:

Request Body Description

"ExportType":"0" Exports all available delivery rules.

"ExportType":"1", "DeliveryRuleNames": ["AGM Exports the latest version of the specified delivery rules.
Rule", "Bounceback Rule"]

"ExportType":"2", "State": "Testing" Exports delivery rules with the specified approval state.
8 Omnichannel Coordination | 831
8.4 API Services

The server response to this calling contains data that you can save in the OCC format and import back to Omni-
channel Coordination.

8.4.9 Import Delivery Rules – Request (PublicDeliveryRuleImport)


Imports one or multiple delivery rules.

URI /api/upload/OmniChannel/PublicDeliveryRuleImport

Format Multipart form with OCC data

Method POST

Authentication Session-Id, commandtoken

Permission Level Omnichannel Administration

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadi-


entcloud.eu; path=/; secure; HttpOnly

CommandToken f8e1f44e-f2e1-47b6-8a91-7f0205e597b4

Request form:

Name Value Note

ApprovalState→ Production The specified approval state will be set to the imported deliv-
Name ery rules.

IsOverwrite false Boolean value that determines whether a new version of the
given delivery rule is created, or if a new delivery rule is created
(with a new name).

file Bounceback OCC file exported from the cloud.


Rule.occ

EXAMPLE
Response body:
{
"importFileId":16848
}
8 Omnichannel Coordination | 832
8.4 API Services

8.4.10 Import Delivery Rules – Result (PublicImportDeliveryRuleGetResultQuery)


Returns information about the result of the import delivery rule operation.

URI /api/query/OmniChannel/PublicImportDeliveryRuleGetResultQuery

Format JSON

Method GET

Authentication Session-Id

Permission Level Omnichannel Administration

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

Request query:

Name Value

ImportFileId 16848

EXAMPLE
Response body:
{
"conflictItems":[

],
"status":"Success"
}

8.4.11 Upload CSV Input File (CsvInputFile)


Uploads a CSV input file.

URI /api/upload/OmniChannel/CsvInputFile/{jobId}/{uploadFileGuid}

Format Multipart form

Method POST

Authentication Session-Id, commandtoken

Permission Level Subtenant


8 Omnichannel Coordination | 833
8.4 API Services

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadi-


entcloud.eu; path=/; secure; HttpOnly

commandtoken 7becb51d-9ebe-47ec-a5d6-951a8eab8580

Content-Type multipart/form-data

Request Parameter:

Key Value

jobId 0

UploadGuid 7bd98102-69e4-4dbf-ab8a-3a224701f0b9

NOTE The UploadGuid parameter must be in the standard format, but it can be any string.

EXAMPLE
Response body:
{
"eventId":3183,
"time":"\/Date(1519360292561)\/"
}

8.4.12 Check CSV Input Upload Status (CsvInputFileUploaded)


Checks whether a CSV input file has been uploaded.

URI /api/query/OmniChannel/CsvInputFileUploaded?UploadGuid={UploadGuid}

Format JSON

Method GET

Authentication Session-Id

Permission Level Subtenant


8 Omnichannel Coordination | 834
8.4 API Services

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

Request parameter:

Key Value

UploadGuid 7bd98102-69e4-4dbf-ab8a-3a224701f0b9

EXAMPLE
Response body:
{
"isUploaded":false
}

8.4.13 Create Job (SaveJob)


Creates a job with the specified parameters.

URI /api/publish/OmniChannel/SaveJob

Format JSON

Method POST

Authentication Session-Id, commandtoken

Permission Level Subtenant

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadi-


entcloud.eu; path=/; secure; HttpOnly

commandtoken 7becb51d-9ebe-47ec-a5d6-951a8eab8580

Request body:
8 Omnichannel Coordination | 835
8.4 API Services

{
"JobId":0,
"Name":"Demo",
"Description":"",
"CsvInputUploadGuid":"7bd98102-69e4-4dbf-ab8a-3a224701f0b9",
"DeliveryRuleId":100,
"JobParameters":[

],
"RetentionDays":90
}

EXAMPLE
Response body:
{
"eventId":3182,
"time":"\/Date(1519360292561)\/"
}

8.4.14 Save Job Including CSV Input (PublicSaveJob)


Creates or modifies a job with the specified parameters. Uploads a CSV input file.

URI /api/query/OmniChannel/PublicSaveJob

Format JSON

Method POST

Authentication Session-Id, commandtoken

Permission Level Subtenant

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadi-


entcloud.eu; path=/; secure; HttpOnly

commandtoken 7becb51d-9ebe-47ec-a5d6-951a8eab8580

Request body:
{
"SubtenantCompanyId": 101118,
8 Omnichannel Coordination | 836
8.4 API Services

"JobId": 125718694,
"Name": "Job Created Through API",
"Description": "Job description",
"CsvFileName": "Sample.csv",
"CsvFileContent": "Q3VzdElELEN1c3ROYW1lLEN1c3RNaWQsQ3VzdFN1cixDdXN0R2Vu→
LEN1c3RDb21wYW55LEN1c3RTdHJlZXQsQ3VzdENpdHksQ3VzdFpJUCxDdXN0Q291bnRyeSxDdXN0U3RhdGUsQ291bnRyeUxvb→
mcsTWFuYWdlcixFbWFpbCxQaG9uZSxMYW5kaW5nUGFnZQ0KNCxNaWNoZWwsLExvdXZpb3QsTXIuLCxydWUgZGUgTGFycm→
lldSxCb3JkZWF1eCw2NTQxOCxGLCxGcmFuY2UsUGllcnJlIERhc3NhdWx0LGdhbW5oMjAwQGZzb2Z0LmN→
vbS52biw0LjQ3NzAxRSsxMSxMYW5kaW5nUGFnZQ==",
"DeliveryRuleId": 100,
"JobParameters": [],
"RetentionDays": 90,
"CustomFieldValues": [],
"IsSimplifiedData": false
}

NOTE The CsvFileContent parameter is a Base64 hash of the CSV input file’s binary.

When the IsSimplifiedData parameter is set to true, the CSV input file does not have to contain the
otherwise mandatory Email column.

EXAMPLE
Response body:
{
"jobId": 125718694
}

8.4.15 Retrieve Job ID (GetJobIdByName)


Returns the ID of a job specified by name.

URI /api/query/OmniChannel/GetJobIdByName

Format JSON

Method POST

Authentication Session-Id

Permission Level Omnichannel Access


8 Omnichannel Coordination | 837
8.4 API Services

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

Request body:
{
"Name":"Demo"
}

EXAMPLE
Response body:
{
"id":103
}

8.4.16 Start Job (StartJob)


Starts the specified job.

URI /api/publish/OmniChannel/StartJob

Format JSON

Method POST

Authentication Session-Id, commandtoken

Permission Level Subtenant

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadi-


entcloud.eu; path=/; secure; HttpOnly

commandtoken 7becb51d-9ebe-47ec-a5d6-951a8eab8580

Request body:
8 Omnichannel Coordination | 838
8.4 API Services

{
"JobId":2213
}

EXAMPLE
Response body:
{
"eventId":3183,
"time":"\/Date(1519360292561)\/"
}

8.4.17 Retrieve Job Data (PublicGetJobDataQuery)


Returns processing information about a job. It can only be called by a master tenant.

URI /api/query/OmniChannel/PublicGetJobDataQuery?JobId=<jobId>

Format –

Method GET

Authentication Session-Id

Permission Level Subtenant

EXAMPLE
Request header:

Key Value

Cookie Session-Id=573bb397-0fdd-4ac0-b097-c2955d5e1acf; domain=<company>.quadientcloud.eu;


path=/; secure; HttpOnly

EXAMPLE
Response body:
{
"jobId":7217,
"jobName":"AB Testing Job",
"processingState":"Finished",
"finalState":"Successful"
}
8 Omnichannel Coordination | 839
8.5 Sample Solutions and Configuration Examples

If any error occurs during the job processing, the API response will also include more detailed information
about the error, e.g.:
{
"jobId":1194,
"jobName":"job1",
"processingState":"Failed",
"finalState":"NotApplicable",
"errorDetail":{
"queueStamp":1,
"scalerError":{
"startedDate":"2018-07-09T10:25:49+7:9",
"jobId":"13099",
"workFlowName":"WorkFlowName4",
"errorDescription":"ErrorDescription8"
}
}
}

8.5 Sample Solutions and Configuration Examples


Omnichannel Coordination contains a number of preconfigured scenarios (in the form of delivery rules) that
cover the major use cases of the application. We recommend to use these preconfigured delivery rules as a
starting point for creating your own use cases.

The following delivery rules are available in the application upon its activation:

● AB Testing Rule

● AGM Rule

● Bounceback Rule

● gfBank MobileChannel Rule

Additional sample delivery rules are available in the SampleInteractiveDeliveryRules<versionNumber>.occ file


in the download section:

● SMS Reply Rule

● Vital Contact Number Change

● Vital Insurance Welcome Kit

● Vital Insurance Welcome Kit (with Interactive)

You can import the file in the Delivery Rules section.


8 Omnichannel Coordination | 840
8.5 Sample Solutions and Configuration Examples

8.5.1 Deployment Configuration


Omnichannel Coordination should be configured individually based on production capabilities of the service
provider. The following steps apply when creating a fresh environment based on our sample solutions:

1. Sign in to Quadient Cloud as a company administrator.

2. Download the SampleOCCPackage<versionNumber>_Scaler<versionNumber>.pkg file from the Download


Section.

IMPORTANT If multiple Omnichannel packages are available in the download section, you need
to make sure you download the correct version for your available backend. See Compatibility
Overview.

3. Import the package to ICM.

TIP To keep your ICM clean and organized, make sure you don't have a folder named scaler in
your ICM-root before importing the package. For example, you can rename your existing scaler
folder, so that you do not lose any data.

4. In ICM Explorer, go to Users | Users, right click the admin user (or a user that manages the IPS service
that is connected to ICM) and select Edit User.

5. On the Quadient Cloud tab, fill in your Quadient Cloud authentication info and get an authentication token.

EXAMPLE Obtaining a Quadient Cloud token in ICM Explorer

6. Start Inspire Scaler and go to the ADMINISTRATION tab .

7. Go to Environment Properties | Environment Variables and set environment variables.


8 Omnichannel Coordination | 841
8.5 Sample Solutions and Configuration Examples

8. Go to Integration | Cloud Connections and, depending on your Scaler version:

● For Scaler version 12.3 and earlier, generate a Listener ID and copy it to the Listener ID text box
in Omnichannel Coordination’s settings.

● For Scaler version 12.4 and later, add a Cloud Connection and update the OCC Input module of
your backend workflow (Omnichannel.wfs by default):

a) Go to the WORKFLOWS tab and open the Omnichannel workflow.

b) Click Create Workflow Draft.

c) Double-click the OCC Input module. If you have an older version of the module, an update prompt
appears. Confirm the update to change the module structure.

d) In the Cloud alias combo box, select the API Key that you've defined on the Cloud Connections
screen.

e) Click OK to update the module settings.

NOTE The API key needed for the creation of the cloud connection to Scaler version 12.4 and
later is created in the Administration of your Quadient Cloud company.

9. In Inspire Scaler’s WORKFLOWS tab , deploy backend workflows.


8 Omnichannel Coordination | 842
8.5 Sample Solutions and Configuration Examples

EXAMPLE Deployed workflows contained in the sample ICM package distributed in the
Download Section

10. Return to OCC. Before you can send your first communication, you also need to set up:

● Channel process types

● Channel processes

● Delivery rules

8.5.2 Scaler Environment Variables Overview


The following Inspire Scaler environment variables are used by various sample workflows. If you wish to use
the sample solution, all of them need to be created, but you can leave the values of those you don't use empty.

designer-template-folder Path to the ICM folder with Designer WFD communication templates (e.g.:
icm://scaler/default/wfd).

ii-occ-csvFile-header Header of the CSV input file created through integration with Inspire In-
teractive. You can use a comma or semicolon as the value separator.

ii-url URL address of Inspire Interactive (e.g.: http://<ip_address>:<port>/in→


teractive).

interactive-template-folder Path to the ICM folder with Interactive JLD communication templates (e.g.:
icm://Interactive/Vital/Templates).
8 Omnichannel Coordination | 843
8.5 Sample Solutions and Configuration Examples

omni-enable-lock-template-ver- Boolean value that manages locking template versions:


sion
● true – Jobs are processed using the communication template ver-
sion that is published in ICM at the time of the job submission.

● false – Jobs are processed using the template version published


in ICM at the time of the job processing.

omni-hotfolder Path to your hotfolder (e.g.: C:\Hotfolder).

omni-sharefolder Path to your sharefolder (e.g.: C:\Sharefolder).

quadient-cloud-mobile-apiKey API key to connect Scaler with Digital Services. The value must be enclosed
in double quotation marks, e.g. "qIVRAqBW47a+q3e5UsyLaLXr8JKnjy→
oJEn6F1gLI9rQ=".

quadient-cloud-mobile-applica- ID of an application in Digital Services.


tionId

quadient-cloud-passwd Password associated with your Quadient Cloud account. Use the Pass-
word type.

quadient-cloud-url The URL address of your Quadient Cloud company (e.g.: https://<com→
pany_name>.quadientcloud.eu).

quadient-cloud-user Email address with which you log in to your company account.

schedule-time-to-query-tem- Timer of a scheduled operation that checks for templates (done by the
plates OmniQueryTemplates.wfs workflow) in the set ICM folders in the quartz
cron format (e.g.: 0 */15 * * * ? for a check every 15 minutes).

schedule-time-to-submit-interact- Timer of a scheduled operation that starts an Omnichannel Coordination


ive-job job with the data collected through integration with Inspire Interactive.
The format accepted is quartz cron.

Table 8.6 Inspire Scaler environmental variables

TIP The schedule-time-to-query-templates environment variable sets a timer for regular check for tem-
plates, but you can also run the associated script inside the OmniQueryTemplates workflow manually
through Scaler’s Test Job mode , and update the template explorer content immediately.

8.5.3 Scaler Workflows Description


The following WFS Inspire Scaler workflows are distributed in the download section within the SampleOCCPack-
age<versionNumber>_Scaler<versionNumber>.pkg ICM package:

WFS Name Description

OmniHoldProcessTick- Collects data entered into an Interactive Process ticket and saves it locally.
ets.wfs

OmniHoldStandardTick- Collects data entered into an Interactive Standard ticket and saves it locally.
ets.wfs
8 Omnichannel Coordination | 844
8.5 Sample Solutions and Configuration Examples

WFS Name Description

OmniHotFolder.wfs Monitors the hotfolder in real time, so that whenever a CSV data input file is
copied there, an Omnichannel Coordination job is immediately started.

Omnichannel.wfs Manages the processing of jobs and the ability to load the data structure directly
from Scaler.

OmniInteractivePro- Collects data entered into an Interactive Process ticket and starts an Omnichannel
cess.wfs Coordination job.

OmniInteractiveStand- Collects data entered into an Interactive Standard ticket and starts an Omnichan-
ard.wfs nel Coordination job.

OmniQueryTemplates.wfs Periodically reads the content of certain ICM folders (specified by the designer-
template-folder and interactive-template-folder environmental variables )
and of your CPM, and feeds it to the list of templates available in Omnichannel
Coordination.

OmniSubmitInteractive- Periodically creates Omnichannel Coordination jobs with input data collected
Job.wfs by the OmniHoldProcessTickets.wfs and OmniHoldStandardTickets.wfs workflows.

Table 8.7 Overview of WFS Scaler workflows for Omnichannel Coordination

8.5.3.1 Omnichannel.wfs

The Omnichannel.wfs Scaler workflow is our configuration example of the backend of Omnichannel Coordination
(OCC). It manages the processing of jobs created and started in the OCC GUI.
8 Omnichannel Coordination | 845
8.5 Sample Solutions and Configuration Examples

Processing logic
The workflow is triggered when it receives a job task from OCC. It parses OCC metadata, processes the task and
returns a result back to OCC. The task can originate either from a channel process action or from a condition.

OCC Input
This module connects to the source from Quadient Cloud. The connection is created using an API Key (Cloud side)
and Cloud Connection (Scaler side).

OCC Output
Returns processing data back to the Cloud.

Used custom modules


Below we describe the custom modules used in this Scaler workflow, so that you can configure it for your own
custom solution.

Store Metadata
Name Omni_ParseMetadata

Purpose Parses metadata received from OCC.

Input

metadata Data received from OCC

Output

metadataPath Path to the metadata storage

jobId ID of the job in OCC

queueStamp ID of the current task

recordCount Amount of records in the input CSV file

channelParameters Parameters of the channel process action

retentionDays Retention period set in the Cloud

batchId ID of the job in CPM or Messenger

recordInfoFile Path to the record info file

jobStartedDate Start date of the job

Environment Variables

quadient-cloud-url

quadient-cloud-user

quadient-cloud-passwd
8 Omnichannel Coordination | 846
8.5 Sample Solutions and Configuration Examples

Store Input Records


Name Omni_StoreInputRecord

Purpose Prepares the CSV input file before processing the task with a channel process action.

Input

body Request body

queueStamp ID of the current task

jobId ID of the job in OCC

recordCount Amount of records in the input CSV file

Output

recordInputPath Path to the CSV file

Environment Variable

omni-sharefolder

Email
Name OmniEmail

Purpose Handles emails on the template specified by the corresponding channel process of the Email type, i.e.
CPM and WFD Designer templates.

Input

metadataPath Request body

recordInputPath Path to the CSV file

batchId Batch ID of the previous task

jobId ID of the job in OCC

queueStamp ID of the current task

channelParameters Parameters of the channel process action

recordCount Amount of records in the input CSV file

retentionDays Retention period set in the Cloud

recordInfoPath Path to record info file

sender Custom value entered in the OCC GUI

subject Custom value entered in the OCC GUI

sendWithDC Sends email with DC (WFD and Messenger only)

jobStartedDate Start date of the job


8 Omnichannel Coordination | 847
8.5 Sample Solutions and Configuration Examples

Output

ReplyData Data that will be sent back to OCC

Environment Variable

omni-enable-lock-template-version

SMS
Name OmniSMS

Purpose Handles SMSes on a template specified by the corresponding channel process of the SMS type.

Input

metadataPath Request body

recordInputPath Path to the CSV file

batchId Batch ID of the previous task

jobId ID of the job in OCC

queueStamp ID of the current task

channelParameters Parameters of the channel process action

recordCount Amount of records in the input CSV file

retentionDays Retention period set in the Cloud

recordInfoPath Path to record info file

jobStartedDate Start date of the job

Output

ReplyData Data that will be sent back to OCC

Environment Variable

omni-enable-lock-template-version

Print and Mail


Name OmniPrintAndMail

Purpose Handles print documents on the template specified by the corresponding channel process of the
PrintAndMail type.
8 Omnichannel Coordination | 848
8.5 Sample Solutions and Configuration Examples

Input

metadataPath Request body

recordInputPath Path to the CSV file

jobId ID of the job in OCC

queueStamp ID of the current task

channelParameters Parameters of the channel process action

recordCount Amount of records in the input CSV file

recordInfoPath Path to record info file

outputFolder Path to the output folder

jobStartedDate Start date of the job

Output

ReplyData Data that will be sent back to OCC

Environment Variable

omni-enable-lock-template-version

Mobile
Name OmniMobile

Purpose Handles mobile documents on the template specified by the corresponding channel process of the
Mobile type.

Input

metadataPath Request body

recordInputPath Path to the CSV file

jobId ID of the job in OCC

queueStamp ID of the current task

channelParameters Parameters of the channel process action

recordCount Amount of records in the input CSV file

recordInfoPath Path to record info file

mobileApplicationId ID of the Digital Services application associated


with the channel process

metadataName Name of the document metadata


8 Omnichannel Coordination | 849
8.5 Sample Solutions and Configuration Examples

metadataValue Value of the document metadata

jobStartedDate Start date of the job

Output

ReplyData Data that will be sent back to OCC

Environment Variable

omni-enable-lock-template-version

Get Result
Name OmniGetResult

Purpose Gets the result of tasks of the Action type – the Email, Mobile and SMS tasks.

Input

metadataPath Request body

recordInfoPath Path to record info file

batchId Batch ID of the previous task

Output

ReplyData Data that will be sent back to OCC

Environment Variable N/A

Get Result Repetitive


Name OmniResultRepetitive

Purpose Gets the result of tasks determined by recurring conditions.

Input

metadataPath Request body

recordInfoPath Path to record info file

batchId Batch ID of the previous task

Output

ReplyData Data that will be sent back to OCC

Environment Variable N/A


8 Omnichannel Coordination | 850
8.5 Sample Solutions and Configuration Examples

8.5.3.2 OmniHotFolder.wfs

The OmniHotFolder.wfs Scaler workflow prepares data from an on-premise storage system to create and run
OCC jobs.

Processing logic
The workflow is triggered upon copying a file with a CSV extension to the hotfolder. The file is used as an input
file for an OCC job. Naming convention of the CSV file determines what delivery rule is used. The script modules:

● Get and set values of all parameters needed for the OCC job.

● Run a WFD workflow that creates the OCC job.

● Clean up working files.

Hot-Folder Input
Takes the CSV file that is copied to the hotfolder.

Output
N/A.

Environment Variables

omni-hotfolder

omni-sharefolder

quadient-cloud-passwd

quadient-cloud-url

quadient-cloud-user

8.5.3.3 OmniQueryTemplates.wfs
8 Omnichannel Coordination | 851
8.5 Sample Solutions and Configuration Examples

The OmniQueryTemplates.wfs Scaler workflow saves to OCC information about templates stored in Inspire Content
Manager. More specifically, it does the following:

● collects templates saved at locations specified by Scaler environment variables,

● reads those templates’ metadata and sends it to OCC,

● sends thumbnails of the templates to OCC.

TIP With this example implementation, it is very easy to add new metadata to filter the templates by in
the OCC GUI. Simply add a new metadata item to a template in ICM and call the SaveTemplates API service
or run this WFS Scaler workflow. The newly added metadata item will appear in the template explorer.

Processing logic
The workflow is triggered in scheduled time intervals configured via the Scheduled Input module. The script
module collects WFD and JLD templates information and passes it to OCC, so it can be displayed in the template
selector when creating channel processes.

Scheduled Input
Triggers the workflow at the specified time.

Output
N/A.

Environment Variables

designer-template-folder

ii-url

interactive-template-folder

quadient-cloud-passwd

quadient-cloud-url

quadient-cloud-user

schedule-time-to-query-templates

8.5.3.4 OmniInteractiveProcess.wfs / OmniInteractiveStandard.wfs

The OmniInteractiveProcess.wfs Scaler workflow collects data entered into an Interactive Process ticket and
uses it to start an OCC job. The OmniInteractiveStandard.wfs Scaler workflow collects data entered into an In-
teractive Standard ticket and uses it to start an OCC job.
8 Omnichannel Coordination | 852
8.5 Sample Solutions and Configuration Examples

Processing logic
The workflow is triggered when it receives a ticket from Interactive. The script modules:

● Unzip the data file received from Interactive and create a CSV file from it.

● Run a WFD workflow that creates an OCC job.

● Clean up working files.

Interactive Input
An object received from the endpoint in Interactive Output .

Output
N/A.

Environment Variables

ii-occ-csvFile-header

omni-sharefolder

quadient-cloud-passwd

quadient-cloud-url

quadient-cloud-user

8.5.3.5 OmniHoldProcessTickets.wfs / OmniHoldStandardTickets.wfs

The OmniHoldProcessTickets.wfs Scaler workflow collects data entered into an Interactive Process ticket and
saves it locally for a later processing. The OmniHoldStandardTickets.wfs Scaler workflow collects data entered
into an Interactive Standard ticket and saves it locally for a later processing.

Processing logic
The workflow is triggered when it receives a ticket from Interactive. The script modules:

● Unzip the data file received from Interactive and create a CSV file from it.

● Save the data locally to the sharefolder.

Interactive Input
An object received from the endpoint in Interactive Output .

Output
N/A.
8 Omnichannel Coordination | 853
8.5 Sample Solutions and Configuration Examples

Environment Variables

ii-occ-csvFile-header

omni-sharefolder

8.5.3.6 OmniSubmitInteractiveJob.wfs

The OmniSubmitInteractiveJob.wfs Scaler workflow periodically collects data from the sharefolder and submits
it to Scaler for processing as OCC jobs.

Processing logic
The workflow is triggered on a set schedule. The script modules:

● Prepare metadata related to the OCC job.

● Collect input data from the sharefolder and start the OCC job.

● Clean up working files.

Scheduled Input
Starts the workflow in intervals defined by the schedule-time-to-submit-interactive-job environment variable.

Output
N/A.

Environment Variables

omni-sharefolder

quadient-cloud-passwd

quadient-cloud-url

quadient-cloud-user

schedule-time-to-submit-interactive-job
8 Omnichannel Coordination | 854
8.5 Sample Solutions and Configuration Examples

8.5.4 Integration with Inspire Interactive


You can submit Inspire Interactive ticket data directly to Omnichannel Coordination. This allows you to add a
recipient from Interactive to an Omnichannel Coordination campaign. There are different ways to submit ticket
data:

● Create an Interactive ticket and let Scaler process it immediately after submitting the ticket data as a
separate Omnichannel job.

● Create an Interactive ticket, save the data to a CSV file and use a workflow that schedules automatic
processing (e.g. “start an Omnichannel job once per day with the input data collected from Interactive
tickets”).

NOTE Our solution cannot be used with Mail Merge tickets.

Components of the Solution


The integration between Inspire Interactive and Omnichannel Coordination is managed by these Scaler workflows:

● OmniHoldProcessTickets.wfs

● OmniHoldStandardTickets.wfs

● OmniInteractiveProcess.wfs

● OmniInteractiveStandard.wfs

● OmniSubmitInteractiveJob.wfs

Connection Settings
You have to define the connection between Inspire Interactive and your company in Quadient Cloud in Interactive
Administration .

Data Mapping
You have to map the data structure of your Interactive ticket to the data structure accepted by Omnichannel
Coordination. This is done by matching the Path parameter (variable in Interactive) with the appropriate Name
parameter (variable in Omnichannel) in the dataStructure.json file, located at:

icm-root://Interactive/<company_name>/.config

EXAMPLE dataStructure.json
{
"Variables":[
{
"Name":"CustName",
"VarType":"String",
"Type":"Variable",
"Path":"Name"
8 Omnichannel Coordination | 855
8.5 Sample Solutions and Configuration Examples

},
{
"Name":"CustSur",
"VarType":"String",
"Type":"Variable",
"Path":"Surname"
},
{
"Name":"Email",
"VarType":"String",
"Type":"Variable",
"Path":"Email"
}
]
}

Interactive Settings
The request to trigger the integration with Omnichannel Coordination is included in an Interactive approval pro-
cess – you have to create a SendToScalerOperation operation and link it with the desired delivery rule.

EXAMPLE A SendToScalerOperation configuration for an endpoint in OmniHoldStandardTickets.wfs

Depending on what Scaler WFS workflow’s endpoint you refer it to, this operation results in either:

● Starting a new Omnichannel Coordination job with the data entered into the Interactive ticket.

● Adding a record to the CSV file which is used as the input for an Omnichannel Coordination job and
started periodically according to the corresponding workflow’s settings.
8 Omnichannel Coordination | 856
8.5 Sample Solutions and Configuration Examples

8.5.5 Preconfigured Channel Processes


By default, Omnichannel Coordination contains preconfigured channel processes listed below. Each of them ref-
erences a specific preconfigured template.

● AGM Email – Uses a CPM (Customer Preference Management) template to send emails with a subject
specified by the Subject parameter and with its Sender specified by the Sender parameter. Import the
demo template from the Download Section to your CPM.

● AGM On Premise Print & Mail – Uses the ICM-root\scaler\default\wfd\AGM_Print.wfd Designer workflow
and prints the communications as PDF files to a folder defined by the OutputFolder variable.

● AGM Sms – Uses the ICM-root\scaler\default\wfd\AGM_Sms.wfd Designer workflow and sends text
messages through Messenger to phone numbers specified in a CSV data input file.

● gfBank Email – Uses the ICM-root\scaler\default\wfd\gfBankWelcome.wfd Designer workflow and sends


emails through Messenger as the sender defined by the Sender variable to addresses specified in a
CSV data input file.

● gfBank MobileChannel – Uses the ICM-root\scaler\wfd\gfBankRetailBankingStatement.wfd Designer


workflow to send a document to the inbox of a mobile application.

● gfBank welcome print – Uses the ICM-root\scaler\default\wfd\gfBankWelcome.wfd Designer workflow


and prints the communications as PDF files to a folder defined by the OutputFolder variable.

8.5.6 Preconfigured WFD Templates


The following sample communication templates are contained in the SampleOCCPackage<versionNumber>_Scaler<ver-
sionNumber>.pkg ICM package, located in the Download Section:

File Name Type Used In

AGM_Print.wfd PDF AGM rule

AGM_Sms.wfd SMS AGM rule

AGM_SMS_CollectData.wfd SMS SMS Reply Rule

gfBankRetailBankingStatement.wfd DC Document gfBank MobileChannel rule

gfBankWelcome.wfd E-mail, PDF Bounceback rule

Vital_Contact_Change_BannerCon- In-App Message Vital Contact Number Change


tent.wfd

Vital_Contact_Change_Sms.wfd SMS Vital Contact Number Change

Vital_WelcomeKit.wfd Email Vital Insurance Welcome Kit, Vital Insurance Wel-


come Kit (with Interactive)

Vital_WelcomeKit_Email.wfd Email Vital Insurance Welcome Kit

Vital_WelcomeKit_Reminder_Noti- Push Notification Vital Insurance Welcome Kit, Vital Insurance Wel-
fication.wfd come Kit (with Interactive)

Vital_WelcomKit_Sms.wfd SMS Vital Insurance Welcome Kit (with Interactive)

Table 8.8 Default WFD Templates for Sample Solutions


8 Omnichannel Coordination | 857
8.5 Sample Solutions and Configuration Examples

NOTE Importing the SampleOCCPackage<versionNumber>_Scaler<versionNumber>.pkg ICM package puts


the above listed WFD files into the ICM-root\scaler\default\wfd folder of ICM.

8.5.7 Preconfigured Delivery Rules


This section describes the delivery rules used by our sample scenarios.

AB Testing Rule
This delivery rule manages a sample scenario where 20 % of communications from a batch are sent in a test
mode through two modifications of the AGM Email channel process. After evaluating which version generated
more recipient interaction, the rest of the communications are sent through that channel process modification.

Scaler data structure for the AB Testing rule


The Scaler backend operates with the following variables declared in the AB Testing rule’s workflow modules:

Workflow Module Name Variable Name Description

AbTesting Start Sender Email address that will be used as the sender of the emails.

AbTesting Start Subject Subject of the email message. If empty, the email’s subject
will be determined by the CPM template.

AbTesting Result AcceptanceRes→ The value of this variable is set by CPM response data to either
ult True or False based on whether the recipient opened the AGM
sign up landing page and performed the sign up action or not.

Table 8.9 AB Testing rule variables

AGM Rule
This delivery rule manages a sample scenario where invitation emails for an Annual General Meeting (AGM) are
sent to a number of recipients though Customer Preference Management (CPM). Clicking on a link in the email
takes the user to a sign up landing page for the AGM event.

CPM collects information about users who signed up for the event. After 10 days, Inspire Scaler evaluates the
data in an acceptance check:

● If at least 30 % of the recipients accepted the invitation, the job ends as successful.

● If the response rate is lower than 30 %, PDF documents with a QR code link to the sign up page are created.
These PDFs can be sent as mailpieces to recipients who haven't yet signed up for the event.

Another acceptance check is done after 7 days. If the response rate is still lower than 30 %, an SMS is sent to
recipients who haven't yet signed up for the event. If, after a third (and final) acceptance check, the response rate
is still lower than 30 %, the job ends as failed.

CPM template
To successfully run the AGM rule scenario, you need to download the SampleCPMTemplate.export CPM template
from the download section, and then upload it to the Templates section of CPM.
8 Omnichannel Coordination | 858
8.5 Sample Solutions and Configuration Examples

Scaler data structure for the AGM rule


The Scaler backend operates with the following variables declared in the AGM rule’s workflow modules:

Workflow Module Name Variable Name Description

Email Sender Email address that will be used as the sender of the emails.

Email Subject Subject of the email message. If empty, the email’s subject
will be determined by the CPM template.

On Premise Print & Mail OutputFolder Path to the folder where the created documents will be stored
in PDF format.

SMS N/A The AGM SMS workflow module does not use any special
variables.

Acceptance Check Email AcceptanceRes→ The value of this variable is set by CPM response data to either
/ Print / SMS ult True or False based on whether the recipient opened the AGM
sign up landing page and performed the sign up action or not.

Table 8.10 AGM Rule variables

Bounceback Rule
This delivery rule manages a sample scenario where emails are sent to a number of recipients through Messenger
and further monitored using Inspire capabilities.

After 48 hours, Inspire Scaler collects data about the delivery status of these emails and decides the following
course of action for each of those emails:

● No further action if the email was delivered successfully.

● Print the email as a PDF using the gfBank welcome print channel process if the email bounced (if it was
not delivered).

Scaler data structure for the Bounceback Rule


The Scaler backend operates with the following variables declared in the Bounceback Rule’s workflow modules:

Workflow Module Name Variable Name Description

Email Sender Email address that will be used as the sender of the emails.

Email Subject Subject of the email message. If empty, the email’s subject will
be determined by the WFD template.

Low Volume Print OutputFolder Path to the folder where the created documents will be stored
as PDF files.

Bounced check DeliveryStatus The value of this variable is set by Messenger response data
to either Undelivered, Delivered, or Bounced based on the deliv-
ery status of the email.

Table 8.11 Bounceback Rule variables


8 Omnichannel Coordination | 859
8.5 Sample Solutions and Configuration Examples

gfBank MobileChannel Rule


This delivery rule manages a sample scenario where a bank account statement is uploaded to the inbox of a
mobile application, a push notification about this event is sent to the mobile device, and the delivery status of
this notification is tracked using Digital Advantage Suite capabilities.

Scaler data structure for the gfBank MobileChannel rule


The Scaler backend operates with the following variables declared in the gfBank MobileChannel rule’s workflow
modules:

Workflow Module Name Variable Name Description

Mobile Channel N/A The gfBank MobileChannel workflow module does not use
any special variables.

Notification check IsNotifica→ The value of this variable is set by Digital Services re-
tionDelivered sponse data to either True or False based on whether the
push notification was delivered or not.

Table 8.12 gfBank MobileChannel rule variables

TIP Digital Services also returns a True or False value for a variable named IsOpenedFromNotification.
After making the corresponding adjustments to this delivery rule, you can also track whether the mobile
application user opened the bank account statement directly from the push notification.

SMS Reply Rule


This delivery rule manages a sample scenario where an SMS is sent to clients, informing them about the intention
to invite them for an Annual General Meeting through email. The SMS asks the clients to verify whether the indic-
ated email is correct and, if not, to reply to that SMS with a correct email address. After a specified amount of
time, the system checks any incoming replies and passes their content to CPM, so that the Annual General
Meeting invitation can be sent to correct email addresses.

This delivery rule is available within the SampleInteractiveDeliveryRules<versionNumber>.occ package in the


Download Section.

Vital Contact Number Change


This delivery rule manages a sample scenario where an in-app notification is sent to an application built on Di-
gital Advantage SDK . The system then waits for a specified amount of time and checks whether the notification
was opened by the client. If not, it sends an SMS to all clients who did not open the notification.

Vital Insurance Welcome Kit


This delivery rule manages a sample scenario where a Dynamic Communications document is sent to the inbox
of an application built on Digital Advantage SDK, with an accompanying push notification. After a specified
amount of time, the system checks whether the document was opened by the client and sends a reminder push
notification to all clients who did not open the document. After waiting for a specified amount of time and
checking whether the document was opened after this second notification, the system then sends a reminder
email to all clients who did not open the document.
8 Omnichannel Coordination | 860
8.5 Sample Solutions and Configuration Examples

Vital Insurance Welcome Kit (with Interactive)


This delivery rule manages the Vital Insurance Welcome Kit scenario with some extra steps:

● Two more channels are used.

● Modified Interactive email template is used for the Vital Email and Vital Print channel process types

NOTE This template requires its master template to be set to have the same input/output as the
input/output expected by Omnichannel Coordination.

8.5.8 Hotfolder and Sharefolder


For data security reasons, Omnichannel Coordination offers an option to handle all sensitive data on an on-
premise storage system, leveraging the so-called Hotfolder. By using the Hotfolder, you can prevent sending
customer sensitive data to Quadient Cloud.

Sharefolder is used as a working directory for temporary files necessary for the Inspire Scaler backend to function
correctly.

In the sample configuration, Inspire Scaler monitors the Hotfolder and automatically starts Omnichannel Coordin-
ation jobs if certain conditions are met. See How to Create Jobs Using Hotfolder.

8.5.9 Running a Demo Job


This chapter describes how to run a demo job:

1. Make sure your Scaler workflows are properly configured.

2. Investigate the preconfigured delivery rules to see how the job is going to be processed. For testing pur-
poses, it is also advisable to reduce the Delayed timer in transition tasks, so that you can easily observe
the results.

If you’ve made any changes to the delivery rule, save them and publish (create) a version using the controls
in the top-right corner.

3. Create a new job using your modified delivery rule.

4. Run the job and observe the results.

How to Run Jobs Using Hotfolder


1. Name your CSV input file according to the following key:

[<DeliveryRuleName>]<FileName>.csv
8 Omnichannel Coordination | 861
8.5 Sample Solutions and Configuration Examples

EXAMPLE [AGM rule]Customers.csv

2. Make sure you have correctly set up the omni-hotfolder and omni-sharefolder environment variables in
Inspire Scaler – they must reference your hotfolder or sharefolder, respectively. For more information, see
Scaler Workflows Configuration.

3. Copy the CSV input file into your hotfolder. If it’s valid, it will be immediately processed using the sharefolder.
If an invalid file is copied to the hotfolder, two log files with a description of potential errors are created
in the hotfolder.

How to Run a Mobile Channel Job


Mobile channel jobs are specific in that they use a different CSV input file structure than other types of jobs. Follow
these steps:

1. Make sure you have a functional inbox application. See Creating Mobile and Web Applications for a sim-
plified guide to creating a sample Digital Services application.

2. Make sure you have correctly set up the quadient-cloud-mobile-apiKey and quadient-cloud-mobile-ap→
plicationId environment variables in Inspire Scaler – they must reference your Quadient Cloud API key
and your Digital Services application.

3. Prepare your CSV input file. It must contain a column named clientId to designate to whom the commu-
nications will be delivered. You can use the SampleInputData_MobileChannel.csv file, available in the
download section.

4. Create a job based on the gfBank MobileChannel rule delivery rule and run it.

8.5.10 Creating Mobile and Web Applications


This section provides a simplified guide on how to create a mobile or web application that can be used to run
certain sample scenarios. For more details on how to create Digital Services applications, see Digital Services
User Guide.

1. Create a new user store.

2. Create a new client in that user store:

● Enter a valid email.

● Enable instant client approval.

● Set up a password.

3. Create a new application:

● Type – B2C; upload an application icon; check allow document sharing.

● Inspire authentication – On

● User store specification – Select the user store that you created in the first step

● Activate notifications – On
8 Omnichannel Coordination | 862
8.5 Sample Solutions and Configuration Examples

● Metadata – None

● Enable activate build options and upload a sign certificate and splashscreen icon. For more inform-
ation on app signing, visit, e.g.:

https://developer.android.com/studio/publish/app-signing

● Events monitoring – Off

4. Create a new Data Communication service.

5. Manage content of the created application:

● Upload an application template:

○ Template file – HTML file with your application template (you can use the SampleApplicationTem-
plate.html sample template, available in the download section)

EXAMPLE
If you use SampleApplicationTemplate.html, you need to edit the head of the file and asso-
ciate it with your Quadient Cloud company:
<script type="text/javascript">var CLOUD_APP_ID = "1932029";
var CLOUD_URL = "https://yourcompany.quadientcloud.eu";
var CLOUD_CLIENT_ID = "d647Dk4UIzUJ093jhBxUtABA";
</script>

■ CLOUD_APP_ID in the script above means the Application ID

■ CLOUD_URL in the script above means the URL address of your Quadient Cloud company

■ CLOUD_CLIENT_ID in the script above means the Authentication Client ID

○ Service – The service that you created in the previous step

6. Create an API key.

7. Make sure your Scaler environmental variables related to the Digital Services application are set:

● quadient-cloud-mobile-apiKey

● quadient-cloud-mobile-applicationId

8. Build your application.

You might also like