Skip to main content

Overview of Extensions

The most common way of adding integrations & functionality to Adaptive Catalog is through our extension APIs. Extensions provide a known and standardized way of receiving information from Adaptive Catalog and enhancing the data shown in Adaptive Catalog without needing to use the lower level APIs. Extensions can be written in any language that supports running as a web service and simply needs to accept specific JSON requests and return specific JSON results.

For C# (and more languages in the future), Adaptive Catalog provides a nuget package that can provide classes for all of the extension calls. For more details see Public Packages.

Example Opportunity Export

The following workflow shows the workflow of a theoretical opportunity export extension.

Types of Extensions

There are currently four primary extension types that are supported for development with Adaptive Catalog.

Export Extensions

The export extension is is called from the workspace by a user. The user is presented with a dialog showing options for the extension, and then the selected options and all the products on the workspace will be sent to the extension.

Real Time Extensions

Real time extensions are called by Adaptive Catalog automatically when a user performs a search. All products returned in the search results with matching vendors are searched for in the real time extension. These should return pricing & availability, and the results are saved back onto the product to allow future searching inside Adaptive Catalog to find products based on price & availability. These are generally paired with FTP or HTTP file imports done nightly.

Recommendation Extensions

Recommendation Extensions allow items to be recommended for a workspace based on other items already on the workspace (such as manufacturer recommendations, warranty upsells, etc) or any other user specified fields.

One example is our Document Analyzer extension, which allows users to upload documents to Adaptive Catalog that are parsed for matching products, keywords, and many other criteria to automatically build out a Bill of Materials.

Webhook Extensions

Webhook extensions are called whenever a product is updated, either through a user manually saving the product, a real time extension updating the pricing & availability, or nightly batch updates. They allow Adaptive Catalog to keep other systems (such as an e-commerce website) up to date with current information in the Adaptive Catalog system.

Encryption

Security is a large focus of Adaptive Catalog, and one of the ways that we manage this is through encryption. All extensions are expected to use PGP encryption keys for any private fields (passwords, API keys, etc). When a user is installing an extension in Adaptive Catalog, the system will query your extension encryption endpoint to retrieve your public key. All fields marked as private in the setup JSON will then be encrypted when stored in Adaptive Catalog. At this point only your application will be able to decrypt the data that Adaptive Catalog sends and Adaptive Catalog will not be able to decrypt the values.

tip

If you roll your encryption keys for any reason, users that have installed your extension will need to update their extension credentials in Adaptive Catalog. Our team can help facilitate notifying all affected users, so please reach out if this is required.

When querying the encryption endpoint of your extension, the response must be in the following format:

{
"key":"-----BEGIN PGP PUBLIC KEY BLOCK-----\n{PGP KEY HERE}\n-----END PGP PUBLIC KEY BLOCK-----\n"
}

Extension Setup

Extensions are installed in Adaptive Catalog based on an Extension Setup Manifest JSON file. All approved and supported extensions can be installed by searching for them on the Adaptive Catalog Extension Management page. For in development extensions, private extensions, or unsupported extensions, you can upload your JSON manifest to Adaptive Catalog. In order to enable this functionality, please reach out to our support team.