Technical FAQs

Question

Can I host multiple PrizmDoc viewers on a single page?

Answer

It is possible to host multiple viewers on a single page. The following example leverages Bootstrap’s tab implementation:

<!DOCTYPE html>

<html lang="en">
<head>
    <!-- Metadata -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
    <meta name="description" content="" />

    <!-- Title -->
    <title>AccuSample</title>

    <!-- Libraries -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/css/bootstrap.min.css">

    <!-- PrizmCSS -->
    <link rel="stylesheet" href="https://pcc-demos.accusoft.com/static/viewer-latest/css/viewercontrol.css">
    <link rel="stylesheet" href="https://pcc-demos.accusoft.com/static/viewer-latest/css/viewer.css">

    <!-- Inline Stylesheet -->
    <style>
        body {
            overflow-y: hidden;
        }
        #viewer1, #viewer2 {
            height: calc(100vh - 3em);
            width: 100%;
        }
    </style>

</head>
<body>
    <!-- #main -->
    <main class="container">
        <ul class="nav nav-tabs" role="tablist">
            <li class="nav-item">
                <a class="nav-link active" id="viewer1-tab" data-toggle="tab" href="#viewer1">Viewer 1</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" id="viewer2-tab" data-toggle="tab" href="#viewer2">Viewer 2</a>
            </li>
        </ul>

        <div class="tab-content">
            <div class="tab-pane fade show active" id="viewer1" role="tabpanel">
                <div id="viewer1">
                </div>
            </div>
            <div class="tab-pane fade" id="viewer2" role="tabpanel">
                <div id="viewer2">
                </div>
            </div>
        </div>
    </main>

    <!-- Libraries -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.1/umd/popper.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

    <!-- PrizmJS -->
    <script src="https://api.accusoft.com/v1/docstore/viewer/assets/classic/bundle.js"></script>
    <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/jquery.hotkeys.min.js"></script>
    <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/viewercontrol.js"></script>
    <script src="https://pcc-demos.accusoft.com/static/viewer-latest/js/viewer.js"></script>

    <!-- Inline Script -->
    <script>
        var viewingSessionId1;
        var viewerControl1;
        var viewingSessionId2;
        var viewerControl2;

        $(document).ready(function() {
            $.ajax({
                "type": "post",
                "url": "https://api.accusoft.com/PAS/V1/ViewingSession",
                "headers": {
                    "acs-api-key": ""
                },
                "data": JSON.stringify({
                    "source": {
                        "type": "url",
                        "url": ""
                    }
                })
            }).done(function(response) {
                viewingSessionId1 = response["viewingSessionId"];

                // Initialize viewer
                viewerControl1 = $("#viewer1").pccViewer({ 
                    documentID: viewingSessionId1,
                    imageHandlerUrl: "https://api.accusoft.com/v2/viewers/proxy",
                    language: languageItems,
                    template: htmlTemplates
                }).viewerControl;
            });

            $.ajax({
                "type": "post",
                "url": "https://api.accusoft.com/PAS/V1/ViewingSession",
                "headers": {
                    "acs-api-key": ""
                },
                "data": JSON.stringify({
                    "source": {
                        "type": "url",
                        "url": ""
                    }
                })
            }).done(function(response) {
                viewingSessionId2 = response["viewingSessionId"];

                // Initialize viewer
                viewerControl2 = $("#viewer2").pccViewer({ 
                    documentID: viewingSessionId2,
                    imageHandlerUrl: "https://api.accusoft.com/v2/viewers/proxy",
                    language: languageItems,
                    template: htmlTemplates
                }).viewerControl;
            });
        });
    </script>
</body>
</html>

spreadsheet security

Few document formats are more common than XLSX spreadsheet files. Although many alternatives are available, most enterprises continue to rely on the broad (and familiar) functionality of Microsoft Excel when it comes to their spreadsheet needs. However, few organizations take the appropriate steps to ensure Excel spreadsheet security, which could leave their private data and formula assets exposed to substantial risk.

As a third party dependency, Excel represents an obvious security gap that could easily be exploited. Any time a file travels outside a secure application environment, there is a potential risk of data theft and version confusion. In any situation where files are travelling between separate applications, there is also an opportunity for malicious files to slip into unsuspecting workflows. By focusing on ways to shore up their Excel spreadsheet security, organizations can minimize risk and protect their sensitive data.

Excel Spreadsheet Security Risk #1: Malicious File Extensions

Most organizations are aware that opening a file attached to an email is one of the most common ways to introduce malware into a system. What they may not realize, however, is just how pervasive the problem is or how well those files are masked. It’s easy to identify a malicious email attachment when its name is a jumble of letters and it has an unfamiliar file extension. The real threat comes when it actually resembles something familiar and potentially legitimate.

Unfortunately, XLSX spreadsheet files are frequently used to distribute malware. According to a comprehensive cybersecurity study conducted by Cisco in 2018, Microsoft Office file extensions (such as DOCX and XLSX) were used by 38 percent of malicious email attachments, higher than any other format. These extensions are attractive to cybercriminals precisely because they’re so widely used. Someone working in a financial services organization, for instance, is usually quite accustomed to sending and receiving spreadsheets via email, so they are more likely to open an XLSX file out of curiosity.

