Skip to main content

Importing content types in iCL Portal

After creating JSON files and integrating them into the workbook you have to upload these content types into the iCL Portal as well.

The iCL Portal stores all the created, uploaded and updated data transmitted by the iCL Filler. Additionally, with the proper permissions, you are able to see and edit the content types and content items.

On each iCL Portal tenant, each content type id can only exist once, so you have to keep them unique by creating a new guid for a new content type. You can use the same content type on different tenants.

Uploading content types to the iCL Portal​

If you have administration permissions, you are able to upload content types into the iCL Portal.

To upload a content type, you navigate to Settings - Content Types.

There you can add new or update existing content types via drag&drop or by pressing the upload button.

Newly uploaded content types will get a creation date.

The 'Modified' column shows the date of the last update of that content type.


You have to clear the browser cache to actually see the newly uploaded content type in the Content types section. To do so, press CTRL + F5.

Errors while uploading a content type​

There can be reasons, why the upload of a content type may fail - here is a list of the most common issues:

syntax errors in the json fileCopy the content of the JSON into a JSON validator in your browser to see if the syntax of the file is valid. Many times, there is a missing closing bracket or semicolon, or it's wrongly placed.
title fieldThe field, which is used by the titleFieldName has to be "isRequired": true and must be of type text.
content type referenceIf you create a reference to another content type, you need a field of "type": "ContentItem", which is targeted in the reference section.

Changing a content type​

If you want to update an existing content type, the way of updating it strongly depends on the changes you make.

If you just add new fields, create new relations, change titles or a titlefieldexpression, you can do this by uploading the newer CT in the Content types section of the Settings of iCL Portal.

Certain changes may cause a potential loss of data and are therefore prohibited by the UI. For these changes, you have to use the REST API. For further details on which changes can cause data loss and how to handle these cases, visit the content type api documentation here.

What happens, when a content type is changed​

When a content type is changed, this never has a direct impact on any of the items of that type. It merely tells the iCL system how to handle items of that type in the future.

So when you e.g. add a titleFieldExpression to a content type, iCL does not update all items of that type to use the new title. Rather, only the next time when you actually update an item of that type, the `titleFieldExpression will be used to "calculate" the new title of it.

This is also the case for any other change:

  • Changing a field type - the values are still stored in the old type, but when they are read, the system tries to convert them in place. If it fails, it clears the field.
  • Removing a field - the values are still stored, but are ignored when reading/saving. So the value of the field will only be deleted the next time you save (this allows for re-adding a deleted field and magically restore the values in case the field was erroneously removed).
  • Changing the β€žbuiltInFieldβ€œ attribute (e.g. to map a field value of mon_identite to ExternalId) -
    again, the next time an item is saved, the value of the custom field mon_identite is also applied to the ExternalId field.
This is by design

Every content type change potentially affects all items of that type. However, we do still have users in the field using our app and also updating content items. So we cannot just change the content items in the background, as this would potentially cause synchronization conflicts and data loss.