CMS Integration
Our Link Optimizer (LO) tool provides both the ability to generate links on some manual text selection (preferred in the beginning) or fully automatic on the whole article.
LO can be used on both existing indexed content, or on draft content, the latter being the main use-case. Therefore, similar to our first data ingestion, we need a way to properly read and save some draft content from our application.
So, the main workflow would be:
- load some content from a given CMS
- manually or automatically add links
- save the updated content back to a given CMS
Purple DS HUB
In this case, our requirement are already covered by the JSON or GRAPHQL API described in the section Data ingestion and indexing.
Therefore, no additional requirement is needed.
Similarly to the data ingestion, we need to embed the load/save in a custom connector and would require the availability from a customer perspective of 2 endpoints for that purpose.
The simplest would be a REST API with a GET and POST methods, e.g: https://api.cms.example/articles/<id>, that would be used like:
The load method would be called automatically when loading LO with a given id: https://acm.sprylab.com/link-optimizer/<id>
Note that we offer the possibility to add a custom API token when calling our front-end by adding the following query parameters:
- api_token_acm: ACM token generated via login
- api_token_customer: token used for its own load/save API
- user_id: ACM internal user ID
The save method would be called automatically when clicking on the save button in the LO interface.
The JSON body returned or written back should comply with the data defined in the Indexer API, as seen in Data ingestion and indexing.

The Header can be disabled via query parameters in the URL, to do that you have to set the following:
- hideHeader=1
Per default, a close button is visible in iFrames that calls the parent iFrame to close itself. If instead a custom iFrame close button is desired, the ACM close button can be hidden via
- hideCloseButton=1