Of course, this raises a separate question about basic cybersecurity. No organization today should be relying on poorly secured channels like email to share sensitive documents in the first place. By integrating native XLSX viewing and editing capabilities directly into their web applications, developers can provide the tools necessary to share spreadsheets without the risk of exposing collaborators to malicious file extensions. Embedding spreadsheet files into the application allows for easy access, but also keeps the file safely within a secure environment. Once users become accustomed to accessing spreadsheets this way, they’ll be less likely to fall prey to a malicious XLSX extension in their email. 

Excel Spreadsheet Security Risk #2: Insufficient Access Control

Spreadsheets can contain a great deal of information. Not only do they make it easy to reference data and carry out complex calculations in seconds, there’s a lot happening behind the scenes that may not be immediately obvious to the average user. Spreadsheet cells typically incorporate highly detailed (and often proprietary) formulas that help organizations to estimate costs, assess risk, and adjust revenue forecasts. For many industries, there’s simply no software that can compete with the extensive capabilities of spreadsheets.

But that versatility comes with a cost. Any user with a rudimentary knowledge of spreadsheets can easily reveal hidden information and examine the formulas behind the document’s calculations. And once they’ve downloaded their own copy of the spreadsheet, there’s nothing to prevent them from using it elsewhere, which can be a serious problem for any organization that depends upon its proprietary formulas to drive business success.

The root problem in this case comes down to who has control over the spreadsheet. When an XLSX file is shared, it can then be copied or even altered without the knowledge or permission of its original owner. The best way to maintain control over spreadsheets is to integrate native XLSX viewing capabilities directly into a web application. This allows developers to control which elements of the spreadsheet are being shared and prevents anyone from downloading a copy without permission. Since users can only interact with the spreadsheet on the terms set by the file’s owner, they can’t peek “under the hood” to obtain proprietary assets like cell formulas.

Secure Your Spreadsheets with PrizmDoc Cells

Accusoft’s PrizmDoc Cells is a powerful API integration that allows developers to provide dynamic spreadsheet viewing and editing capabilities within their web application environment. Far more versatile than traditional viewer integrations that offer only a static “print preview” image of a spreadsheet, PrizmDoc Cells makes it possible to scroll both vertically and horizontally and even enter information into cells to perform calculations. It’s the most secure way to provide access to spreadsheet resources without sacrificing control over editing permissions. And since the XLSX file never has to travel beyond a secure application environment, there’s no need to worry about malicious file extensions when sharing spreadsheets.

Developers can use PrizmDoc Cells’s whitelabeling features to customize its look and functionality within their application. From editing cell content and format to embedding graphics, they retain complete control over the way viewers interact with spreadsheet files to maximize security and protect vital proprietary information. To learn more about how PrizmDoc Cells can enhance Excel spreadsheet security within your application, visit our product page to explore this powerful integration’s features.

Accusoft and IBM Logos

At Accusoft, we’ve taken a thoughtful approach to incorporating AI into our solutions, rather than simply ticking a box. We’ve identified meaningful use cases by actively listening to our customers and closely observing market trends. As part of our commitment to innovation, we’re excited to announce our partnership with IBM. By integrating watsonx.ai technology into our flagship product, PrizmDoc, we’re empowering ECM software organizations with AI technology to significantly reduce document processing times.

PrizmDoc is an indispensable tool for ECM software organizations. It enables users to view, annotate, redact, and process multiple document formats seamlessly and securely within their applications. By integrating IBM’s watsonx.ai technology, we are set to revolutionize the document management and processing value our ECM customers can offer their clients.

How IBM watsonx.ai Enhances Accusoft’s PrizmDoc

We are excited to introduce the following new PrizmDoc AI-powered features leveraging IBM watsonx.ai:

Auto Summarization

With watsonx.ai, Auto Summarization allows PrizmDoc users to swiftly generate concise summaries of lengthy documents, saving valuable time and effort. Whether it’s a report, legal contract, or technical specification, this feature distills essential information into a compact, easy-to-digest format.

Auto Tagging and Classification

Using watsonx.ai’s advanced natural language processing algorithms, the Auto Tagging and Classification feature automatically analyzes the content and assigns relevant tags and categories. This streamlines document organization and retrieval, making it easier for users to locate the information they need promptly.

Document Q&A

The new AI-powered Document Q&A feature is particularly noteworthy. Users can ask questions and receive answers based on the content of their documents. By leveraging watsonx.ai’s query capabilities, PrizmDoc interprets user questions and extracts relevant information, providing targeted and accurate responses.

PII Detection and Redaction

The enhanced Personally Identifiable Information (PII) Detection and Redaction feature utilizes watsonx.ai’s expansive language models. This option addresses the growing need for data privacy and compliance worldwide. PrizmDoc supports users by automatically identifying PII within documents and providing one-click or automated redaction, ensuring that sensitive data is adequately protected.

Revolutionizing Enterprise Content Management with AI-Powered Features from PrizmDoc

This development marks a significant leap forward for enterprise content management applications. By harnessing the power of AI, our customers can streamline document management processes, boost productivity, and enhance data security within their tailored software solutions.

Our collaboration with IBM and the integration of watsonx.ai into PrizmDoc strengthens our leadership in this field, empowering our customers to innovate and rapidly bring cutting-edge ECM applications to market.

Learn More – Schedule a Demo and see these powerful features in action.

