2024 Q1 Spring Release
Released 29 May 2024 | version 1.1.89
Zenoo’s Q1 Spring update is packed with cool new stuff aimed at making your experience better and more flexible. We’ve been busy tweaking and optimizing things behind the scenes to give you an even smoother ride.
In this release, we’ve added a bunch of features to make your life easier. From small tweaks to big changes, we’ve worked hard to make sure using Zenoo feels like second nature. Whether you’re a newbie or a seasoned pro, you’ll notice the difference.
So, if you’re ready to take your Zenoo experience to the next level, dive in and see what’s new!
Design Studio
new Page interaction
We've upgraded our previous Form Page interaction to the new Page interaction, making it way more flexible and easy to use. Now, you can create various different pages which have all the same menus, settings and internal structure, in one place, saving you time and hassle. Whether you're making a simple form or something more complex, you can customize each page quickly and easily.
Forget about choosing right interaction for the job, you can simply create anything you like with new Page. With the new Page everything you need is right there in one spot, making it simpler to manage. Plus, you can now create really complex, dynamic and interactive pages, giving users a better experience. With Field mapping and new Conditions, you can tailor interactions based on what users do. These changes not only give you more freedom but also make it easier to keep everything up-to-date and running smoothly.
All new elements organized and at one spot
In this release, we've focused on improving user experience and usability through optimization and organization. We've simplified all relevant fields and types into dropdown menus, making it easier for users to see and select their options. This change enhances clarity and efficiency, aligning with our commitment to providing a seamless user experience.
Masking & Concealing & Formatting
This revamped feature brings the capability to conceal UI data from users or apply custom formatting to inputted data. For instance, you can now present Social Security Numbers as "xxx-yy-1234", revealing only the last four digits for user confirmation.
Similarly, you can define a mask for phone numbers, or any other data, allowing users to input information in a specified format such as "(123) 345-334-243". These enhancements provide greater control over data visibility and formatting, catering to specific user needs and improving overall user experience.
Guide
Advanced Settings-> Masking & Concealed inputs
Multiple outputs & Buttons
From now on, every single journey created can have its own set of credentials for services used and for stage/prod environments. This hugely extends flexibility of the solution in case of building journeys for specific customers who have their own set of credentials for connected services.
By default all journeys have a set of credentials defined for stage and for production usage. This will make sure deployed journeys will always work for each environment and will point to the correct services apis and with the correct credentials.
In the use cases where clients have different credentials assigned, usually due to billing or specific internal configurations, credentials can be specifically overridden for each environment.
Guide
How to use Buttons -> comprehensive example of how to use multiple buttons on one page
Conditions
The new Conditions feature introduces a powerful capability to define rules based on field-mapped data or user input data, as well as data from other services. These rules allow for dynamic control over the behavior and appearance of elements within a flow or interface. For example, you can configure conditions where selecting one button triggers the hiding or creation of another element, or even redirects the flow along a different route.
This feature enables cross-functional rules, facilitating complex interactions between different components or stages of a process. By leveraging field-mapped data or user input, users can create conditional logic that responds intelligently to various scenarios. Whether it's adapting to user preferences, validating input against external data sources, or dynamically adjusting the flow based on changing conditions, the "Conditions" feature empowers users to create dynamic and responsive experiences tailored to their specific needs.
Post Data to the flow
In addition to API initialization or URL data, we've introduced a new option for receiving data from HTML forms on external pages. This exciting feature opens up a world of possibilities, particularly for users with existing webpages containing forms. Now, these forms can seamlessly integrate with our solution, allowing for the transmission of predefined data.
This capability is incredibly useful, especially for individuals or businesses with older webpages that lack API integration or underlying services. Despite the absence of modern infrastructure, users can still interact with our solution in a contemporary manner, thanks to this innovative feature. By extending the reach of integration, we empower users to leverage their existing resources more effectively, enhancing productivity and streamlining workflows.
It's important to note that the handling of this data is held to the same rigorous security standards as any other data processed by DS & HUB. This ensures that user information remains protected and confidential, regardless of the source or method of transmission. With this seamless and secure integration option, users can confidently embrace the modernization of their workflows without compromising on data security.
Node.js and packages upgrade to LTS
In our ongoing commitment to ensuring the stability and security of our solution, we've taken proactive steps to upgrade Node.js to the latest LTS version, 18.17.1. This upgrade not only incorporates the most recent enhancements and optimizations but also reinforces our dedication to staying current with industry standards and best practices. By leveraging the latest features and improvements offered by Node.js, we aim to enhance the performance, reliability, and security of our solution, providing users with a seamless and robust experience. This upgrade underscores our commitment to maintaining a cutting-edge and dependable platform, empowering our users to innovate and thrive in today's dynamic digital landscape.
Acuant SDK update
In our continuous efforts to fortify the reliability and security of our solution, we've proactively upgraded AcuantSDK to version 11.9.3. This update not only incorporates the latest advancements and optimizations but also gives our customers latest features integrated by Acuant without need of doing anything manually. By integrating the newest features and enhancements offered by AcuantSDK, we aim to provide the performance, stability, and security of our solution, ensuring a seamless and trustworthy user experience.
Multiple Terms & Conditions
In response to use cases requiring greater flexibility in agreement management throughout workflows, we've implemented the option to define and utilize multiple terms and conditions (T&C) within pages. This new feature empowers users to incorporate the necessary agreements seamlessly into their processes, whether they require the same or different T&C across various stages. Each agreement can be tailored with unique content, facilitating customization to suit specific needs. Additionally, users have the flexibility to apply a single set of T&C across multiple pages, streamlining the process and ensuring consistency where needed.
This enhancement proves invaluable for scenarios where diverse T&C are warranted, such as varying requirements per country or service. With the ability to dynamically adjust T&C based on specific conditions within the page or flow, users gain unprecedented control over the agreement process. Whether adapting to regional regulations or catering to distinct service offerings, our Conditions feature enables users to navigate complex agreements with ease and confidence, fostering a more seamless and tailored user experience.
Custom date formats
We're pleased to announce the integration of additional date formats into our calendar component, expanding your options to include formats like DD/MM or MM/YYYY exclusively. This enhancement addresses specific use cases where non-standard date formats are required, such as confirming credit card validity or verifying the month and year of birth. By incorporating these custom date formats, our calendar component empowers users to interact seamlessly with diverse datetime structures while ensuring the submission of accurate and valid information. This functionality not only enhances user experience but also provides greater flexibility in accommodating unique requirements within various workflows. Whether it's validating critical details or streamlining data entry, our enhanced calendar component enables smoother interactions and fosters confidence in data accuracy.
-
Credit Card Expiry Date Confirmation: When users need to enter their credit card details for online transactions, they often have to input the card's expiry date. Being able to select the date using formats like MM/YYYY exclusively can streamline this process, ensuring that users provide accurate information without confusion.
-
Age Verification for Online Services: Websites or apps that require users to confirm their age, such as those selling age-restricted products or offering adult content, often ask for the user's date of birth. Allowing users to input their birthdate using formats like DD/MM can make this process more intuitive and user-friendly.
-
Travel Booking: In travel booking platforms, users may need to enter their travel dates when searching for flights, hotels, or rental cars. Providing the option to input dates using different formats, such as DD/MM or MM/YYYY exclusively, can cater to users from different regions or those accustomed to specific date conventions.
-
Event Registration: When registering for events or appointments online, users typically have to select a date for their attendance. Allowing them to choose dates using various formats can accommodate different preferences and regional conventions, improving the overall user experience.
-
Subscription Renewal Date Selection: Subscription-based services often require users to select their preferred billing cycle or renewal date. Allowing users to input their preferred renewal date using formats like MM/YYYY exclusively can simplify this process and reduce errors during data entry.
and many more!
Optimisation & Git optimisation
We've dedicated considerable effort to enhancing performance by optimizing caching mechanisms and refining service calls throughout our solution. Lately, Git actions have proven to be time-consuming, prompting us to meticulously identify and address bottlenecks. By re-evaluating and optimizing various calls, we've significantly streamlined the entire process, resulting in a more efficient utilization of server resources and reduced communication times during user interactions with the design studio.
In Git actions, processes like fetching, pulling, and pushing changes to repositories can often become time-consuming, especially when dealing with large repositories or frequent updates. By pinpointing and addressing inefficiencies in these actions, such as redundant calls or inefficient data handling, we've managed to expedite the overall workflow. Additionally, by implementing smarter caching strategies and refining service calls, we've minimized unnecessary overhead and improved the responsiveness of the system. As a result, users can now experience a smoother and more seamless interaction with the design studio, with faster response times and reduced strain on server resources.
Design Studio main features overview:
-
The new Page feature simplifies maintenance tasks and significantly boosts the flexibility of the Design Studio workflow. Its user-friendly interface makes building flows easier, allowing users to quickly adapt to changing requirements. This enhancement enables users to create more dynamic designs, enhancing the effectiveness and agility of their projects.new Page: -
The newly introduced feature caters to a diverse array of use cases, each demanding tailored security measures or specific input patterns for optimal functionality. Whether it's ensuring secure data transmission or enforcing particular formatting requirements, this feature provides the necessary flexibility to accommodate various scenarios effectively. From safeguarding sensitive information to maintaining consistency in user inputs, its versatility empowers users to address their unique security and pattern needs with confidence and ease.Masking & Concealing: -
With our latest update, you now have the capability to diversify flows based on a multitude of data inputs or conditions, allowing for seamless customization of interactions. This means you can effortlessly define numerous routes to any interaction, tailoring the user experience to specific inputs or conditions. Whether it's varying routes based on user input or predefined fields returned from your own or other services, the possibilities are endless. This newfound flexibility empowers you to create dynamic and personalized experiences that cater to the unique needs and preferences of your users, ultimately enhancing engagement and satisfaction.Multiple outputs & buttons & Conditions: -
We've chosen the latest stable and long-supported technology as the foundation for our solution's development. This strategic decision ensures that we leverage the most reliable and well-established tools available, providing a robust framework for innovation and scalability. By aligning with a technology that offers both stability and longevity, we can confidently deliver a solution that not only meets current needs but also anticipates future advancements in the digital landscape. This commitment to using cutting-edge yet dependable technology underscores our dedication to delivering excellence and reliability to our users.Node.js LTS: -
The feature covers a variety of practical use cases where it's necessary to input dates without requiring full date-time information. For instance, it's ideal for scenarios such as specifying credit card expiration dates and various other similar situations. This functionality streamlines data entry processes, ensuring efficiency and accuracy while accommodating specific needs within diverse workflows. By addressing these practical use cases, the feature enhances usability and convenience, ultimately contributing to a smoother and more intuitive user experience.Custom date formats -
The optimization of performance and caching in Git actions has significantly alleviated the overall server power demand, especially during periods of concurrent usage by multiple customers. By fine-tuning these aspects, we've effectively mitigated potential strain on server resources, ensuring smoother operations and enhanced responsiveness for all users. This improvement not only optimizes the user experience during peak usage times but also demonstrates our commitment to continuously enhancing the efficiency and reliability of our platform.Optimalisation & Git performance optimalisation
HUB main features overview:
-
DynamoDB versioning is a feature that enables you to track and manage changes to your data over time by maintaining multiple versions of an item. Each time you update an item in DynamoDB, a new version is created, allowing you to access and retrieve historical versions of the item if needed.DynamoDB versioning & optimisations
This capability is particularly useful in scenarios where you need to maintain a history of changes to your data for auditing, compliance, or rollback purposes. For example, in an e-commerce application, you might want to track changes to product information or pricing over time to understand pricing trends or address discrepancies.Billing services - Zenoo billing service is now way more precise in which calls, transfers and results it's monitoring.
-
We've implemented a new approach where tokens used for service authentication are shared across multiple calls, reducing the need for continuous authentication requests between services. This optimization has had a remarkable impact on server-to-server traffic, leading to significant improvements in efficiency. By minimizing redundant authentication calls, we've not only enhanced the performance of our services but also reduced overall server load, resulting in a more streamlined and responsive experience for our users.Caching tokens
List of the bug fixes in the Release (50+):
PT-2243 Link to some route doesn't work (goes to error page)
PT-2239 Masked input value is not displayed correctly
PT-2235 Masking input causes Execution error in Prove Verify service
PT-2232 Target with configured rdp credentials throws IllegalArgumentException
PT-2227 Field type "number" in Form Data containing >10 chars throws validation error
PT-2222 Request urls in Form data edit form are not visible in dark mode
PT-2218 Symbols are not hidden when user defines Concealed input field
PT-2212 make element modal bigger
PT-2204 Prefill mask in advanced settings fails with deploy error
PT-2200 [new Page] Links throw unexpected error
PT-2198 Investigate TARGET_NOT_FOUND error on git status request
PT-2194 No output connector validation in Page interaction
PT-2193 Product field is displayed as empty string in webhook/api pull results
PT-2190 [new Page] incorrectly used characters in Prefill mask should trigger warning/error
PT-2189 [new Page] Prefill mask is failing
PT-2188 [new Page] Can't disable "Limit by min age"
PT-2172 [new Page] %link% wrap always displays full link text - display value missing
PT-2171 [new Page] some typos
PT-2166 [new Page] Missing validation for protocol for links (that leads to links pointing to project/link)
PT-2164 Text style is not applied to paragraph text
PT-2163 Paragraph text is not displayed after certain amount of chars
PT-2162 Add validation to mask input
PT-2161 Not possible to finish new page tutorial
PT-2158 Value view with Yes or No format displayes value incorrectly
PT-2157 Element with text containing special characters is not displayed
PT-2156 TypeScript error when user clicks on Link
PT-2155 Template upgrdae fails with error
PT-2152 API init function is not working
PT-2151 Checkbox defined subtitle is not displayed
PT-2150 min/max values in date field are not working
PT-2149 Date field is not sent by FE
PT-2148 When selector is Required and user selects any option, another cannot be chosen
PT-2138 Mapped and static data are not displayed in value of Value view field
PT-2136 Defined outputs lead to the same interaction
PT-2133 Git Performance Issue (dev - test - demo - (stage) )
PT-2126 Translations are not refreshed after saving interaction in Flow
PT-2124 [Hub] Fix component config validation when registering components
PT-2123 [Hub] ExecuteRequestTransformer fails on SharableStore read timeout
PT-2116 [Hub] SharableProcessor failing with error when expiring token
PT-2108 Update Node.js to LTS in hub-client-core
PT-2080 RDP connector throws Null pointer exception
PT-2078 Prod error after selfie in Intermediate KYC (salesforce) template
PT-2064 Continue button on Confirmation code screen sends no request
PT-2062 Performance improvement with amount of targets > 200
PT-2054 Branding extraction: failed to apply extracted styles
PT-2039 verify token expiration on Cognito (because of random logouts)
PT-2034 CypressError: cy.task('recordHar')
fail
PT-2028 Upgrade template typo
PT-1985 Remove loggging of component config
PT-1972 TypeScript error when Select document name is mapped to Document upload iteraction
PT-1923 Get rid of @aws-amplify/cli module in docker
PT-1920 Add Prefill with value Value field validation on Form page
PT-1744 Overview page: space between sandbox & live
PT-1729 Fix 403 error when target url contains no slash
PT-1379 Placeholder shouldn't be dropdown list item
PT-1321 User with no Workflow permission cannot deploy project
List of the stories in the release (190+):
PT-2245 Update templates
PT-2244 [Prove Standard] Update existing API Init template
PT-2230 update Acuant SDK
PT-2224 Masking & data toggle
PT-2223 Min/Max date
PT-2217 Updating LSEG templates
PT-2209 Interactions tests are crashing due to not wait on saving changes in editor
PT-2206 [new Page] Improve new T&Cs component input fields
PT-2205 Change wording and placement
PT-2185 [Prove Standard] Update existing P1 template
PT-2184 [HUB] [DS] Remove unused configurations via HUB endpoint
PT-2181 Credentials for production SF Zenoo to be updated on DEMO env.
PT-2179 Compare Data to use new conditional editor
PT-2178 Organize Library order
PT-2173 Add GTM ID to demo-eu onboarding
PT-2160 remove Done interaction from templates + library
PT-2144 Add additional timeout check to tests until performance is solved
PT-2135 [HUB] Add support for HTML Form data handling in exposed functions
PT-2132 [Hub-Client] Fix server URLs in LSEG sample targets
PT-2131 [Hub] Create tags for replica DynamoDB tables and AWS secrets
PT-2130 [Hub] Create name tag for secrets
PT-2129 [Hub] Handle errors with existing DynamoDB tables
PT-2117 Define country type to be used in fieldmapping
PT-2113 New Page - hide all old Formpage tutorials
PT-2103 [Hub] Retrieve component configs by key
PT-2095 Create templated interactions - new PageInteraction - to replace old ones
PT-2094 Create visual components to new PageInteraction
PT-2093 Support for Interaction derived from other one with templated data
PT-2091 [Hub] Production release migration
PT-2090 [Hub] Component token authentication
PT-2083 [Hub] Set replication for AWS secrets when storing component config
PT-2082 [Hub] Update configuration for DS Hub components
PT-2061 [DS] change the way how Authentication is used in DS
PT-2060 Migration script from OLD to NEW "Page"
PT-2057 New calendar component
PT-2056 [Hub] Fix production metrics
PT-2044 [Hub] Endpoint for storing component config
PT-2043 [Prove] Cache access tokens when using Prove services
PT-2031 [HUB] add version endpoint so it can be displayed in DS
PT-2027 Advanced (new) Page
PT-2026 [HUB] Add support for set header to output of exposed functions
PT-2025 [spike] Flow interactions UI tests
PT-2023 [Hub] Set tags when storing secrets using AWS Secrets Manager
PT-2005 Post body data to DS
PT-1996 Prove - Create "P2 ... (w/ KYC/CIP+)" template
PT-1992 [LSEG] DynamoDB global table setup on hub instance level
PT-1989 Packages infrastructure: migration to Rush/Lerna
PT-1983 Prove - Update InstantLink "landing" page (add logo + ability to close/redirect back to the flow on Mobile)
PT-1978 [HUB][DS] Prove - Enable ability to update Instant Link SMS text (link prefix/postfix)
PT-1970 Prove - Create "Verified Users (Pre-Fill with Name)" template
PT-1968 Add UI components settings to Branding
PT-1950 [Hub] Validate exposed component config using require()
PT-1940 [Hub] Access component metadata in component definition
PT-1930 Add test scenarios and API tests for URL data/API init Data
PT-1928 [HUB][DS] Prove - Apps - Enable ability to include firstName, lastName to Prove Pre-Fill App
PT-1904 [Hub] Component config references
PT-1896 Automate packages release process
PT-1888 Add unhappy flow to templates tests
PT-1872 [LSEG][spike] Figure out the values for Content Security Policy (CSP) Header
PT-1859 [DS] change the way how config is handled by DS
PT-1858 [HUB] create config service
PT-1855 TTL PII and Such
PT-1817 Prove Standard - Configure US Phone format | (123) 456-7890
PT-1816 Prove Standard - Configure US SSN format (123-45-1234)
PT-1815 Prove Standard - Enable ability to mask US SSN (XXX-XX-1234)
PT-1814 Prove Standard - Custom MM/YYYY UI element (text input + yearless calendar icon)
PT-1813 Prove Standard - Create Custom MM/DD UI element (text input + yearless calendar icon)
PT-1807 Prove Standard - Custom "T&Cs" Component
PT-1805 Prove Standard - Conditional Paragraphs (and other components) - [Fieldmapping as condition for any element]
PT-1804 Prove Standard - Opt Out (ability to add url)
PT-1761 [LSEG] prepare initial release with hub studio instance, target client files and sample DSL components
PT-1760 [LSEG] export sample studio templates
PT-1713 Add build_params.json to gitignore in targets repositories
PT-1699 [Hub] Store component configuration in Secret Manager
PT-1613 [Hub] Test coverage for templated flows in studio
PT-1364 [spike] Packages infrastructure: prepare boilerplate
PT-1144 Permission/access rights improvements part 2
PT-1143 Move target access rights
Updated 8 months ago