Quable Apps

Need a special function from an external app? Integrate it!

🔔

Subscription to Quable App

Quable Apps are subscription-based options.

➡️ For more information, please contact your Customer Success Manager.

Quable Apps provide extra functionality directly within your Quable PIM. They enable external parties or partners to securely access your Quable PIM content to provide a function or service for all contributors.

Administrators

The Quable Apps page is where you can find and manage all the Quable apps (custom or mainstream) installed on your PIM. On the following page, you can find a table with all your installed app listed, along with their data.

2847

Creating a Custom Quable App

To add a new Custom Quable, to create a connection with another solution for your ecosystem for example, click the Create an app button:

218

A form is displayed to define the new app and its properties.

2850
InformationDescription>
Display NameEnter a descriptive name for the connection.
CodeEnter an alphanumeric value to identify the connection.

Note: This value cannot be changed after the connection has been created.

DescriptionEnter text to describe the purpose of the API connection.
Information typeSpecify the type of information to send to the API:

  • Document - to send document information.
    You then need to select a Document type

Font Awesome iconClick on the emoji face to select an icon or enter the name of a Font Awesome icon to display as the QuableApp icon.
URI of external appEnter the URI of the app.
Authentication typeSelect the type of authentication to use and enter the value in the appropriate entry area:

  • Token - a random string of letters and numbers provided by the QuableApp API.

  • Parameter - JSON code defining the API's required connection information.

Once you've entered all of the information, click the Apply button to save your new Quable App.
You can also click on the breadcrumb on top of the form to return to the Quable Apps table page without saving the app.

Editing an app

You can modify a connection by selecting one from the list and clicking the Edit button.

162

A form is displayed to modify the connection and its properties. When you've finished making modifications, click the:

  • Apply button to save your changes, or
  • Back button to return to the QuableApp page without saving the changes.

Deleting an app

You can delete a connection by selecting one from the list on the QuableApp page and clicking the Remove button.

162

A dialog is displayed to cancel or confirm the deletion.

926

❗️

Attention

This action is irreversible. Once a connection has been deleted, it can't be recovered.

Integrators

Call from Quable

🚧

Prerequisite

In order to connect an external application, you must have knowledge about the authentication mechanism, headers, endpoints, and parameters

👍

Communications are based on REST principles and follow the RFC2119 guidelines.

Quable PIM takes the information you entered when creating the connection and uses it to "talk" to the external API. The conversation has two parts: the call with information being sent and instructions for a response.

How it works

When a PIM user clicks on the button, an API call is made to the Quable PIM API. The Quable API will call "back" the URL provided in the connection with the requested parameters and will wait for a specific answer (see below).

This answer will include a URL and it is this one that will be loaded in the window that the user will see displayed.

Calling the URI

The Quable API makes a POST call to the external API's Resource URI:

curl --request POST \
  --url http://thirdpartyapp.theirdomain.com/appservice
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json'

Here's a breakdown:

Description
Request HTTP verb / method to announce that information is being sent and to create a resource in the API:

POST
URL The address of the API resource:

"{{http}}://quableapp.theirdomain.com/appservice"
Headers Identifies the format of the information sent:

"Accept: application/json"
"Content-Type: application/json"

Next, comes the body of the conversation, the data. It includes the information to process and callback instructions for the API:

"data": {
    "quableInstanceName": "my-instance",
    "userName": "johnDoe",
    "userEmail": "[email protected]",
    "userId": 153,
    "sourceAction": "document_page",
    "documentIds": [
        "001234",
        "A23979"
    ],
    "notificationCallback": {
        "url": "http://my-instance.quable.com/myservice",
        "token": "abc1defgh23ijkl4mnopq56urstuv78wxyz9",
        "method": "POST"
    }
}

The data contains three parts: Identity, Processing information, and Callback instructions.

Here's a breakdown of them:

Description
IdentityInformation identifying Quable PIM and the user requesting access to the QuableApp:

"quableInstanceName"
"userName"
"userId"
"userEmail"
Processing informationInformation on the type of content to be processed:

"sourceAction"
"documentIds"
Callback instructionsThe URL of the Quable API to call at the end of processing in order to send a notification to the user - if desired:

"notificationCallback.url"
"notificationCallback.token"
"notificationCallback.method"

Response to Quable

The Quable App receives a call from the Quable API with the information given in the connection and the data about the user and the objects to be processed.

In order for the PIM to offer the content of the App to the user, the latter must respond with an HTTP 200 code and a request body as below.

  • Success - 200:
{
  "url": "https://my-app.domain.tld/my-app-form",
  "err": 0,
}

Any response other than an HTTP 200: code and a body containing the value "0" for the "err" attribute will be considered an error and indicated as such to the user.

Content Management

If all conditions are met, the URL provided in the request body will be called in the window and then the external app will manage its content.