Integrate Third-Party Software with an Upload or Search Configuration
    • 28 Nov 2025
    • 7 Minutes to read
    • Contributors
    • PDF

    Integrate Third-Party Software with an Upload or Search Configuration

    • PDF

    Article summary

    Introduction

    You can integrate almost any third-party system with Lasernet Keep uploads and searches. The provided integration methods enable third-party systems to prepopulate keys in uploads and searches. The prepopulated data is called "seed" data.

    For example, if a third-party ERP system holds data about particular customers, it might provide a facility for its users to upload documents (to Keep) that are related to that customer, such as invoices for their orders. In this scenario, the ERP system could initiate an upload in Keep and pass the customer's Customer ID to the upload configuration. In the Keep user interface, after the user selects documents to upload, the Customer ID key for each of those documents would already be filled.

    Similarly, the third-party system could provide values for query keys (such as Customer ID) for a particular search. In the Keep user interface, that search would run, using the supplied seed data as the value for the Customer ID query key.

    Another way that this feature is used is to provide values for hidden fields. When upload configurations are created, key definitions are bound to the upload configuration. However, some of those key definitions can be specified as hidden, so that when a user uses the upload, those keys are not present in the Key Input and Table Input panes. Although the user cannot enter values for hidden keys, the integrations described on this page can supply values for them. This capability can be similarly used for hidden query keys on search configurations.

    Note

    This page contains draft documentation for beta software. Until the final release of Lasernet Keep 11.0, the content on this page is subject to revision.

    Types of Integration

    Keep provides two integration methods:

    • URL-parameter-based integration: A simple integration that passes key values to search and upload configurations through URL parameters. See URL-Parameter-Based Integration.

    • JavaScript integration: A more secure (and more complex) integration that requires Keep to store the key values that you want to prepopulate uploads and searches with. This type of integration is more secure because the key values are stored by Keep and recalled when required, rather than included in a URL as plain text. See JavaScript Integration.

    User Workflow

    With both integration methods, an upload or search configuration automatically opens in Keep after the third-party system triggers an upload or search by sending the user to an appropriate URL. For example, the third-party system might contain a button that launches the relevant URL.

    Upload configurations: After the upload configuration loads and the user selects documents to upload, particular keys in the Key Input and Table Input panes are prepopulated with the supplied seed data (according to key value precedence rules).

    Search configurations: Keep runs a search and displays search results. The search uses the specified search configuration and the supplied seed data is used as the search criteria.

    URL-Parameter-Based Integration

    The format of the URL depends on whether you want to launch an upload configuration or a search configuration.

    Upload Configuration

    Use the following format to construct a URL that passes key values to a specified upload configuration:

    <base-URL>/keep/execute/upload/<upload configuration name>?documentDef=<document definition name>&seed=use-query-params&key-<key name>=<key value>

    For example:

    https://KeepServer/keep/execute/upload/upload-customer-documents?documentDef=statement&seed=use-query-params&key-customerid=123456789

    Appropriately replace the following elements of the URL:

    • <base-URL>: The base URL of the Keep installation.

    • <upload configuration name>: The Name of the upload configuration that you want the integration to start.

    • <document definition name>: The Name of the document definition that you want the upload configuration to automatically apply to the selected documents.

      • This parameter is optional. If you omit it, the user must select a document definition after they select documents to upload.

    • <key name>: The Name of the key that you want to supply a value for.

      • To provide a value for Customer Unique Key (CUK), use cuk as the key name. For example: &key-cuk=ABC123

    • <key value>: The value that you want to prepopulate that key with (in the upload configuration).

      • You can supply one key name and key value pair, or multiple pairs, or no pairs.

      • To supply multiple pairs, include multiple &key-<key name>=<key value> parameters in the URL.

    Special Considerations if Providing Customer Unique Key (CUK) As Seed Data

    Customer Unique Key (CUK) metadata enables an organization to apply an identifier (that is meaningful to that organization) to each document in the archive.

    If one of the keys that you provide as seed data is Customer Unique Key (CUK), the upload configuration that Keep loads will permit the user to upload only one file. This restriction is necessary because CUK is a unique identifier, and as a result users cannot upload multiple documents that have the same CUK.

    Search Configuration

    Use the following format to construct a URL that passes key values to a specified search configuration:

    <base-URL>/keep/execute/search/<search configuration name>?seed=use-query-params&field-<query key name>=<query key value>

    For example:

    https://KeepServer/keep/execute/search/customer-statements?seed=use-query-params&field-customerid=123456789

    Appropriately replace the following elements of the URL:

    • <base-URL>: The base URL of the Keep installation.

    • <search configuration name>: The Name of the search configuration that you want the integration to start.

    • <query key name>: The Name of the key that you want to supply a value for.

    • <query key value>: The value that you want to prepopulate that key with (in the search configuration).

      • You can supply one key name and key value pair, or multiple pairs, or no pairs.

      • To supply multiple pairs, include multiple &field-<query key name>=<query key value>  parameters in the URL.

    JavaScript Integration

    When integrated, a third-party system can direct the user to a URL that will launch an upload or search configuration with key data prepopulated.

    Functions

    The method used to construct the URL will vary depending on the function used (buildDirectLaunch or produceSecureLaunch).

    A script file containing the functions to launch a document import is available at the following URL: <base-URL>/keep/launcher.js . Substitute <base-URL> for the base URL of the Lasernet Keep installation (or for http://localhost or https://localhost, if appropriate). For example, https://KeepServer/keep/launcher.js

    Use the script’s URL to include the script in your application.

    Open launcher.js file in a web browser or text editor to view the code along with its inline documentation. For descriptions of the functions’ parameters, refer to the documentation in the .js file.

    The file declares two global instances (DocUploadLauncher and DocSearchLauncher) that each contain functions to launch a configuration via URL (buildDirectLaunch) or via POST (produceSecureLaunch). The encrypted function produceSecureLaunch is recommended, particularly for sensitive data.

    The following sections of this page describe these functions. For an example of how to use them, see the example later on this page.

    Function – buildDirectLaunch

    This function builds and returns a URL that will start an upload or search in the Keep web application with fields prepopulated. This function differs from produceSecureLaunch in that the seed data is passed in the URL. However, the consequence of this is that the seed data will be:

    • Captured within any system logs or proxy logs that log URLs.

    • Visible to anyone able to view the URL.

    • Easily editable by a user or any "middleman" agent.

    Function – produceSecureLaunch

    This function builds and returns a URL that will start an upload or search in the Keep web application with fields prepopulated. The URL does not contain the key values themselves; instead, the URL contains a unique identifier that Keep uses to securely retrieve seed values stored on the Keep server.

    Consequently, the only information that is visible in the URL (and captured by any system or proxy logs that log URLs) is the seed ID, which can used only by an authenticated Keep user. Using produceSecureLaunch prevents any leakage of sensitive information within logs or to observers of network traffic.

    CORS Configuration (produceSecureLaunch Only)

    If you use produceSecureLaunch, Cross-Origin Resource Sharing (CORS) must be configured on the Keep server. Use the efs.cors.permitted.origins system property in node.properties to specify the domain of the code that is running the script functions.

    # Access/Security
    # --------------------------------------------------
    
    # Set the allowed origins for CORs requests, when not set CORs are not enabled.
    # Set this to either '*' to allow requests from ALL origins (for testing purposes only) or the specific addresses of allowed origins - NOTE that
    # when doing this, the origin of the server must be included to allow direct requests on the server itself.
    #efs.cors.permitted.origins=https://somedomain.com:8080

    Remove the leading # to uncomment the efs.cors.permitted.origins line, and then appropriately set the value of efs.cors.permitted.origins.

    For information about the location of node.properties and how to edit it, see Set Configuration Flag Values in node.properties.

    Backward Compatibility for Existing Integrations with Autoform DM

    The content of launcher.js is also present in <base-URL>/dm/integrations/doc-import-launcher.js for backward compatibility with existing integration scripts that previously targeted Autoform DM and expect a .js file to reside in that location. However, doc-import-launcher.js is deprecated and it is expected that it will eventually be removed. As a result, it is important to update any code that uses <base-URL>/dm/integrations/doc-import-launcher.js to use <base-URL>/keep/launcher.js instead.

    Both launcher.js and doc-import-launcher.js provide DocImportAppLauncher for backward compatibility with existing integration scripts that previously targeted Autoform DM import applications.

    Example of Keep Upload JavaScript Integration Functions

    In this example, parameters are defined and then passed to either function.

    // 1) Define parameters
    
      const configurationName = "my-upload-name"
      const doc = {
        documentDef: "invoice",
        keys: {
          "string-key-1": "a new dynamic value",
          "number-key-1": 12345,
          "date-key-1": "2025-11-18",
        },
      }
    
      const config = {
        baseUrl: "http://localhost:8080" // ensure to set the correct server name and port
      }
    
      // Direct launch
      const url = DocUploadLauncher.buildDirectLaunch(configurationName, doc, config);
    
      // Secure launch
      const url = DocUploadLauncher.produceSecureLaunch(configurationName, doc, config);