3.16.3 Minor Release
The document contains the major new features and changes in the minor 3.16.3 release. It also documents known problems and workarounds, if any.
DISCLAIMER
Product Information contained within this document, including technical information and functional specifications, is subject to change without notice. Naviga reserves the right to make any changes to the information in this document at any time without notice. Naviga makes no warranty, representation, or guarantee regarding the suitability of its products and services for any particular purpose.
With the 3.16.3 release, Naviga now supports multi-factor authentication (MFA) to improve login security for users connecting to the Subscribe application. It also introduces Zip Code validation for Digital Subscriptions, MOTO transactions for Stripe in the One-CSR Portal and Subscription Panel to bypass the 3D secure authentication, as well as program changes to Bulk Registrations Import.
This release also comprises a variety of enhancements to the SubCon Site (Self-service), One-CSR Portal, Solicitor Concierge (SolCon), CMS Content, and Subscription Panel modules and introduces a set of new APIs.
Additionally, this release also contains important bug fixes in various modules of the application.
Please note that in the process of implementation, the sync job has to be updated to 3.16.2. Discover loads must be updated to consider Registrations Metadata (Company Name, Job Title, etc.) in scope.
Note: The regional date format support for Australian clients has been introduced in the OI database. Changes have been made to the Subscribe OI Database to accommodate the dd/mm/yyyy date format in extracts from AUS region clients. However, the Subscribe will store data exclusively in the mm/dd/yyyy format. Note added on Sep 18th, 2023.
Implementation Prerequisite - .NET Framework version 6.0 is required to support the new micro APIs introduced in this version.
The release notes for the internal stakeholders can be found in Confluence (access required).
Key Features
Single Sign-On with Multi-Factor Authentication
Implemented Single Sign-On (SSO) with Multi-Factor Authentication (MFA), leveraging Auth0 IdP integration. It is now possible to implement SSO and enforce MFA using any IdP that supports MFA and standard SSO protocols. To utilize this feature, the client should have an IdP solution supporting standard SSO protocols. Auth0 can be provided by either Naviga or the client.
Prerequisites:
For a client user to be able to access the Subscribe application via SSO with MFA support, the client user must be authorized to access the Subscription application via IdP, and MFA should be enforced.
Currently Auth0 supports IdPs such as SAML, OpenID Connect, Okta Workforce, Google Workspace, Microsoft Azure AD, ADFS, Active Directory/LDAP, and Ping Federate.
Refer Auth0 documentation for more details: Enterprise Connections
If the client has their own Auth0 license, they can perform the setup themselves. Naviga can assist with the setup if required. Clients are required to provide Naviga with the ClientId, ClientSecret and the Domain.
For clients without an Auth0 license, Naviga can provide a license. To inquire about the cost, please contact your Sales Representative.
Application Functionality:
The SSO feature can be enabled for a client based on the value of the Support Viewer Api setting (MG2Control) "Auth0.Subs.IsActive". For handling Auth0 configuration, three more Support Viewer Api settings are created:
Auth0.Subs.ClientId
Auth0.Subs.ClientSecret
Auth0.Subs.Domain
If the setting value of Auth0.Subs.IsActive is 0 then the default Subscribe login page with fields Username, Password, and Sign in button will be available for the user. If the setting value is 1, then the user will be displayed the Auth0 SSO login page with a single button “Sign in With SSO”. The default fields will be hidden in this case.
Clicking on “Sign in With SSO” will navigate user to the Auth0 page of the client based on the values of Domain & Client Id parameters stored within corresponding Support Viewer Api settings against the client.
Based on the entered email address, the user will be redirected to the respective IdP page (for example, Okta page) where the email id and password are to be entered.
Once these credentials are authenticated successfully, Auth0 will check the Subscribe access level for the entered email id. Based on the access defined in Subscribe, the user will be given access to the Landing Page and appropriate options of Subscribe.
If Subscribe application does not have any active user against the entered email id, the access will not be provided regardless of IdP Authentication success.
Finally, when a user logs out from any Subscribe application (One-CSR Portal, SolCon, or CMS) the user will also be logged out from Auth0. Hence, after clicking the logout button if a user re-opens the Subscribe application, user credentials for client IdP and MFA (if enforced) may need to be re-entered. This depends on the IdP session on the user side and the client MFA configuration. The client may choose to enforce MFA for each login or not enforce at all.
Note: When the SSO feature is activated, the password settings section becomes unnecessary for the client. Consequently, if the MFA feature is enabled, the 'Settings' button will be hidden on the Subscribe Landing page for the client. (Please refer to the image above for a glimpse of the Landing page and the Settings button.)
Zip Code validation for Digital subscriptions
To comply the legal restrictions for certain clients who can sell only within a specific region, zip code validation for digital offers would be effective from this release.
Zip code validation for digital subscriptions is configurable in Subscription Panel with the help of the configurable flag “isValidateDigitalOfferZipcode” in SP Config file.
If the flag value is set to true, the zip code entered will be validated from SolCon Available areas for digital offers. The user will be able to purchase the subscription only if the zip code is available in the SolCon Available areas.
If the flag value is set to false or null, the zip code validation will be omitted.
By default, the flag value is set to false for not impacting the current behavior of the clients. The value of the flag does not impact print offers.
Get Offers API is modified to read “isValidateDigitalOfferZipcode” flag for digital offers.
Note: Digital offers usually don't require Available Areas set up in SolCon. However, to avail of this feature, it is requested that clients must add valid zip codes in SolCon Available Areas and apply those Available Areas on Digital offers. At least one valid Available Area needs to be attached to the billing/sales product for this functionality to work.
MOTO Transactions for Stripe
From this release, a new enhancement specific to Stripe Payment vendor has been implemented. The Mail Order Telephone Order (MOTO) transaction flow has been introduced in the One-CSR Portal and Subscription Panel to enable the users to proceed with the credit card transaction without the requirement for 3D Secure (3DS) authentication.
With this enhancement, users can now complete payments with both 3D and non-3D stripe cards without receiving the 3DS pop-up window for authentication. Instead, they are taken directly to the Payment Summary page. Consequently, even cards that typically require 3DS confirmation will function without the need for it.
Enable or Disable MOTO Transaction Flow
The CreditCardStripeV3 component now has a new property, MOTOTransactionValidation, which can be toggled to enable or disable the MOTO transaction flow.
The users can configure the properties by going to: CMS > Subscription Panel > Presentation (Choose a valid presentation) > Page V3 > Step V3 > PaymentMethodsV3 > CreditCardStripeV3 > MOTOTransactionValidation
In the Subscription Panel,
If the MOTOTransactionValidation property is enabled (turned ON), the 3DS authentication pop-up for the Stripe payment method will not be displayed on the payment page.
If the MOTOTransactionValidation property is disabled (turned OFF), the 3DS authentication pop-up on the payment page for the Stripe payment method will be displayed.
Bulk Registrations Import
Subscription Search > Start Call > Digital > Registrations > Invite OR Invite Without Registration > Import from CSV
The Bulk Registrations Import functionality in One-CSR Portal is revamped such that it is much easier to Add/Append, Modify or Overwrite registration records in bulk while importing the records from an uploaded file. When a user clicks the Import from CSV button, the Bulk Import Window provides a new option 'Choose an action' with radio button options Append, Modify, and Overwrite. By default, the Append action is selected, but the user can re-select the desired option.
The Bulk Registrations Import feature was initially limited to Lite Subscriptions, but starting from this release, this is available for all subscriptions, regardless of the subscription kind. This feature can be configured from MG2 Control.
Modify Action:
With this option, a user can modify the existing registration data and pending invites. Records in the Invitation/Registration table with existing email IDs will be modified according to the uploaded file, with the exception that the User Type field cannot be modified if the data is already part of the Registration Table. User Type can only be modified when the data is in a Pending Invite state. Only existing records based on email matching will be modified; no new records will be added or deleted based on the uploaded file. Once the data is displayed in the grid, instead of the "Send Invites" button, a "Save Changes" button will be available to modify the data without sending any email invitations.
Overwrite Action:
When the user selects the Overwrite action while uploading a file, the records in the uploaded file will completely replace the existing registrations in the database. As a result, any record that exists in the system but not in the new file will be deleted from the system. Any record that exists both in the system and the new file will be stored with updated information from the upload file. Additionally, any record that doesn't exist in the system but is present in the file will be added to the system.
Instead of the "Send Invites" button, the button text would be "Update & Send Invites". An alert message will also be displayed for this action: “This action will overwrite existing registrations with new data and cannot be UNDONE. The User type cannot be updated for existing records once the invitation is accepted.”
Note:
During the Append process, the limit for uploading CSV data is determined by either the Pending Invites Limit or a maximum of 1000 records (whichever is lower). During Modify or Overwite actions, the user is allowed to upload not more than 350 records or the Maximum Subscription Limit (whichever is lower). If the number of records in the uploaded file exceeds the set limit, an error message will be displayed.
The format of the uploading file depends on the value of the SV key (MG2Control) “RegistrationAdditionalData”. If the key value is 0, the template will have only the default fields (Email, First name, Last name and User Type) and if the key value is 1, the template file will have extra fields (Company name, Position, Address, Postal Code, City, and Country) along with the default fields.
General Enhancements
SubCon Site (Self-Service)
Live Chat in SubCon Site
The client specific script for LiveChat implementation has been added to SubconSite. This can enable a live chat facility on the Self-Service portal that allows users to communicate in real-time. This helps users to receive immediate assistance and resolve any issues they may encounter while using the site. This feature enhances the user experience by providing a quick and convenient means of communication.
Note: To enable the LiveChat feature, Clients need to provide the LiveChat script that Naviga can add to the Subcon Site.
Additional Subscription Information in Subscription Management
Within the Self-Service portal, when a subscriber logs in and refers the list of subscriptions to manage, the ‘Show more’ link will now provide additional information such as Subscription Status (Active, Stopped, etc.), Access Type (Owner or Guest) along with Ezpay status and Address information.
Section updated on Sep 19th, 2023.
Subscription Kind details in Dashboard
With the latest release, users can now view their subscription kind (Trial, Complimentary, Standard, etc.) on the SubCon site Dashboard, along with the previously available information on their subscription status, base product, and delivery frequency.
Navbar links alignment on small screens
From this release, even if the size of the browser window is reduced, the navbar links will be centered both vertically and horizontally instead of being aligned to the top left corner. They will be aligned with the logo as well.
Management of Editable addresses
The Address page now dynamically loads the available editable addresses for the current subscription by calling the Availability endpoint. The visibility of addresses in the accordion is managed based on the response from the endpoint. All the existing visibility management logic is removed to ensure the business logic resides on the API side.
If the Availability endpoint indicates that no addresses can be edited, the user is redirected to the Dashboard page with an error message.
Easily manageable date-pickers
The display of date pickers on calendars of SubCon Site pages (Subscription Cancel, Update and Restart pages) has been made consistent. A new function "Get Available Dates" is introduced in the Common Subscription Workflow. This function is responsible for determining the minimum date to display in the calendar and calculates the maximum date based on an offset parameter.
Improved Visual appeal of CTA buttons in Stop Saver flow
The visual representation of the ‘Downgrade Subscription' button has been improved. When disabled, it will now feature a grey background with white font color. When enabled, it will utilize the primary color as the background with white font color. Updated the presentation of the "I'd like to cancel/upgrade/downgrade" links by converting them into buttons. Standardized the appearance of the "Back" button and the "I’d like to Cancel" button, both of which will now have a grey background. Ensured consistency by applying the same font to all button texts.
Restart date in the Confirmation UI
Added functionality to display the restart date in the Confirmation UI for subscription restarts. Now, when users restart their subscriptions, the Confirmation UI will include the specified restart date along with other relevant information ensuring a comprehensive confirmation experience.
Cardholder name a hosted field for Braintree clients
Enhanced integration with Braintree payment gateway to improve security and compliance. The cardholder name is now available as a hosted field (a part of Braintree iframe) in the user interface of SubCon Site.
Subscription Restart functionality for Matrix clients
A new Restart page has been made available for Matrix clients from this release. The user would be able to pay for the new rate for the subscription and the balance amount, if any. Highlights of this enhancement are as follows:
The user need not select any payment option and the restart date.
If the account has a subscription balance to be paid, a new field ‘Debt’ will be displayed to the user and the user will have to pay a total amount of new rate of the subscription + the debt amount.
Likewise, if the account has a positive credit balance, then a field ‘Credit’ will be displayed to the user and the user will have to pay new rate - credit. Additionally, if the new rate is lesser than the credit balance, then the user need not pay anything.
If by any chance, the system could not retrieve the credit/debt amount, the user will be redirected to the Dashboard page with an error message.
Note:
A checkbox has been introduced only for EZPay subscriptions prompting the users to indicate whether the collected credit card information has to be stored or not for future recurring payments. If the checkbox is checked, an Update Payment Method transaction will be triggered after the successful Restart transaction.
Pre-Requisites:
Circ System & Minimum Supported Version: Matrix, 38.00.034.ITSP6
New endpoint to monitor the health of SubCon Site
A new endpoint to monitor the health of SubCon Site application (whether the application is up and running) has been functional from this release. Status/Ping route is added to SubCon Site API that enables the monitoring of SubCon Site.
New CMS restriction for SubCon Site links
A new CMS restriction has been introduced that can be used in the ‘Hide Link For’ field. The restriction code to be used is ‘Corporate Subscription’. This restriction would be functional only if Subscription.RegistrationCount is not null and Subscription.RegistrationCount > 0.
When a SS link has Corporate Subscription code selected as part of ‘Hide Link For’ option, the corresponding SS link would be hidden from the SubCon Site page if the selected subscription’s registration count is not null and is greater than 0.
User details on the Subscription dashboard
The Subscription dashboard for users has been improved to display Company name (if available) along with their first name, last name, and Account number, allowing for easier reference. Previously, the dashboard only displayed the First name and last name of the user along with the account number, but this enhancement now provides additional user details on the dashboard.
Note: Company Name is an optional field.
Customized Guard messages in SubCon Site
The following new guard messages with the same look up name on the Layout page of SubCon Site have been customized using CMS.
Guard.AutoPaySignUp
Guard.RestartSubscription
Guard.StoppedSubscription
Guard.GuestError
Note: The guard messages are notification pop-ups that appear when a user attempts to access an unauthorized page.
Configurable Invitation type
Invitation type in SubCon Site has become configurable from this release. The invitation types can be set in the "InvitationType" property that comes under the "SubscriptionShare" section of SS config file. The new invitations types are “Owner“, “Guest“, or “Both”. If the setting is not defined in SS Config, the default value will be “Both” where the Invitation type drop-down displays both ‘Owner’ and ‘Guest’ option.
SubCon Site pages updated with client-specific Tag Managers
Client-specific tag managers have been implemented on SubCon Site pages to enable tracking of Accounts management.
One-CSR Portal
Hiding CSR remarks in the Show remarks grid
The CSR users can now Hide or Unhide remarks in the Show remarks grid. This feature is especially useful for Customer Service Representatives (CSR), as they can hide the irrelevant remarks that are not valid due to any errors/typo and create new ones instead. This ensures an accurate trail of remarks made and helps with auditing.
The Action column in the grid will include Hide/Unhide buttons corresponding to each row, enabling users to easily hide or unhide remarks. Additionally, a "Show hidden remarks" checkbox will be available (unchecked by default) for users to unhide hidden remarks in the grid. If the checkbox is checked, then all remarks will be displayed in ascending order (current behavior) but highlighted in grey color.
Exporting Registered users and pending invites to CSV file
A new button 'Export existing users' is introduced that allows users to download a CSV file. This file will include both active registrations and pending invites. The file will have the same format as the one used to import registrations. However, if there are no registrations or pending invites associated with the selected account, the button will be disabled.
When a user clicks on the 'Export existing users' button in One-CSR Portal, the additional registration data (for example, Company name, Position, Address, Postal code, City, Country, and Phone) that was collected during registration process and stored in the system as metadata is also included in the export file. The export data also includes details of registrations that are in pending invite state. Created one new endpoint "api/downloadRegistrationWithAdditionalData" for exporting registered and pending users with additional data.
Availability of Event 1107 in the SA
From this release, event 1107 is made available in the Event type dropdown under History Section of Research/Start Call (Show events) search. When CSR selects event Id 1107 from the dropdown and perform search, the search grid will display the event list of event type 1107. No changes in the display or behavior for the already existing event types.
Complimentary subscriptions related enhancements
For a Complimentary subscription, a text message will be displayed at the bottom of the billing address section within the Account Information Tab, stating: "Billing address is not applicable for Complementary Subscriptions."
When a comp subscription is created without an end date, clicking on the icon adjacent to the subscription kind field will display the info, "No End Date".
Saving Credit card details for easy future payments
In the One-CSR Portal of Matrix clients, if a user with stopped subscription (registered for EZPay who has credit card payment method) clicks on the ‘Pay Balance' or 'Restart' button, a checkbox with the text 'Use this payment method for future recurring payments’ will be displayed.
By default, the checkbox will be unchecked. If the checkbox is marked, and the user clicks the Save button, the payment method used for autorenewal will be updated with the entered credit card data. If updating payment method fails, an error message will be shown: “Payment posted successfully! The subscription has been restarted but failed to update the card details.”
Customizable user password length in One-CSR Portal
In One-CSR Portal, the maximum length of user passwords can now be customized. The previous restriction of password length not exceeding 32 characters has been removed. The password length can now be configured using the MG2 Control App Setting key 'Subscription.MaxPasswordLength'.
However, the minimum password length remains set at 8 characters. If a password with fewer than 8 characters is entered, the system will reject it and display an error message: "Password is missing or invalid. It should be at least 8 characters long". If a user exceeds the set password length limit, the system will provide a notification stating: "Password length limit cannot be exceeded". If the password length is not controlled through the new App setting key, the system will default the password length to a range of 8 to 30 characters.
New logic to display the Country field in SA
In One-CSR Portal, the logic to populate the Country field has been revised for NCS clients. The Country field in the Billing address data will be displayed based on the CountryCode from subscriptions API as the primary priority, followed by the Country. If both the Country Code and Country values are null, then the default value 'US' will be displayed in the Country field.
Solicitor Concierge (SolCon)
Filter removal for InApp Offers 'Google Play' & 'iTunes' from Offers API
Starting with this release, the Offer API from SolCon returns a complete list of currently active offers, that includes offers configured for GooglePlay and iTunes in addition to the existing set of offers.
API
API - Integrate Get Offer by ID
The endpoint
GET /Address/Routable
has been modified so that it no longer needs the SolCon database to retrieve the offer details. Instead, it uses the GET /Offers endpoint to get the data through an HTTP request.The endpoint
POST /Purchases
has been modified so that it no longer needs the SolCon database to retrieve the offer details. Instead, it uses the GET /Offers endpoint to get the data through an HTTP request.The endpoint
POST /Subscriptions
has been modified so that it no longer needs the SolCon database to retrieve the offer details. Instead, it uses the GET /Offers endpoint to get the data through an HTTP request.
API - Melissa
A new endpoint, POST /OnPremise/GlobalStandardize
, has been developed for standardizing Australian addresses.
API - Address
The
GET /Address/Standardization
endpoint of the Address API has been modified to integrate the Melissa API (POST /OnPremise/GlobalStandardize
) for standardizing Australian addresses.A new endpoint,
GET /Subscriptions/{subscriptionId}/MovesAvailability
, has been developed to determine if a subscription qualifies for the transaction to be processed and, if it does, whether the delivery address, billing address, or both addresses can be modified in SubCon Site.The Moves Availability rules are as follows:
For Digital Subscriptions, the Delivery Address shouldn't be modifiable.
For Complimentary Subscriptions, the Billing Address shouldn't be modifiable.
For the Digital Complimentary Subscriptions, the transaction shouldn't be eligible to be processed.
The remaining Subscriptions are allowed to process Moves.
API - TemporaryStops
The
POST/TemporaryStops
endpoint now includes two new input parameters: Source Code and Sub Source Code. Source Code must be provided as a mandatory input parameter, while Sub Source Code is only required if the Source Code has Sub Sources defined.Two new MG2 control internal settings have been added to set the values for the SourceCode and the SubSourceCode:
TemporaryStop.SourceCode
TemporaryStop.SubSourceCode
The NewVacation event will have the details of SourceCode and SubSourceCode in the request field, which will be sent to the AddVacation MicroAPI.
Note: The SourceCode (mandatory) and SubSourceCode (optional) parameters for this API should be defined only when using NCS Circ version 2020-5.0 or higher. On the other hand, when clients are on NCS version 2020-5.0 (or higher) and the SourceCode value has not been defined or is invalid, NCS will return an error.
The
GET /TemporaryStops/Subscriptions/{subscriptionId}/Availability
endpoint has been modified to include a new input parameter, AllowStoppedSubscription, which allows the validation of stopped subscriptions to be bypassed. This end point is also used to determine available dates in other workflows, which has an impact on the restart flow.The stopped subscription is accepted by the availability endpoint only when the AllowStoppedSubscription parameter is true. Passing the value as blank or false does not bypass the stopped subscription validation.
API - Core
The API Core has been modified such that it now gathers all the settings that were applied during the processing of a request in the SettingCollector rather than the ErrorCollector.
Details of the RequestId, SessionId, Controller Method Name, and Settings Array are included in the SettingCollector log file.
The API Core has been updated to include a stopwatch to determine the response time taken for the Low-Level APIs.
The time taken will be displayed under the Duration column of the Event_Post_Return_Html.
API - Purchase
The
POST /Events
endpoint now populates the Registration ID in the event log table if a valid Event_Type_ID is passed in the request.A validation check has been implemented for the input parameter “RegistrationCount” in the
POST/Purchase
endpoint to limit the maximum number of registrations allowed when creating a new start. If the registration count exceeds the value specified in the MG2 control setting, a validation error will be returned.A new MG2 control internal setting, "Subscription.MaxLinks," has been added with a default value of 100.
Previously, if a user entered both the delivery and billing addresses when creating a new subscription in the Subscription Panel, the APIs would collect the information but not send it to the CircPro application. This occurred because the updateDataWithParsedAddress method only accepted a single address and did not allow for the entry of a second address.
The purchase API has now been modified to send multiple addresses to the CircPro application by replacing updateDataWithParsedAddress with the updateDataWithMailingAddress method.
Now, when creating a new start with a single address, i.e., the same delivery and billing address, only regular address fields will be sent to the CircPro application. And if creating a new start with different addresses in the delivery and billing address fields, the delivery address will be sent to the regular address fields and the billing address to the mailing address fields in CircPro.
A new MG2 control internal setting, "CircPro.SubscribeWebService.EndpointAddress," has been added. The value for this field varies based on each CircPro client.
API - Subscriptions
A validation check has been implemented for the input parameter “RegistrationCount” in the
PUT /Subscriptions/{subscriptionId}
endpoint to limit the maximum number of registrations allowed when creating a new start. If the registration count exceeds the value specified in the MG2 control setting, a validation error will be returned.A new MG2 control internal setting, "Subscription.MaxLinks," has been added with a default value of 100.
The endpoint,
PUT /Remarks/{remarkId}
, has been modified to update the Hidden column under the Remarks table in Subsvc of a subscription based on the details provided for the RemarkID and the RemarkTypeID.The endpoint,
GET /Remarks
, has been modified to include new output parameters, Active and Hidden, to indicate whether a respective Remark of a subscription is hidden or active. The logical values are true and false. By default, the QueryString parameter, request.onlyActives, is set to true.A new endpoint,
DELETE /Remarks/{remarkId}
, has been developed to remove the active status of a Remark based on the provided RemarkID.
API - Billing
The
GET /Billing/AutoBill/{subscriptionId}
has been modified to retrieve the amount required to restart a subscription in the API response. The new Matrix endpoint, SubCalculateID, which has been associated with the GetRates event, will return the required details in the response under GetStoppedSubscriptionPaymentOptions only for stopped subscriptions in Matrix Flow.When restarting a subscription in the Matrix Restart flow, payment-related events will no longer be created if the amount to be paid to restart the subscription is zero.
The
POST /Billing/Payments/{subscriptionId}/RestartPayment
now includes a new output parameter, Restart Date, in the response, allowing the API to return the restart date for the accounts in SubCon Site.When processing one-time payments, the event log will now include either the masked Credit Card number (if the one-time payment is processed through Credit Card) or the masked Bank Account number (if the one-time payment is processed through ACH).
API - Proxy
Previously, even if the API response returned error codes like 200, 400, or 500, the HTTP Status Code was always 200. This was due to the APIs not managing HTTP status codes correctly. Due to the fact that the load balancer only depends on the HTTP Status Code, this resulted in the load balancer realizing the server was down quite late.
The HTTP status code is now returned correctly to match the API response error code as a result of conversion logic that has been introduced to the Proxy API handler.
For example, the HTTP status code 503 is now returned instead of the previous HTTP status code 200 when the server is down.
API - OSG
The OSG API, which allows users to download their invoices, has been modified to store the information of the invoice, URL, unencrypted request XML, and result in the Event_Post_Return_Html table of the GetInvoices event type.
API - Payway
A new MG2 control setting, Edgil.SoftDescription, has been introduced to allow the value specified in this setting to be passed to Payway as a processorSoftDescription in the card transaction authorization request. Statement descriptors provide an explanation of charges or payments on bank statements, as well as the information that banks and card networks require to ensure that customers understand their statements.
API - Subscription/Billing
Previously, on the 'My Profile' page of the SubCon Site, the Last Payment Amount and Expiration Date details for CircPro clients were obtained from the database once a day and were not being retrieved in real-time.
By integrating with the CircPro APIs getCustomers (for the Expiration Date) and getPayments (for the LastPayment Amount), changes have been made to the GET /Billing/AutoBill/{subscriptionId} and GET /Subscriptions/{subscriptionId} endpoints to retrieve these details in real-time.
The information that has been obtained is updated on the ‘My Profile’ page and synced with Subsvc under the Subscription Table.
Pre-Requisites:
Circ System & Minimum Supported Version: CircPro, 2019-2.0
API - Matrix
Previously, the logic for selecting Matrix addresses resulted in the system randomly selecting either the AlternateDeliveryAddress or the Main address for the Delivery address and either the Billing or the Main address for the Billing address. This logic causes an issue when the Main address is considered by Subscribe even when AlternateDeliveryAddress or Billing Address is available.
The logic determining the selection of the Delivery Address and Billing Address has been modified such that:
As for the Delivery Address, the AlternateDeliveryAddress will be used. If there is no AlternateDeliveryAddress, the Main AddressType will be used as the Delivery Address.
The Billing will be used as the billing address. If the Billing address does not exist, the Main address is used instead.
CMS
Add Phone number to Lite Form Component
The Lite Form V3 now includes the subscriber's phone number as a component in the Personal Details section with all necessary properties.
If the phone number properties are switched "ON" while creating a new Lite subscription, it is necessary to provide a phone number in the respective field.
The Lite Form V3 of Subscription Panel now includes the subscriber's phone number as a mandatory field when creating a new subscription.
The user can configure the PhoneNumber properties by going to: CMS > Subscription Panel > Presentation (Choose a valid presentation) > Page V3 > Step V3 > Lite Form V3 > Details.
Switch On/Off the properties of PhoneNumber, as required.
Open Graph image tag in Subscription Panel
The Open Graph image tag (og:image:alt) has been introduced to PresentationPropertiesV3 in CMS in order to facilitate the usage of this tag in the Subscription Panel. If the images can't load on third-party websites like Facebook, this alternative text will be displayed instead.
The Open Graph image tag (og:image:alt) has been added to the Subscription Panel so that an alternative text will now be displayed if the images can't load on third-party websites like Facebook.
The user can configure the properties by going to: CMS > Subscription Panel > Presentation (Choose a valid presentation) > PresentationPropertiesV3 > Details > OgTags ImageAlt.
Australian Phone Number Validation in Subscription Panel
In order to use Australian phone numbers in the Subscription Panel, phone number validation properties have been added to the components in CMS listed below.
DeliveryInformationV3
BillingInformationV3
IndependentAddressV3
PaymentMethodsV3
Subscription Panel now supports Australian Phone Number based on the CMS configuration. By default, the format for Australian phone numbers has been set to "xx-xxxx-xxxx", where the first 2 digits are any number between 0 and 9, followed by a hyphen (-), then followed by 4 digits between 0 and 9, then followed by a hyphen (-), then followed by 4 digits between 0-9.
Transport Layer Security (TLS) Upgrade to Version 1.2
The CMS Content module has been updated to support Transport Layer Security (TLS) version 1.2. The TLS version can now also be configured from the web.config file, and image uploads can now communicate with the AWS S3 bucket using the TLS 1.2 security protocol.
This update has been made as Amazon will no longer support TLS 1.1 for its S3 bucket.
Note: If the TLS version is not configured in the web.config file, CMS now uses the TLS 1.2 security protocol by default.
This fix was also merged to 2.39.1, 2.39.1.0, 3.15.2.1, 3.15.3.1, 3.16.0.13, 3.16.1.7, and 3.16.2.4.
Subscription Panel
Company Name Field in Subscribe Database
Previously, the Company Name provided in the Subscription Panel while creating a new subscription was not being pushed to the Subscribe database. Changes have now been made so that the company name that is provided will be recorded in the Subscribe database along with the subscriber's other details so that it will be displayed on the CSR site.
Print Subscription should be created only for Routable Address
The Print Subscription will now only be created if the address provided is routable and will return an error if it is not. To make sure that only routable addresses are used for creating Print Subscriptions, an address validation check has been implemented after clicking the Submit button in Subscription Panel.
GooglePay Icon error
When processing a payment with GooglePay in the Subscription Panel that had multiple cards set up, switching the payment method from one card to another did not show the chosen card in the GooglePay icon iframe of the payment page.
Changes have now been made so that the selected card for the payment will be displayed correctly in the GooglePay icon iframe on the Subscription Panel payment page.
One-CSR Portal Fields Loading Error
This is a client-specific case.
When starting a subscription through the CSR Funnel, choosing an offer and clicking "Go to CSR Start Portal" did not load all the necessary fields on the first try; instead, the CSR portal had to be closed and opened again for each offer to load all the fields.
Changes have been made such that the fields now load properly on the very first attempt, and when you click the Submit button, the form is successfully submitted.
GoogleTagManager (GTM)
Multiple container IDs can now be added to the GoogleTagManager (GTM) container in the Subscription Panel. This allows the use of an array of container ids in the configuration file, and these values will be used in the GTM script in the layout pug file. Note: The client has to use the "commonResource" and "commonResourceBody" pug files in their layout pug file in order to integrate multiple containers.
The client specific GoogleTagManager (GTM) script has been included in the Subscription Panel configuration. Note: To use the GTM script, each client must import the "commonResource" and "commonResourceBody" pug files.
Subscription-related enhancements in the Subscription Panel
This enhancement is related to clients using GUP authentication.
Previously, in SubCon Site (My Account), when a subscription was restarted after being permanently stopped, the client was unable to link the new account with the old one and was instead directed to their old accounts.
The Subscription Panel (SP) received an incorrect value from the GUP API (currentUserAPICall()) key "isAuthenticatedIncurrentContext", which caused this issue. The customerRegistrationId (CRID) in SP changes into the "anonymousId" if the value supplied for "isAuthenticatedIncurrentContext" is true. The CRID becomes null if the value for "isAuthenticatedIncurrentContext" that the GUP API passes to the SP is false, which prevents the Link Owner event from being called.
Now, the "isAuthenticatedInCurrentContext" value is no longer taken into consideration, and instead, the "isAnonymous" value is used to see whether the user is currently logged in. The userId is null if "isAnonymous" is true; otherwise, the anonymous ID is set to the userId.
And if a subscription has been stopped on SubCon Site (my account), clicking the Subscribe button will direct users to the Subscription Panel URL, where they can purchase a new subscription. A CRID will be generated after the user purchases the new subscription, and by going to SubCon Site/One-CSR Portal, both the stopped and new subscriptions will now be linked.
Naviga Dashboard (DSB)
This is for internal stakeholders only.
Naviga Subscribe is launching the initial release of the brand new Naviga Dashboard in 3.16.3. Naviga Dashboard is a new application that empowers Support, Implementation and Project Management teams to modify their configuration settings without the need of any scripts.
Below is a list of various enhancements that have been implemented in the new Naviga Dashboard:
Appropriate modals with corresponding validations are made available to add, edit or view Api settings on the Tenant and API Settings pages of Naviga Dashboard.
If the ApiSetting value is String, a Textarea will be displayed to input data. No validation in place for Textarea.
If the ApiSetting value is Int, a Textbox will be displayed to input data. Numeric validation implemented.
If the ApiSetting value is Boolean, a Checkbox will be displayed to input data. No validation in place.
If the ApiSetting value is Json, a WYSIWYG form element will be displayed to input data. Json should be properly formed.
The "Edit Tenant" option in the main menu (hamburger menu at top right) on the Tenants page has been replaced with a pen icon that is now included with each entry in the Tenant grid. Clicking the pen icon for a particular tenant record will open a window, allowing the user to easily modify the details for the selected tenant as displayed below.
The Home, Environments, and API Setting Types options have been removed from the sidebar menu and are no longer accessible from the Dashboard. Moving forward, only the Tenants and API Settings options will be available in the sidebar, with the Tenants page being set as the default page.
The Compare Api Settings modal design has been improved. The changes made are enlisted below:
The Title of the modal is changed from “Compare Api Setting Values“ to “Compare <ApiSettingKey name>“
The subtitles have been shortened to just ‘Source’ and 'Target
Modal width has been reduced by 30%.
An unwanted Textbox and Label for the ApiSettingKey have been removed.
The underlying form would be hidden while displaying the comparison results.
A ‘Go back’ button has been introduced on the form showing the comparison results.
The active flag, which was previously used for the logical deletion of an API setting and was present on both the Add and Edit API Settings pages, has been removed now. This decision was made because it seemed illogical to have a deletion flag present on both of these pages.
The DB schema has been improved, by adding the relationship between the ApiSettings, and the ApiSettingDataTypes.
There were some discrepancies found in the Dashboard-specific stored procedures between the Dev branch and the BetaRelease branch. From this release, it has been made sure that all the changes are in place and both branches have the same set of stored procedures. This will ensure that the code is working correctly and consistently across both branches, making it easier to test and release to users.
The Dashboard is accessible only to two Roles: MG2 Admin and MG2 Developer.
Refactor
SubCon Database
Performance Optimizations
Following Stored Procedures and Views are optimized now, and cost of execution is reduced.
GetBillingSubscriptionById
GetBillingInfoBySubscriptionId
GetBillingInfoBySubscriberId
ApiCreateEventLog
ApiGetFilteredEventLog
ApiCreateChildEvent
vwPayments
vwBillingMinimumSubscriptions
vwBillingData
The column size of the Id in RefreshTokens table of mg2_control database has been verified and corrected accordingly. It is changed from Nvarchar(Max) to Nvarchar(200). Proper Indexes also have been added on this table to improve the performance of querying and retrieving data from the table.
API
API - Purchase
In Subscribe, when the lookup strategy (Purchase.GetSubscriber.LookUpStrategy in MG2Control) is set to email, only one occupant has to be returned per email address. However, on the NCS Circ side, a feature has been added that returns multiple occupants when searched using an email.
Due to the above configuration issue, the FindAddressOccupant failed in the Subscription Panel with the error message "Child Event: FINDADDRESSOCCUPANT failed. Error: Completed," which does not clearly state the error occurred because the error handler has not been checking the event status received from the NCS Circ.
The error handling has now been modified so that if NCS Circ returns multiple occupants instead of one, the Subscription Panel now displays a clearer error message, "Invalid occupant result. Only one occupant is expected" rather than "Error: Completed."
This enhancement is specific to NCS Circ clients.
Pre-Requisites:
Circ System & Minimum Supported Version: NCS Circ 2020
API - Core
The logic to handle event operations has been updated in the new API core, limiting event creation to the Orchestration Layer, where event logs are necessary.
API - ApiCache
The POST /Cache/All
endpoint has been updated to include a new step that triggers a request to the Users Orchestrator to clear the cache settings from the new Core depending on SubscribeCoreCacheVersion.
API - Users
The Users endpoint,
POST /User/UpdateSolicitationPreferences
, has been modified to return an error when a non-supported tenant is passed in the request for NCS clients. Previously, regardless of whether the occupant was supported, the request was processed by the class that was controlled by the internal flow setting Flow.TrackingCodes.In order to update the occupant communication flags, a new internal flow setting, Flow.CircSystem, has been added, and the previous internal flow setting Flow.TrackingCodes has been deprecated.
The endpoints,
POST /License
(Create License),POST /Subscriptions/Upgrade
,POST /Subscriptions/Downgrade
,POST /User/OwnerUser
, andPOST /User/GuestUser
have been modified in order to prevent the LinkOwner and LinkGuest events from being processed by third-party vendors.If LinkOwner or LinkGuest endpoints have been successfully processed and the MG2 control flow setting, Flow.EntitlementProvider, has been set to the third-party vendor "Firefly," then the AddExternalEntitlement record will be created by calling the
Entitlements/External
endpoint of the Entitlements API.
The User endpoints,
POST /User/LinkSubscription/Revoke
andPOST /User/GuestUser
have been modified in order to prevent the RevokeLink events from being processed by third-party vendors.If the RevokeLink endpoint has been successfully processed and the MG2 control flow setting, Flow.EntitlementProvider, has been set to the third-party vendor "Firefly," then the DeleteExternalEntitlement record will be created by calling the
POST /Entitlements/External/Revokes
endpoint of the Entitlements API.
API - Users Orchestrator
A new orchestration API,
GET /Users/{Id}
, has been developed to handle the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and Subscribe Registration API.With the input parameter Customer Registration ID (CRID), the API gets the user's information from both the integration service and the subscribe registration. The response displays the combined information.
A new orchestration API,
GET /Users
, has been developed to handle the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and Subscribe Registration API.The details of users can be retrieved by providing either the registration email ID or Customer Registration ID (CRID) as an input parameter.
Based on the value of Flow.UserProvider and the IgnoreProvider input parameter, the API gives user information in the following way:
If no valid value is provided in Flow.UserProvider, the API retrieves user information from the Subscribe Registration API.
If a valid value is provided in Flow.UserProvider and the input parameter IgnoreProvider is set to True, the API retrieves user information from the Subscribe Registration API.
If a valid value is provided in Flow.UserProvider and the input parameter IgnoreProvider is set to False, the user's details are retrieved from both the integration service and the subscribe registration. The combined information is displayed in the response.
MG2 control flow setting: Flow.UserProvider value should be set to "Auth0," "Gigya," "SSOR", or "Firefly", depending on the third-party system or integration service being used.
MG2 control flow setting, "Flow.Users.RedirectToOrchestrator", value has to be set to 1 for the ProxyAPI redirection to the UsersOrchestratorAPI instead of the UserAPI. The default and recommended value of this setting is 0 (zero) for this version.
Note for Implementation:
Clients who are currently on 3.16.3 should not set the value of the setting, "Flow.Users.RedirectToOrchestrator", to 1. Only after upgrading to 3.16.3.1 should you update the value of the setting to 1 for ProxyAPI redirection to UsersOrchestratorAPI.
Updated on September 29th, 2023
API - Subscribe Registrations
A new endpoint,
POST /SubscribeRegistrations
, has been developed to create Subscribe Registrations.Based on the provided information, such as the registration’s first and last names and email address, a subscribe registration record will be added to the Registrations table in the database.
A new endpoint,
GET /SubscribeRegistrations
, has been developed to return the details of created registrations.The details of registration can be retrieved by providing either the registration email ID or registration ID as an input parameter.
A new endpoint,
GET /SubscribeRegistrations/{CustomerRegistrationId}
, has been developed to return the details of created registrations based on the provided Customer Registration ID.A new endpoint,
PUT /SubscribeRegistrations/{CustomerRegistrationId}
, has been developed to update an existing Subscribe Registration. Note: If the provided Customer Registration ID does not exist in the Registrations table, a new record will be created with all the details provided.
API - SubscribeEvents
A new endpoint,
GET /SubscribeEvents
has been developed for retrieving the list of events and their details (such as the Event ID, Event Type Code, Add Date, Date Local, Event Status, Event Message Id, Event Message) and pagination information (row number and total rows).A new endpoint,
GET /SubscribeEvents/{EventId}
has been developed for retrieving the complete details of an event based on the provided Event ID.A new endpoint,
POST /SubscribeEvents
has been developed to create a new event.A new endpoint,
GET /SubscribeEvents/{EventId}/Operation
has been developed for retrieving the operation information for an event.Note: The operation information is retrieved from Event_Post_Return_Html.
CMS
CMS Content Module Changes
The following changes have been made to the CMS module:
The front-end of the CMS Content Module has been changed from WebServices to AngularJS.
The back-end of the CMS Content Module has been changed from Visual Basic .NET (VB.NET) to NET Framework 4.8 (.NET 4.8).
CMS Notification
CMS > Notification New > Test Notification New
When choosing the consumer as SubCon, the ResponseObject field in the ‘New Notification Testing’ page has now been made a non-mandatory field.
Subscription Panel
Performance Optimization
On the subscription panel, performance issues caused by render-blocking resources such as CSS and JS files on the UI side have been resolved. To prevent the issue, the render-blocking resources will now be preloaded or loaded in an asynchronous manner.
SubCon Site (Self-Service)
Refactoring of Tag Manager section
SubCon Site handles various types of Tag Managers. Whenever a new Tag Manager has to be introduced, it required product development. With this new enhancement, any Tag Manager can be implemented in SubCon Site by just updating client’s configuration without any development.
Standardized Load Script functions
The DOM Service previously consisted of multiple functions dedicated to injecting scripts for various integrations. However, a standardized function has been introduced now that can handle both internal and external scripts. This new function can be utilized throughout the entire application, offering a unified approach.
To clarify, the single standard function is capable of injecting a script by accepting either a URL or a script body.
Resolvers on SubCon Site
Starting from this release, resolvers have been incorporated into SubCon Site pages. As a result, the configuration is readily available when the page loads, eliminating the need for defensive code that previously checked if the configuration was null or undefined.
Upgrade of SubCon Site pages to latest Angular version
The SubCon Site pages have been upgraded to the latest Angular Version 12. It has also made sure that all the packages (dependencies) are upgraded in parallel. In scope of Angular version upgrades, some NgRx syntax has also been upgraded.
Resolved Issues
SubCon Site (Self-Service)
Error in 'My Subscriptions' URL
The issue of paper code in the URL getting changed to the paper code of a different newspaper (default newspaper) after clicking My Subscriptions link (Manage > My Subscriptions) has been resolved.
Issue with Tip Amount
The Tip amount entered by users were getting limited to $50 on My Account page of the Self Service portal while doing the bill payment. The system was not accepting any amount higher than $50. This issue has been resolved and the maximum amount bar is raised to $500 now.
Vacation Stops appearing in Stop Saver flow
The problem regarding the inclusion of the "Vacation Stop with Restart" reason alongside other permanent stop reasons in the subscription cancellation workflow has been resolved. Following the fix, the "Vacation stop with Restart" reason will no longer appear in the drop-down menu of reasons for permanent subscription cancellation.
Error message on Cancel page even after navigating to another page
The alert message that got displayed on the Cancel page while cancelling a subscription on a non-publishing day was still appearing on the page even after the user navigated to another page and then came back. This has been resolved now.
Missing Credit Card Details
Even after the successful Autopay Signup, the credit card details entered were not visible in the Autopay Manage page. Likewise, when the user was trying to update the payment details on SubCon Site, the credit card details were blank whereas the same account had credit card info in the One-CSR Portal. These issues have been resolved.
The iframe loading error on payment pages
The issue of iframe not loading on the payment page (autopay/signup page) has been resolved. While the issue did not happen in incognito mode, it was affecting the loading of payment pages. This issue has been fixed now.
Login issue
The users were able to change their password in One-CSR Portal with 32 char long password, but encountered difficulties while logging into the SubCon Site with the newly changed password. However, this issue has now been resolved.
Notification Errors
The issue of Notification texts configured in CMS not being displayed on SubCon Site pages (VerifyAccount, TemporaryStop, StopSaver, and SubscriptionUpdate) has been resolved. The "Notification texts configured in CMS" is working fine for all SubCon Site pages without exceptions.
SubCon Site - Invalid Logout call on some flows and 500 error by Update user endpoint
The issue of an increased number of 500 and 404 errors found on clients' servers has been successfully resolved. This was an Authentication system specific issue. For SSOR clients, even if the user was logged out while navigating to the SubCon site, the logout call was triggered and was returning a 500 error. For MG2 Auth clients, the wrong credentials during login were triggering the logout action. After the fix, for SSOR clients, the logout call will be executed with a status 200 and for MG2 Auth clients, there will not be any logout call while entering the bad login credentials.
One-CSR Portal
Registrations User Interface
The push buttons (Details, Edit, Invite, and Forgot Password) located under Registrations in the Digital tab were tightly packed and intersecting with each other. However, after providing enough room between the buttons and reworking the user interface, the buttons now have enough space, and the overall UI appearance has been improved.
Issues with restarting a stopped Subscription
While restarting a recently stopped subscription by paying the valid due amount, the CSR was not taken into the existing account with an updated Active status. Instead, CSR was put into a new Start call which was not the expected behavior. This has been rectified now for all Circ systems.
Custom Report export error
It was not possible to export Custom Report from One-CSR Portal if the dataset to be exported was large. This was caused by an erroneous condition check that relied on row and column counts. After fixing the issue, it is now possible to export the Custom Report regardless of the data size to be exported.
Account update error
While submitting the update of a user account with any action in the Account Information tab, the user was receiving an error message. After fixing, a user account can be updated successfully without any error message.
Company Name column disrupting the layout of Search result grid
The search option Company name is available in One-CSR Portal only if the setting key SubscriberSearchCompanyNameOption in the Support viewer has a value 1. Even when the value of the key was 0, the Company name column was visible in the Search result grid and it was disrupting the layout of the grid.
On the page reload after clicking the Search button, the value of the setting key SubscriberSearchCompanyNameOption was not considered, and the system was displaying the default result grid with Company name column. This resulted in the layout issue. Now after incorporating the adequate checking in place, the result grid is displayed appropriately as per the value of SubscriberSearchCompanyNameOption key.
Offers not available for CSR to subscribe
When the customer support representative user was attempting to add a new user to One-CSR Portal and initiate a subscription call, no offers were displayed, but an error message was appearing, even though offers were already set up in the SolCon. This issue has now been resolved. After the fix, the CSR can now view all offers set up for his teams in SolCon and can select any offer to benefit the customer.
Landing Application
Multiple User issues on landing page application
The following issues that were occurring during the process of adding or updating users through the Landing page application have been identified and resolved:
Once a new user is created and success message is displayed, if an edit happens on the user profile before navigating to any page, the system was not accepting it.
Existing users who had access to multiple applications (Products) were only able to view one application when editing their user profile. Attempts to add additional applications resulted in an error indicating that the user already existed.
Some users were missing the Client and/or Environment settings.
Updating the profiles of existing users was not functioning properly and needed attention.
Solicitor Concierge (SolCon)
Unable to add Division to a published offer
The user was not able to add a Division to a published offer in SolCon. An error message was displayed during this update. This issue has been resolved.
Issue with 'Mark as processed' button
The issue with 'Mark as processed' button in SubCon Admin has been resolved.
API
Gift Flow Corrections - NCS Circ
When a user attempted to buy a gift subscription using the Subscription Panel's Gift purchase subscription flow, the response for the AddModifyDemographic event was displayed as Null. But manually calling the AddModifyDemographic API worked as expected. This issue has been fixed, and the response will now be displayed correctly.
In the Subscription Panel, when purchasing a gift subscription, a success message was displayed; however, the AddSubscription endpoint returned the error message "Invalid Gifting API Response." The issue has now been fixed, and a subscription will be created without error.
Additionally, after the gift has been redeemed, the gift subscription is converted to a standard subscription after the nightly sync.
The gift flow issues have now been resolved for NCS Circ clients.
Supported Versions:
Minimum Subscribe Version: 3.16.3
Minimum NCS Circ Version: 2020.2 Plus SP1
API - Performance
The error "Value cannot be null. (Parameter 'value')" that occurred on the servers with version 3.16.0 for the Subscription Restart and Auth0 User workflows has been resolved.
This error was caused by the null value issue with the MG2.SubCon.WebApi.Controllers, which prevented the applications from working correctly but triggered a lot of pop-up alerts.
Column not populating as expected in event_log table
When new events were created through the POST /Events
endpoint, values in the d_unitNum and d_unitType columns for some of the EventTypes were displayed as Null in the event_log table. This has been fixed, and the aforementioned columns will now display the correct details for the corresponding EventType.
CMS
Page and Segment Management: Error while creating a new page with an existing name
CMS > Admin > Page/Segment Management
When creating a new page (or segment) with an existing page (or segment) name, the unclear error message "Sorry, there was a problem adding page (or segment)." was displayed instead of the correct error message "The Page (or segment) with such name already exists". This issue has now been fixed.
Import progress bar error
While importing a presentation from a JSON file, the import progress content pop-up window became unresponsive after the import was completed, and the user was unable to close the pop-up by clicking the close button (X).
This issue has now been fixed, and the OK button in the pop-up window will only be enabled if the import progress content has reached 100% completion, and clicking the OK button will close the import pop-up window.
Incorrect success message displayed for overriding the attributes
CMS > Attributes > (Select any attribute) > Edit (update the required values) > Save > Remove Override
When overriding an attribute, the incorrect success message "Attribute successfully deleted" was displayed instead of the correct message "Attribute override successfully removed". This issue has now been fixed.
Detail button issue in the User Information component
CMS > Subscription Panel > Presentations > (Select any Presentation) > Details
The issue with the Detail button not displaying the details of the User Information component for clients with large amounts of data, which caused the database to take longer to load the components, has now been fixed.
Incorrect success message displayed for removing an override of a reward
When removing an override of a reward, the incorrect success message "Reward successfully deleted" was displayed instead of the correct message "Override successfully removed". This issue has now been fixed.
Creation of new rewards without selecting Display For checkbox
CMS > Rewards > Add
The issue with rewards being created even when no option for the "Display For" checkbox was selected has been fixed, and creating or modifying rewards without selecting an option under ‘Display For’ will no longer be allowed.
Subscription Panel
Print subscription with non-routable address issue
The issue with the "I'd like to provide a different Billing Address" checkbox being automatically selected when the user enters a non-routable address for a Print Subscription and then selects the routable link to a different offer mentioned in the error message pop-up has been resolved by setting the checkbox to false by default.
OI Database
The regional date format support for Australian clients have been introduced in OI:
All date fields in NCS will be stored in mm/dd/yyyy format in the database (a Progress 4GL feature), regardless of the client's region (US/UK/AUS, etc.). Only the display format varies by region. For example, the display format for the U.S. region will be mm/dd/yyyy, whereas Australia will use dd/mm/yyyy.
Extracted data follows the display format of the field. Therefore, for the U.S., dates in extracts will be in mm/dd/yyyy format, while for Australia, they will be in dd/mm/yyyy format.
There will be no change in date format when receiving requests through CircAPI. NCS expects dates in mm/dd/yyyy format for ALL clients.
CircAPI XML responses may use either yyyy-mm-dd or the client's display format (e.g., dd/mm/yyyy for Australia), depending on the specific API.
ETL changes have been made to accommodate the dd/mm/yyyy format from extracts of AUS region clients. However, Subscribe will store data only in mm/dd/yyyy format.
NCS APIs have been enhanced to handle date format conversion (via Business Rules Setup) when receiving/sending date-related data.
Future Enhancements
These are partial enhancements checked into 3.16.3 that do not affect any functionality and will be ready for use in a future release.
External Entitlements - Real-Time Update
A new endpoint,
POST /Entitlements/External
, has been developed to create an Entitlement for a specific subscription with a third-party vendor, such as Firefly or Piano.Configuration Notes:
MG2 control flow setting: Flow.EntitlementProvider is set to Firefly.
If the EntitlementStartDate is today, the Entitlement will be created immediately. An AddExternalEntitlement record will be created and processed to create the license.
If the EntitlementStartDate is in the future, the Entitlement will be queued for later processing. An ExternalEntitlementQueue record will be created.
If the EntitlementStartDate is in the past, the request will be rejected.
MG2 control flow setting: Flow.EntitlementProvider is set to Piano.
Irrespective of the EntitlementStartDate, the Entitlement will be created immediately.
A new endpoint,
PUT /Entitlements/External
, has been developed to update an existing entitlement for a specific subscription with a third-party vendor, such as Firefly. The AddExternalEntitlement record will be updated based on the information provided.A new endpoint,
POST /Entitlements/External/Revokes
, has been developed to delete an entitlement for a specific subscription with a third-party vendor, like Firefly, when a link or license is revoked.Once the entitlement has been removed from the account, a DeleteExternalEntitlement record will be created.
The entitlements are recorded in the ExternalEntitlementQueue table if they have a start date in the future. In order to process these entitlements that are in the ExternalEntitlementQueue table when the start date has been reached, a new endpoint,
PUT /Entitlements/External/Queue/{ExternalEntitlementQueueId}
, has been developed.When processing the record from the queue:
If the event has been processed successfully, an AddExternalEntitlement record will be created and processed for creating the license.
The Status column of the record in the ExternalEntitlementQueue table will be updated to either 1 (if the event has failed to process) or 2 (if the event has been processed successfully).
The ExternalEntitlementQueue table's Retry Count column will be updated to 1 if the event could not be processed, and this number will be increased by 1 for each additional failure.
A record's Status column will be updated to 1 (failed) when the RetryCount reaches the value specified in the MG2 Control Setting, OnPremise.ExternalEntitlement.MaxRetryCount.
A validation error will be returned if the queued record has already been processed (either failed (1) or completed (2)).
A validation error will be returned if the record in the queue has a start date in the future.
A new OnPremise endpoint,
POST /Entitlements/External/Configure
, has been developed to schedule a task (cron job) that will run every day to check the records for processing the entitlements under the ExternalEntitlementQueue table.The Status column (0 or pending) and the EntitlementStartDate (should be ≤ Today) are used to identify the Entitlements records that need to be processed.
With the EntitlementQueueId as an input parameter, the identified records will be processed by calling the
POST /Entitlements/External
endpoint.
A new OnPremise endpoint,
DELETE /Entitlements/External/Remove/{taskKey}
, has been developed to delete a scheduled task created withPOST /Entitlements/External/Configure
endpoint.When creating (
POST /Entitlements/External
), updating (PUT /Entitlements/External
), or deleting (POST /Entitlements/External/Revokes
) an entitlement, an Event ID in the input parameter, ParentEventID, will make the respective entitlement the child event of the provided event (ParentEventID).If no value is passed for the input parameter, ParentEventID, the respective entitlement will have no relation to any other events and is considered a regular event.
An entitlement's parent Event ID will be displayed in the ParentEventID field of AddExternalEntitlement and DeleteExternalEntitlement records. If the entitlement has no parent event, the field will display Null.
The upgrade and downgrade flow for the abovementioned respective endpoints has been updated to include a new step that executes the Create License operation in Firefly through the Update External Entitlement endpoint (
PUT /Entitlements/External
).Once the subscription has been successfully upgraded or downgraded in the Circ System, the AddExternalEntitlement record will be created through the
PUT /Entitlements/External
endpoint.
The Purchase API has been modified to include a step at the end of the New Starts flow to create the Entitlement with a third-party vendor, such as Firefly or Piano.
Once the subscription has been successfully created, the AddExternalEntitlement record will be created through the
POST /Entitlements/External
endpoint.
NavigaPay
A new component, NavigaPay V3, has been added to the CMS to be used as one of the payment methods in the Subscription Panel.
Configuration Notes:
The user can configure the properties by going to:
CMS > Subscription Panel > Presentation (Choose a valid presentation) > PageV3 > stepV3 > PaymentMethod V3 > NavigaPay V3
The cardholder fields to be utilized in the Subscription Panel have now been included in the NavigaPay V3 component.
Configuration Notes:
The user can configure the properties by going to:
CMS > Subscription Panel > Presentation (Choose a valid presentation) > PageV3 > stepV3 > PaymentMethod V3 > NavigaPay V3 > Details > Cardholder fields
The NavigaPay API has now been integrated with the Newstart flow, allowing NavigaPay to be utilized as a payment gateway.
Configuration Notes:
MG2 control flow setting: Flow.BillingProvider should be set to NavigaPay
Solicitor Concierge - API Integration with CircPro
The direct integration API has been developed as a simple wrapper for external systems and is used in cases when consumer applications need to communicate with a specific system but do not need full integration and instead rely on the subscribe API. In addition to CircPro, this feature can also be used for NCS integration.
With this release, the API development has been completed, and the Solicitor Concierge application will be enhanced to consume this API in an upcoming release.
A new Direct Integration Orchestration API,
GET /DirectIntegration/Rates
, has been developed for CircPro clients to return the available rates for a specific publication.A new Direct Integration Orchestration API,
GET /DirectIntegration/StartReasons
, has been developed to return the start reasons available for a publication for CircPro and NCS Circ clients.Configuration Notes:
MG2 control flow setting: Flow.CircSystem value should be set to either NCS or CircPro based on the Publication information required.
A new Direct Integration Orchestration API,
GET /DirectIntegration/Rates/{externalId}
, has been developed to return details of rate codes based on the ID (ID - rate code received in theGET /DirectIntegration/Rates
endpoint) for CircPro clients.
Last updated