Document Version History
Version number | Modified by | Modifications made | Date modified | Status |
1.0 | Shelf | Initial release of the document. | 7 July 2022 | Active |
Document Purpose
- What is the Shelf Content Integration Layer?
- What purposes does this feature serve?
- How is it enabled?
- How is it configured?
- How is it used in practice?
What is Content Integration Layer?
Content Integration Layer, or CIL, is a feature that allows for connecting the Shelf Answer Automation products with various knowledge and content management systems, not only Shelf KMS.
The feature serves as a director and a mediator between the Shelf Answer Automation products and the customers’ or third-party CMS, with no need to implement any other integrations.
CIL fetches the content from CMSs to the Shelf Answer Assist and lets users enjoy fast and efficient Answer Automation capabilities.
The Content Integration Layer by Shelf consists of the following modules:
- Connectors Module
- Connection Profiles Module
- Sync Flows Module
Figure 1. CIL modules
The sections below provide you with the detailed description of each of these modules and their purposes.
Accessing Content Integration Layer
Shelf’s Content Integration Layer has its own block in the Shelf Admin Panel where you can perform all the needed configurations.
To access all the CIL settings and properties, log in to Shelf using your credentials. If the login procedure is successful, you are redirected to the Admin Panel where in the Content Integration Layer block, you can see the modules available for accessing and configuring, as shown below.
Figure 2. Content Integration Layer in the Shelf Admin Panel
Connectors
In the Shelf terminology, a connector is an entity that defines which external Content Management System Shelf is to connect to through Content Integration Layer (e.g. the Zendesk connector is a set of API parameters to define how to connect Shelf to Zendesk).
The Connectors Module is the starting point for the entire flow of using the Content Integration Layer feature. It is used to point the Shelf CIL at your CMS from which the content is to be fetched via the CMS API and provide a means for authentication for this CMS API via the X-API-Key method.
❗Note:
Some APIs use API keys for authorization. An API key is a special token that you need to provide when making API calls. The key is usually sent as a request header or as a query parameter.
There are connectors prebuilt and preconfigured by Shelf to cover multiple external content storage and management systems, such as Zendesk, SharePoint, etc. However, you are able to create and configure their own connectors to sync their content via CIL. The custom connector creation procedure is described in the section below.
In order to access the Connectors Module in CIL, once logged in to your Shelf account under the Admin role, go to the Admin Panel, find the Content Integration Layer block in the sidebar panel, and select the respective option - Connectors. Once selected, the Connectors page opens in the main part of the window.
Figure 3. Viewing the Connectors page in CIL
On the Connectors page, you are able to see all the connectors available in the Content Integration Layer. In our case, it is the first use of CIL so we can see only one connector which has been prebuilt by Shelf, and it is the Zendesk Connector.
On the Connectors page, you can see names of the connectors and when and by whom the connectors have been created.
It should be noted that you can only view the prebuilt connectors and are not able to edit or delete them.
Creating a Custom Connector
In order to create a custom connector, follow the below procedure:
- On the Connectors page, click the CREATE CONNECTOR button as shown in Figure 3 above.
- On the Create Connector page that appears, fill in the fields as described below.
Figure 4. Creating a custom connector
Table 1. The Create Connector Page Elements and Their Details
Item # | Element Name | Details |
---|---|---|
1 | Connector name* | In this field you need to indicate any desired name for your new custom connector. |
2 | API URL* | In this field you need to indicate the URL address of your own or any third-party CMS API that you want to sync content from via CIL. In our exemplary case, it is the dedicated Zendesk API created specifically for Shelf’s CIL purposes via the Zendesk Admin Portal. Note that creating a needed API for CIL purposes is your responsibility, and you can use a set of endpoints available for custom API implementation. Max length of the API URL cannot exceed 4096 characters, otherwise the error message is displayed. |
3 | API Key | It is a field where you have to enter some API Key (or token) to be authorized on the end of your own or third-party content management system. In our exemplary case, it is the Zendesk API token created specifically for CIL purposes. Length of your API Key must not exceed 256 symbols. If it is longer, the respective error message is displayed. |
4 | CREATE and CANCEL buttons | Buttons that perform standard actions - the CREATE button closes the form and creates the new connector, while the CANCEL button closes the Create Connector window without saving the entered data and creating the new connector. |
❗Note:
Fields and other elements marked with an asterisk are mandatory and cannot be left blank.
Figure 5. Viewing the newly created custom connector
If you are able to see your newly created custom connector - in our case, it is Zendesk_Shelf - in the list, it means that you have successfully created the custom connector. You can differentiate prebuilt connectors as they have Shelf in the Created by column.
Editing a Custom Connector
Any custom connector can be edited if needed. For this purpose, perform the following steps:
- Go to the More Actions menu by clicking the More Actions (...) button (1) and select the Open option (2).
Figure 6. Accessing and using the More Actions menu
Figure 7. Editing the custom connector
Once the needed changes are made to the custom connector, click the SAVE button to confirm them and update the connector. Otherwise, click the CANCEL button to cancel the connector editing and close the Update Connector page.
❗Note:
When you edit a connector and change its name, API URL, or API Key, the respective changes are made to connection profiles and sync flows that use the edited connector. For instance, when you change the connector name, it is changed in all connection profiles using this connector. When you change the API URL or API Key for the connector, this change applies to all sync flows that use a connector profile, which, in its turn, uses the edited connector. The changes made in this case come into force at the next run of the respective sync flow.
Deleting a Custom Connector
Any custom connector can also be deleted if no longer needed. In particular, when there are no connection profiles that use such a connector. It can be done in two ways as described below.
- Go to the needed connector’s More Actions menu by clicking the More Actions (...) button (1) and select the Delete option (3). In the popup window that appears, confirm that you still want to delete the connector by clicking the DELETE button. Otherwise, click the NO, CANCEL button to cancel the deletion and retain the connector.
Figure 8. Confirming or canceling the connector deletion
Once you have clicked the DELETE button, the Update Connector page closes, the connector becomes deleted and removed from the list of available connectors on the Connectors page.
Once you have performed the actions described in either of the above two methods and no error messages have been displayed, it means that you have successfully deleted the custom connector and removed it from the list of available connectors on the Connectors page.
❗Note:
Remember that deleting a connector is irreversible, that is you are not able to restore it later. However, you cannot delete a connector if there is a sync flow using this connector via some connection profile. In such a case, you first need to delete that sync flow, then delete that connection profile, and only after that delete the needed connector.
Now that you have learned how to create, edit, and delete custom connectors and successfully created your own custom connector, you can proceed to the next stage of the Content Integration Layer configuration, which is creating and configuring a Connection Profile.
Connection Profiles
According to the Shelf’s terminology, a connection profile is a specific instance of your connector with the user's credentials that make it possible to connect to it. In other words, a connection profile can be used to provide segregated access to content for a specific unit or department or person within an organization via the relevant connector.
The module is accessible from the Content Integration Layer block once you have logged in to your Shelf account under the Admin role and navigated to the Admin Panel.
Once you have located and selected the Connection Profiles option in the Content Integration Layer block of the Admin Panel, you are redirected to the Connection Profiles page as shown in the figure below.
Figure 9. Viewing available connection profiles on the Connection Profiles page in CIL
Once on the Connection Profiles page, you can see the list of all the available connection profiles, use the pagination buttons to switch between pages in case there are multiple connection profiles, select how many connection profiles you want to be displayed on the page (available options are 10, 25, 50, and 100), search for connection profiles by name or by description using the search feature. You can also see the name, description, author, and creation date and time of any connection profile, as well as the name of a connector associated with the subject connection profile.
You can see which connection profile is prebuilt by Shelf and which one is the custom connection profile. In the latter case, there is the More Actions menu (...) button next to the connection profile in the table grid.
❗Note:
It needs to be mentioned that like the connectors, prebuilt connection profiles can be viewed only and cannot be edited (modified) or deleted. However, you can create and delete custom connection profiles, though being unable to edit its parameters.
Creating a Connection Profile
Creating a new connection profile is needed, for example, when the existing connection profile’s API token expires. In such a case, you need first to create a new API token via your content storage or management system’s capabilities, and then to create a new connection profile with this new API token.
Same approach applies in case of a change in user email address or password - you need to create a new API token first, because it contains user credentials inside it. Once the new relevant API token is available, you can create a new connection profile for a new user email address and with this new API token. Attempting to use expired user credentials or API token results in the display of the respective error message.
You can also create multiple connection profiles for your connector. It may be needed when you need to provide different user roles different levels of access to your or third-party platform’s content. In such a case, these different user roles will have different credentials, which you need to use when creating the relevant connection profiles for these user roles.
Sometimes, different user roles may have access to different instances of your or third-party content storage or management system. In such a case, to enable these roles to access content on the respective system instance, you need to create new connection profiles with the relevant instance URLs.
In order to create a connection profile and associate any prebuilt or custom connector with it, follow the below procedure.
- On the Connection Profiles page, find and click the CREATE CONNECTION PROFILE button.
- On the Create Connection Profile page that opens, fill in the necessary fields as shown in the figure below.
Figure 10. Creating a connection profile
Table 2. The Create Connection Profile Page Elements and Their Details
Item # | Element Name | Details |
---|---|---|
INFO Block | ||
1 | Connector* | By clicking this field you open the dropdown list with the available connectors from which you need to select the suitable one. |
2 | Connection profile name* | Enter here any desired name for the connection profile you are creating. The field cannot be left blank. |
3 | Description | You can add here any text to be used as a description for your connection profile. Maximum permitted number of characters is 500. |
RUNTIME SETTINGS Block | ||
4 | Instance URL* | In this field you need to indicate the URL address of your instance of the content source/site. URL address must be of a link format, and the link itself must be valid and direct to an alive web resource used as a content storage or management system. CIL supports inline validation so, if the Instance URL link is invalid, a respective error message is displayed. In our case, it is the URL address of the dedicated instance on the Zendesk Portal. You can see it in the address bar in your browser once you have successfully logged into your Zendesk account. |
CREDENTIALS Block | ||
5 | Email* | You must enter here the email address used as the login to access your instance of the Zendesk Portal. |
6 | API Token* | You have to paste here the token for your CMS API. In our case, it is the token to Zendesk API. |
7 | CREATE and CANCEL | Buttons serving the standard purpose: CREATE finishes the connection profile creation procedure, while CANCEL interrupts it and directs you back to the Connection Profiles page. |
❗Note:
Fields and other elements marked with an asterisk are mandatory and cannot be left blank.
Once you have clicked the CREATE button and no error messages have been displayed, it means that you have successfully created your custom connection profile. You can verify it by checking the table grid on the Connection Profiles page: if you can see the connection profile you have created in the list, it means it has been successfully created and saved.
Figure 11. Checking the connection profile availability
Note that you cannot edit connection profiles, no matter whether they are prebuilt by Shelf or manually created by you. You can open them only to view their data as shown below. In case you need to modify a custom connection profile, you need to create a new one and enter the new, correct data.
Figure 12. Viewing the connection profile details and properties
Deleting a Connection Profile
Using the Content Integration Layer feature of Shelf, you are able to delete any connection profile excluding those prebuilt by Shelf.
To delete a connection profile, follow the below steps.
- When on the Connection Profiles page, click the More Actions menu (...) button next to the needed custom connection profile and in the dropdown menu select the Delete option.
Figure 13. Deleting the connection profile
Figure 14. Confirming/canceling the connection profile deletion
You can also use an alternative method to delete the connection profile.
For this purpose, when on the Connection Profiles page, click the More Actions menu (...) button next to the needed custom connection profile and in the dropdown menu select the Open option. On the View Connection Profile page that appears, locate and click the DELETE button at the bottom of the page. Then, confirm your intention to delete the selected connection profile by clicking the DELETE button in the popup window that appears, as shown in Figure 14 above.
Regardless of the method you have selected to delete the connection profile, once you have confirmed your desire to delete the connection profile and if no error messages have been displayed after clicking the DELETE button in the popup window, the selected connection profile is deleted and removed from the list of available connection profiles in the table grid on the Connection Profiles page.
It should be also noted that deletion of connection profiles cannot be undone and they are deleted with no possibility of restoring.
Now that you have learned what connection profiles are, how you can view, create, or delete them, you can proceed to the next stage of the Content Integration Layer configuration - creating and configuring Sync Flows.
Sync Flows
This module of the Content Integration Layer feature is the exact location where the content synchronization takes place. In short, after you have configured the connector and connection profile to transfer content from any knowledge management system, be it Shelf KMS, your own system, or any third-party one, the content synchronization needs to be properly configured and initiated. And the Sync Flows Module is exactly where you can do it.
After selecting the Sync Flows option in the Admin Panel, you are redirected to the Sync Flows page as shown in the figure below.
Figure 15. Viewing the Sync Flows page in CIL
What you can see on this page is the table grid listing all the available sync flows in CIL. There can be sync flows prebuilt by Shelf - in our case, it is Shelf KMS, and also custom sync flows created by you.
In the table grid, you can see names and descriptions of all available sync flows and connection profiles with which they are associated. You can also see how exactly each of the sync flows is executed: per individual request - On-demand, or according to some schedule, in our case - Every hour. Moreover, you can see when some specific sync flow has been executed last time and, if it has the On-schedule execution type, when it is to be executed next time.
On the Sync Flows page, you can access each of the available sync flows and view its details. You can do it for both Shelf-prebuilt sync flows and for custom sync flows. To do so, click the More Actions menu (...) button next to the needed sync flow and in the dropdown menu select the Open option. It needs to be noted that the dropdown More Actions menu is different for prebuilt and custom sync flows: it has the Delete option for the custom sync flows and does not have it for the prebuilt sync flows.
Figure 16. Opening the prebuilt sync flow in CIL
Figure 17. Opening the custom sync flow in CIL
Once the Open option is selected, you get to the Edit Sync Flow page.
❗Note:
It needs to be mentioned that the Edit Sync Flow page looks different for prebuilt sync flows and for custom sync flows. The first difference is that you cannot edit any prebuilt sync flows - all fields are view-only. The second difference is that you cannot use content filtering for the prebuilt sync flows. Refer to the figures below to see the difference.
Figure 18. Viewing the Edit Sync Flow page with the Info tab selected for a prebuilt sync flow
Figure 19. Viewing the Edit Sync Flow page with the Info tab selected for a custom sync flow
By default, the Edit Sync Flow page opens with the Info tab selected. This tab shows the overall information about the selected sync flow
Table 3. The Edit Sync Flow Page: Elements of the Info Tab and Their Details
Item | Element Name | Details |
---|---|---|
1 | Connection* profile | In this dropdown field, you need to select any suitable or required connection profile, either the prebuilt or custom one, from the list. It will be used to grant access to the needed content. |
2 | Sync flow name* | This field contains a text name used to identify the sync flow. It is an editable field for custom sync flows and view-only field for prebuilt sync flows. |
3 | Description | It is an editable field for custom sync flows and view-only field for prebuilt sync flows. When creating or editing a custom sync flow, you can enter any text to describe your sync flow and its purpose. |
Run type block | ||
4 | On-demand* | Select the On-demand checkbox if you need to start the content sync flow manually as required. |
5 | On-schedule* | Select the On-schedule checkbox if you need your custom sync flow to be executed according to a specific schedule. Once this option is selected, two additional fields pop-up: Sync every and Period. |
6 | Sync every* | In the Sync every field, you can enter any needed value for a time interval. Note that it needs to be a numerical value. This field works together with the Period field. |
7 | Period* | In this field, you are to choose the needed time interval from available options - Hours or Days. For example, if you make 5 days in these fields, your sync flow is expected to run every five days according to the schedule. |
Note that the Run type block is not editable in the Edit Sync Flow window for the prebuilt sync flows. You can only view the fields in this block and cannot select any checkbox or fill in any field with any value. | ||
Content filtering block Note that one sync flow can have not more than 100 (one hundred) filters and a value of any filter cannot exceed 1000 (one thousand) characters. | ||
8 | ADD FILTER | This button allows you to add a content filter to be used when syncing the needed content. Its purpose is to streamline the synchronization and get only the needed content. |
9 | Field name* | In case you have added or are adding any filter for your content synchronization, this is a mandatory dropdown field that, if clicked, shows the list of available options to select. These options depend on the connector selected and can be:
|
10 | Criteria* | This field is for defining the criterion/criteria for filtering content to be synced. It can acquire several options available for selection, which are based on values selected in the Field name, which in their turn, depend on the selected connector. These correlation is as follows:
|
❗Note:
Fields and other elements marked with an asterisk are mandatory and cannot be left blank. Items 9 and 10 in the table above are mandatory if you have started to add a filter.
You can select the Jobs tab to open it for viewing or managing the sync jobs. Basically, it is the place where all sync jobs are stored. You can also start a new sync job from here.
Figure 20. Viewing the Jobs tab of the Edit Sync Flow page in CIL
The table below provides details about the elements of the Jobs tab of the Edit Sync Flow page.
Table 4. The Edit Sync Flow Page: Elements of the Jobs Tab and Their Details
Item | Element Name | Details |
---|---|---|
1 | Information message | This message provides you with the information about this tab and its purpose. It also informs about existing limitations in regard to the simultaneous execution of synchronization jobs. |
2 | Status | This field, once clicked, reveals the dropdown list from which you can select the needed option for displaying some specific synchronization jobs filtered by their status. Available options are:
|
3 | Status | It shows statuses of the available synchronization jobs. |
4 | Total | It shows the cumulative number of synced content items and those that failed to be synced. |
5 | Synced | It shows how many pieces of content have been synced during a certain job. |
6 | Failed | It shows the number of content items that failed to be synced. |
7 | Started at | It shows the exact date and time when a certain job was initiated. |
8 | Updated at | It shows the exact date and time when the last content item of a certain job was synced. |
9 | Finished at | It shows the exact date and time when a certain job was finished. |
10 | Show N entries | This tool allows you to select the number of entries - jobs - you want to see on one page. Available options are 10, 25, 50, and 100. |
11 | Pagination buttons | You can switch between pages of the table grid in the Jobs tab. |
12 | Don’t show this again | You can remove the information message on top of the page. |
13 | TRIGGER NOW | You can trigger the content synchronization jobs at any time manually.
In both cases, the sync job is run only if there are no other jobs running at the time. If there is a sync job running, no new sync job will be created, and you will be displayed the respective error message. |
❗Note:
Fields and other elements marked with an asterisk are mandatory and cannot be left blank.
The last tab on the Edit Sync Flow page is Recent Sync where you see the content items synced during the last job. Note that only the last 50 content items are displayed here. In this tab, you can even access the synced piece of content directly within the resource where it is stored.
Figure 21. Viewing the Recent Sync tab of the Edit Sync Flow page in CIL
The table below provides details about the elements of the Recent Sync tab of the Edit Sync Flow page.
Table 5. The Edit Sync Flow Page: Elements of the Recent Sync Tab and Their Details
Item | Element Name | Details |
---|---|---|
1 | Information message | You can see here the information about this tab and its purpose. It also informs how you can access any content item from this tab. |
2 | Don’t show this again | You can hide the information message on top of the page. |
3 | Name* | It shows names of the content items synced during the sync flows. |
4 | Collection* | It shows to which collections the respective content belongs. |
5 | Updated at* | It shows the exact date and time when the respective content item was updated. |
6 | Show N entries | You can select the number of entries - content items - you want to see on one page. Available options are 10, 25, and 50. |
7 | Pagination buttons | You can switch between pages of the table grid in the Recent Sync tab. |
❗Note:
Fields and other elements marked with an asterisk are mandatory and cannot be left blank.
Now that you know which functionality the CIL Sync Flows module has, you can proceed to creating, editing or even deleting your own sync flow.
Creating a Sync Flow
In order to create a new custom sync flow, once on the Sync Flows page, perform the following procedure.
- Click the CREATE SYNC FLOW button.
- On the Create Sync Flow page that opens, fill in the fields as shown in the figure below and detailed in Items 1-5 of Table 3 above.
Figure 22. Creating a custom sync flow
At this step, you need to select one of available connection profiles, give name to your new sync flow, optionally provide some description to this sync flow, and also select how it is expected to be executed: on demand or according to some schedule. See more about the run type options in Items 4-7 of Table 3 above.
Figure 23. Adding filters to streamline your content synchronization
❗Note:
It needs to be mentioned that there are some restrictions regarding the filters. In particular, it relates to the Updated At and Created At filters. These filters will not work on their own as standalone filters. It means that they need to be used in combination with any other filter, for example with Label Names, Text, or Section. However, the Updated At filter can be used as a standalone filter if you choose the greater than value in the Criteria field.
See more details about filters in Items 10-11 of Table 3 above.
You can also remove any unneeded filter as well. For this purpose, click the trash bin icon that pops up when you hover over the needed filter.
Figure 24. Deleting a filter
Once the CREATE button is clicked, wait for the display of a message about the successful creation of the sync flow. Once such a message is shown, your sync flow has been created, and you can check it in the table grid on the Sync Flows page.
Figure 25. Verifying the sync flow availability
Note that creating a sync flow does not mean that it starts immediately after the creation. If you create an on-demand sync flow, it will run only after you start the sync job manually as described in the Starting and Stopping the Synchronization Job section below. In case you create a scheduled sync flow, its execution is expected to start in [N] hours or days (depending on which option - Hours or Days you have selected in the Period field during the sync flow creation) after its creation.
Editing a Sync Flow
It may occur that at some point you would need to make changes to the sync flow: to change how it needs to be executed, enter or remove its name or description, add or remove filter(s), or even switch to another connection profile. All the mentioned actions are enabled for custom sync flows only, and you cannot edit any prebuilt sync flow, if any.
Follow the below steps to make necessary changes to your custom sync flow.
- Once on the Sync Flows page, find the needed sync flow in the table grid or using the search feature.
- Once the needed sync flow to be edited has been found, click the More Action (...) menu icon next to it.
- In the dropdown list menu that appears, select the Open option.
Figure 26. Opening the sync flow for editing
If you decide to save the changes, then confirm it in the popup window that opens after you click the SAVE button on the Edit Sync Flow page.
Figure 27. Confirming the change saving
Once the above steps have been completed without any error messages, it means that you have successfully edited the needed sync flow.
Deleting a Sync Flow
In case you no longer need some certain sync flow, you can always delete it. Note that you cannot delete prebuilt sync flows. Only custom sync flows, that is those sync flows that have been created by you, can be deleted.
It needs to be mentioned that you cannot also delete a sync flow if there is a sync job running under it. In case you attempt to delete such a sync flow, the respective error message is displayed from which you can navigate to the Jobs tab where you can cancel the necessary running sync job.
To delete a sync flow, follow the below steps.
- Once on the Sync Flows page, find the needed sync flow in the table grid or using the search feature.
- Once the needed sync flow to be edited has been found, click the More Action (...) menu icon next to it.
- In the dropdown list menu that appears, select the Open option.
- On the Edit Sync Flow page that opens, navigate to its bottom, find and click the DELETE button.
Figure 28. Deleting a sync flow in CIL
Figure 29. Confirming the sync flow deletion
Once the above steps have been completed, the selected sync flow has been deleted and removed from the table grid on the Sync Flows page.
However, there is an alternative and more simple way to delete sync flows. To walk this path, once on the Sync Flows page, find the needed sync flow in the table grid or using the search feature. Once the needed sync flow to be edited has been found, click the More Action (...) menu icon next to it. In the dropdown list menu that appears, select the Delete option. Finally, confirm your choice by clicking the DELETE button in the popup window that appears.
Once any of the two abovementioned procedures has been completed, the needed sync flow becomes deleted.
Deleting the Synced Content
The Content Integration Layer does not have a dedicated feature - a button or an icon - to delete the synced content.
If you need to delete some synced content for any reason, for example if the wrong content has been synced, you have to delete the sync flow you have used to sync that content. Once the sync flow is deleted, all the content that has been synced as a result of this sync flow run is deleted as well.
Another method to delete some mistakenly synced content is to adjust filters and their criteria for the needed sync flow and then rerun the sync job. It will result in syncing the needed content items and deleting the wrong content.
Starting and Stopping the Sync Job
Once you have created or updated a sync flow, you can either wait until it performs the content sync per schedule (if you have selected the On-schedule option for the sync flow run type), or start the sync manually at any time (if you have selected the On-demand option for the run type).
To manually start the synchronization of your content, follow the below steps.
- Once on the Sync Flows page, find the needed sync flow in the table grid or using the search feature.
- Once the needed sync flow for which you want to start the synchronization has been found, click the More Action (...) menu icon next to it and, In the dropdown list menu that appears, select the Open option. Or you can open the sync flow simply by clicking on it in the table grid.
- On the Edit Sync Flow page that opens, navigate and select the Jobs tab.
Figure 30. Starting the synchronization job in CIL
Figure 31. Triggering the synchronization job
Once the above steps have been completed, the job becomes triggered manually both for the on-schedule and on-demand sync flows, unless there is a sync job running at that time.
In the first case, the manually triggered job overrides the schedule set for the sync flow. At the same time, the sync flow execution will resume to occur per schedule after the manually triggered sync job is finished.
If you manually trigger the sync flow job, it starts immediately.
If there is a running sync job in this sync flow when you attempt to start a new job, this new job will not be created and, respectively, the content sync will not be started. In this case you will see the error message informing that the job is already running.
If there is no other sync jobs running in this sync flow, the Jobs tab window refreshes, and a new job appears in the table grid. The status of this new job is IN PROGRESS, meaning that the job is not yet finished.
Figure 32. Viewing the triggered job
At this very stage, you can stop the synchronization job by accessing the More Actions menu for this job by clicking the respective More Actions (...) menu icon next to it, and selecting the Stop option in the dropdown list as shown below.
Figure 33. Stopping the synchronization job
Then, in the popup window that appears, select the STOP button to confirm that you want to stop the running job.
Figure 34. Confirming the job stopping
The job becomes stopped and changes its status in the respective column of the table grid in the Jobs tab window.
If you decide not to stop the job, refresh the page when the job status is IN PROGRESS. The status will change to SUCCESS, meaning that the job has been successfully executed. The table grid columns provide you with the details about the job result. See more about it in Table 4 above.
Sync Job Details
Each sync job, scheduled or triggered on demand, starts with the collection sync.
The synchronization applies to all collections that have been added, updated, or deleted in the source instance, and takes the appropriate actions on such collections in Shelf, meaning that it adds, updates, or deletes them in Shelf. It also means that all the collections are synced even if some filters have been added at the stage of the sync flow creation to sync only some specific content which is located in one collection.
Sync Job Limitations
The synchronization applies only to TOP LEVEL collections, meaning that nested collections need not to be synced separately - all content items stored in such nested collections are synced as part of the top level collection synchronization.
Maximum number of collections that can be synced - 1000, while the minimum is 1. If you attempt to sync more than 1000 collections or less than 1 collection, the sync job is expected to stop and fail.
Note that the number of simultaneously running jobs for one sync flow is also limited - only 1 job can be in progress. However, you can run as many jobs from one account as 100.
The important point is that all 100 sync flows can be running simultaneously. In this case they need to have the same filters applied and are expected to sync the same data.
If several sync flows sync the same data, no collection and, respectively, data duplicates are created: they sync only that content that has not been synced during the last run.
As mentioned in the respective section above, one sync flow can have up to 100 filters. At the same time, all filters within one sync flow complement each other. If you run several different sync flows with some filters, those filters work on an “or” basis, meaning that filters of only one sync flow are to apply.
When the sync job is run and yields no errors, it means that all content has been successfully synced and you can check the synced content items in the Recent Sync tab. In case there are some issues during the job, the content that cannot be synced due to these issues is skipped, while the remaining content items are not affected and are successfully synced. It applies even to cases when all the content items to be synced experience some issues. Such a situation does not stop or cancel the job. The job is run to completion in this case and then you can go to the Recent Sync tab and check how many content items have failed to be synced.
Viewing and Accessing the Synced Content
Once the respective job has been successfully executed, you can go and check whether any content has been synced as a result of this job.
For this purpose, once on the Edit Sync Flow page, find and select the Recent Sync tab to open it.
In the Recent Sync tab window that appears, you can see which content items have been synced during the performed job. Note that only the last 50 sync items of the content are shown in the table grid in the Recent Sync tab window.
Figure 35. Viewing the synchronization job results
In our case, we used the filter - Text - in order to sync only the matching content. The filtering criteria was that the content needs to contain the word “dog”. The content item we see in the table grid must have some text that contains this word.
In order to verify that the synced content item contains this word, you can access this item directly from CIL. For this purpose, hover the pointer over the content item name and then click the link icon appearing next to that name.
Figure 36. Following the content item link to the external resource
If everything is configured properly, you will access the needed content item on the external portal where it is stored.
Figure 36. Viewing the synced content item on the external resource
If you need more details about the Recent Sync tab, its table grid, and other elements, see Table 5 above.
CIL Collection Permissions
After creating and configuring the needed connector, connection profile, and sync flow to synchronize the required content via the Content Integration Layer, you can easily enable your content managers or agents to access such content and collections where it is stored.
☝A collection is a top level object - a library or a folder - that stores any content pieces (articles, help files, etc.).
This enablement is executed via the User Groups feature of the Shelf Platform and bears the name CIL Collection Permissions. If the users are not granted these permissions, they will not be able to access content belonging to the specific collection in the Shelf Answer Automation products. However, these users can still be able to access such content if they are members of another user group that has been granted permissions to access the relevant CIL collection.
Note that permissions granted via this feature are view-only, meaning that users cannot view or edit any content items synced from external sources in Shelf.
Prerequisite and Restrictions
The CIL Collection Permissions functionality is only operational when there is at least one connector, one connection profile, one sync flow created and at least one external collection with some content synced to Shelf.
One user group can have access to not more than 100 collections. If the number of collections exceeds 100, the ability to provide access for the user group to one more collection is disabled and the ADD COLLECTIONS button becomes inactive.
Enabling Collection Permissions for CIL
To enable the CIL Collection Permissions, follow the below steps after logging in to your Shelf account under the Admin role and go to the Admin Panel.
- In the Admin Panel, find and select the User Groups submenu in the left sidebar panel.
Figure 37. Accessing the User Groups feature in the Shelf Admin Panel
Figure 38. Viewing the collection permissions for the selected user group
Figure 39. Adding collections for the needed user group
Once the needed collections have been added, they become available for CIL users and can be used as content sources for the CIL purposes.
Disabling Collection Permissions for CIL
In case if some user group no longer needs to have access to some collection(s) via CIL, this access can be removed using the Collection Permissions feature.
To do so, once in the Collection Permissions tab window for the needed user group, find the collection you want to disallow for this user group and click the trash bin icon next to it.
Figure 40. Removing the collection permissions for the needed user group
Confirm that you want to delete the collection by clicking the REMOVE button in the popup window that appears.
Figure 41. Confirming the collection access revoking
Once done, the popup window closes and the collection access to which has been removed for the subject user group becomes unavailable in the list of collections. Moreover, users within this user group lose access to any content kept in the respective collection, both on the end of the Shelf Answer Automation products (Answer Assist etc.) and in the Content Integration Layer interface (the Sync Flows module > the Recent Sync tab).