Frequently Asked Questions (FAQ)

Requests to Intelligence APIs are blocked by the browser CORS policy. What do I do?

When facing this issue, you will see a CORS error like the one below:

Copy
Copied
Access to XMLHttpRequest from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

This error occurs when the browser is trying to make a request to a different origin (domain) than the one it's hosted on and the server the request is being sent to is not configured to allow cross-origin requests. The Access-Control-Allow-Origin header is used to specify which origins are allowed to access the resource. If this header is not present, the browser will block the request and the error message above will be displayed.

Unfortunately, for security reasons, we can't add "localhost" to the response 'Access-Control-Allow-Origin' HTTP header, so this issue must be solved from the API consumer side.

To solve this problem, we recommend using a REST client instead of a web browser. This would also ease the process of setting the proper HTTP Authorization headers as part of your requests.

Can I retrieve any Knowledge Model item available in the Celonis Platform through Intelligence APIs?

No, you will not be able to retrieve all the Knowledge Model items available in the Celonis Platform. For reference, Intelligence APIs currently support:

How do I retrieve Knowledge Model KPIs through the API?

There are two ways to retrieve KPIs via Intelligence API:

  1. Using the data retrieval endpoint at the KM level ( GET intelligence/api/knowledge-models/{km-id}/data ) and the kpis parameter.
  2. Using the data retrieval endpoint at the KM record level ( GET intelligence/api/knowledge-models/{km-id}/records/{record-id}/data ) when one of the record attributes is equal to a KPI and this attribute is selected using fields parameter.

Is it possible to pull data from multiple Knowledge Model records with a single Intelligence API call?

Yes, using the data retrieval endpoint at the KM level (GET intelligence/api/knowledge-models/{km-id}/data), you can combine attributes from different records in the fields parameter (using the notation record-id.field-id) along with KPIs in the kpis parameter.

Example:

Call

Copy
Copied
GET intelligence/api/knowledge-models/ocpm-procurement-starter-kit-store.ocpm-procurement-km/data?fields=O_CELONIS_VENDOR.NAME,O_CELONIS_VENDOR.COUNTRY,O_CELONIS_VENDOR.CITY,O_CELONIS_CONTRACT.ID&options=distinct&kpis=KPI_PO_ITEM_CONTRACT_USAGE_VALUE_RATE

Result:

Copy
Copied
{
   "page": 0,
   "pageSize": 20,
   "total": 1,
   "sort": [],
   "content": {
        "headers": [
            {
                "id": "O_CELONIS_VENDOR.NAME",
                "name": "Name",
                "type": "string",
                "format": null,
                "unit": null,
                "aggregation": false,
                "filterable": true,
                "sortable": true
            },
            {
                "id": "O_CELONIS_VENDOR.COUNTRY",
                "name": "Country",
                "type": "string",
                "format": null,
                "unit": null,
                "aggregation": false,
                "filterable": true,
                "sortable": true
            },
            {
                "id": "O_CELONIS_VENDOR.CITY",
                "name": "City",
                "type": "string",
                "format": null,
                "unit": null,
                "aggregation": false,
                "filterable": true,
                "sortable": true
            },
            {
                "id": "O_CELONIS_CONTRACT.ID",
                "name": "Id",
                "type": "string",
                "format": null,
                "unit": null,
                "aggregation": false,
                "filterable": true,
                "sortable": true
            },
            {
                "id": "KPI_PO_ITEM_CONTRACT_USAGE_VALUE_RATE",
                "name": "Contract Usage rate [%EUR]",
                "type": "float",
                "format": ",.1%",
                "unit": null,
                "aggregation": true,
                "filterable": false,
                "sortable": true
            }
        ],
        "data": [
            {
                "O_CELONIS_VENDOR.COUNTRY": "DE",
                "O_CELONIS_CONTRACT.ID": "Contract_8004700114202",
                "O_CELONIS_VENDOR.NAME": "ACDA TYRES",
                "KPI_PO_ITEM_CONTRACT_USAGE_VALUE_RATE": 1.0,
                "O_CELONIS_VENDOR.CITY": "Bremen"
            }
       ]
   }
}