Processing and archiving massive volumes of paper mail was historically a major challenge for ARAG. When ARAG updated their records system to a newer version, they reevaluated their processing and archiving software and decided to migrate their C/C++ document conversion solution, the VB indexing application, and client application to Java. This move would enable them to support infrastructure growth independent of hardware and operating system requirements. With more than 200 users and 20,000 pages scanned daily, ARAG sought a reliable Java SDK and Library to facilitate the process.

KnowledgeLake had long utilized an in-house viewing solution that allowed customers to view documents within the platform. Although this legacy viewer had gone through many iterations over the years, it was deployed as part of an on-prem solution. When KnowledgeLake transitioned its on-premise products to a cloud-based solution, they decided to evaluate Accusoft’s PrizmDoc as an alternative to their in-house viewing solution.

The last twelve months have seen an unprecedented shift in the way organizations and customers are utilizing digital services. According to data gathered by McKinsey in 2020, digital adoption made roughly five years worth of progress in a span of eight weeks at the onset of the COVID-19 pandemic. While this massive shift impacted almost every industry, the government sector in particular faced tremendous disruption as its legacy systems struggled to keep pace with demand.

Many of the changes in the way people access government services are likely to remain in place even after the threat of the pandemic recedes, which creates a huge opportunity for software developers specializing in GovTech applications. A closer look at GovTech trends for 2021 provides some insight into those opportunities.

5 Key GovTech Trends to Watch in 2021

1. Remote Functionality 

Government agencies had to fundamentally rethink the workplace in response to the pandemic. Non-essential personnel transitioned to working remotely whenever possible, but this move created a number of challenges in terms of collaboration and security. Employees still need to be able to view, edit, and share files without compromising privacy or creating version confusion. All too often, remote workers resort to ad hoc solutions involving third party programs and conventional email, all of which make it incredibly difficult for an organization to maintain control over its essential files. GovTech developers can address these challenges directly by building software that facilitates remote collaboration entirely within a secure application.

2. Doing More with Less

One of the downstream consequences of social distancing restrictions and stay at home orders has been the erosion of sales tax revenue at the state and local level. While the impacts have not been as catastrophic as originally feared, many states are still facing significant budget shortfalls despite making deep spending cuts. The pressure will be on to find GovTech solutions that are easy to implement, use, and maintain. Efficiency and flexibility will continue to be important considerations as state and municipal governments seek out platforms that can address multiple needs and allow them to eliminate costly redundancies.

3. Shift to Digital

When government offices were forced to shut their doors in the early days of the pandemic, they had to scramble to find ways to deliver services digitally. This was especially difficult for agencies relying on legacy infrastructure and outdated software, but the transition to digital is unlikely to slow down anytime soon now that it’s underway. According to a recent study, 61 percent of government officials surveyed believe that the pandemic has accelerated their digital transformation goals, while 75 percent claim that their agency is pushing to offer even more services digitally. That will mean plenty of opportunity for innovative GovTech developers that can provide the automation and data management tools governments need to bring their services into the 21st century.

4. Fight for Privacy

Government agencies sit upon massive amounts of private data that must be kept secure at all costs. From personally identifiable information like Social Security Numbers to contracts and applications that contain confidential business data and vital trade secrets, governments have a responsibility to protect sensitive data at all times. They need systems and software that not only keeps files safely within the secure confines of an application, but also provides the redaction capabilities that allow agencies to comply with information requests. By designing platforms that promote transparency while also protecting privacy, GovTech developers can play an important role in building trust between government and citizens. 

5. Citizen-Centric Experience

The combination of evolving public expectations and demographic change was rapidly reshaping the delivery of government services even before the pandemic. In a global survey conducted in late 2019, Accenture found that 50 percent of respondents believed that requests to an agency could be resolved faster with the use of AI assistants or chatbots and that a transition to 24/7 access to government services would be greatly beneficial. Respondents also wanted easier access to their personal information (74 percent), faster response times (73 percent), and greater visibility into the status of their queries and applications (64 percent). Younger citizens accustomed to customer-centric experiences are further shifting expectations of what services the government should be able to offer digitally. It will fall to GovTech developers to design applications that connect citizens to their government and streamline processes that have long relied upon inefficient manual practices and direct physical interactions.

Enhance Your GovTech Application with Accusoft Solutions

Working with the government sector presents a number of challenges to even seasoned developers. From meeting complex compliance and privacy requirements to managing a dizzying range of document types, building and implementing an effective solution takes a great deal of time and development resources.

One of the easiest ways to speed up that process is by incorporating proven functionality into an application with SDKs or APIs. Accusoft’s collection of software integrations helps GovTech developers get to market faster by providing reliable and government-ready content processing features.

  • PrizmDoc Viewer: A powerful HTML5 viewer with annotation and redaction capabilities, PrizmDoc Viewer makes it easy to view, edit, and manage public records, contracts, and even more sensitive documents all within a secure GovTech application.
  • ImageGear: With ImageGear’s extensive image processing, conversion, and compression features behind them, GovTech applications can easily improve document workflows, consolidate information, and meet government archiving standards (thanks to PDF/A support).
  • FormSuite: Processing government forms can quickly overwhelm an application if it doesn’t have the capabilities to handle multiple form types or clean up document images. FormSuite for Structured Forms is a collection of forms processing SDKs that helps GovTech applications quickly sort and extract data from structured forms for superior speed and accuracy.

