Enrichment Services

It is not feasible for CUE to meet every user's requirements out of the box – particularly when it comes to integration with external systems. Such integrations are increasingly important as organizations adapt their workflows to make use of popular online productivity tools, publish content to social media and so on. When you publish a story in CUE, for example, you might also want to:

  • Connect it to a Slack channel

  • Create a card in Trello

  • Push it to a Wordpress site

  • Share it on one or more social media

  • Send it to a legacy print system

CUE's enrichment services provide the means for you to satisfy such requirements for yourself, in a surprisingly straightforward way.

An enrichment service is a simple HTTP service that has a defined workflow. When it receives a request it recognizes from CUE, it responds in such a way as to guide CUE through the workflow, providing CUE with explicit instructions on what it should do next. You can, for example, configure CUE so that when the user clicks on Publish to publish a story, the story is not immediately published, but instead sent to an enrichment service you have created. The enrichment service can then perform some check on the story – count the related links, for example – and return a response to CUE. In this case the response could either be an "OK, continue", allowing the story to be published, or an instruction to display a message saying "please add 3 related links" and cancel the publish operation.

It is also possible to define much more complex interactions though: you can instruct CUE to display a sequence of dialogs for the user to fill in, and use the supplied data to modify the content of the submitted story. You can also trigger enrichment services in different ways, not only when the Publish button is pressed.

Here is an example workflow for publishing to social media that could be implemented using an enrichment service:

  1. The user selects Publish.

  2. CUE displays a dialog containing:

    • A Title text field (max 140 characters). It is pre-filled with either the story's title or the first 140 characters of its lead text field if available, but the user can edit it if required.

    • A Social media drop-down field, containing the names of supported social media.

    • Three buttons:

      • Share: publishes the story and then shares it on the selected medium, using the specified title.

      • Don't share: publishes the story without sharing it.

      • Cancel: cancels both operations – the story is neither published nor shared.

If the user selects Share, then the enrichment service will make an appropriate HTTP request to a back-end server that will take care of sharing a link to the published story, using the specified Title.

Despite the fact that this additional functionality is implemented in an enrichment service completely outside CUE, it appears to be fully integrated from the user's point of view: the dialog is constructed and displayed by CUE and looks just like any other CUE dialog.

Enrichment services can be created to handle a number of different CUE structures, not only content items. You can, for example, create enrichment services to handle section pages. Enrichment services for the following items are, however, not supported at present:

  • Lists

  • CUE Live events

  • CUE Print-related structures such as assignments and story folders

To create an enrichment service you need to:

  • Configure CUE to access a service.

  • Create the service. It must be an HTTP service that accepts specific kinds of requests from CUE, and supplies specific kinds of response.