As GovTech trends continue to accelerate in 2021, developers need partners they can trust to provide secure, reliable functionality to their applications so they can focus their efforts on building software that meets the exacting needs of the government sector. Learn more about how Accusoft can fulfill that role and elevate the potential of GovTech applications.

The ability to watermark documents is essential for many businesses. By utilizing watermarks, organizations can quickly brand their assets and take steps to protect their valuable intellectual property. When identifying mission critical document features for their applications, developers need to keep in mind all the ways that watermarks continue to be deployed for a variety of use cases.

What Is a Watermark?

A watermark is a semi-transparent line of text or an image that is embedded into a file to indicate that it belongs to a person or organization and cannot be reproduced or distributed without permission. In most instances, watermarks are visible, but some text-based watermarks are embedded in such a way that they only become visible after the document is scanned or printed.

Digital watermarks are one of the earliest and most effective forms of security for documents and images. They are most commonly used by photographers who want to protect their images from unauthorized usage. Their watermark is superimposed over the image, making it difficult to remove without also damaging the source image in the process. 

The same basic principle applies to documents, especially PDF files that are easy to download, view, and distribute. Many organizations continue to add specialized watermarks to their documents to protect both confidential information and intellectual property. Understanding which types of watermarks to use and why is an important aspect of effective document security.

Why Should You Watermark Documents?

There are a few reasons why an organization may want to watermark documents. Although they’re most often associated with security, they can be used for other purposes as well. Here are a few major use cases involving document watermarks:

Classify Documents More Easily

File management can be a challenge for organizations of all sizes. While steps like naming conventions can help somewhat, it can be difficult to keep track of which files can be shared openly and which ones should only be opened and viewed within a secure application environment. Watermarks can be added to documents to indicate how they should be handled. A contract that’s labeled “Confidential,” for instance, makes it clear to the user that they should follow the proper security precautions when viewing the file, such as not leaving the screen open unattended or not sharing their screen with another participant on a video call. It also removes any ambiguity about the nature of the document.

Track Your Documents

While many free watermarking tools only allow users to add a generic logo or text to a document, dedicated viewing solutions like PrizmDoc Viewer can create watermarks that contain unique identifiers, making it easier to track documents throughout their lifecycle. This makes it easier to track down the source of a leak or breach if a file ends up somewhere unexpected. In addition to the security benefits, customized watermarks that include a user name, time stamp, or revision number helps organizations maintain better version control over their documents and avoid any confusion over which file is the most up-to-date.

Discourage Unauthorized Distribution

Watermarks are an easy way to indicate ownership of a document and its contents. While many files, and PDF files especially, are protected by some form of digital rights management (DRM) that limits who can open, edit, or copy them, this form of security is often circumvented by inventive tactics like taking a screenshot, capturing video footage, or even photographing a screen with an external device. 

If the captured document has a watermark, it will be quite difficult for someone to distribute the file without revealing the owner. While it’s possible to remove a watermark without damaging the document contents, doing so can be a difficult and time-consuming process that often isn’t worth the effort. More importantly, if the watermark contains identifying information, it’s often possible to find out where a security breach occurred and then locate those responsible for it.

How to Watermark Documents

While many organizations understand the value of adding watermarks to their documents, they often don’t have the tools in place to do so effectively at scale. There are a number of free watermarking web applications available, but these sites typically require a file to be uploaded first, which creates a huge security risk for most businesses. In many cases, this process is also irreversible because it burns the watermark into the document itself. 

Microsoft Word can easily add watermark text or images to a document, but they’re also quite easy to remove. In fact, a quick Google search points to multiple resources for removing Word-based watermarks from both DOCX and PDF files.

PrizmDoc Viewer supports multiple forms of document watermarks natively within an application, including identifying text, diagonal text, and images. More importantly, since the watermark is associated with the document viewing session, it isn’t applied to the source document itself, which remains secure within the main application. Watermark document properties can be specified to include more than one watermark in a viewing session, even supporting mixed types on different areas of the page.

Text Watermarks

The watermark API for PrizmDoc Viewer allows users to adjust the location, size, and style of the text. Information included can be adjusted based on document needs.

Diagonal Text Watermarks

PrizmDoc Viewer can apply a single directional text watermark across the center of the page. By including control characters in the text string, it’s possible to create line breaks in the text.

Image Watermarks

The watermark API can also add a transparent PNG file to the document, which is ideal for displaying a company logo. PrizmDoc Viewer can adjust the opacity of the watermark regardless of whether it’s an image or text.

By adding multiple watermarks, organizations can easily brand their files across the company while also providing effective tracking information for individual documents.


Start Watermarking Documents Today with PrizmDoc Viewer

A fully-featured HTML5 viewer, Accusoft’s PrizmDoc Viewer is easily integrated into web applications in need of comprehensive viewing and document management capabilities. In addition to watermarking, it delivers conversion, OCR, annotation, and redaction support for more than 100 different file types. Get a hands-on view of how easily PrizmDoc Viewer can apply custom watermarks to your documents with our watermarking API demo.

Although it might feel as though time has been standing still for several months, 2020 is finally coming to an end. It’s been a year of unprecedented disruption for many industries, and insurance companies often found themselves struggling to adapt to change. Firms that had the foresight to invest in digital transformation backed by InsurTech solutions, however, proved more capable of meeting the moment and are now poised to thrive in 2021 and beyond.

As the new year approaches, it’s helpful to take a look back at some of the key trends that defined 2020 and created opportunities for innovative InsurTech applications. Understanding the pressures facing the insurance industry will also identify InsurTech projections to watch in the future.

5 Insurance Trends and InsurTech Projections

1. Remote Collaboration

No discussion of 2020 insurance industry trends would be complete without exploring how the COVID-19 pandemic has affected organizations. According to a survey conducted by Deloitte, 48 percent of insurance executives agreed that the pandemic revealed how unprepared their business was for such a disruptive crisis. From the sudden transition to a remote workforce to a shift in risk adjustment factors across the market, insurers have had to scramble to adapt their operations and continue delivering quality services to clients.

With so many employees going remote and customers unable to meet with representatives in-person, organizations that made early investments in digital collaboration tools and automation software were better equipped to meet the challenges of 2020. The industry is expected to make tremendous investments in digital transformation in the upcoming year, whether it’s in powerful document editing and management software, file conversion tools, or secure communication channels that better facilitate true collaboration.

2. Customer Demographic Shifts

Prior to 2020, insurance customers tended to be older, with millennials purchasing life insurance policies at lower rates and often delaying home ownership until later in life. This trend seems to have reversed itself in the wake of the COVID-19 pandemic, however, with life insurance application activity growing twice as fast for people under 45 than those aged 45-49. Since many of these younger buyers are first-time applicants, it’s important for insurance agents and firms to make the process as streamlined and easy to navigate as possible.

According to a nationwide industry survey, just over 75 percent of independent insurance agents are age 50 or older and nearly 68 percent have more than 20 years of experience. Having such a long-tenured workforce poses challenges when it comes to implementing new processes and reaching out to potential customers with different needs and preferences than those of earlier decades. In order to remain competitive, however, firms must invest in the right InsurTech solutions to gather data that will give them a better picture of what insurance products and services younger customers will find attractive.

3. Robotic Process Automation

The shift to a remote workplace greatly disrupted traditional workflows. Without centralized offices, key insurance tasks like claims processing and document verification are much more difficult to perform manually. Organizations that had already invested in robotic process automation (RPA) to handle repetitive tasks were in a much better position to thrive in a remote landscape. 

Insurance companies must be able to process a variety of forms during an application or a claim. Having automated InsurTech tools in place to quickly extract data from a variety of sources and carry information over from one form to another not only saves time, but also greatly reduces the risk of human error. For a remote workforce, automation software helps to consolidate complex workflows to eliminate version confusion and enhance collaboration.

4. Artificial Intelligence

Risk assessment and data analysis are crucial to the underwriting process. In a volatile economic environment, insurance firms are under more pressure than ever before to set the right premiums. Although the data is now readily available to make more accurate assessments, sorting through that information manually is difficult and time consuming. 

As the COVID-19 pandemic demonstrated, the scope of risk can change dramatically in a very short period of time. By deploying artificial intelligence (AI) to analyze risk factors and review potential fraud claims quickly and accurately, insurers can create customized policies and provide more responsive service to their customers.

Implementing AI-driven algorithms as part of the underwriting and fraud analysis process will only be one part of the challenge facing firms in 2021. These powerful tools must have sufficient data in order to make informed predictions. By improving the data collection process with form processing tools, file conversion, and programmatic searches, insurers can provide their analytics platforms the best possible information for analysis.

5. Customer Experience

One of the few positive impacts of the COVID-19 pandemic was that it forced organizations across every industry to find new ways of connecting with their customers. The insurance industry has traditionally lagged behind other sectors, tending to lean upon a combination of tradition and legacy infrastructure to engage with customers. But the events of 2020 have underscored the need for a true digital transformation that fundamentally reorients the way firms market, sell, and deliver insurance products. The need has become so evident, in fact, that a recent PWC survey found that 70 percent of insurance CEOs are prioritizing customer experience and user interfaces as their top investment opportunity.

In the coming year, firms will likely continue to invest in technology that makes it easier for customers to research and manage their policies. Whether it’s applications that allow them to submit claims information in a variety of file formats or forms and contracts that automatically fill in commonly used form fields, the core focus will be on making the customer experience as frictionless as possible with a variety of InsurTech benefits.

The Role of InsurTech

Many insurance companies will be looking to upgrade their technology stack and client-facing applications in response to these trends. That creates a tremendous opportunity for InsurTech developers who are creating the next generation of software tools to streamline core processes common to the insurance industry.

Delivering those digital products on a short timeline with limited resources, however, can be quite a challenge for even the most innovative InsurTech startup. That’s why many of them turn to third-party solutions to provide proven functionality that lies outside the scope of their development expertise. 

Features like forms processing, document conversion, and image viewing can be easily integrated into an application using an SDK or API, saving the team weeks or even months of work. This helps InsurTech companies get their products to market faster to meet the digital transformation needs of their customers and keep them a step ahead of their competitors.

InsurTech SDKs and APIs

Accusoft’s family of processing and automation SDKs and APIs provide InsurTech developers with the tools they need to easily plug essential functionality into their applications so they can get back to focusing on their most innovative features. With a variety of deployment options and a diverse set of code-based solutions, we have the flexibility to meet your software’s unique use case and substantially reduce your time to market.

Whether you’re looking to integrate document viewing, collaboration, or processing to your InsurTech platform, our SDK and API-based products can help you deliver the InsurTech benefits your customers are looking for. Learn more about our insurance solutions or contact us today to demo one of our products.

developer sitting at computer

Offering product integrations can be one of the easiest ways to expand the feature set of a product without adding loads of time and cost on development resources. Docubee currently has external integrations with Salesforce, Sharepoint, and Brother scanners that we offer to our customers. Internally, we have an integration with Slack that allows our development team to be notified of different events that happen within Docubee. As a team of engineers, we are always looking for new ways that we could possibly use Docubee with other products, and luckily, we usually find some time to prototype out these integrations.

Being an Apple enthusiast myself, one of the first things I wanted to try to integrate Docubee with was Apple HomeKit so I could use Siri to launch workflows. I configured my Apple TV to work with the Home app and was all ready to go. Unfortunately, I quickly found out that HomeKit does not natively support customizations like this. Lucky for me, someone had already come up with a solution to this problem using Homebridge and a node module called homebridge-cmdswitch2.

According to their Github, Homebridge is “a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API” and homebridge-cmdswitch2 “allows you to run Command Line Interface (CLI) commands via HomeKit”. After that, the setup was pretty simple to get everything working. I had to create a workflow in Docubee that I wanted to start, configure my Home app to work with Homebridge, and write this config file below. Before I knew it, Siri was launching workflows for me.

{
  "bridge": {
      "name": "Homebridge",
      "username": "CC:22:3D:E3:CE:30",
      "pin": "031-45-154"
  },
  
  "description": "Homebridge Docubee Config",

  "accessories": [],

  "platforms": [{
    "platform": "cmdSwitch2",
    "name": "CMD Switch",
    "switches": [{
      "name" : "Docubee Workflow",
      "on_cmd": "curl -d '{\"wfModelId\":\"ec6e7fc4-1c38-4ebf-8a32-a02ba6721ffe\", \"wfData\": {}}' -H \"Content-Type: application/json\" -X POST {LAUNCH_WORKFLOW_ENDPOINT}",
      "state_cmd": "exit 1",
      "off_cmd": "echo off"
    }]
 }]
}

One of the next integrations I wanted to try to play with was Slack. I mentioned that we already use it internally, but I wanted to see if there was a way that we could make a Slack integration that was useful for an end-user. After creating my own Slack app to play with, I wanted to be able to launch a workflow from Slack as well as send a message back to Slack notifying me that a workflow was launched. To do both of these things, I had to create a handler somewhere to take the callback IDs that Slack would send to our API and do something with them. The finished handler looked like this:

'use strict';
const qs = require('qs');
const request = require('request')

function handleInteractiveMessage(req, res) {
  const task = req.task;
  res.status(200);
  res.end();
  task.log.info({ source: 'slack-connector.handInteractiveMessage' }, qs.parse(req.body));
  const payload = JSON.parse(qs.parse(req.body).payload);
  const responseUrl = payload.response_url;
  const callbackId = payload.callback_id;
  task.log.info({ source: 'slack-connector.handleInteractiveMessage', responseUrl }, 'response url');
  task.log.info({ source: 'slack-connector.handleInteractiveMessage', callbackId }, 'callback id');
  if (payload.callback_id === 'docubee_workflow_start') {
    kickOffWorkflow(task);
  } else if (payload.callback_id === 'handle_workflow_actions' && payload.actions[0].value !== 'redirect') {
    confirmCancelWorkflow(task, responseUrl, payload.actions[0].value);
  } else if (payload.callback_id === 'confirm_cancel_workflow' && payload.actions[0].value !== 'No') {
    cancelWorkflow(task, payload.actions[0].value, responseUrl)
  }
}

function confirmCancelWorkflow(task, responseUrl, wfInstanceId) {
  return new Promise((resolve, reject) => {
    task.log.info({ source: 'slack-connector.confirmCancelWorkflow', wfInstanceId }, 'wf instance id');
    request({
      url: responseUrl,
      method: 'POST',
      json: true,
      body: {
        text: 'Are you sure you want to cancel this workflow?',
        attachments: [
          {
            fallback: 'See what\'s going on!',
            author_name: 'Owner: ntorretti',
            title: 'Confirm Cancel',
            text: 'Please confirm you want to cancel this workflow',
            callback_id: 'confirm_cancel_workflow',
            actions: [
              {
                name: 'action',
                type: 'button',
                text: 'Yes',
                style: '',
                value: wfInstanceId
              },
              {
                name: 'action',
                type: 'button',
                style: '',
                text: 'No',
                value: 'No'
              }
            ]
          }
        ]
      }
    }, (err, response) => {
      if (err) {
        task.log.error({ source: 'slack-connector.confirmCancelWorkflow', err }, 'whoops');
        reject(err);
      } else {
        task.log.info({ source: 'slack-connector.confirmCancelWorkflow', response }, 'response');
        resolve({ status: 'Request successfully sent to callback API endpoint.' });
      }
    });
  });
}

function sendCancelConfirmation(task, responseUrl) {
  return new Promise((resolve, reject) => {
    request({
      url: responseUrl,
      method: 'POST',
      json: true,
      body: {
        text: 'We have successfully cancelled your workflow.',
      }
    }, (err, response) => {
      if (err) {
        task.log.error({ source: 'slack-connector.sendCancelConfirmation', err }, 'whoops');
        reject(err);
      } else {
        task.log.info({ source: 'slack-connector.sendCancelConfirmation', response }, 'response');
        resolve({ status: 'Request successfully sent to callback API endpoint.' });
      }
    });
  });
}

function cancelWorkflow(task, wfInstanceId, responseUrl) {
  return new Promise((resolve, reject) => {
    request({
      headers: { 'content-type': 'application/json' },
      url: {CANCEL_WORKFLOW_ENDPOINT},
      method: 'POST'
    }, (err, response) => {
      if (err) {
        task.log.error({ source: 'slack-connector.cancelWorkflow', err }, 'whoops');
        reject(err);
      } else {
        task.log.info({ source: 'slack-connector.cancelWorkflow', response }, 'yay');
        sendCancelConfirmation(task, responseUrl);
        resolve(response);
      }
    });
  });
}

function kickOffWorkflow(task) {
  return new Promise((resolve, reject) => {
    request({
      headers: { 'content-type': 'application/json' },
      url: {LAUNCH_WORKFLOW_ENDPOINT},
      method: 'POST',
      body: JSON.stringify({
        wfModelId: 'd32aa8ba-f153-46b5-8c62-81d14327c924',
        wfInstanceName: 'Untitled',
        wfData: {
          Originator: 'Natalie Torretti',
          Originator_Email: 'ntorretti@accusoft.com',
          email: 'ntorretti@accusoft.com'
        }
      }),
    }, (err, response) => {
      if (err) {
        task.log.error({ source: 'slack-connector.handleInteractiveMessage', err }, 'whoops');
        reject(err);
      } else {
        task.log.info({ source: 'slack-connector.handleInteractiveMessage', response }, 'yay');
        resolve(response);
      }
    });
  });
}

module.exports.initialize = (params, imports, ready) => {
  const framework = imports['prv-common-service-base'];
  const task = framework.taskLogging.createTask();
  const server = imports.server;

  task.begin('Initializing Slack connector component');

  server.post('/interactiveMessage', handleInteractiveMessage);

  task.log.info({ source: 'slack-connector.initialize' }, 'Slack connector component initialized');
  task.end();
  ready();
};

Slack has some great documentation and really is built to handle these kind of integrations. It was not that much work to get everything configured after I had the connector in place. I still needed one more piece of code on the Docubee end to be able to actually send the message to Slack. That send message function ended up looking like this:

const sendSlackMessage = imports => (task, redirectUrl, workflowInstanceId, message) => {
  return new Promise((resolve, reject) => {
    task.log.info({ source: 'utils.sendSlackMessage' }, 'sending slack message');
    request({
      url: 'https://hooks.slack.com/services/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',
      method: 'POST',
      json: true,
      body: {
        text: JSON.stringify(message),
        attachments: [
          {
            fallback: 'See what\'s going on!',
            author_name: 'Owner: ntorretti',
            title: 'Workflow Actions',
            text: 'Here are some actions you can take!',
            callback_id: 'handle_workflow_actions',
            actions: [
              {
                name: 'action',
                type: 'button',
                text: 'View dashboard',
                style: '',
                value: 'redirect',
                url: {LINK_URL}
              },
              {
                name: 'action',
                type: 'button',
                text: 'Go to workflow',
                style: '',
                value: 'redirect',
                url: redirectUrl
              },
              {
                name: 'action',
                type: 'button',
                style: '',
                text: 'Cancel Workflow',
                value: workflowInstanceId
              }
            ]
          }
        ]
      }
    }, (err, response) => {
      if (err) {
        task.log.error({ source: 'utils.sendSlackMessage', err }, 'whoops');
        reject(err);
      } else {
        task.log.info({ source: 'utils.sendSlackMessage', response }, 'response');
        resolve({ status: 'Request successfully sent to callback API endpoint.' });
      }
    });
  });
}

We called this the send SlackMessage function after the “Start Demo Workflow” was started. This sends a message back to Slack that gives the user a couple different actions that they could take on that message. If a user clicked one of the buttons in the message, a request with a specific callback ID was sent to the slack handler and the appropriate action was taken. The first image below shows how I integrated starting a workflow in Slack and the second image shows the message we sent back to Slack after a workflow was started giving the user different actions they can take.

These are just a few ways that Accusoft’s Docubee can be integrated into your daily routines. Whether it’s starting a workflow with Siri or enabling automated Slack processes, Docubee is built to help you and your organization to find the best way to automate processes.

Natalie Torretti

Natalie Torretti, Software Engineer III

Natalie joined Accusoft as a software engineer in 2016. She started on the eDocr team but has spent the last two and a half years on Docubee development team. Natalie has been a large contributor to the React front-end UI of Docubee and made several enhancements to the back-end microservices as well. She obtained her B.S. in Biobehavioral Health with a Psychology minor from Penn State as well as her A.S.T. in Information Technology from South Hills School of Business and Technology. When Natalie is not writing code she enjoys working out, spending time at the pool, and playing with her dogs.

 

The industry-wide push to digitize documents and minimize the use of physical paperwork has made PDF one of the most ubiquitous file formats in use today. Business and government organizations use PDFs for a variety of document needs because they can be viewed by so many different applications. When it comes to archiving information, however, PDFs have a few limitations that make them unsuitable for long-term storage. That’s why many organizations require such files to be converted into the more specialized PDF/A format.  Learn how easy it is to convert PDF to PDF/A with ImageGear.

What Is PDF/A?

Originally developed for archival purposes, the PDF/A format is utilized for long-term preservation that ensures future readability. It has become the standard format for the archiving of digital documents and files under the ISO 19005-1:2005 specification. Government organizations are increasingly utilizing PDF/A to digitize existing archival material as well as new documents.

The distinctive feature of PDF/A format is its universality. Although PDFs are well entrenched as the de facto standard for digital documents, there are many different ways of assembling a PDF. This results in different viewing experiences and sometimes makes it impossible for certain PDF readers to even open or render a file. Because PDF/A documents need to be accessible in the indeterminate future, there are strict requirements in place to ensure that they will always be readable.

PDF vs PDF/A

While PDF and PDF/A are based upon the same underlying framework, the key difference has to do with the information used to render the document. A standard PDF has many different elements that make up its intended visual appearance. This includes text, images, and other embedded elements. Depending upon the application and method used to create the file, the information needed to render those elements may be more or less accessible for a viewing application.

When a PDF viewer cannot access the necessary data to render elements correctly, the document may not display correctly. Common problems include switched fonts (because the original font information isn’t available), missing images, and misplaced layers.

A PDF/A file is designed to avoid this problem by including everything necessary to display the document accurately. Fonts and images are embedded into the file so that they will be available to any viewer on any device. In effect, a PDF/A doesn’t rely on any external dependencies and leaves nothing to chance when it comes to rendering. The document will look exactly the same no matter what computer or viewing application is used to open it. This level of accuracy and authenticity are important when it comes to archival storage, which is why more organizations are turning to PDF/A when it comes to long-term file preservation.

How to Convert PDF to PDF/A

ImageGear supports a broad range of PDF functionality, which includes converting PDF format to a compliant PDF/A format. It can also evaluate the contents of a PDF file to verify whether or not it was created in compliance with the established standards for PDF/A format. This is an important feature because it will impact what method is used to ultimately convert a PDF file into a PDF/A file.

Verifying PDF/A Compliance

By analyzing the PDF preflight profile, ImageGear can detect elements of the file to produce a verifier report. The report is generated using the ImGearPDFPreflight.VerifyCompliance method. 

It’s important to remember that this feature does NOT change the PDF document itself. The report also will not verify annotations that have not been applied to the final document itself. Once the report is generated, a status code will be provided for each incompliant element flagged during the analysis. 

These codes can have two values:

  • Fixable: Indicates an incompliance that can be fixed automatically during the PDF/A conversion process.
  • Unfixable: Indicates a more substantial incompliance that will need to be addressed manually before the document is converted into PDF/A.

Converting PDF to PDF/A

After running the verification, it’s time to actually convert the PDF to PDF/A. The ImGearPDFPreflight.Convert method will automatically perform the conversion provided there are no unfixable incompliances. This process will change the PDF document into a PDF/A file and automatically address any incompliances flagged as “Fixable” during the verification process.

While it is not necessary to verify a PDF before attempting conversion, doing so is highly recommended. Otherwise, the document will fail to convert and return an INCOMPLIANT_DOCUMENT code. The output report’s Records property will provide a detailed report of incompliant elements. Since any “Fixable” incompliances would have been addressed during conversion, the document’s remaining issues will need to be handled manually.

This method is best used when manual changes need to be made to the PDF file prior to conversion. One of the most common changes, for example, is making the PDF searchable. Once the alterations are complete, the new file can be saved using the ImGearPDFDocument.Save method.

Other ImageGear PDF to PDF/A Conversion Methods

Raster to PDF/A

ImageGear can save any PDF file produced directly by a raster file as a PDF/A during the initial conversion. A series of automatic fixes are performed during this process to ensure compliance.

  • Uncalibrated color spaces are replaced with either a RGB or CMYK color profile. This could change the file size.
  • Any LZW and JPEG2000 streams are recompressed since PDF/A standards prohibit LZW and JPEG 2000 compression.
  • All document header and metadata values are automatically filled in to comply with PDF/A requirements.

Quick PDF to PDF/A Conversion

For quick conversions in workflows that don’t require displaying or working with a file in any way, the ImGearFileFormats.SaveDocument method is another useful option. This process loads the original file, converts it, and saves the new version all at once. It’s important to set the PreflightOptions property to be set in the save options. Otherwise, the new document will not save as a PDF/A compliant file.

Take Control of PDF/A Conversion with ImageGear

Accusoft’s versatile ImageGear SDK provides enterprise-grade document and image processing functions for .NET applications. With support for multiple file formats, ImageGear allows developers to easily convert, compress, and optimize documents for easier viewing and storage.

ImageGear takes your application’s PDF capabilities to a whole new level, delivering annotation, compliant PDF to PDF/A conversion, and other manipulation tools to meet your workflow needs. Learn more about how ImageGear can save you time and resources on development by accessing our detailed developer resources.